Reading Gas/Power/Water meters with rtl_433

All of the utilities that come into my house are (assumedly) using smart meters, and I want to get them pulled into my HA. I have never seen anyone out reading the meter, my water meter readout is in my basement, and nobody has come to read that. So, my assumption is that it’s done over a wireless protocol. In researching this project, I’ve found that all 3 of my meters have FCC ID’s and I’ve been able to determine the center frequency on each device.

Power meter: https://fccid.io/P9X-RFN420CL

Center 915.00M

Gas mete: https://fccid.io/QZC-RMD-01

Center 915.40M

Water meter: https://fccid.io/GIF2012WSE

Center 914.70M

Initially, I was using a random RTL-SDR that I got years ago from AliExpress, but after being unable to pull values with that, I went and got a much better SDR. It has already managed to find a couple of outdoor temperature sensors in my neighborhood, but no utility meters.

I’m using a fantastic set of add-ons by @pbkhrv that runs rtl_433 and also populates entities into HA over MQTT autodiscovery. (GitHub - pbkhrv/rtl_433-hass-addons: Collection of Home Assistant add-ons that use rtl_433) Unfortunately, I am still unable to find these meters. My SDR is located inside my house, on the 2nd floor, where my Z-Wave & Zigbee radios also sit to ensure those have proper coverage throughout the house. Are the radios in the utility meters so weak that I am unable to pick them up from inside the house, and should put an SDR outside of the house to talk to them? I’ve tried tuning to the specific center frequencies, and also just 915Mhz, neither of which have produced any results. Any ideas?

2 Likes

I got an additional RTL-SDR to use for testing, as rtl_433 and rtlamr don’t support the HackRF that I normally use. After running rtlamr on my local machine for a little while with an antenna stuck in my window, I picked up a couple of meters. However, I can’t identify any of them as mine because the ID numbers don’t math up. Once it warms up a little bit more today, I will go see if I can correlate the consumption metric. I’m not sure where these numbers are coming from. Meter type 12 should be gas, but none of the ID’s match up with my meter.

Here’s the output I was getting.

{Time:2022-01-05T09:19:40.360 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247922 CRC:0x9FBF}}
{Time:2022-01-05T09:21:22.526 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176714 CRC:0x203C}}
{Time:2022-01-05T09:28:41.369 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247924 CRC:0x0F35}}
{Time:2022-01-05T09:28:57.245 SCM:{ID:44992370 Type:12 Tamper:{Phy:00 Enc:00} Consumption:   73434 CRC:0xB9EE}}
{Time:2022-01-05T09:31:41.367 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247924 CRC:0x0F35}}
{Time:2022-01-05T09:35:22.032 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176726 CRC:0x86FF}}
{Time:2022-01-05T09:38:41.365 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247938 CRC:0xFC9F}}
{Time:2022-01-05T09:39:22.550 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176726 CRC:0x86FF}}
{Time:2022-01-05T09:43:22.560 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176726 CRC:0x86FF}}
{Time:2022-01-05T09:43:41.389 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247940 CRC:0x6C15}}
{Time:2022-01-05T09:49:22.060 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176726 CRC:0x86FF}}
{Time:2022-01-05T09:50:40.391 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247942 CRC:0xC6B2}}
{Time:2022-01-05T09:51:41.389 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247942 CRC:0xC6B2}}
{Time:2022-01-05T09:52:40.387 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247942 CRC:0xC6B2}}
{Time:2022-01-05T09:54:22.072 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176730 CRC:0xC888}}
{Time:2022-01-05T09:59:40.908 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247944 CRC:0x2262}}
{Time:2022-01-05T10:03:52.403 SCM+:{ProtocolID:0x1E EndpointType:0x9C EndpointID:  99993255 Consumption:    177734 Tamper:0x0608 PacketCRC:0x93F2}}
{Time:2022-01-05T10:04:21.580 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176742 CRC:0xD040}}
{Time:2022-01-05T10:05:40.911 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247954 CRC:0x142B}}
{Time:2022-01-05T10:06:21.582 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176742 CRC:0xD040}}
{Time:2022-01-05T10:08:21.583 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176742 CRC:0xD040}}
{Time:2022-01-05T10:09:40.920 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247962 CRC:0x6071}}
{Time:2022-01-05T10:11:21.590 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176742 CRC:0xD040}}
{Time:2022-01-05T10:11:56.807 SCM:{ID:44992370 Type:12 Tamper:{Phy:00 Enc:00} Consumption:   73446 CRC:0xA126}}
{Time:2022-01-05T10:18:40.926 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247982 CRC:0x0CE3}}
{Time:2022-01-05T10:20:40.925 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247986 CRC:0xAA20}}
{Time:2022-01-05T10:21:40.930 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  247988 CRC:0x3AAA}}
{Time:2022-01-05T10:29:21.577 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176742 CRC:0xD040}}
{Time:2022-01-05T10:33:21.572 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176742 CRC:0xD040}}
{Time:2022-01-05T10:33:40.360 SCM:{ID:44992787 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  248000 CRC:0x454D}}
{Time:2022-01-05T10:36:22.066 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176742 CRC:0xD040}}
{Time:2022-01-05T10:39:22.615 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176742 CRC:0xD040}}
{Time:2022-01-05T10:42:51.943 SCM+:{ProtocolID:0x1E EndpointType:0x9C EndpointID:  99993255 Consumption:    177738 Tamper:0x0608 PacketCRC:0xE693}}
{Time:2022-01-05T10:44:21.619 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176744 CRC:0x3490}}
{Time:2022-01-05T10:47:22.620 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176744 CRC:0x3490}}
per:{Phy:00 Enc:00} Consumption:  248000 CRC:0x454D}}
{Time:2022-01-05T10:36:22.066 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176742 CRC:0xD040}}
{Time:2022-01-05T10:39:22.615 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176742 CRC:0xD040}}
{Time:2022-01-05T10:42:51.943 SCM+:{ProtocolID:0x1E EndpointType:0x9C EndpointID:  99993255 Consumption:    177738 Tamper:0x0608 PacketCRC:0xE693}}
{Time:2022-01-05T10:44:21.619 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176744 CRC:0x3490}}
{Time:2022-01-05T10:47:22.620 SCM:{ID:44992375 Type:12 Tamper:{Phy:00 Enc:00} Consumption:  176744 CRC:0x3490}}

What frequency worked?

Most meters seem to communicate around 915Mhz. You can look for the FCC ID (If the product is also sold in the US) to get the exact frequencies.