All Projects → bemasher → Rtlamr

bemasher / Rtlamr

Licence: agpl-3.0
An rtl-sdr receiver for Itron ERT compatible smart meters operating in the 900MHz ISM band.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Rtlamr

Hass Components
My Home Assistant custom components
Stars: ✭ 21 (-98.42%)
Mutual labels:  smart
Waykichain
Public Blockchain as a Decentralized Finance Infrastructure Service Platform
Stars: ✭ 1,117 (-15.76%)
Mutual labels:  smart
Fhir Kit Client
Node.js FHIR client library
Stars: ✭ 86 (-93.51%)
Mutual labels:  smart
Tdoa Evaluation Rtlsdr
Matlab Scripts for Evaluation of a TDOA System based on RTL-SDRs
Stars: ✭ 49 (-96.3%)
Mutual labels:  rtl-sdr
Pysdr
A guide for using Python as a software-defined radio (SDR) framework, for extremely rapid development of SDR apps/research with beautiful GUIs
Stars: ✭ 60 (-95.48%)
Mutual labels:  rtl-sdr
Smart Commit
Commit with current branch name.
Stars: ✭ 63 (-95.25%)
Mutual labels:  smart
Watchio
A programmable smart watch based on esp32-pico-d4
Stars: ✭ 25 (-98.11%)
Mutual labels:  smart
Readsb
Readsb is a Mode-S/ADSB/TIS decoder for RTLSDR, BladeRF, Modes-Beast and GNS5894 devices.
Stars: ✭ 91 (-93.14%)
Mutual labels:  rtl-sdr
Neuralamr
Sequence-to-sequence models for AMR parsing and generation
Stars: ✭ 60 (-95.48%)
Mutual labels:  amr
Data Models
🔠 Code and specifications to support harmonized data models
Stars: ✭ 79 (-94.04%)
Mutual labels:  smart
Sdrangel
SDR Rx/Tx software for Airspy, Airspy HF+, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube
Stars: ✭ 1,058 (-20.21%)
Mutual labels:  rtl-sdr
Airspy Fmradion
Software decoder for FM/AM broadcast radio with AirSpy R2 / Mini, Airspy HF+, and RTL-SDR
Stars: ✭ 59 (-95.55%)
Mutual labels:  rtl-sdr
Penman
PENMAN notation (e.g. AMR) in Python
Stars: ✭ 63 (-95.25%)
Mutual labels:  amr
Prometheus smart exporter
Configurable S.M.A.R.T. metric exporter for Prometheus
Stars: ✭ 38 (-97.13%)
Mutual labels:  smart
Soapy power
Obtain power spectrum from SoapySDR devices (RTL-SDR, Airspy, SDRplay, HackRF, bladeRF, USRP, LimeSDR, etc.)
Stars: ✭ 88 (-93.36%)
Mutual labels:  rtl-sdr
Shinysdr
Software-defined radio receiver application built on GNU Radio with a web-based UI and plugins. In development, usable but incomplete. Compatible with RTL-SDR.
Stars: ✭ 884 (-33.33%)
Mutual labels:  rtl-sdr
Thorify
A web3 adaptor for VeChain Thor RESTful HTTP API.
Stars: ✭ 62 (-95.32%)
Mutual labels:  smart
Tsl Sdr
Software Defined Radio Demodulation and Decoding Tools
Stars: ✭ 94 (-92.91%)
Mutual labels:  rtl-sdr
Gaugeslider
Highly customizable GaugeSlider designed for a Smart Home app. Featured at Medium.
Stars: ✭ 89 (-93.29%)
Mutual labels:  smart
Trixi.jl
A tree-based numerical simulation framework for hyperbolic PDEs written in Julia
Stars: ✭ 72 (-94.57%)
Mutual labels:  amr

Purpose

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 900MHz ISM band, well within the tunable range of inexpensive rtl-sdr dongles.

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!

Build Status AGPLv3 License

Requirements

Building

This project requires the package github.com/bemasher/rtltcp, which provides a means of controlling and sampling from rtl-sdr dongles via the rtl_tcp tool. This package will be automatically downloaded and installed when getting rtlamr. The following command should be all that is required to install rtlamr.

go get github.com/bemasher/rtlamr

This will produce the binary $GOPATH/bin/rtlamr. For convenience it's common to add $GOPATH/bin to the path.

Usage

See the wiki page Configuration for details on configuring rtlamr.

Running the receiver is as simple as starting an rtl_tcp instance and then starting the receiver:

# Terminal A
$ rtl_tcp

# Terminal B
$ rtlamr

If you want to run the spectrum server on a different machine than the receiver you'll want to specify an address to listen on that is accessible from the machine rtlamr will run on with the -a option for rtl_tcp with an address accessible by the system running the receiver.

Message Types

The following message types are supported by rtlamr:

  • scm: Standard Consumption Message. Simple packet that reports total consumption.
  • scm+: Similar to SCM, allows greater precision and longer meter ID's.
  • idm: Interval Data Message. Provides differential consumption data for previous 47 intervals at 5 minutes per interval.
  • netidm: Similar to IDM, except net meters (type 8) have different internal packet structure, number of intervals and precision. Also reports total power production.
  • r900: Message type used by Neptune R900 transmitters, provides total consumption and leak flags.
  • r900bcd: Some Neptune R900 meters report consumption as a binary-coded digits.

Sensitivity

Using a NooElec NESDR Nano R820T with the provided antenna, I can reliably receive standard consumption messages from ~300 different meters and intermittently from another ~600 meters. 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 3-9 messages.

Compatibility

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.

Check out the table of meters I've been compiling from various internet sources: ERT Compatible Meters

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.

Ethics

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.

Use Cases

These are a few examples of ways this tool could be used:

Ethical

  • Track down stray appliances.
  • Track power generated vs. power consumed.
  • Find a water leak with rtlamr rather than from your bill.
  • Optimize your thermostat to reduce energy consumption.
  • Mass collection for research purposes. (Please anonymize your data.)

Unethical

  • Using data collected to determine living patterns of specific persons with the intent to act on this data, particularly without express permission to do so.

License

The source of this project is licensed under Affero GPL v3.0. According to http://choosealicense.com/licenses/agpl-3.0/ you may:

Required:

  • Disclose Source: Source code must be made available when distributing the software. In the case of LGPL, the source for the library (and not the entire program) must be made available.
  • License and copyright notice: Include a copy of the license and copyright notice with the code.
  • Network Use is Distribution: Users who interact with the software via network are given the right to receive a copy of the corresponding source code.
  • State Changes: Indicate significant changes made to the code.

Permitted:

  • Commercial Use: This software and derivatives may be used for commercial purposes.
  • Distribution: You may distribute this software.
  • Modification: This software may be modified.
  • Patent Grant: This license provides an express grant of patent rights from the contributor to the recipient.
  • Private Use: You may use and modify the software without distributing it.

Forbidden:

  • Hold Liable: Software is provided without warranty and the software author/license owner cannot be held liable for damages.
  • Sublicensing: You may not grant a sublicense to modify and distribute this software to third parties not included in the license.

Feedback

If you have any questions, comments, feedback or bugs, please submit an issue.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].