zwave-js / zwave-js-ui

Full featured Z-Wave Control Panel UI and MQTT gateway. Built using Nodejs, and Vue/Vuetify
https://zwave-js.github.io/zwave-js-ui
MIT License
988 stars 206 forks source link

Move values polling configurations to a dedicated table instead of gateway values #3251

Open AlCalzone opened 1 year ago

AlCalzone commented 1 year ago

Just having the labels can make it hard to know which is which for more capable devices. grafik

robertsLando commented 1 year ago

Values added there will never have a nodeID, they work for all devices with same deviceId (same manufacturer and product ids). I can add the CC name BTW

AlCalzone commented 1 year ago

And what if there are two different firmware revisions of a device with completely different values? And what about endpoints with the same values?

And writeonly values should be filtered out, you can't poll this: grafik

robertsLando commented 1 year ago

I cannot filter out the polling values as that devices values table isn't only used for polling but in general for all device specific customization like also mqtt topics, custom parse send/receive function and more. What I can add anyway is a field to manually specify the nodeIds that value config should be applied to (instead of all) or maybe the opposite is better, like excludeNodes array prop to say what nodes shouldn't use that. What do you think?

AlCalzone commented 1 year ago

I'm thinking polling may need a separate configuration. IMO the current approach is a bit too generic. https://github.com/zwave-js/node-zwave-js/issues/6229 alone is a good example. My plug needs no polling at all, or just for 1 value. The older variants may need polling for 3-4 values.

This could be done very similar to the current dialog:

Edit: If I understand correctly, the current table uses the fingerprint of the device to identify the different types. Problem with that is that some devices are available with different fingerprints, but behave the same, so you'd end up configuring them twice.

robertsLando commented 1 year ago

Yeah the fingerprint for me is the deviceId:

https://github.com/zwave-js/zwave-js-ui/blob/c8386982417dea662be7448965adcb3d3bcbd494/lib/ZwaveClient.ts#L6146-L6150

Changing how polling works would be a breaking change BTW.

Otherwise, about the polling of write only values, I could disable polling or show an error when the selected value is a write only value

AlCalzone commented 1 year ago

Changing how polling works would be a breaking change BTW

Can we phase it out?

robertsLando commented 1 year ago

Can we phase it out?

Sure! I will change the title of the issue so

github-actions[bot] commented 1 year ago

This issue is stale because it has been open 90 days with no activity. Remove the stale label or comment or this will be closed in 5 days. To ignore this issue entirely you can add the no-stale label