zwave-js / node-zwave-js

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

Missing device configuration: Philio PAN06 v1.0 and above, probably missing parameter 11 #3541

Closed gratjetost closed 2 years ago

gratjetost commented 2 years ago

Is your problem within Home Assistant (Core or Z-Wave JS Integration)?

YES, BUT a Home Assistant developer has told me to come here

Is your problem within ZWaveJS2MQTT?

YES, BUT a ZWaveJS2MQTT developer has told me to come here

Checklist

Describe the bug

What causes the bug? missing parameter 31 like mentioned in issue: #2290 but that was for the PAN04

What do you observe? switching my physical button don't send a state change.

What did you expect to happen? when i press a button, it should send the state to z-wave

Steps to reproduce the behavior:

  1. Click a switch on my wall.

Device information

Manufacturer: Philio Tech Model name: PAN06 Node ID in your network: ????

How are you using node-zwave-js?

Which branches or versions?

version: node-zwave-js branch: 8.4.1 zwavejs2mqtt branch: 5.8.0

Did you change anything?

no

If yes, what did you change?

No response

Did this work before?

Don't know, this is a new device

If yes, where did it work?

No response

Attach Driver Logfile

this is a copy paste from pressing the buttons through the Home Assistant GUI. switching my buttons on the wall don't show anything in the logging due to (probably) the missing parameter 31 in the config.

2021-10-17 19:08:12.642 INFO ZWAVE: Node 34: value updated: 37-0-currentValue false => true 2021-10-17 19:08:13.913 INFO ZWAVE: Node 34: value updated: 37-0-currentValue true => true 2021-10-17 19:08:15.411 INFO ZWAVE: Node 34: value updated: 37-0-currentValue true => false 2021-10-17 19:08:16.093 INFO ZWAVE: Node 34: value updated: 37-1-currentValue false => true 2021-10-17 19:08:16.670 INFO ZWAVE: Node 34: value updated: 37-0-currentValue false => true 2021-10-17 19:08:17.379 INFO ZWAVE: Node 34: value updated: 37-1-currentValue true => true 2021-10-17 19:08:17.619 INFO ZWAVE: Node 34: value updated: 37-1-currentValue true => false 2021-10-17 19:08:18.911 INFO ZWAVE: Node 34: value updated: 37-1-currentValue false => false 2021-10-17 19:08:19.139 INFO ZWAVE: Node 34: value updated: 37-0-currentValue true => false 2021-10-17 19:08:20.401 INFO ZWAVE: Node 34: value updated: 37-0-currentValue false => false

AlCalzone commented 2 years ago

due to (probably) the missing parameter 31 in the config.

We'll need to verify this, but AFAIK HomeAssistant doesn't let you set arbitrary config parameters. You can temporarily switch to zwavejs2mqtt though to do this - there should be a field where you enter param number, value size and value and set it.

gratjetost commented 2 years ago

I am running zwavejs2mqtt, but It doesn't do anything when I set parameter 31:

image

2021-10-17 22:57:59.434 INFO ZWAVE: Calling api sendCommand with args: [ { nodeId: 34, commandClass: 112 }, 'set', [ 31, 2, 1, length: 3 ],

]

It still is not sending anything when I switch my wall buttons

AlCalzone commented 2 years ago

Can you GET to verify that the device has the parameter and answers to it? And please make a driver log of that attempt, loglevel debug or silly and attach it here as a file.

Wouldn't hurt to also switch the button and log that with a driver log while you're at it.

gratjetost commented 2 years ago

Debug mode on silly: switching the wall buttons don;t show anything in the log: Get Command for parameter 31:

<2021-10-17 23:40:43.075 DEBUG SOCKET: Event ZWAVE_API emitted to SFl4GLzatNqy3a-CAABE
2021-10-17 23:40:43.077 INFO ZWAVE: Calling api sendCommand with args: [
{ nodeId: 34, commandClass: 112 },
'get',
[ 31, [length]: 1 ],
[length]: 3
]
2021-10-17T21:40:43.088Z SERIAL » 0x010a0013220370051f251b93 (12 bytes)
2021-10-17T21:40:43.090Z DRIVER » [Node 034] [REQ] [SendData]
│ transmit options: 0x25
│ callback id: 27
└─[ConfigurationCCGet]
parameter #: 31
2021-10-17T21:40:43.094Z SERIAL « [ACK] (0x06)
2021-10-17T21:40:43.100Z SERIAL « 0x0104011301e8 (6 bytes)
2021-10-17T21:40:43.101Z SERIAL » [ACK] (0x06)
2021-10-17T21:40:43.103Z DRIVER « [RES] [SendData]
was sent: true
2021-10-17T21:40:43.115Z SERIAL « 0x010700131b000002f2 (9 bytes)
2021-10-17T21:40:43.116Z SERIAL » [ACK] (0x06)
2021-10-17T21:40:43.120Z DRIVER « [REQ] [SendData]
callback id: 27
transmit status: OK
2021-10-17T21:40:53.132Z CNTRLR [Node 034] Timed out while waiting for a response from the node
2021-10-17 23:40:53.134 INFO ZWAVE: Success zwave api call sendCommand undefined>

Set Command:

<2021-10-17 23:42:16.276 DEBUG SOCKET: Event ZWAVE_API emitted to SFl4GLzatNqy3a-CAABE
2021-10-17 23:42:16.279 INFO ZWAVE: Calling api sendCommand with args: [
{ nodeId: 34, commandClass: 112 },
'set',
[ 31, 2, 1, [length]: 3 ],
[length]: 3
]
2021-10-17T21:42:16.290Z SERIAL » 0x010c0013220570041f01022520aa (14 bytes)
2021-10-17T21:42:16.292Z DRIVER » [Node 034] [REQ] [SendData]
│ transmit options: 0x25
│ callback id: 32
└─[ConfigurationCCSet]
parameter #: 31
reset to default: false
value size: 1
value format: SignedInteger
value: 2
2021-10-17T21:42:16.296Z SERIAL « [ACK] (0x06)
2021-10-17T21:42:16.301Z SERIAL « 0x0104011301e8 (6 bytes)
2021-10-17T21:42:16.303Z SERIAL » [ACK] (0x06)
2021-10-17T21:42:16.304Z DRIVER « [RES] [SendData]
was sent: true
2021-10-17T21:42:16.317Z SERIAL « 0x0107001320000002c9 (9 bytes)
2021-10-17T21:42:16.318Z SERIAL » [ACK] (0x06)
2021-10-17T21:42:16.321Z DRIVER « [REQ] [SendData]
callback id: 32
transmit status: OK
2021-10-17 23:42:16.329 INFO ZWAVE: Success zwave api call sendCommand undefined>

I also informed Philio, maybe they know something. I got more then 10 of these modules in my house.

AlCalzone commented 2 years ago

Doesn't look like the device supports the config parameter.

gratjetost commented 2 years ago

Looks like it. But still it's frustrating. These modules worked all on my old zipabox and athom Homey without problems. So it should be something in zwave js. Any options to check what the modules send when I press my wall switch?

AlCalzone commented 2 years ago

Any options to check what the modules send when I press my wall switch?

If there's nothing in the driver logs, they don't send anything. You could double check if their Lifeline association is set up.

gratjetost commented 2 years ago

How to check that? Im a noob in debugging. And beginner with HA. When I press my switch on the wall the debug says nothing. And again. Switching through HA GUI works fine. Only the physical buttons (wall buttons) don't send their status.

edit: found it! image

there were no groups added at all. Added the groups to node_id1:

image

and now when I switch the buttons in the wall, it shows this in the HA GUI.

But, shouldn't this be automatically done when you integrate the module to z-wave?

gratjetost commented 2 years ago

And another update. I added another PAN06 to my network. And it didn't work with the Groups added. I went back to check all settings and they were exactly the same as the first one. I noticed when I starting to get parameters (just started from 1 to 31) on my first PAN06 I had (maybe forgot) Set parameter 11 to 2. On the second PAN06, this setting was default 1. Put this parameter 11 on 2 and it was working.

But I cannot find what parameter 11 does. Non of the manuals I found describe it.

so this is my working solution:

image

image

AlCalzone commented 2 years ago

Are you actually getting meaningful reports with these associations? I remember something where the PAN04 wouldn't report which relay the updates were from so you had to react to changes of the 1+2 group reports and then poll each endpoint in response.

AlCalzone commented 2 years ago

shouldn't this be automatically done when you integrate the module to z-wave?

Yes, but something might have gone wrong. I also fixed a bug in 8.5.0 related to this, maybe that affected you.

gratjetost commented 2 years ago

I now fully tested it. switching my lights through the wall buttons give the status to the GUI. and switching through the GUI also sends the status back. So with that parameter 11 set to 2. everything works. manual pressing the wall buttons, and switching through the GUI/APP of HASS.

But still I cannot find any description what parameter 11 is and does. And If I remove the groups to endpoint 0, the wall buttons don't send any status. And If I set parameter 11 back to 1 also the wall buttons don't send any status. So to be sure, parameter 11 MUST be set to 2. and endpoint 0 must be set like in the pictures.

AlCalzone commented 2 years ago

Do you need all the associations? So relay 1, relay 2 and relay 1+2?

We should be able to automatically add those, but I'd like to verify that there aren't any unnecessary ones.

Also, can you re-interview your device and make a driver log of this?

gratjetost commented 2 years ago

If I remove relay 1+2 from the group. the parameter 1 is not functioning correctly. See manual: image

I Noticed when I re-interview. the parameter # 11 is not visible in the log.

AlCalzone commented 2 years ago

Making a driver log is described here. Make sure it is on loglevel debug or silly and attach it here as a file. Please don't copy/paste.

gratjetost commented 2 years ago

done, zwavejs_2021-10-19.log

but it doens't mention parameter 11.

and after the re-interview the parameter is gone from the configuration. and I have to do a get: image to get it back again.

gratjetost commented 2 years ago

now with a new log. first re-interview. after that GET parameter 11 from custom configuration.

Want to help, but I'm not a programmer ;) So I'll do my best

zwavejs_2021-10-19.log

AlCalzone commented 2 years ago

I need to add param 11 to the configuration file to prevent it from vanishing. I'm not sure I agree with you on this:

If I remove relay 1+2 from the group. the parameter 1 is not functioning correctly.

The parameter configures what happens when you send a command to the device (control relay 1/2/1+2).

The association groups control what the device reports to the controller when it is switched, so these shouldn't have to do anything with each other. Can you make another log where you do this:

  1. remove all association groups except the "relay 1+2" one
  2. switch relay 1 on and off, switch relay 2 on and off
  3. remove all association groups , add the "relay 1" one
  4. switch relay 1 on and off, switch relay 2 on and off
  5. remove all association groups , add the "relay 2" one
  6. switch relay 1 on and off, switch relay 2 on and off
gratjetost commented 2 years ago

Ill make it tomorrow for you. because it is getting very late here. When you integrate the PAN06 there are even 4 switches. But I disabled one because I think it is double. I'll re integrate my PAN06 tomorrow. so the original names are also in place.

AlCalzone commented 2 years ago

No stress, I won't be able to look at it before Thursday

gratjetost commented 2 years ago

@AlCalzone sorry for the delay, But got some medical issues that had to go first. So still no update for you. I'll try to make a proper logging and explanation this weekend.
ps. I also noticed with my fibaro FGS222 I also had to add group endpoints manual to get my wall switch reporting back the status..

gratjetost commented 2 years ago

OK here we go. I made a logging and an excel sheet. things I Noticed with parameter 11: when parameter 11 is set to 1 (default). I see strange behaviour. it switches 37-0 on and of regardless when relay 1 or 2 is switched on or off. But what is strange: switch relay 1 on. (turns on 37-0) switch relay 2 on: (37-0 is already on) switch relay 2 off: (37-0 turns off) the play around with parameter 11 set to 1 is in the second logging attached. for me best situation is Add all 3 groups, and put parameter 11 on 2. and then just disable 37-0 entity. because it is useless. 37-1 works how it should work in combination with the configuration parameter 1.

PAN06_status_test.xlsx zwavejs_2021-10-23.log zwavejs_2021-10-23_parameter11_switched.log

AlCalzone commented 2 years ago

So let me see if I got this correct.

gratjetost commented 2 years ago

@AlCalzone I still cannot find anywhere what exactly parameter 11 exactly does. Endpoint 0 and 1 can both switch both relays.

AlCalzone commented 2 years ago

Ok, then endpoint 0 duplicates endpoint 1 and (until we know better) we can assume that param 11 enables (2) or disables (1) endpoint reporting.

gratjetost commented 2 years ago

Yes I think so, parameter 11 set to 2 gives me the best results. and then I disabled 37-0, because it has no use if you compare it with 37-1.