zwave-js-server-python
zwave-js-server-python copied to clipboard
Feature Wishlist
If you have a feature request that's not on the roadmap, add a comment here!
Caveats:
- This is open to all but not a support avenue, and support requests will be hidden as off topic
- If you like an existing idea, add a +1 to that comment and do not add another one.
I fear it's out of scope, but I would love a non-async interface to this. I would love to be able to pass something a websocket URL, and get a bunch of objects that represent the controller and nodes with all of the async updating stuff going on behind the scenes.
EDIT: This feature was rejected for the reasons stated in the hidden comments below
I fear it's out of scope, but I would love a non-async interface to this. I would love to be able to pass something a websocket URL, and get a bunch of objects that represent the controller and nodes with all of the async updating stuff going on behind the scenes.
Yes this is out of scope, assuming it's even possible it would have to be rebuilt from the ground up, likely using multiple threads. Out of curiosity, what's your use case?
I'm trying to write a CLI for querying, configuring, and controlling devices. It would probably be less about turning lights on or off, and more about things like finding all of the sleeping devices and setting their wakeup times to 1 day or making sure all devices of make/model X have A, B, and C config values set the same.
For this type of application, async really just adds a bunch more headache than value, so I was hoping to avoid it. However, it looks like the way the websocket API is written (one big state dump on "start_listening" and then just a stream of events thereafter), it may be unavoidable unless I just want to beat the server to death with "start_listening"s.
Yeah the model works best when the client is long lived so that it can receive smaller state dumps after the initial dump. Separately, I am going to mark all of these comments as off topic to keep the request list clean
A complete, non-trivial yet short example would be helpful in my opinion.
A complete, non-trivial yet short example would be helpful in my opinion.
What kind of example are you interested in?
A minimal working program that e.g. polls one value of a certain device. Of course, the code would not run anywhere, but one could see the core structure that a program using this library must have.
gotcha, we'll take a working example from someone who is willing to contribute it but in the interim the zwave_js integration in Home Assistant is the best example. I recognize that if you aren't familiar with the HA code, it may be hard to parse: https://github.com/home-assistant/core/tree/dev/homeassistant/components/zwave_js but start with the Client and work your way from there