zwave-js-server-python icon indicating copy to clipboard operation
zwave-js-server-python copied to clipboard

Feature Wishlist

Open raman325 opened this issue 3 years ago • 8 comments

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.

raman325 avatar Feb 13 '22 06:02 raman325

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

kdknigga avatar Jun 01 '22 21:06 kdknigga

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?

raman325 avatar Jun 02 '22 04:06 raman325

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.

kdknigga avatar Jun 02 '22 14:06 kdknigga

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

raman325 avatar Jun 03 '22 06:06 raman325

A complete, non-trivial yet short example would be helpful in my opinion.

bronger avatar Oct 24 '22 00:10 bronger

A complete, non-trivial yet short example would be helpful in my opinion.

What kind of example are you interested in?

raman325 avatar Nov 19 '22 06:11 raman325

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.

bronger avatar Nov 24 '22 15:11 bronger

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

raman325 avatar Nov 24 '22 16:11 raman325