software: rtl_433



local links

Newsky TV28T, Raspberry Pi3 B+,

back to home automation page.


2023-02-01: after a power outage today, I had to restart ther rtl433 machine, it wouldn't reslove names properly before the restart.

2022-02-02: Home Assistant got upgraded to version 2022.2.0.

2022-02-02: this evening the "Bresser-3CH-1-204" sensor showed not reporting data to Home Assistant for 10 hours. Restarting rtl433 had no effect, restarting the rtl_433_mqtt_hass.py script had no effect. The sensor itself blinked the LED from time to time. Restarted Home Assistant - that doesn't help either. Hm.

2021-10-15: sensors - I enabled protocol 52 (-R 52) and put batteries (AAA x 2) in the Kjell / Rubicson sensor 49105. Had to restart it (take out / put in batteries) but then it shows up as "Bresser-3CH-1-204". Temperature shows up as Bresser-3CH-1-204-F, but still looks like the value is in Celsius to me. Perhaps the discovery script implements conversion in the value template? No, in the template it reports in F (Fahrenheit) and the value template is just "{{ value | float }}". So Home Assistant converts it to Celsius itself then?

2021-10-14: apt - install requirement for rtl433_mqtt_hass.py script

tingo@rtl433:~ $ sudo apt install python3-paho-mqtt
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
0 upgraded, 1 newly installed, 0 to remove and 44 not upgraded.
Need to get 44.9 kB of archives.
After this operation, 245 kB of additional disk space will be used.
Preparing to unpack .../python3-paho-mqtt_1.4.0-1_all.deb ...
Unpacking python3-paho-mqtt (1.4.0-1) ...
Setting up python3-paho-mqtt (1.4.0-1) ...

test the script

tingo@rtl433:~ $ python3 work/rtl_433/examples/rtl_433_mqtt_hass.py -h
usage: rtl_433_mqtt_hass.py [-h] [-d] [-q] [-u USER] [-P PASSWORD] [-H HOST]
                            [-p PORT] [-r] [-f] [-R RTL_TOPIC]
                            [-D DISCOVERY_PREFIX] [-i DISCOVERY_INTERVAL]
optional arguments:
  -h, --help            show this help message and exit
  -d, --debug
  -q, --quiet
  -u USER, --user USER  MQTT username
  -P PASSWORD, --password PASSWORD
                        MQTT password
  -H HOST, --host HOST  MQTT hostname to connect to (default:
  -p PORT, --port PORT  MQTT port (default: 1883)
  -r, --retain
  -f, --force_update    Append 'force_update = true' to all configs.
  -R RTL_TOPIC, --rtl-topic RTL_TOPIC
                        rtl_433 MQTT event topic to subscribe to (default:
                        Home Assistant MQTT topic prefix (default:
                        Interval to republish config topics in seconds
                        (default: 600)

if I run the script as

$ python3 ~/work/rtl_433/examples/rtl_433_mqtt_hass.py -u homeassistant -P password -H bpi.kg4.no -q

then the sensors quickly show up in Home Assistant, on condition that rtl_433 runs like this

rtl_433 -R 3 -R 18 -R 19 - R 33 -F "mqtt://bpi.kg4.no:1883/user=homeassistant,pass=password,retain=0"


2021-10-13: testing to see if I can pick up the tellstick sensors with rtl433. Current tellstick sensors are

tingo@kg-bpi:~$ head -5 home-assistant-sensors.txt 
 11 kitchen (from Clas Ohlson (36-2953), it says "W. H. Mandolyn International" and "Typ.: WT540")
 21 freezer (from Clas Ohlson (36-2953), it says "W. H. Mandolyn International" and "Typ.: WT540")
186 fridge (Viking Remote Thermo Sensor (340661) - Viking art nr: 02811)
159 kjellerbod (old id: 206)

results: '-R 18' gets the 159 and 186 sensors as "Fineoffset-WH2", but no battery info. Additional info from rtl433 is "mic" : "CRC".

'-R 33' shows the freezer sensor (21 on tellstick) as WT450-TH id: 2 channel: 1 and provides "battery_ok" value. There is a WT450-TH id:1 channel:1, I think that is the sensor with tellstick id 11, because it reports humidity as 0 (zero) which this sensor does. "battery_ok" on that sensor is zero, let me change batteries (AA x 2) - yep, now "battery_ok" is "1".

2021-02-11: with rebuilt SD card image, time to document the commands

tingo@rtl433:~ $ cat ~/x-cmds
rtl_433 -R 3 -R 19 -F json -M utc | mosquitto_pub -V mqttv311 -h bpi -u homeassistant -P password -t home/rtl_433 -l

mosquitto_sub -V mqttv311 -h bpi -u homeassistant -P password -t home/rtl_433


2021-01-01: the Kjell / Rubicson sensor 49105, responds like this via rtl_433 with protocol -R 52:

{"time" : "2021-01-01 16:59:27", "model" : "Bresser-3CH", "id" : 74, "channel" : 3, "battery_ok" : 1, "temperature_F" : 77.700, "humidity" : 61, "mic" : "CHECKSUM"}

temperature in F(ahrenheit) doesn't seem right. But the channel changes when I move the switch 1-2-3. I tested through the list of temperature sensors; no other protocols worked for this sensor. Checked the source - Fahrenheit comes from the driver.

2020-12-30: there was a sale on Kjell, so I bought an extra temperature / humidity sensor (49105) Rubicson Extra sensor for weather station (49104) for the price of NOK 60.- it says this is an outdoor sensor. Runs on 2 x AAA batteries, has a switch (1-2-3) behind the battery compartment cover to select channel 1, 2 or 3, so three sensors can be connected to the same weather station. Sensor runs on 433 MHz.

2020-04-10: with the new rtl_433, the reports are a bit different:

{"time" : "2020-04-10 16:42:24", "model" : "Prologue-TH", "subtype" : 9, "id" : 82, "channel" : 2, "battery_ok" : 0, "temperature_C" : 17.400, "button" : 0}
{"time" : "2020-04-10 16:42:27", "model" : "Prologue-TH", "subtype" : 9, "id" : 86, "channel" : 1, "battery_ok" : 0, "temperature_C" : 22.300, "button" : 0}
{"time" : "2020-04-10 16:43:01", "model" : "Nexus-TH", "id" : 217, "channel" : 1, "battery_ok" : 1, "temperature_C" : 23.800, "humidity" : 12}
{"time" : "2020-04-10 16:43:02", "model" : "Nexus-TH", "id" : 112, "channel" : 1, "battery_ok" : 1, "temperature_C" : 21.100, "humidity" : 25}
{"time" : "2020-04-10 16:43:07", "model" : "Nexus-TH", "id" : 115, "channel" : 2, "battery_ok" : 1, "temperature_C" : 9.000, "humidity" : 23}

still, the prologue sensors reports a different value for the battery_ok than the other sensors.

2020-02-18: sensor - I have (again, from Clas Ohlson) a couple of 36-4441 Model TW003, this sensor has the sensor on a wire, channel button (1, 2, 3) inside the battery cover (2 x AAA batteries) a LED and a reset button on front. This thread says 'Nexus TW003 (Clas Ohlson 36-4441) shows up as "Rubicson/IW008T/TX95"'. Protocol 2 in rtl_433 is named "Rubicson ..". Test - after putting in batteries and pressing the reset button on the front, I get

{"time" : "2020-02-18 22:01:58", "model" : "Rubicson Temperature Sensor", "id" : 76, "channel" : 1, "battery" : "OK", "temperature_C" : 26.900, "mic" : "CRC"}

so that is cool. Hmm, it looks like it doesn't transmit very often. Interesting, it looks like it transits on the Nexus protocol:

{"time" : "2020-02-18 22:24:46", "model" : "Nexus Temperature/Humidity", "id" : 76, "battery" : "OK", "channel" : 1, "temperature_C" : 21.000, "humidity" : 37}

(if I pull the battery, this sensor disappears) put batteries back again:

{"time" : "2020-02-18 22:28:18", "model" : "Nexus Temperature/Humidity", "id" : 112, "battery" : "OK", "channel" : 1, "temperature_C" : 24.400, "humidity" : 37}

yes, that is the sensor. So, this works with Nexus, protocol 19 already. And faster updates too. Good! I wonder if humidity works, or if it is going to be static.

2020-02-18: rtl_433 - current collector / publish setup is now:

$ rtl_433 -R 3 -R 19 -F json -U | mosquitto_pub -V mqttv311 -h bpi -u homeassistant -P password -t home/rtl_433 -l

2020-02-18: sensor - I have a couple of Prologue model YT6981 EX sensors which looks like I've bought them from Clas Ohlson. The sensors are 36-4744 (extra temperature sensor for 36-4741). The sensor used 2 X AAA batteries, the battery lid is screwed on. The sensor has a channel button (1,2 3 - max three sensors) under the battery lid, it transmits in 35 second intervals, and it has a transmit button (transmits latest reading). There is a prologue protocol with number 3, perhaps it will detect this sensor? Easily tested , I added -R 3 to my rtl_433 command line and put batteries into the sensor:

{"time" : "2020-02-18 20:18:22", "model" : "Prologue sensor", "id" : 9, "rid" : 86, "channel" : 1, "battery" : "LOW", "button" : 0, "temperature_C" : 25.300, "humidity" : 204}

that is what the mqtt client sees. No idea why it complains about the batteries, they are supposed to be fresh. Putting batteries in another sensor, I see

{"time" : "2020-02-18 21:15:20", "model" : "Prologue sensor", "id" : 9, "rid" : 82, "channel" : 2, "battery" : "LOW", "button" : 0, "temperature_C" : 27.100, "humidity" : 204}

(I changed the switch to channel 2 - easier to tell the two sensors apart) Funny - this sensor also complains about batteries. Hmm, it seems that I want the "rid" attribute instead of the "id" one,

2019-07-02: I should document the current setup for collecting and publishing sensor data with rtl_433

$ rtl_433 -R 19 -F json -U | mosquitto_pub -V mqttv311 -h bpi -u homeassistant -P password -t home/rtl_433 -l

to check with a client you can do

$ mosquitto_sub -V mqttv311 -h bpi -u homeassistant -P password -t home/rtl_433


2018-04-08: I created this page.

2018-04-07: sensor - the 36-6726 sensors from Clas Ohlson uses device protocol 19 from rtl_433:

    [19]  Nexus Temperature & Humidity Sensor


2018-04-07: I installed latest Raspbian on a Raspberry Pi3B+, and installed rtl_433 on it, connected up a DVB-T dongle and got rtl_433 running.

2018-04-05: at a Clas Ohlson store, I bought 2 x 36-6726 ekstra temperaturgiver/hygrometer for NOK 79.90 a piece. The sensor uses 2 x AAA batteries, and has a switch to select channel 1-3.