-
Notifications
You must be signed in to change notification settings - Fork 242
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multiple Protocols per Invocation #39
Comments
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. |
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. |
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. |
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) |
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. |
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. |
This comment has been minimized.
This comment has been minimized.
cypherstream,
Odds are you built master, rather than the multiprotocol
branch. If so, when you run rtlamr -help you see:
-msgtype=scm: message type to receive: scm, scm+, idm, r900 and r900bcd
rather than the newer and longer:
-msgtype=scm: comma-separated list of message types to receive: all,
scm, scm+ , idm, netidm, r900 and r900bcd
Douglas,
Is there a reason -msgtype all does not include netidm? At least that's
what this go-ignorant programmer sees in main.go.
|
This comment has been minimized.
This comment has been minimized.
@ekrohn |
@cypherstream you may want to try using git clone instead of go get. From a Git Bash terminal:
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
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. |
@cypherstream I'm going to hide a few of your posts between your last one and this one to keep the issue on topic. |
Preliminary support has been added in release v0.9.0 |
I happen to have a supported electric meter and water meter, but it appears that one sends IDM messages and the other SCM messages. Is it only a software limitation that the two distinct message types can't be received and decoded by a single rtlamr instance?
Right now my workaround is to invoke it in single shot mode first for one message type and then the other, and that does work so woo
The text was updated successfully, but these errors were encountered: