Alternative to RFXCOM 433mHz receiver

Tags: #<Tag:0x00007f6173fcaa90>

I’m in the US and had a previous HA system where I used X10 PIRs extensively - they were cheap and reliable. I used the W800 receiver (http://www.wgldesigns.com/w800.html) which worked great using the US 310 MHz X10 frequency. I can’t tell whether the RFXCOM is still available or even if there is active support within the OH2 community.

There are many inexpensive PIRs using 433 MHz and I’d like to move in that direction.

Am I right that RFXCOM is on its last leg?

Are there any alternative 433 MHz receivers supported by OH2 that can incorporate 433 MHz PIRs?

Since you seem to need receive only, you may consider rtl_433, see:

What is your problem with RFXCOM ? I use it for years with openhab. Their support is very good. The openHAB binding does what it should do. I do not know the wgldesigns device, so cannot say if they will work with RFXCOM. You can check that here http://www.rfxcom.com/WebRoot/StoreNL2/Shops/78165469/MediaGallery/Downloads/RFXtrx_User_Guide.pdf
or ask rfxcom.com

Have a look at RF Link:
http://www.rflink.nl/blog2/

Hi Gert - others using another HA system like the unit but I want to be sure that I’m not investing in a component in my HA system (433 MHz PIRs) that look EOL.

Interesting - is there an OH2 binding for this?

Why do you think RFXCOM is EOL ? I agree that some older 433 MHz devices are no longer fit for use, because they can only receive data and give no feedback to the domotica system. But the RFXcom interface is capable to do so if your devices are.
In my opinion the whole 433 MHz technology is old fashioned and if I had to start from scratch, i would prefer Zigbee or Z-Wave. Not so long ago there was hardly a technology with all needed device types. That is why people who started early in domotics always have a mix of technologies. That is where openHAB proves its value.

Yes. The RFXCOM binding.

My old system was a combination of zwave, upb, x10 and 1-wire. I had maybe 30 x10 Hawkeyes (wireless pirs) sprinkled about. On sale the Hawkeyes were us$10 or so. Zwave pirs seem to be 2-4 times more expensive and include more functionality than needed and also less reliable unless there are enough devices to create a good mesh in my situation. So my goal is to replicate my motion sensor array the least expensive yet functional way. 433Mhz seemed to be a good option even if older. Maybe zigbee would be an option as those devices seem to be less expensive.

Yes, there is some rflink binding but not in the official distribution. Not sure about its shape/ maturity.

But there are rflink-to-mqtt solutions which make rflink available to all home automation systems.

E.g


You have to use openHAB’s mqtt binding to interface with it, similar to the rtl_433 which can publish directly to mqtt out-of-the-box:

I use a tasmotised wemos D1 to capture the serial output of the RFLink gateway. The Wemos then forwards the payload to Node-red and I use the RFLink nodes to pass on the information to OpenHAB.

1 Like

Just curious - in the US wireless sensors are 310 MHz whereas elsewhere 433 MHz. In my older system I used a WGL W800 (http://www.wgldesigns.com/w800.html) for the wireless X10 motion sensors. I’d like to repurpose those if possible. The W800 protocol is here;

http://www.wgldesigns.com/protocols/w800rf32_protocol.txt.

Does this look like something an existing binding would support?

Sorry for repeating myself:

Despite the name, it’s not limited to 433MHz. Since the hardware is a software defined radio, it can be tuned to other frequencies as well. So it can support 310MHz as well as 866 MHz too.

The binding to feed the received messages to openHAB is the mqtt-binding.

Read this if interested (as I said: don’t be worried about the “433”):

True, as long as the freq fits the sampling bandwidth, usually ± 2 Mhz. 433/310/867 are too far off each other. You will need dedicated hardware for each if you want to listen at all three at the same time.

Yes. It can “listen” on just one frequency at a point in time. Worth mentioning: There is a frequency hopping option for switching between frequencies. This might be an option for some slow changing sensors (eg. temperature) but certainly not for motion detectors obviosly…

I ended up purchasing a RTL-SDR Blog dongle (https://www.amazon.com/gp/product/B0129EBDS2/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1), installed rtl_433 and Mosquitto, and used a 310Mhz tuned antenna I had. I have a number of X10 wireless motion sensors which are recognized by the setup.

I set the rtl_433.conf output to:

output mqtt://localhost:1883,retain=0,devices=sensors/x10/[channel:0]/[id:0] 

The Mosquitto_sub looks like this:

sensors/x10/A/3/time 2020-02-25 14:41:07
sensors/x10/A/3/id 3
sensors/x10/A/3/channel A
sensors/x10/A/3/state ON
sensors/x10/A/3/data 1621037295
sensors/x10/B/1/time 2020-02-25 14:41:12
sensors/x10/B/1/id 1
sensors/x10/B/1/channel B
sensors/x10/B/1/state ON
sensors/x10/B/1/data 1888420095

This reflects 2 sensors: house code B, Item 1 and house code A, item 3

In creating Items, I cannot get the date to output. It looks like 2 dates are outputted in the data: the string (“2020-02-25 14:41:07 for example”) and a millisecond integer (“1621037295” for example). I’ve tried this to no avail:

DateTime x10_A3_time "MB Motion Triggered" <motion> { channel="mqtt:topic:MY-MQTT:RTL_433:x10_A3_time" }
Number x10_A3_data "MB Motion Triggered" <motion> { channel="mqtt:topic:MY-MQTT:RTL_433:x10_A3_data"}
String x10_B1_time "Guest Bath Motion Triggered" <motion>  { channel="mqtt:topic:MY-MQTT-2:RTL_433:x10_B1_time" }
DateTime x10_B1_data "Guest Bath Motion data" <motion> { channel="mqtt:topic:MY-MQTT-2:RTL_433:x10_B1_data"}

What is the setup to be able the display of the triggered date/time?

Check the tutorial again and watch out for the

-M time:iso

explanation. This gives you MQTT topics which can be mapped easily to openHAB DateTime channels.

I’m curious. How much exactly do the 433MHz or 310MHz PIR sensors cost?
I have been using Xiaomi Aqara human sensors (Zigbee), and they cost around US$12 or less each.

About US $20 - see for example https://www.x10.com/x10-home-automation/ms16a.html. Also once you are on the X10 mail list, You should get notices on sales.

Yes I saw that. The issue I think is converting a command line rtl_433 startup to a conf file. My rtl_433.conf file includes this:

output mqtt://localhost:1883,retain=0,devices=sensors/x10/[channel:0]/[id:0]
report_meta time:iso
report_meta protocol

The channel of my MQTT Broker thing includes:

 ...
  Thing topic RTL_433 "X10 Sensors" @ "Central functions"  {
  Channels:

      Type switch:      x10_A3           [ stateTopic="sensors/x10/A/3/state" ]
      Type datetime:    x10_A3_time      [ stateTopic="sensors/x10/A/3/time" ]
      Type switch:      x10_B1           [ stateTopic="sensors/x10/B/1/state" ]
      Type datetime:    x10_B1_time      [ stateTopic="sensors/x10/B/1/time" ]
      Type switch:      x10_A4           [ stateTopic="sensors/x10/A/4/state" ]
      Type datetime:    x10_A4_time      [ stateTopic="sensors/x10/A/4/time" ]
      Type switch:      x10_A1           [ stateTopic="sensors/x10/A/1/state" ]
      Type datetime:    x10_A1_time      [ stateTopic="sensors/x10/A/1/time" ]
      Type switch:      x10_A2           [ stateTopic="sensors/x10/A/2/state" ]
      Type datetime:    x10_A2_time      [ stateTopic="sensors/x10/A/2/time" ]
      Type switch:      x10_A5           [ stateTopic="sensors/x10/A/5/state" ]
      Type datetime:    x10_A5_time      [ stateTopic="sensors/x10/A/5/time" ]

      ...

and my item includes:

Switch x10_A3 "Motion A Motion" 		                        <lock>	    { channel="mqtt:topic:MY-MQTT:RTL_433:x10_A3", expire="10s, state=CLOSED" }
DateTime x10_A3_time "Motion A Triggered"              <motion>    { channel="mqtt:topic:MY-MQTT:RTL_433:x10_A3_time" }
Switch x10_B1 "Motion B Motion" 		                <lock>	    { channel="mqtt:topic:MY-MQTT:RTL_433:x10_B1", expire="10s, state=CLOSED" }
DateTime x10_B1_time "Motion B Triggered"      <motion>    { channel="mqtt:topic:MY-MQTT:RTL_433:x10_B1_time" }
Switch x10_A4 "Motion C Motion" 		                <lock>	    { channel="mqtt:topic:MY-MQTT:RTL_433:x10_A4", expire="10s, state=CLOSED" }
DateTime x10_A4_time "Motion C Motion Triggered"     <motion>    { channel="mqtt:topic:MY-MQTT:RTL_433:x10_A4_time" }
Switch x10_A1 "Motion D" 		                        <lock>	    { channel="mqtt:topic:MY-MQTT:RTL_433:x10_A1", expire="10s, state=CLOSED" }
DateTime x10_A1_time "Motion D Triggered"              <motion>    { channel="mqtt:topic:MY-MQTT:RTL_433:x10_A1_time" }
Switch x10_A2 "Motion E Motion" 		                    <lock>	    { channel="mqtt:topic:MY-MQTT:RTL_433:x10_A2", expire="10s, state=CLOSED" }
DateTime x10_A2_time "Motion E Motion Triggered"         <motion>    { channel="mqtt:topic:MY-MQTT:RTL_433:x10_A2_time" }
Switch x10_A5 "Motion F Motion" 		            <lock>	    { channel="mqtt:topic:MY-MQTT:RTL_433:x10_A5", expire="10s, state=CLOSED" }
DateTime x10_A5_time "Motion F Motion Triggered"   <motion>    { channel="mqtt:topic:MY-MQTT:RTL_433:x10_A5_time" }

In the UI (PaperUI/Control) the date/time of one unit shows “26/02 - 08:52:00” and the output of the others show “%s”. What am I missing? It appears all of the items/channels are coded in a similar manner.