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

I’m not sure if this is a HW issue or a software issue - but having 0 luck with the googles, so thought i’d start here to see if anyone as thoughts i’d greatly appreciate some input.

Seems like it is randomly crashing dying with the following error:

Sep 27 02:40:37 raspberrypi4 amridm2mqtt[2664]: 02:40:37.674301 main.go:124: GainCount: 29
Sep 27 05:23:18 raspberrypi4 amridm2mqtt[2664]: 05:23:18.741129 main.go:343: Receiver context cancelled.
Sep 27 05:23:18 raspberrypi4 amridm2mqtt[2664]: 05:23:18.741690 main.go:320: read tcp 127.0.0.1:42734->127.0.0.1:1234: i/o timeout
Sep 27 05:23:18 raspberrypi4 amridm2mqtt[2664]: io.ReadFull
Sep 27 05:23:18 raspberrypi4 amridm2mqtt[2664]: main.(*Receiver).Run.func2
Sep 27 05:23:18 raspberrypi4 amridm2mqtt[2664]:         /srv/go/pkg/mod/github.com/bemasher/[email protected]/main.go:181
Sep 27 05:23:18 raspberrypi4 amridm2mqtt[2664]: runtime.goexit
Sep 27 05:23:18 raspberrypi4 amridm2mqtt[2664]:         /usr/lib/go-1.18/src/runtime/asm_arm64.s:1259
lsusb -s 001:006
Bus 001 Device 006: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
root@raspberrypi4:/srv/HA/amridm2mqtt# git pull
Already up to date.

root@raspberrypi4:/srv/HA/amridm2mqtt# dpkg -l | egrep -i sdr
ii  librtlsdr0:arm64                0.6.0-4                                 arm64        Software defined radio receiver for Realtek RTL2832U (library)
ii  rtl-sdr                         0.6.0-4                                 arm64        Software defined radio receiver for Realtek RTL2832U (tools)

root@raspberrypi4:/srv/HA/amridm2mqtt# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.1 LTS
Release:	22.04
Codename:	jammy

Syslog is a little interesting

Sep 27 05:23:13 raspberrypi4 kernel: [ 9870.476308] usb 1-1.1: USB disconnect, device number 3
Sep 27 05:23:14 raspberrypi4 kernel: [ 9870.699267] usb 1-1.1: new high-speed USB device number 6 using xhci_hcd
Sep 27 05:23:14 raspberrypi4 kernel: [ 9870.811112] usb 1-1.1: New USB device found, idVendor=0bda, idProduct=2838, bcdDevice= 1.00
Sep 27 05:23:14 raspberrypi4 kernel: [ 9870.811138] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Sep 27 05:23:14 raspberrypi4 kernel: [ 9870.811147] usb 1-1.1: Product: RTL2838UHIDIR
Sep 27 05:23:14 raspberrypi4 kernel: [ 9870.811154] usb 1-1.1: Manufacturer: Realtek
Sep 27 05:23:14 raspberrypi4 kernel: [ 9870.811160] usb 1-1.1: SerialNumber: 00000001

If anyone has any thoughts

I’m experiencing the same issue. I did a lot of digging online and found the same issue documented here. It is more than likely a dead or dying unit and should be replaced. Luckily mine was still within the return window on Amazon so I have filed a return and am waiting for the new unit.

I also went ahead and bought a different antenna dongle from here. I’ve read that their dongles have a better life expectancy.

The final thing you could try is to run the usb dongle via a powered usb hub as discussed here. I tried it with the exact model he used but I still experienced the same issue.

I have tried this on a RPi3, RPi4, and a Proxmox HA VM. I’ll try to post an update once my new antennas come in :slight_smile:

I’ve been trying to get the rtl_tcp and rtlamr packages running on my RPi 3B+ (with a NooElec NESDR Mini), but it never finds anything for the smart reader (CS20D). It just sits there scanning. I was also getting a lot of “ll+ ###” outputs and read it was a power thing maybe, but the RPi is getting plenty of juice. I tried plugging the NooElec into my UnRAID server where I run HA, and installed the amr2mqtt add-on, and it too also shows in the log lots of “ll+ ###” entries. Can’t be a power thing on that machine. It’s currently scanning for msgtype=all hoping I’d be finding the signal and could narrow it down later but nothing is found.

If I plug the NooElec into a laptop and use something like CubicSDR, I can find signals at the 927MHz range (the meter is 902-927) which appear about every 30secs. If I run rtl_tcp on its own and connect to it, the same range does not show anything happening. Bizarre.

I may have to give up and do something else with the NooElec, and pay for the box the electricity company offers (a Powerley device), assuming I can get what I need out of that into HA … maybe the connection to the meter is locked down.

@biochemguy quick question. I have successfully scanned and found several ERT readings around my house. I assumed one of them will be my gas reader. Unfortunately non of them matches my actual meter dial status. Would you know if the “consumption_data” are somehow encrypted?

{
  "time": "2023-02-12 14:45:10",
  "model": "ERT-SCM",
  "id": 12661550,
  "physical_tamper": 1,
  "ert_type": 12,
  "encoder_tamper": 0,
  "consumption_data": 368495,
  "mic": "CRC"
}

So has anybody gotten a nicor meter in the suburbs of chicago working yet? long thread and just wanted to check if i missed it.

1 Like

I have been looking and looking. I believe that the nicor meters only broadcast as a response from a nicor signal

1 Like

I had a project with Sensus water meters a few years ago. Because of the 20 year warranty, the sealed battery unit in their radio only broadcasts reads once every 4 hours. The data packet is technically 4 one hour reads, but is sent once every 4 hours.

I have an iTron OpenWay (AMI7) meter. I am in Pittsburgh, PA and have Duquesne Light Company for my power. I see some people getting RTLAMR readings from OpenWay meters, but all of my reading says it is not possible. Can you provide any details about how you are doing it?

Can you explain some more on on how you were able to connect?

I was using the Sensus’ cloud monitoring software during the project buildout since I was part of the engineering team on the project. Sensus registers a licensed FCC frequency for each system, technically I think they have a small bank of registered frequencies that they draw from to help insure minimal overlap for that locale. It is kind of difficult sorting through the FCC inventory to find the frequency for your particular system, but it should show the owner as Sensus since it is subscription based. Hope that helps.

I too am with Nicor, in the Chicago suburbs, and have a Sensus Flexnet 100GM-B. Checking in to see if there’s been any progress.

[SOLVED]: I was close. Protocol needed to be SCM, not SCM+. Receiving messages now.

Looking for help with initial setup for rtlamr2mqtt for my gas meter.

  • add-on is installed and configured
  • gas meter ID added to config (Itron 100G DLS)
  • logs show nooelec USB detected and up
  • mosquito mqtt is installed

I am unsure of next steps, but I’ve not seen any other MQTT device detected, and if I go to the MQTT config and set listening mode to “debug”, nothing happens.

I have my power readings coming through the Xcel2MQTT add-on without issue.

general:
  sleep_for: 300
  verbosity: debug
  listen_only: false
  tickle_rtl_tcp: false
  device_id: single
mqtt:
  ha_autodiscovery: true
  ha_autodiscovery_topic: homeassistant
  base_topic: rtlamr
  tls_enabled: false
custom_parameters:
  rtltcp: "-s 2048000"
  rtlamr: "-unique=true"
meters:
  - id: 51344808
    protocol: scm+
    name: gas_meter
    format: "####.###"
    unit_of_measurement: m³
    icon: mdi:gas_canister
    device_class: gas

image

@simps Are you a Nicor customer?

@tempeduck No, this is for Xcel. I have my electric meter connected via local wifi, gas connected via RTL-SDR. Water was upgraded to a cellular-based system, so unless I can scrape consumption from their website, that one looks like I won’t be able to get it integrated

x-posting here to maybe raise visibility… trying to solve an issue with AMR2MQTT:

https://community.home-assistant.io/t/home-assistant-add-on-amr2mqtt/378196/59

Everything was working until earlier today. Now it’s not able to read data. This is due to my configuration not being right, but as a HASS noob I’m having trouble finding how to solve the issue.

Does anyone have any tips/suggestions?

OK I think I solved it. I watched this video: https://www.youtube.com/watch?v=8uB-vFmEuD0 and ended up creating an mqtt.yaml and included that in configuration.yaml. This is what my mqtt.yaml looks like for those that may see this later:

sensor:
  - name: "XCel Gas Meter Reading"
    state_topic: "rtlamr/$IDHERE"
    unit_of_measurement: "CCF"
    force_update: true
    value_template: "{{ value_json.Consumption }}"
    unique_id: "amr2mqtt_$IDHERE_consumption"
    device_class: "gas"
    state_class: "total"
1 Like

I have just set up my water meter and I’m curious about the internal leak flags.
R900:{ID:14819****** Unkn1:0xA1 NoUse: 0 BackFlow:0 Consumption: 1419**** Unkn3:0x00 Leak:15 LeakNow:3}}

I have also seen others that have the Leak:15 and LeakNow:3 values. What do these mean?