rtl_433
software: rtl_433
Links
local links
Newsky TV28T, Raspberry Pi3 B+,
back to home automation page.
History
2024-01-11: I upgraded rtl433 source to latest, built and restarted it. Now Home Assistant doesn't complain about entity names anymore.
2023-02-01: after a power outage today, I had to restart the rtl433 machine, it wouldn't resolve 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: python3-paho-mqtt 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: 127.0.0.1) -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: rtl_433/+/events) -D DISCOVERY_PREFIX, --discovery-prefix DISCOVERY_PREFIX Home Assistant MQTT topic prefix (default: homeassistant) -i DISCOVERY_INTERVAL, --interval DISCOVERY_INTERVAL 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"
nice.
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 tellstick 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
ok
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
ok
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
ok.
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.