For anyone who's curious, here's the hardware:
1. A "smart meter" outside the house (set up by the power company)
2. A raspberry pi 3 (w/power cable/sdcard)
3. NooElec NESDR Mini 2+ software defined radio
This comes with an antenna as well.
And here's the software:
* Ubuntu Mate on the rpi3 (you can also use raspbian or whatever)
* rtlamr to take readings from the meter (https://github.com/bemasher/rtlamr -- this is awesome and worked on the first try after I installed golang and ran "go get github.com/bemasher/rtlamr")
* rtl-tcp (a dependency of the above that is automatically installed if I remember correctly.)
* openhab2 open source home automation sw (optional)
* influxdb open source time series database
* grafana graphing software
Once I plugged the USB NooElectric SDR, I was able to grab my meter's reading with a little python3 script. The test code I'm using looks something like:
completed = subprocess.run(['/home/myaccount/go/bin/rtlamr', '-filterid=1234567', '-single=true', '-format=json'],
reading = data['Message']['Consumption']
I wanted to be able to visualize trends (like the rate of consumption when I turned on the heat) using a nifty chart, so I published from python (via the paho library-- https://pypi.python.org/pypi/paho-mqtt ) to a local mqtt server (mosquitto running on the pi) though I also tried sending to a mqtt feed at io.adafruit.com, which does a neat graph on its dashboard... until I overwhelmed its quota with too-frequent updates. I wanted something faster where I didn't have to worry about any throttling.
So I decided to do it all locally. First, I set up openhab2 (http://docs.openhab.org/) which has an add-on to to automatically read the mqtt feed, then inserted the measurements to a database on a local influxdb (https://en.wikipedia.org/wiki/InfluxDB) server also on the pi which keeps a real-time history (aka "persistence") of my electric usage over time. (I could have also just inserted to the influxdb directly from my python3 script, but I'm playing with openhab2 for other things so had it do it for me...)
Finally, I connected grafana (http://grafana.org/) to the influxdb database. Now I have gorgeous real-time graphs and an amazing interactive web-UI that lets me zoom in and set alerts and such.
It sounds like a lot of steps to get to the graph, and once you have the actual measurement, you have choices on how to visualize it-- you could have python send the readings to a Google Sheets spreadsheet and graph from there, for example. or do updates to adafruit less frequently to not blow through the quota. Or use openhab2's which includes its own charts.
But grafana's visualizations are just the coolest. See http://play.grafana.org for an idea of what you can do...
Anyway, long drawn out answer, but the point is-- assuming you have a smart electric meter that work with rtlamr, you can do this yourself :)
Update: Just found this at the top of the discussion at http://bemasher.net/rtlamr/ -- which I actually should probably sit down and read at some point :)
Can rtlamr send text over TCP to a remote data collection server? I think they call it a 'receiver'.
Looks like different formats are supported, e.g. plain and csv, so it's a pretty open setup. With that in mind, what's the added value of mqtt in your reference configuration?