RTL_433 to MQTT with Acurite Weather Sensors and Itron Water Meter

Do the Acurite sensors like the one shown below only broadcast if the battery is ok (1) or bad (0).
If so, what is the approximate %value of the battery when it flags as bad?

When I tried to add the message_type sensors for my Acurite-5n1 in the “- platform: mqtt” format, Home Assistant said:

“It’s not possible to configure mqtt sensor by adding platform: mqtt to the sensor configuration. Please check the documentation for more information on how to set up this integration.”

Here is what my working configuration.yaml looks like:

mqtt:
  sensor:
    - name: Local Temperature
      device_class: temperature
      unit_of_measurement: "°F"
      value_template: "{{ value_json.temperature_F | round(1) }}"
      state_topic: rtl_433/Acurite-5n1/1245/msg56
      json_attributes_topic: rtl_433/Acurite-5n1/1245/msg56
    - name: Local Humidity
      device_class: humidity
      value_template: "{{ value_json.humidity }}"
      state_topic: rtl_433/Acurite-5n1/1245/msg56
    - name: Local Wind
      unit_of_measurement: "mph"
      value_template: "{{ (value_json.wind_avg_km_h  | float / 1.609) | round(0) }}"
      state_topic: rtl_433/Acurite-5n1/1245/msg49
      json_attributes_topic: rtl_433/Acurite-5n1/1245/msg49

My Version info:
Core 2023.11.3
Supervisor 2023.11.6
Operating System 11.1
Frontend 20231030.2

You can include your code starting with the sensor: line and everything below into a file called mqtt.yaml that is saved in the same location as your configuration.yaml file. (remember to remove the first indent from all lines.)

Then in your configuration.yaml file, simply include this line:

mqtt: !include mqtt.yaml
1 Like

Is anyone here hitting a wall when it comes to the number of sensors? I have a mix of AcuRite 06044M and 06002M devices and when I recently added about 4-5 more I noticed some were not updating and needed to restart RTL to get them to read again.

Right now I have 15 devices and my thought was to switch the devices on each floor, two levels with a basement, to the same ID to see if that resolves the issues.

That sounds very strange. I only have maybe 7 or 8 devices active, but my two rtl433 instances have seen 693 devices between them. (I have one inside the house, and one outside near my pool on a Pi zero). I’ve never noticed any of my own gear not updating, and it’s been reliable for well over a year.

I’ve really only had three issues in the time I’ve been using this: One was reliably reading a temperature sensor in my pool due to a weak signal – hence the second rtl433 instance outside. The others are both with some very cheap door contacts from aliexpress: two had the same ID, making one worthless, and another (unfortunately not one of the duplicate id ones) randomly stopped working with no obvious cause.

I’d look at a couple things:

  • Do any of your sensors have the same ID? Perhaps one is just being immediately overwritten with updates from the other
  • Watch the raw rtl433 output or log – it shows the raw messages being read.
    • Depending on the result, you can subscribe to mqtt with eg mosquitto_sub -h your_mqtt_host -t rtl_433/# and this will help isolate if there’s a problem on mqtt vs homeassistant side

So on the dual ID issue no… I keep records of each device as I on-board them and record the ID and the location it housed.
I do log my rtl_433 processes to their own log files by frequencies and I checked the IDs of the one having issues at the time and don’t see them showing up in the broadcasts which means of course they aren’t going to MQTT.

The only way I can “kick” it alive in some cases is restarting the process but I had this configuration for 6 months before I added the new ones so the only thing I can think about is capacity issues. The node running my rtl_433 process is a mini PC with like an N100 processor and plenty of ram, it was my old HA node to be honest, so I know resources aren’t an issue.

I did make a minor tweak this morning with the following changes:

#pulse_detect autolevel
pulse_detect classic

And the other day turned off any unused protocols.

I’ve also setup a cron to run every 2 hours to bounce the rtl_433 process to just to see if that helps.