Comments (6)
The primary issue is that meters typically update their consumption values at a different rate than transmitting messages. This means it's not uncommon to receive a message with the exact same contents from a meter more than once. For example, a lot of SCM-capable power meters update consumption every 5 minutes, and transmit every 30 seconds.
At the moment rtlamr-collect is structured to only really handle IDM messages because they provide historical data and more importantly, an interval index. With the interval index you can determine whether or not a message is part of a new interval, the last one we are aware of, or if we missed some intervals in between.
I have considered adding logic to handle SCM's, but it wouldn't keep any history. Instead, it would only parse and forward the message directly to InfluxDB. InfluxDB is fairly efficient for doing calculations like derivatives, which would take care of not keeping any historical data in rtlamr-collect itself.
I'll take a look at what would be necessary to add that.
from rtlamr-collect.
Support for all of the protocols rtlamr supports is coming, but will modify some of the current default behavior, so it will be a breaking change for anyone already using rtlamr-collect.
from rtlamr-collect.
@bemasher thank you for that detailed explanation. It explains why I was getting very noisy power consumption values using only simple math. Sounds like I could get some useful values if I used a longer time interval, like an hour - that way the uncertainty of when the reading occurred would not matter as much. But if you can come up with a way to use derivatives to get a pseudo real time reading (5-10 minute updates would be fine for me), that would be cool.
from rtlamr-collect.
@bemasher - First of all, thanks for the provided tools. After realizing that all my utility meters (gas, water, electricty (PV production and NET meter)) can be detected by your tool, I was hoping to graph all of them in Grafana. I am especially interested in the NET meter data. Unfortunately only the PV-production meter is sending out idm messages. Gas and NET meter are sending scm and the water meter is sending our r900 messages. Bottom line, it was very educational for me to 'play' with all the tools and I am hoping that you can and will implement support for other messages too.
from rtlamr-collect.
looking forward to the new version - thanks
from rtlamr-collect.
rtlamr-collect
has been significantly rewritten to more gracefully handle meters that report differential data like IDM and NetIDM, and now supports SCM, SCM+, R900 and R900 BCD.
I don't have the opportunity to test this with all of the different protocols, so please let me know if you find any more issues.
I will need to re-write some of the continuous queries I provided with init.iql
as well.
from rtlamr-collect.
Related Issues (20)
- Using 2 instances on rtlamr-collect HOT 1
- Error parsing encapsulated message HOT 4
- Runtime error due to no PowerOutageFlags in NetIDM meters HOT 3
- invalid memory address HOT 2
- main.go:427: json unmarshal: json: Unmarshal(nil) HOT 6
- 404 Error HOT 5
- InfluxDB 2 support HOT 3
- Error Message Install HOT 1
- Print collected data to stdout HOT 5
- stumped on "COLLECT_INFLUXDB_TOKEN" undefined HOT 4
- Diagnosing Influx issues HOT 2
- Invalid character error HOT 4
- Can you give us some info on how to set up influxdb? HOT 1
- Where to set envinronment variables (Using Windows) HOT 2
- Depeding on grafana zoom level, water meter gallons used is different HOT 2
- unexpected end of JSON input main.main invalid character C /f E M C E . HOT 3
- Unable to build / install HOT 2
- endpoint_type varying for R900 water meter
- Go install instructions fail
- Grafana Dashboards HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rtlamr-collect.