Get your smart electric, water and gas meter scm readings into home assistant with a RTL-SDR

This resolved the velow errors for me!
amridm2mqtt.service: Failed to execute command: Permission denied
amridm2mqtt.service: Failed at step EXEC spawning /opt/amridm2mqtt/amrscm2mqtt: Permission denied

1 Like

I saw some people noting about needing multiple frequencies (433/900). I donā€™t have it in front of me, but rtl_433 has parameter to hop between different frequencies on a time interval. Should be in the docs.

Yes, all the AMR RTL stuff is done on a Raspberry Pi (separately from my HA install) it communicates with HA via MQTT. I used a Raspberry Pi 3b+. The 4 would be a better choice if youā€™re purchasing a new device as the rtlamr process is fairly heavy, consuming 25%-50% of the CPU on the 3b+.

Also note that something finally freed up and with the very latest HA 2021.10.6, my gas meter defined exactly as above is now showing up in HA energy configuration page.

The original author of the RTL-SDR AMR project has a form to submit working/non-working meters.

So if your meter isnā€™t already in the list, and you can later confirm that it does or doesnā€™t work, you can update the form he linked.

See: https://github.com/bemasher/rtlamr/blob/3965b5c5239c76bbc813b82d27fcb2c6b187a657/meters.md

I only see the compatible meters, not any incompatible ones. So with a meter that seems to be a new model, how do you know if it is confirmed to not work, or a meter that no one has tried?

youā€™ll basically need to try it, they have a few on the github with examples but the list is not exhaustive. whoā€™s your utility? Xcel? (Iā€™m also in CO) The numeric code shown right above the display would contain the ID that you could look for while running RTLAMR. My Itron electric meter posts the usage as an SCM+ message, whereas my Itron gas meter is an SCM message. Iā€™m using a docker RTLAMR2MQTT Add-on running in HA but otherwise similar. GitHub - allangood/rtlamr2mqtt: Docker container to send rtlamr readings to a mqtt broker
My problem right now is the electric meter doesnā€™t seem to work in the energy dashboard, and the gas reading is in ccf but the energy dashboard says it has to be m3 (cubic meters)

1 Like

I got my gas meter working. I set the units to ftĀ³ and it seems to have figured it out.

I havenā€™t figured out the new electricity meter. I suspect the new smart ones are making a wifi mesh network instead of broadcasting scm+. My only hope is that they are broadcasting the same SCM+ as the older meter, which is why there isnā€™t a matching ID on the meter.

This is my config for the gas meter:

meters:
  - id: 12345678
    protocol: scm
    name: gas_meter
    format: '#####.##'
    unit_of_measurement: ftĀ³
    icon: mdi:gas_canister

I bought a usb device and spun up an Ubuntu VM to try thisā€¦ unfortunately THEN i looked at my meter and saw it was a Zigbee meter with Oncor.

That said, should I be seeing anything on the mqtt?

I have the same model gas meter, 100G DLS. I let rtlamr run for several minutes and it didnā€™t find my gas meter. The specs say it uses SCM+, so that should work. The specs also note it can be equipped with encryption so maybe thatā€™s the problem.

Hi ā€“ Iā€™m in CO as well. Recently had my previously working iTron electric meter ā€œupgradedā€ by Xcel to one of their smart meters. Annoying, I had been reading it with RTLAMR2MQTT for a couple of years now. Are you able to read anything from the new meter? I believe this is the conversion to get into m3

converted_gas:
        value_template: "{{ ((states.sensor.power_meter_2.state | float / 100 * 2.83168)) | round(0) }}"
        unit_of_measurement: mĀ³

Iā€™m with Nicor in the U.S. Midwest, and I have a Sensus (FlexNet) 300GM. Everything Iā€™m reading online so far suggests that this is not currently compatible with any USB-RTL (SDR) type solution, or nobody has figured out how to reverse engineer it yet.

Has anyone made any progress with these types of devices yet?

2 Likes

I found a bug today that prevented my gas meter from being seen. In essence you need to change this line in config/rtlamr2mqtt/rtl2mqtt.sh to this:

 DEVICEID="$(echo $line | jq --raw-output '.Message.ID,.Message.EndpointID | select( . != null )' | tr -s ' ' '_')"

Now that Iā€™ve got my gas meter sensor pulling with rtlamr2mqtt, I canā€™t get it to show up as a source in the Energy configuration. This is what it looks like now:

- platform: mqtt
  state_topic: "readings/95229911/meter_reading"
  name: "Gas Meter"
  unit_of_measurement: ft3
  value_template: >
    {% set ft3 = (value | float) / 100 %}
    {{ ft3 }}
  state_class: total_increasing
  device_class: gas

It doesnā€™t show up because according to HA, ā€œthatā€™s caused by a bug in the integration providing the entity.ā€ Ok? What to do?

Apparently, the unit_of_measurement needs to be ftĀ³ or mĀ³ and not ft3 or m3 for HA to pick it up in the Energy dashboard.

This is the code that grabbed from above and im getting state of the electric sensor as unavailable. Yet I can go to developer and listen and all the Matt data is being sent over. Am I missing something???

- platform: mqtt
  state_topic: "rtl_433/reading/SCM/4/37823822/message"
  name: "Electric Meter"
  unique_id: electric_meter_01
  unit_of_measurement: kWh
  device_class: energy
  state_class: measurement
  availability_topic: rtl_433/status/availability
  last_reset_topic: amr/status/last_reset
  value_template: "{{ value_json.Message.Consumption }}"
  json_attributes_template: "{{ value_json.Message | tojson }}"
  json_attributes_topic: "rtl_433/reading/37823822/message"

My gas meter only reports when Xcel drives around and pings it, so it took 2 months before my gas meter showed up in the consumption panel. Yikes.

1 Like

Hmm, that looks correct to me. Perhaps the availability_topic is not triggering.

Try removing availability_topic and last_reset_topic and then change state class:

state_class: total_increasing


now itā€™s showing unknown instead of unavailable doing what you suggested. Thank you btw for trying to help figure this out with meā€¦


hereā€™s a screen shot of me listening in on MQTT just now so you can see the data coming in as well.

I have RTLAMR setup to pickup my consumptions signals from my Xcel energy meters to send in to InfluxDB. I am trying to figure out how to pull these readings from InfluxDB in to the HA Energy panel rather than have the RasPi with RTLAMR sending it to Influx and HA (Influx and my HA are both running on the same server). I have the Influx sensor setup but it doesnā€™t show as a consumption sensor in the energy panel: InfluxDB - Home Assistant

I even tried changing the unit of measure from W to Wh to kWh. Anyone get an InfluxDB sensor setup like this to feed in to the Energy panel?

I am only picking up consumption (Wh) readings from the main Xcel meter and the PV production meter though I am still trying to figure out how to get the production (energy to grid) from the main Xcel meter. When our PV was installed, Xcel put in an OpenWay Itron C2SO SK9AMI7 Bidirectional meter for the main meter. I have only found the consumption reading using RTLAMR and all my efforts to sniff any ZigBee traffic have been a dead end so if anyone else has info on getting the energy sent to the grid from these meters, I would love to hear more.

P.S. I am also in CO. Seems to be a trend in this thread