GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. If nothing happens, download GitHub Desktop and try again. If nothing happens, download Xcode and try again. If nothing happens, download the GitHub extension for Visual Studio and try again.
I've been using rtlamr plus some custom collection and graphing code on my general purpose Linux server for several years to track electric usage and solar panel output. In the middle of I decided to move it to a Raspberry Pi. At that time I decided to see if using Docker and Docker Compose could help with managing deployment and fault tolerance. So far the results are very promising, and I have decided to open source the result. This project, Docker-ized rtlamr to SQLite is the second release.
Diagram and further explanation TBS. Storing the data in SQLite form allows for many uses. My third release will be the code used to generate graphs from the SQLite database. All of these meters provide a Consumption field that reflects the actual meter reading. This project has been tested on the following using my SCM electric and gas meters and R water meter:. I will release a version that works on Mac "soon".
Open a terminal, cd into the top-level directory and run docker-compose build to build the containers. Edit the text file variables. It will work with gas, water, or electric meters.
Then run docker-compose up -d to run it. Output is placed in a directory called data at the same level e.Last year my city began installing Neptune E-Coder smart water meters with R meter interface units.
I was excited because I had a spare software-defined radio that I could put to use. I set up rtlamrinserted readings into InfluxDB, set up graphs in Grafana, and called it a day.
You need rtl-sdrgolanggitand jq. You will find these in your package manager on Linux or Homebrew on macOS. If you are unable to find your ID take a manual reading, run rtlamr without a filter, and get the ID from a transmission with a matching consumption value. If your JSON includes children then you have to create template sensors to access these values. You can avoid template sensors by piping the JSON through jq to move all of the Message elements to the top level:.
If you connected your SDR to your Home Assistant machine, and you are not running Home Assistant with Docker, then you can set up a command line sensor. Your water meter emits readings periodically, and rtlamr will block until it gets one. Your Home Assistant log is going to fill up with warnings that this sensor is taking longer than 10 seconds.
Restart Home Assistant to check out your new sensor. You can detect leaks and backflow using sensor attributes. Get new post notifications Subscribe.Turns out these ERT meters at least in Omaha are broadcasting 4 hours of usage data with 5 minute resolution. It broadcasts this data every minute, repeating the previous broadcast until the next 5 minute interval has completed.
This data is flying around unprotected. It listens for the data, decodes, and passes along the meter readings. On my meter, the interesting information is just above the readout.
I got mine on amazon, there are a lot of them available. Just search for RTLU. The first differential consumption is my most recent 5 minute period, and the last consumption field is my current meter reading. Interestingly, my meter shows 5 digits on the front, but the rtlamr data has 7 digits.
This gives me hundredths of a kilowatt hour. Keeping this front and center on the home automation dashboard on the wall mounted android tablets makes me more mindful of our power usage. Categories: Uncategorized. March 2, at pm.
Hi, Will this work with a Raspberry Pi 3? Thanks Steve. Thanks, rtlamr output: Marc Wallace October 31, at pm. J February 25, at am. Leave a Reply Cancel reply Your email address will not be published.GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
If nothing happens, download GitHub Desktop and try again. If nothing happens, download Xcode and try again. If nothing happens, download the GitHub extension for Visual Studio and try again.
The script can be run using docker takes care of all dependencies or standalone. It is design to run on Raspberry Pi or similar. All credit for rtlamr goes to bemasher. Have a MQTT broker you can connect to. I use Mosquitto.
I use this docker container. Process with your data consumer of choice. An example telegraf config is provided. Metermon reports Online once it connects to the broker. Upon disconnect, the broker will report Offline.
Pull the image. If using raspberry pi or similar use arm in place of [tag]. The latest tag will pull the amd64 image:. Skip to content. Dismiss Join GitHub today GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign up. Dockerized rtlamr wrapper that outputs formatted JSON messages over mqtt. Python Dockerfile. Python Branch: master. Find file. Sign in Sign up. Go back. Launching Xcode If nothing happens, download Xcode and try again. Latest commit Fetching latest commit…. Run the container or script using instructions below. See here for the list. Type Electric The meter type of the received message, converted to generic utility type, e.Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 40 million developers.
I've also moved to a new release tool that greatly simplifies making binary releases for new versions. As a result, I'm now only providing a signature for the checksums file generated by the tool, which should be sufficient to verify that I built the binaries uploaded for each release. This release contains primarily code and documentation cleanup. There are a few optimizations and some functionality has been both added and removed. All of the binary releases were compiled using go version go1.
Cut away a lot of the fat in various buffers and implemented a protocol wrapper for R meters that transmit consumption as a hexadecimal coded digits. This also marks the first version which performs well enough to receive at full sample rate on an RPi2 without dropping any samples.
Decimation was broken in the previous release when the new preamble search was implemented. This release fixes that bug. This is a minor release mostly dealing with documentation and some refactoring.
The refactoring will make future work on FHSS tools less painful. First major release without any external dependencies! FFTW is no longer required for builds which allows cross-compilation. Skip to content. Dismiss Be notified of new releases Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 40 million developers. Sign up. Releases Tags. Latest release.
Choose a tag to compare. Search for a tag. Changes: Fix version flags for use with goreleaser.
Fixes Assets Source code zip. Source code tar. This commit was signed with a verified signature. Concurrent Multi-Protocol Decoding!
Big Changes: Removed -logfilesee 3fef for console redirection equivalent functionality. Removed -decimation due to performance improvements, no longer necessary. Added new -msgtype value rbcd for those funky R meters that transmit binary-coded digits for consumption values.GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
If nothing happens, download GitHub Desktop and try again. If nothing happens, download Xcode and try again. If nothing happens, download the GitHub extension for Visual Studio and try again. Utilities often use "smart meters" to optimize their residential meter reading infrastructure.
Smart meters transmit consumption information in the various ISM bands allowing utilities to simply send readers driving through neighborhoods to collect commodity consumption information. One protocol in particular: Encoder Receiver Transmitter by Itron is fairly straight forward to decode and operates in the MHz ISM band, well within the tunable range of inexpensive rtl-sdr dongles.
Easy Meter Integration with rtlamr + Home Assistant
This project is a software defined radio receiver for these messages. We make use of an inexpensive rtl-sdr dongle to allow users to non-invasively record and analyze the commodity consumption of their household. There's now experimental support for data collection and aggregation with rtlamr-collect!
This project requires the package github. This package will be automatically downloaded and installed when getting rtlamr. The following command should be all that is required to install rtlamr. See the wiki page Configuration for details on configuring rtlamr. These figures are calculated from the number of messages received during a 25 minute window. Reliably in this case means receiving at least 10 of the expected 12 messages and intermittently means messages.Docker compose - группы контейнеров. Docker
Currently the only tested meter is the Itron C1SR. However, the protocol is designed to be useful for several different commodities and should be capable of receiving messages from any ERT capable smart meter. If you've got a meter not on the list that you've successfully received messages from, you can submit this info via a form available at the link above.
Do not use this for malicious purposes. If you do, I don't want to know about it, I am not and will not be responsible for your actions. However, if you find a clever non-evil use for this, by all means, share. The source of this project is licensed under Affero GPL v3.Get the latest tutorials on SysAdmin and open source topics.
Write for DigitalOcean You get paid, we donate to tech non-profits. DigitalOcean Meetups Find and meet other developers in your city. Become an author. Docker can be an efficient way to run web applications in production, but you may want to run multiple applications on the same Docker host. Traefik is a Docker-aware reverse proxy that includes its own monitoring dashboard. One Ubuntu Docker installed on your server, which you can do by following How to Install and Use Docker on Ubuntu A domain and three A records, db-adminblog and monitorthat each point to the IP address of your server.
Throughout this tutorial, substitute your domain for example. The Traefik project has an official Docker imageso we will use that to run Traefik in a Docker container.
But before we get our Traefik container up and running, we need to create a configuration file and set up an encrypted password so we can access the monitoring dashboard. First, install the utility, which is included in the apache2-utils package:. Then generate the password with htpasswd. Copy the entire output line so you can paste it later.
This file lets us configure the Traefik server and various integrations, or providerswe want to use. First, add two named entry points, http and httpsthat all backends will have access to by default:.
Next, configure the web provider, which gives you access to a dashboard interface. The dashboard is a separate web application that will run within the Traefik container. We set the dashboard to run on port The web.
Easy Meter Integration with rtlamr + Home Assistant
Use the output from the htpasswd command you just ran for the value of the users entry. You could specify additional logins by separating them with commas. Next, define the entry points. The entryPoints section configures the addresses that Traefik and the proxied containers can listen on. Add these lines to the file:. We automatically redirect all of the traffic on port 80 to the https entry point to force secure connections for all requests.
To have Traefik generate certificates for our hosts, we set the email key to your email address. The entryPoint key needs to point to the entry point handling portwhich in our case is the https entry point.
The last two keys, onHostRule and onDemanddictate how Traefik should go about generating certificates. The onDemand setting would attempt to generate certificates the first time that a request is made. Save the file and exit the editor. With all of this configuration in place, we can fire up Traefik. Next, create a Docker network for the proxy to share with containers.