Maker.io main logo

Reading a Smart Meter with a Software-Defined Radio

990

2026-07-29 | By Zach Hipps

License: GNU Lesser General Public License Test Equipment Software Defined Radio (SDR)

In my last project, I poked around inside my main electrical panel, connected up an ESP32 with some current transformer clamps, and tracked every single watt coming into my house. But let’s be real, opening up a live electrical panel can be intimidating. If you are renting or you just do not want to pay for an electrician, it is a complete nonstarter. What if I told you that your utility company is already broadcasting your energy usage right through the air, completely unencrypted? What if I could read that data from my couch using a cheap software-defined radio dongle? My name is Zach, and I am the Byte Sized Engineer. In this post, I am going to show you how to use an RTL-SDR to sniff your smart meter's radio signals, decode that data, and track your power consumption without touching a single live wire.

byte_1

Here is a high-level overview of what I am trying to do. The data is being broadcast over the air, so I need a software-defined radio (SDR) connected to an antenna to capture those signals. An SDR does not work on its own; it needs a computer to parse the data into a human-readable format. For the hardware, I had a couple of options. The first is the HackRF One, which has a ton of features and can both transmit and receive, but it comes with a high price tag and is totally overkill for this. The second option is the RTL-SDR. It can only receive data, which is all we need, and it comes at a much lower price. Because of that, the RTL-SDR is the perfect fit.

fit_2

fit_3

Before diving in, I took a trip outside to my physical utility meter to verify it was a modern style that actually broadcasts data. While I was out there, I snapped a picture of the barcode number. You need this number because an SDR will also pick up signals from your neighbors' meters. Oh yeah, did I forget to mention that you can see everyone's real-time power consumption? It would be great if you wanted to compare habits, but I want to make sure I am filtering for my own house. Back inside, I assembled the SDR kit, screwing the dipole antenna base into a small tripod. The kit comes with a few antenna sizes, and I chose the shorter set because it tunes to the 900 MHz frequency used by these meters. The SDR connects to the antenna via an SMA connector and plugs into a computer via USB. While I could use a laptop for development, my ultimate goal is to monitor this in Home Assistant. It makes way more sense to plug the SDR directly into the Raspberry Pi already running my Home Assistant setup, rather than keeping a separate computer running twenty-four seven.

plug_4

plug_5

plug_6

I did some digging and found an incredible GitHub repository called “rtlamr2mqtt.” This open-source project captures smart meter data, decodes it, and passes it right into Home Assistant. This is going to save me so much time! Honestly, we need to take a second to appreciate the maker community. There are so many brilliant people out there who give up their nights and weekends to build tools like this and share them freely. It is an amazing thing that we sometimes take for granted, so thank you to everyone out there who shares their work.

repo_7

The software package works by running “rtl_tcp” to interface with the SDR hardware and “rtlamr” to decode the transmissions for power, water, or gas meters. It then forwards that data to an MQTT broker in real time. To get this running, I used the manual install process in Home Assistant. Note that a recent update in Home Assistant rebranded add-ons as apps, so you will look for the app menu. I clicked the “Apps” menu, clicked “Install App,” then, in the top-right corner, clicked the vertical ellipsis and selected “Repository.” I pasted the GitHub URL into the repository field, installed the app, and then set up a popular MQTT broker, called Mosquitto, from the standard app store to handle messaging.

running_8

Once the app was running, I opened the configuration and enabled listening mode. Checking the logs, a stream of nearby meter IDs began scrolling across the screen. I found the ID that matched the barcode from my outdoor meter, copied the number, and went back into the configuration to define my specific device. I entered the ID, set the protocol to “IDM” based on the logs output, named it “Power Meter”, and defined the device class as “energy” with a state class of “total increasing”. Finally, I turned listening mode back off so the system would ignore my neighbors and focus solely on my own home.

home_9

home_10

home_11

After a quick service restart, a new device populated via the MQTT broker, and the numerical readout perfectly matched the physical display on the meter outside. Now the data is mine to play with, whether I want to track it over time or build pretty dashboard graphics.

meter_12

meter_13

So, how does wireless sniffing with an SDR stack up against the physical current transformer clamps I used previously? It really comes down to convenience versus granularity. The SDR method is cheap, incredibly safe, and highly accessible since you never touch a live wire. However, you only get your home's total collective energy consumption, and you are at the mercy of the meter's transmission interval, which is usually every minute or two. On the flip side, current transformers inside the electrical panel require dangerous, high-effort installation, but they give you circuit-by-circuit clarity with second-by-second updates.

That is the beautiful thing about engineering: there is rarely just one way to solve a problem. Every solution has its own unique set of trade-offs, and you just have to weigh them to decide what fits your project best. Thank you so much for reading, and I will see you next time.

Mfr Part # 109990245
HACKRF ONE
Seeed Technology Co., Ltd
$299.00
View More Details
Mfr Part # 22957
RTL-SDR BLOG V3 USB DONGLE WITH
SparkFun Electronics
Add all DigiKey Parts to Cart
Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.