Giter Site home page Giter Site logo

Comments (17)

parkerlreed avatar parkerlreed commented on July 30, 2024 4

This is currently working for me using https://github.com/simonyiszk/rtl_mus

screenshot from 2017-09-27 05-04-54

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.

bemasher avatar bemasher commented on July 30, 2024 2

@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.

bemasher avatar bemasher commented on July 30, 2024

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.

jepler avatar jepler commented on July 30, 2024

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.

bemasher avatar bemasher commented on July 30, 2024

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.

ekrohn avatar ekrohn commented on July 30, 2024

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.

bemasher avatar bemasher commented on July 30, 2024

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.

cypherstream avatar cypherstream commented on July 30, 2024

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.

ekrohn avatar ekrohn commented on July 30, 2024

from rtlamr.

cypherstream avatar cypherstream commented on July 30, 2024

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.

bemasher avatar bemasher commented on July 30, 2024

@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.

bemasher avatar bemasher commented on July 30, 2024

@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.

cypherstream avatar cypherstream commented on July 30, 2024

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.

cypherstream avatar cypherstream commented on July 30, 2024

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.

cypherstream avatar cypherstream commented on July 30, 2024

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.

cypherstream avatar cypherstream commented on July 30, 2024

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.

bemasher avatar bemasher commented on July 30, 2024

Preliminary support has been added in release v0.9.0

from rtlamr.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.