smi
June 17, 2020, 7:11am
5
So I received the weather station on friday (some delay in the parcel stations …).
Basically, it’s a nice set which is working pretty good but unfortunately, I’m not able to get the sensor values into HA yet.
Currently trying it with a DVB-T stick using https://github.com/james-fry/hassio-addons/tree/master/rtl4332mqtt but log only provides the following:
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] done.
[services.d] starting services
[services.d] done.
/bin/ash: /rtl2mqtt.sh: not found
[cmd] /bin/ash exited 127
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
I’d use rtl_433 from merbanan but I don’t want to use another Raspberry for this as I’m running on hass.io .
Does anyone know if it’s possible to run merbanan/rtl_433 simultaneously with hass.io ?
francisp
(Francis)
June 17, 2020, 10:37am
6
To see if rtl433 works you can install it on Windows. If it doesn’t work, you have no time lost trying to install on your Pi.
smi
June 17, 2020, 1:46pm
7
Ok so I did install it on Windows:
Outdoor temperature / humidty gets recognized as Nexus Temperature / Humidty:
time : 2020-06-17 15:39:34
model : Nexus Temperature/Humidity House Code: 46
Channel : 1 Battery : OK Temperature: 28.20 C Humidity : 45 %
*** signal_start = 24798059, signal_end = 25039346, signal_len = 241287, pulses_found = 445
Iteration 1. t: 87 min: 48 (2) max: 126 (443) delta 386
Iteration 2. t: 87 min: 48 (2) max: 126 (443) delta 0
Pulse coding: Short pulse length 48 - Long pulse length 126
I also get the following when doing rtl_433 -a
but I think that’s from any neighbours since I don’t have such values on the display from the bought set.
time : 2020-06-17 15:39:57
model : Ambient Weather F007TH Thermo-Hygrometer House Code: 140 Channel : 1
Battery : Ok Temperature: 69.4 F Humidity : 46 % Integrity : CRC
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2020-06-17 15:40:02
model : TFA-Twin-Plus-30.3049 Id : 7
Channel : 0 Battery : LOW Temperature: 26.2 C Humidity : 4294967287 %
*** signal_start = 31828269, signal_end = 32082081, signal_len = 253812, pulses_found = 1339
Iteration 1. t: 40 min: 12 (1291) max: 69 (48) delta 1189
Iteration 2. t: 34 min: 11 (1252) max: 58 (87) delta 122
Iteration 3. t: 30 min: 10 (1211) max: 51 (128) delta 50
Iteration 4. t: 28 min: 9 (1178) max: 47 (161) delta 17
Iteration 5. t: 27 min: 9 (1166) max: 46 (173) delta 1
Iteration 6. t: 27 min: 9 (1159) max: 45 (180) delta 1
Iteration 7. t: 27 min: 9 (1159) max: 45 (180) delta 0
Pulse coding: Short pulse length 9 - Long pulse length 45
For rain, I just get:
*** signal_start = 16426043, signal_end = 16674419, signal_len = 248376, pulses_found = 482
Iteration 1. t: 92 min: 53 (2) max: 131 (480) delta 173
Iteration 2. t: 92 min: 53 (2) max: 131 (480) delta 0
Pulse coding: Short pulse length 53 - Long pulse length 131
Short distance: 248, long distance: 501, packet distance: 1006
p_limit: 92
bitbuffer:: Number of rows: 14
[00] { 1} 00 : 0
[01] {37} ff ff ff ff f8 : 11111111 11111111 11111111 11111111 11111
[02] {37} ff ff ff ff f8 : 11111111 11111111 11111111 11111111 11111
[03] {37} ff ff ff ff f8 : 11111111 11111111 11111111 11111111 11111
[04] {37} ff ff ff ff f8 : 11111111 11111111 11111111 11111111 11111
[05] {37} ff ff ff ff f8 : 11111111 11111111 11111111 11111111 11111
[06] {37} ff ff ff ff f8 : 11111111 11111111 11111111 11111111 11111
[07] {37} ff ff ff ff f8 : 11111111 11111111 11111111 11111111 11111
[08] {37} ff ff ff ff f8 : 11111111 11111111 11111111 11111111 11111
[09] {37} ff ff ff ff f8 : 11111111 11111111 11111111 11111111 11111
[10] {37} ff ff ff ff f8 : 11111111 11111111 11111111 11111111 11111
[11] {37} ff ff ff ff f8 : 11111111 11111111 11111111 11111111 11111
[12] {37} ff ff ff ff f8 : 11111111 11111111 11111111 11111111 11111
[13] {37} ff ff ff ff f0 : 11111111 11111111 11111111 11111111 11110
I don’t know if that’s useful at all.
smi
June 17, 2020, 1:51pm
8
And here is a run with a bit more water (and recognized rain values on the display):
*** signal_start = 3663971, signal_end = 4039610, signal_len = 375639, pulses_found = 821
Iteration 1. t: 165 min: 129 (735) max: 202 (86) delta 11057
Iteration 2. t: 169 min: 129 (747) max: 210 (74) delta 64
Iteration 3. t: 170 min: 129 (749) max: 211 (72) delta 1
Iteration 4. t: 170 min: 129 (751) max: 212 (70) delta 1
Iteration 5. t: 170 min: 129 (751) max: 212 (70) delta 0
Distance coding: Pulse length 170
Short distance: 201, long distance: 483, packet distance: 990
p_limit: 170
bitbuffer:: Number of rows: 15
[00] { 0} :
[01] {36} aa b0 00 07 c0 : 10101010 10110000 00000000 00000111 1100
[02] {36} aa b0 00 07 c0 : 10101010 10110000 00000000 00000111 1100
[03] {36} aa b0 00 07 c0 : 10101010 10110000 00000000 00000111 1100
[04] {36} aa b0 00 07 c0 : 10101010 10110000 00000000 00000111 1100
[05] {36} aa b0 00 07 c0 : 10101010 10110000 00000000 00000111 1100
[06] {36} aa b0 00 07 c0 : 10101010 10110000 00000000 00000111 1100
[07] {36} aa b0 00 07 c0 : 10101010 10110000 00000000 00000111 1100
[08] {336} aa b0 00 00 10 05 08 00 00 00 00 00 21 00 2c 00 00 00 10 28 04 20 00 00 00 00 29 08 00 00 00 40 10 01 20 00 00 01 c0 11 ff 2d
[09] {36} 2e 81 17 f2 d0 : 00101110 10000001 00010111 11110010 1101
[10] {36} 2e 81 17 f2 d0 : 00101110 10000001 00010111 11110010 1101
[11] {36} 2e 81 17 f2 d0 : 00101110 10000001 00010111 11110010 1101
[12] {36} 2e 81 17 f2 d0 : 00101110 10000001 00010111 11110010 1101
[13] {36} 2e 81 17 f2 d0 : 00101110 10000001 00010111 11110010 1101
[14] {36} 2e 81 17 f2 d0 : 00101110 10000001 00010111 11110010 1101
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2020-06-17 15:50:34
model : Ambient Weather F007TH Thermo-Hygrometer House Code: 140 Channel : 1
Battery : Ok Temperature: 69.4 F Humidity : 46 % Integrity : CRC
*** signal_start = 11867686, signal_end = 11918713, signal_len = 51027, pulses_found = 4
Iteration 1. t: 3 min: 3 (1) max: 4 (3) delta 1
Iteration 2. t: 8 min: 0 (0) max: 17 (4) delta 178
Iteration 3. t: 8 min: 17 (4) max: 0 (0) delta 578
Iteration 4. t: 8 min: 17 (4) max: 0 (0) delta 0
Distance coding: Pulse length 8
Short distance: 3287, long distance: 3287, packet distance: 13861
p_limit: 8
bitbuffer:: Number of rows: 3
[00] { 0} :
[01] { 0} :
[02] { 0} :
Signal caught, exiting!
Ooops, sorry, totally forgot this topic.
I also ordered one and got it working with rtl_433 on a raspberry.
I’m running rtl_433 wit the following command.
/usr/local/bin/rtl_433 -F json -M newmodel -R 08 -R 19 -R 52 -R 129 | /usr/bin/mosquitto_pub -h ha-vm -t home/rtl_433 -l
The -R 19
is the protocol for the temp/humidity sensor which works out of the box.
For the rain gauge i had to enable the blacklisted -R 129
protocol.
Here’s what i get in the mqtt topic for the gauge.
20200617 20:38:17 - home/rtl_433_demux/Eurochron-TH_30 {"time" : "2020-06-17 20:38:16", "model" : "Eurochron-TH", "id" : 30, "battery_ok" : 0, "temperature_C" : 3.200, "humidity" : 0, "button" : 1}
The `temperature_C’ value needs to be multiplied with 3 and then shows exactly what’s on the display of the station.
It’s a bit tricky because the gauge resets this value from time to time, but with a few template sensors and automations, it works.
EDIT: I think the outdoor sensor alone is worth the money. The first one I saw with screws and rubber seal for the battery cover.
I have it near my Bresser-3CH sensor and the values are almost the same.
I’ve ordered a second one.
2 Likes
Here’s the whole package if anyone is interested.
First, i’m using Taras (@123 ) MQTT Demultiplexer for the mqtt topics. See automation below.
I want to have daily values, so i save the total value from the gauge to an input_number at midnight and subtract it from the raw data of the gauge.
Also save the value if the gauge resets it’s value to 0.0, i found no logic when this happens.
### Sensors
#################################################################
sensor:
# RTL 433 MQTT Digoo Temperature with the last timestamp an battery as attributes
- platform: mqtt
state_topic: "home/rtl_433_demux/Nexus-TH_50"
name: "Outside Temp"
unit_of_measurement: "°C"
value_template: >
{{ value_json.temperature_C | round(1) }}
json_attributes_topic: "home/rtl_433_demux/Nexus-TH_50"
json_attributes_template: "{{ {'time': value_json.time, 'batt': 'ok' if value_json.battery_ok == 1 else '?'} | tojson }}"
# RTL 433 MQTT Digoo Humidity
- platform: mqtt
state_topic: "home/rtl_433_demux/Nexus-TH_50"
name: "Outside Humi"
unit_of_measurement: "%"
value_template: >
{{ value_json.humidity }}
# RTL 433 MQTT Digoo Rain Gauge
- platform: mqtt
state_topic: "home/rtl_433_demux/Eurochron-TH_30"
name: "Digoo Rain Total"
unit_of_measurement: "mm"
value_template: >
{{ value_json.temperature_C | round(1) }}
# Template sensor for the rain gauge
- platform: template
sensors:
digoo_rain_template:
friendly_name: "Rain"
value_template: >
{% if not is_state('sensor.digoo_rain_total', 'unknown') %}
{% set rain = ((states('sensor.digoo_rain_total') | float - states('input_number.digoo_rain_total') | float) | round(1) * 3) | round(1)%}
{% if rain >= 0 %}
{{ rain }}
{% else %}
0.0
{% endif %}
{% else %}
0.0
{% endif %}
unit_of_measurement: "l/㎡"
icon_template: >
{% if states('sensor.digoo_rain_template') | float > 0 %}
mdi:weather-pouring
{% else %}
mdi:weather-cloudy
{% endif %}
### Automations
#################################################################
automation:
# RTL 433 MQTT Demultiplexer
- alias: 'rtl_433 demultiplexer'
initial_state: true
trigger:
platform: mqtt
topic: home/rtl_433
action:
service: mqtt.publish
data_template:
topic: "{{ 'home/rtl_433_demux/' + trigger.payload_json.model|string + '_' + trigger.payload_json.id|string }}"
payload: "{{trigger.payload}}"
retain: true
# Reset sensor at midnight
- alias: digoo_rain_total_set
initial_state: true
trigger:
- platform: time
at: '23:59:57'
action:
- service: input_number.set_value
data_template:
entity_id: input_number.digoo_rain_total
value: "{{ states('sensor.digoo_rain_total') }}"
# Reset sensor when gauge resets
- alias: digoo_rain_total_reset
initial_state: true
trigger:
- platform: state
entity_id: sensor.digoo_rain_total
to: '0.0'
action:
- service: input_number.set_value
data_template:
entity_id: input_number.digoo_rain_total
value: "{{ states('sensor.digoo_rain_total') }}"
### Input Number
#################################################################
input_number:
digoo_rain_total:
mode: box
min: 0.0
max: 999.9
step: 0.1
2 Likes
smi
June 18, 2020, 9:58am
11
Thx @VDRainer
Got it working (getting MQTT data) without another raspberry by using https://github.com/james-fry/hassio-addons/tree/master/rtl4332mqtt with the protocols provided by @VDRainer .
My config is:
mqtt_host: 192.168.0.ZZZ
mqtt_user: YYYYY
mqtt_password: XXXX
mqtt_topic: weather/station
protocol: 129
frequency: 433920000
gain: 0
frequency_offset: 0
Also, to be able to find the correct MQTT topic (it’s not just what you set in the config), you need to enable mqtt logging by uncommenting line 183 in rtl2mqtt.sh
Now I see that the correct topic is weather/station/Eurochron-TH/170
BTW: I downloaded rtl2mqtt.sh via wget to /config/rtl4332mqtt as I had problems with starting the addon first.
@VDRainer Any idea how I can set both, protocol 19 and 129, in config?
1 Like
No clue how the addon works, but if i look at the rtl2mqtt.sh, i see the rtl_433 command.
/usr/local/bin/rtl_433 -F json -R $PROTOCOL ...
Maybe for testing change it to
/usr/local/bin/rtl_433 -F json -R 19 -R $PROTOCOL ...
and ask the author of the addon howto add multiple protocols in the addon config.
1 Like
smi
June 19, 2020, 3:53pm
13
Yeah that worked, thx.
But I’m getting negative values for the rain gauge like -20.100 in weather/station/Eurochron-TH/46 and high numbers like 38.400 in weather/station/Eurochron-TH/170
Do you also get two seperate IDs from the Rain Gauge?
To which timeframe (total/1h/24h/week) do you compare to?
You’re right, now that you say it, there are multiple of them.
home/rtl_433_demux/Eurochron-TH_225 {"time" : "2020-06-17 19:58:24", "model" : "Eurochron-TH", "id" : 225, "battery_ok" : 0, "temperature_C" : -20.000, "humidity" : 255, "button" : 0}
home/rtl_433_demux/Eurochron-TH_135 {"time" : "2020-06-19 07:12:25", "model" : "Eurochron-TH", "id" : 135, "battery_ok" : 0, "temperature_C" : -17.500, "humidity" : 138, "button" : 0}
home/rtl_433_demux/Eurochron-TH_50 {"time" : "2020-06-19 20:58:25", "model" : "Eurochron-TH", "id" : 50, "battery_ok" : 0, "temperature_C" : -19.800, "humidity" : 185, "button" : 1}
home/rtl_433_demux/Eurochron-TH_30 {"time" : "2020-06-19 21:02:23", "model" : "Eurochron-TH", "id" : 30, "battery_ok" : 0, "temperature_C" : 3.700, "humidity" : 0, "button" : 1}
The last one shows the values that reflect the display.
I compare them to the weekly display.
Could it be that there’s a backchannel from the station to tha gauge?
Did the neighbor also buy one?
klogg
(Klogg)
June 22, 2020, 10:59pm
15
So, I just got one of these and am just playing with it. The data is confusing…
The Nexus-TH
is straightforward and gives the correct temp and humidity but what exactly is the Eurochron_TH
telling me?
As noted already there seems to be two but where is the rainfall info?
time : 2020-06-22 23:49:35
model : Nexus-TH House Code: 71
Channel : 1 Battery : 1 Temperature: 17.20 C Humidity : 62 %
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2020-06-22 23:49:35
model : Eurochron-TH id : 71
Battery : 0 Temperature: -19.4 C Humidity : 172 Button : 0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2020-06-22 23:50:32
model : Eurochron-TH id : 71
Battery : 0 Temperature: -19.4 C Humidity : 172 Button : 0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2020-06-22 23:50:54
model : Eurochron-TH id : 10
Battery : 0 Temperature: 2.2 C Humidity : 0 Button : 1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2020-06-22 23:51:29
model : Eurochron-TH id : 71
Battery : 0 Temperature: -19.4 C Humidity : 172 Button : 0
smi
June 23, 2020, 4:07am
16
Should be Eurochron-TH temperature_c with ID 10 multiplied with 3. (IDs differ per unit)
Pls compare that to the weekly value on the included screen.
klogg
(Klogg)
June 23, 2020, 8:11am
17
This morning I have this:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2020-06-23 08:52:02
model : Nexus-TH House Code: 71
Channel : 1 Battery : 1 Temperature: 25.50 C Humidity : 36 %
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2020-06-23 08:52:02
model : Eurochron-TH id : 71
Battery : 0 Temperature: -22.0 C Humidity : 255 Button : 0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2020-06-23 08:52:03
model : Eurochron-TH id : 10
Battery : 0 Temperature: 2.2 C Humidity : 0 Button : 1
I only have small amount of data so I am guessing here but,
Is it possible that:
Eurochron-TH id: 71
- Could the humidity figure be the Nexus-TH
Temperature x 10?
Eurochron-TH id: 10
- Could the temperature figure be the Eurochron-TH id: 71
Temperature x -10 (to one decimal place). But what either of those temperature figures actually relate to I have no idea.
And,
Could the two button figures indicate which way the tip bucket is sitting?
And, I’m wondering/hoping the Eurochron-TH id: 10
Humidity figure might be a measure of rainfall. We have had none here for days (but I do have a reading for 2 days ago of 5.7mm from when I was tipping it by hand to test it).
I have a couple of confirming instances of the above data but as I said not enough to really be sure.
Here is another one:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2020-06-23 09:08:11
model : Nexus-TH House Code: 71
Channel : 1 Battery : 1 Temperature: 24.80 C Humidity : 38 %
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2020-06-23 09:08:11
model : Eurochron-TH id : 71
Battery : 0 Temperature: -21.8 C Humidity : 248 Button : 0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2020-06-23 09:09:03
model : Eurochron-TH id : 10
Battery : 0 Temperature: 2.2 C Humidity : 0 Button : 1
smi
June 25, 2020, 9:25am
18
Well the Nexus-TH does not have to be calcluated to provide temperature and humidity data.
Both are transmitted as they are in real.
No idea about Eurochron-TH 71 but Eurochron-TH 10 temperature *3 = amount of rainfall.
You can reset the sensor by removing the batteries for about 30 seconds and then putting them in again.
To compare them to the displays data, also reset the rainfall data of the display by long-pressing the rain-buttton.
klogg
(Klogg)
June 25, 2020, 2:01pm
19
Yes, the Nexus transmits actual temp and humidity.
But your suggestion of the TH-10 temperature * 3 being rainfall doesn’t tally with my readings.
I have had no rain for the last three days and four days ago I have a reading of 5.6 because I was playing with the tip bucket.
3 * TH10 Temp = 6.6
??
smi
June 25, 2020, 5:57pm
20
Try resetting both, the sensor and the display.
I also started to receive the correct values (when multiplied *3) after resetting.
klogg
(Klogg)
June 29, 2020, 10:42am
21
I’m definitely not getting this x3 multiplier.
But I just thought, are you both (@VDRainer , @smi ) using Farenheit? That could explain it, I’m using Centigrade?
I think this has nothing to do with the units.
It’s just a value in the mqtt payload and rtl_433 shows it as ‘temperature_C’.
If i reset the gauge and the station, the value_json shows "temperature_C" : 0.0
and the station shows 0.0,
If i tip the gauge one time, the value_json shows "temperature_C" : 0.1
, and the station shows 0.3, which is the least resolution of the gauge.
EDIT: Maybe the confusion comes from the display values of the station. I think it resets its value one week after it was turned on, no matter which day of the week it is.
klogg
(Klogg)
June 29, 2020, 1:51pm
23
Ahh… ok, so the confusion came from the fact that I was not realising that the temperature_C
figure was the weekly total.
It all makes sense now.
Thank you!
EDIT
I should have read more carefully…
1 Like
I think I will order some