zwave-js / node-zwave-js

Z-Wave driver written entirely in JavaScript/TypeScript
https://zwave-js.github.io/node-zwave-js/
MIT License
750 stars 601 forks source link

Cannot set parameter Motion Sensor Sensitivity for device NAS-PD07Z #7131

Open darkfuncat opened 2 months ago

darkfuncat commented 2 months ago

Checklist

Deploy method

NPM

Z-Wave JS UI version

9.17.0

ZwaveJS version

13.2.0

Describe the bug

When I try to change parameter 5 "Motion Sensor Sensitivity " of device NAS-PD07Z I get "Unable to write ... : Fail" for any value other than 0 or 1. (theorically until 15 is good)

To Reproduce

try to change the value other than 0 or 1 (theorically until 15 is good)

Expected behavior

the value is changed without error

Additional context

I suspect that I have a wrong config file, with a wrong parameter type. My device is installed as device ID "0x0258 0x0010-0x0720" and I see there is another config file for the same device with a different ID "0x0258 0x0020-0x0720", perhaps I have the wrong config file ? How can I change the device manufacturer ID in zwave-js-ui ?

robertsLando commented 2 months ago

Sorry for late reply but I was on vacation

Please make a driver log, loglevel debug and attach it here as a file (drag & drop into the text field).

robertsLando commented 2 months ago

cc @AlCalzone

darkfuncat commented 2 months ago

Sorry for late reply but I was on vacation

Please make a driver log, loglevel debug and attach it here as a file (drag & drop into the text field).

NP hope your vacation was good =) These kind of logs are OK ? (I made them during my tests)

août 22 15:11:21 PMX-VM1 zwave-js-ui[2054296]: 2024-08-22 15:11:21.448 DEBUG SOCKET: Event ZWAVE_API emitted to zmWjLVJZeLITkkPbAAAD août 22 15:11:21 PMX-VM1 zwave-js-ui[2054296]: 2024-08-22 15:11:21.448 INFO Z-WAVE: Calling api writeValue with args: [ août 22 15:11:21 PMX-VM1 zwave-js-ui[2054296]: { nodeId: 43, commandClass: 112, endpoint: 0, property: 5 }, août 22 15:11:21 PMX-VM1 zwave-js-ui[2054296]: 2, août 22 15:11:21 PMX-VM1 zwave-js-ui[2054296]: null, août 22 15:11:21 PMX-VM1 zwave-js-ui[2054296]: [length]: 3 août 22 15:11:21 PMX-VM1 zwave-js-ui[2054296]: ] août 22 15:11:21 PMX-VM1 zwave-js-ui[2054296]: 2024-08-22 15:11:21.448 INFO Z-WAVE: Writing 2 to 43-112-0-5 août 22 15:11:21 PMX-VM1 zwave-js-ui[2054296]: 2024-08-22 15:11:21.475 DEBUG MQTT: Publishing to zwave/palier/palier-sensor/lastActive: { time: 1724332281475, value: 1724332268804 } with options { qos: 1, retain: true } août 22 15:11:21 PMX-VM1 zwave-js-ui[2054296]: 2024-08-22 15:11:21.482 ERROR Z-WAVE: Unable to write 2 on 112-0-5: Fail août 22 15:11:21 PMX-VM1 zwave-js-ui[2054296]: 2024-08-22 15:11:21.483 INFO Z-WAVE: Success zwave api call writeValue { status: 2 } août 22 15:11:21 PMX-VM1 zwave-js-ui[2054296]: 2024-08-22 15:11:21.726 DEBUG MQTT: Publishing to zwave/palier/palier-sensor/lastActive: { time: 1724332281725, value: 1724332281480 } with options { qos: 1, retain: true } août 22 15:11:22 PMX-VM1 zwave-js-ui[2054296]: 2024-08-22 15:11:22.507 DEBUG MQTT: Publishing to zwave/palier/palier-sensor/lastActive: { time: 1724332282507, value: 1724332281480 } with options { qos: 1, retain: true } août 22 15:11:22 PMX-VM1 zwave-js-ui[2054296]: 2024-08-22 15:11:22.513 DEBUG MQTT: Publishing to zwave/palier/palier-sensor/configuration/endpoint_0/Motion_Sensor_Sensitivity: { time: 1724332282512, value: 1 } with options { qos: 1, retain: true } août 22 15:11:22 PMX-VM1 zwave-js-ui[2054296]: 2024-08-22 15:11:22.513 INFO Z-WAVE: [Node 043] Value updated: 112-0-5 1 => 1 août 22 15:11:22 PMX-VM1 zwave-js-ui[2054296]: 2024-08-22 15:11:22.758 DEBUG MQTT: Publishing to zwave/palier/palier-sensor/lastActive: { time: 1724332282758, value: 1724332282511 } with options { qos: 1, retain: true }

Case : My item has ID 43, field ID 5, attempt to edit it with "2" value. Device ID is "0x0258 0x0010-0x0720" Interresting thing is when I try to update to "0" or "1" it works... like it is not the good field/data ? Thanks

robertsLando commented 2 months ago

@darkfuncat Nope those are logs from UI side, see link above for instructions to download the logs

darkfuncat commented 2 months ago

@darkfuncat Nope those are logs from UI side, see link above for instructions to download the logs

OK sorry, my first time ... Here it is and I tried to filter only my test (sending value "7").

logs2.txt

AlCalzone commented 2 months ago

It's entirely possible that the config file we have is wrong. Those Shenzhen Neo devices sometimes even ship with the wrong manual, so it doesn't get noticed until someone uses the paramters like you did.

Could you check whether the parameters mentioned in https://github.com/zwave-js/node-zwave-js/files/6758340/motion.5in1.manual.20200602.1.docx match your device? The manual is supposed to be for the 0x0020 variant, but maybe the parameters also fit for the 0x0010 one.

darkfuncat commented 2 months ago

OK I made some tests, this is very odd. I test field ID 5 named "Motion Sensor Sensitivity " in UI, but it interact exactly as the field "Binary Sensor Report Enable" in your documentation : value 0 OR 1, and device send actually binary report or not. This would indicate that you are right the device is the 0x0020 variant. BUT : I also test the field ID 13 "Motion Clear Time" and it works as intended for the variant 0x0010. (i test 30 sec and 15 sec value and it actualy works)

At the end, I dont know, it seems a mix of 0x0010 and 0x0020 variant. But the only parameter that interest me now is the "sensor sensitivity" and i cannot find it. (not 5 nor 6) Perhaps another variant ?

AlCalzone commented 2 months ago

Do you have a paper manual for that device by any chance?

darkfuncat commented 2 months ago

This would be of course too easy and not fun =) More seriously, no manual inside box. Is it possible to change the variant ID manually ? Actually zwjsui detect it automatically as "0x0010" but it would be interesting to test it as "0x0020" variant. (I have 2 of these devices, both with same problem)

AlCalzone commented 2 months ago

The solution would be to correct the config file for the 0x0010 variant, so you get offered the correct parameters for your device. Which is why I'm trying to figure out the correct parameters here.

I guess we can start by correcting parameter 5 to be Enable/Disable instead of the 0-15 range.

zwave-js-assistant[bot] commented 2 months ago

This issue has not seen any recent activity and was marked as "stale 💤". Closing for housekeeping purposes... 🧹

Feel free to reopen if the issue persists.

darkfuncat commented 1 month ago

The solution would be to correct the config file for the 0x0010 variant, so you get offered the correct parameters for your device. Which is why I'm trying to figure out the correct parameters here.

I guess we can start by correcting parameter 5 to be Enable/Disable instead of the 0-15 range.

Hi @AlCalzone I did not really understand what can I do to help ? I can do some tests if needed. Thanks