Comments (17)
This is currently working for me using https://github.com/simonyiszk/rtl_mus
Top right is rtlamr with default scm and bottom right is idm. Both are pointed to the 7373 port created by rtl_mus. I receive messages on both.
This is using a single receiver.
EDIT: Just realized this post was more about receiving both message types in one session. Saw multiplex mentioned.
I notice this does allow for both rtlamr instances to run at once (second just freezes if I try without rtl_mus)
from rtlamr.
@cypherstream I'm going to hide a few of your posts between your last one and this one to keep the issue on topic.
from rtlamr.
It's primarily a software limitation at the moment. It is theoretically possible but messy with the way things are structured now. It is also a matter of performance, you almost certainly won't be able to do this on something like a Raspberry Pi.
I'll do some investigation into how easily this could be done.
from rtlamr.
Indeed, my solution over in pull request #40 for scm+ism is taking ~100% of one CPU thread on the Odroid U3 where it is running--so close to 100% that now I wonder if it isn't dropping packets to boot. I didn't think to look at CPU usage when running in just scm or just ism mode, but I can see that splitting the work in the wrong place would double resource usage.
from rtlamr.
It's also a matter of coordinating the two receivers. One solution I've considered is building a multiplexed rtl_tcp clone in go, you get all the same features, and the ability to connect multiple clients who will all receive the same data.
from rtlamr.
rtl_mus is an excellent suggestion. I have a PV installation with production meter sending SCM and IDM packets and a net meter (consumption-production) sending SCM+ packets. rtl_mus lets me collect data from both of my meters and it lets me fire up additional rtlamr clients to explore other traffic without disrupting the first two.
from rtlamr.
I've just committed multi-protocol support to a new feature branch. If anyone would be willing to test this, let me know how it goes. You can install the new branch as follows:
git fetch
git checkout multiprotocol
go install -v .
rtlamr -msgtype=all
This feature will require some documentation before it can be included in the next release.
from rtlamr.
I tried a few options for multiprotocol and none work
c:\Go\bin\bin>rtlamr -msgtype=all
17:10:48.611308 main.go:55: invalid message type: "all"
c:\Go\bin\bin>rtlamr -msgtype=scm,scm+,idm
17:11:30.454886 main.go:55: invalid message type: "scm,scm+,idm"
c:\Go\bin\bin>rtlamr -msgtype=scm,idm
17:11:34.517369 main.go:55: invalid message type: "scm,idm"
c:\Go\bin\bin>rtlamr -msgtype= ?
17:12:47.464294 main.go:55: invalid message type: ""
This is a fresh install from running C:\go\bin>go get github.com/bemasher/rtlamr
Your command up there doesn't make sense on windows.
git fetch
fatal: not a git repository (or any of the parent directories): .git
from rtlamr.
from rtlamr.
Do you have any how to get the multiprotocol one compiled for Windows x64? I'm really struggling to figure out how to use go. I THINK I got GitHub Desktop to sync the rtlamr-multiprotocol but I have no idea where to put the files.
A step by step would help if you can't just upload the .exe somewhere.
from rtlamr.
@ekrohn netidm
is not included in all
because it is the same preamble/length/checksum as idm
, it only interprets the contents of the packet differently. The idea behind all
is that it should at least show messages from each protocol, and users should only be using it for discovery. Once they know what is being transmitted, they should select the appropriate message types based on their meter(s). This is the same reason r900bcd
isn't included in all
.
from rtlamr.
@cypherstream you may want to try using git clone instead of go get.
From a Git Bash terminal:
cd %GOPATH%/github.com/bemasher
rm -rf rtlamr
git clone https://github.com/bemasher/rtlamr.git
cd rtlamr
git checkout multiprotocol
go install -v .
from rtlamr.
Seems a bug in Windows 10 when you set the GOPATH env variable, it adds a semicolon at the end. If you edit the text of this variable and remove the semicolon, you finally stop getting errors on the GOPATH.
Though I'm not sure how to install it. I've used github desktop and changed to the multiprotocol branch. It dropped all of this in a folder in my documents. I copied this into my my documents\go folder (where i set my gopath). I'm getting this error now after running install -v
C:\Users\cypherstream\Documents\go>go install -v
go install: no install location for directory C:\Users\cypherstream\Documents\go outside GOPATH
For more details see: go help gopath
from rtlamr.
Thanks I think we crossed paths there.
Ok so I'm trying your method and the files downloaded but I think the real issue I'm having is with go.
C:\users\cypherstream\Documents\go\bemasher\rtlamr [multiprotocol ≡]> go install -v flags.go:31:2: cannot find package "github.com/bemasher/rtlamr/csv" in any of: C:\Go\src\github.com\bemasher\rtlamr\csv (from $GOROOT) C:\Users\cypherstream\Documents\go\src\github.com\bemasher\rtlamr\csv (from $GOPATH) main.go:35:2: cannot find package "github.com/bemasher/rtlamr/idm" in any of: C:\Go\src\github.com\bemasher\rtlamr\idm (from $GOROOT) C:\Users\cypherstream\Documents\go\src\github.com\bemasher\rtlamr\idm (from $GOPATH) main.go:36:2: cannot find package "github.com/bemasher/rtlamr/netidm" in any of: C:\Go\src\github.com\bemasher\rtlamr\netidm (from $GOROOT) C:\Users\cypherstream\Documents\go\src\github.com\bemasher\rtlamr\netidm (from $GOPATH) flags.go:32:2: cannot find package "github.com/bemasher/rtlamr/protocol" in any of: C:\Go\src\github.com\bemasher\rtlamr\protocol (from $GOROOT) C:\Users\cypherstream\Documents\go\src\github.com\bemasher\rtlamr\protocol (from $GOPATH) main.go:37:2: cannot find package "github.com/bemasher/rtlamr/r900" in any of: C:\Go\src\github.com\bemasher\rtlamr\r900 (from $GOROOT) C:\Users\cypherstream\Documents\go\src\github.com\bemasher\rtlamr\r900 (from $GOPATH) main.go:38:2: cannot find package "github.com/bemasher/rtlamr/r900bcd" in any of: C:\Go\src\github.com\bemasher\rtlamr\r900bcd (from $GOROOT) C:\Users\cypherstream\Documents\go\src\github.com\bemasher\rtlamr\r900bcd (from $GOPATH) main.go:39:2: cannot find package "github.com/bemasher/rtlamr/scm" in any of: C:\Go\src\github.com\bemasher\rtlamr\scm (from $GOROOT) C:\Users\cypherstream\Documents\go\src\github.com\bemasher\rtlamr\scm (from $GOPATH) main.go:40:2: cannot find package "github.com/bemasher/rtlamr/scmplus" in any of: C:\Go\src\github.com\bemasher\rtlamr\scmplus (from $GOROOT) C:\Users\cypherstream\Documents\go\src\github.com\bemasher\rtlamr\scmplus (from $GOPATH) main.go:33:2: cannot find package "github.com/bemasher/rtltcp" in any of: C:\Go\src\github.com\bemasher\rtltcp (from $GOROOT) C:\Users\cypherstream\Documents\go\src\github.com\bemasher\rtltcp (from $GOPATH)
from rtlamr.
Ok I relize its looking for a folder under go called src. So I copied the files that git downloaded into a new folder I created under Documents\go called src\github.com
Then it found everything but rtltcp, so I took the one that I had from my old working version and pasted it in the same patch Documents\go\bemasher\rtltcp.
Now it no longer complains about any files missing but gives me this.
go install: no install location for directory C:\Users\cypherstream\Documents\go\bemasher\rtlamr outside GOPATH For more details see: go help gopath
I'm getting closer. Going to keep banging away at it. Its been quite some time since I built the original, and I was on an earlier windows version back then. Last week I updated to Windows 10 1803 so not sure but I didn't have Git or Go at all. I had to install both of those today.
from rtlamr.
Ok never mind my last few posts. Quite a few people had that issue. Found my way through it from a post over at stackexchange. It was for unix based system but basically an environment variable called GOBIN needed to be set. I did this and then it was able to build properly.
I am now able to run it with the -msgtype=all so I can discover what type of protocols I am finding in our area. We've had remote read water and gas meters and just yesterday they put on an Itron OpenWay IP Mesh digital electric meter. I wanted the ability to search through all message types to determine which devices used which protocols.
from rtlamr.
Preliminary support has been added in release v0.9.0
from rtlamr.
Related Issues (20)
- Support meter type 19? HOT 5
- Stopped working after HAOS 8.5 / Core 2022.8.7 updates HOT 1
- scm+ HOT 1
- Tried in the UK on an Elster AS300P electricity meter HOT 2
- 100W+ Water ERT Module ERW-1300-402 HOT 1
- Integrating American Meter Company model AC-250 Gas Meter HOT 3
- RTL_TCP quits HOT 6
- ITRON 40G - Unable to find meter or no messages? HOT 1
- Poor R900 message reception except with msgtype=all HOT 1
- SCM+ Endpoint ID HOT 1
- r900Parser.filter / quantize takes over 80% of CPU HOT 3
- Is it possible to support G5R1s? HOT 1
- Leak fields HOT 1
- panic on startup HOT 5
- All fcc.io device links return "Internal Server Error - Read" HOT 2
- Notice: Support for X meter?
- R900 meters may need additional decoding? HOT 2
- Filter based on tamper flags or type HOT 1
- Would this work for water meters with UI-1203 protocol?
- Itron 500G stopped working HOT 2
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.