Hello
A while ago, I started bashing my head against getting this anemometer picked up in hass using rtl_433.
I’m pleased to say that I now have working values coming out of it.
Encoded in various ways, this anemometer reports wind speed, gust speed, battery status, and bicardinal direction.
My configuration gives homeassistant:
- Average wind speed in m/s
- Gust wind speed in m/s
- Bi-cardinal (NN, NW, WW, etc.) wind direction.
- Degree-based wind direction
- Battery OK status
There are two small caveats:
I haven’t added true rtl_433 support, so hass is still doing a little bit of decoding at the sensor config level.
And I wasn’t able to observe the low battery state (thanks solar panel), so it’s a best guess.
Flex decoder (add to rtl_433 config):
decoder n=Cotech FT0203/18-3676 Anemometer,m=OOK_MC_ZEROBIT,s=504,l=0,r=972,bits=79,get=id:@0:{24}:%x,get=battery_ok:@24:{4}:[12:1 0:0],get=wind_avg_m_s:@31:{8}:%i,get=gust_speed_m_s:@39:{8}:%i,get=wind_dir_deg:@47:{8}:[0:0 45:45 90:90 135:135 180:180 225:225 14:270 59:315]
And the sensor config (goes in configuration.yaml)
mqtt:
- sensor:
name: "Garden Anemometer_dir"
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Cotech_FT0203_18-3676_Anemometer/rows/0/wind_dir_deg"
unit_of_measurement: "°"
unique_id: "Cotech_FT0203_18-3676_Anemometer_dir"
- sensor:
name: "Garden Anemometer_bic"
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Cotech_FT0203_18-3676_Anemometer/rows/0/wind_dir_deg"
unique_id: "Cotech_FT0203_18-3676_Anemometer_bic"
value_template: >-
{% set mapper = {
'0' : 'North',
'45' : 'North-East',
'90' : 'East',
'135' : 'South-East',
'180' : 'South',
'225' : 'South-West',
'270' : 'West',
'315' : 'North-West' } %}
{% set state = value %}
{{ mapper[state] if state in mapper else 'Unknown' }}
- sensor:
name: "Garden Anemometer_wind_avg"
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Cotech_FT0203_18-3676_Anemometer/rows/0/wind_avg_m_s"
unit_of_measurement: "m/s"
unique_id: "Cotech_FT0203_18-3676_Anemometer_wind_avg"
device_class: "wind_speed"
value_template: '{{ value | multiply(0.1) | float }}'
- sensor:
name: "Garden Anemometer_gust"
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Cotech_FT0203_18-3676_Anemometer/rows/0/gust_speed_m_s"
unit_of_measurement: "m/s"
unique_id: "Cotech_FT0203_18-3676_Anemometer_gust"
device_class: "wind_speed"
value_template: '{{ value | multiply(0.1) | float }}'
- sensor:
name: "Garden Anemometer_battery"
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Cotech_FT0203_18-3676_Anemometer/rows/0/battery_ok"
unit_of_measurement: "%"
unique_id: "Cotech_FT0203_18-3676_Anemometer_battery"
device_class: "battery"
value_template: '{{ value | multiply(100) | float }}'
I’d like to give a thankyou to zuckschwerdt (Christian W. Zuckschwerdt) · GitHub, they gave me some very helpful advice to get this working. The issue where I (hopefully!) will get around to adding true rtl_433 support eventually is Add support: Cotech FT0203/18-3676 Anemometer · Issue #2569 · merbanan/rtl_433 · GitHub
And if anybody could assist me in bundling the sensors into a device (if that’s possible), I’d greatly appreciate it.