Basic support for Cotech FT0203/18-3676 Anemometer

Hello :slight_smile:
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.

2 Likes