Testing Z-Wave binding on openHAB-2

I’ll look again when I get home, but I wasn’t seeing any controllers at all last night

The controller can’t really not be there - it’s called “Z-Wave Serial Controller”.

I’ve updated the binding to add support for scene classes (SCENE_ACTIVATION and CENTRAL_SCENE). These classes will provide a value provided by the device - so the linked item will need to be a number, and if you want to use it in a rule, then you need to act on any change to its value…

Currently I’ve just updated the database for two devices - the POPP WALL-C, and the Nodon controller.

Feedback welcome (which you can interpret as ‘essential’).

Chris will you be adding the zwave.me wall controller later?

Hi Brett,
I’ve updated your access so you can edit the database - it would be great if you can upload the file and make any necessary changes.

Thanks
Chris

I think it’s already added - it just needs the channel and command class adding. If you’re sure about the command classes that it needs (ie that it supports), then you can add this, and then add a single channel with the name ‘scene_number’.

Unless it has the same problem as my Everspring ST812 flood sensor, which refuses to show up as anything but unknown, I guess it is not in the last nightly?
Or are you talking about editing the database? (I never got access to do editing there)

Cheers,
Micael

This should be in the database…

Yes - I meant editing the database… I’ve given you access :wink:

Yes, it is the database, but you suggested that I might be seeing an issue that someone else also had seen, where known devices where not recognized properly. I emailed you a log some days back.
I have tried to create this node manually now, to see if it works. Automatically it will not work. I guess I will know tomorrow.

I don’t expect you can create this manually since it won’t have the information it needs (eg the node number).

You’re right, I totally missed it. I even looked directly at the entry above it, as I have a slightly different model yale lock to try integrating soon.

In terms of usability, would it be possible to present just the serial controller first, since it has to be configured before any other device?

I found this tricky as well when getting mine setup. There’s a big list of items and it’s hard to find the one item, which is pretty much a required item. What would be even more useful is if that “thing” was automatically “discovered”.

I’m using Aeon MultiSensor 6 in the US so they report scale=1 with temperature in Fahrenheit. However, OpenHAB2 keeps converting back to Celcius (as mentioned in the logs). I have tried configuring the channel multiple times; select Fahrenheit click save which results in a log message stating the Thing has been updated (Thing ‘zwave:aeon_zw100_00_000:c6398348:node7’ has been updated.) but temperature continues to be updated in Celcius…

2016-03-10 19:11:19.962 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 7: Application Command Request (ALIVE:DONE)
2016-03-10 19:11:19.962 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 7: Incoming command class SENSOR_MULTILEVEL
2016-03-10 19:11:19.962 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 7: Received Sensor Multi Level Request
2016-03-10 19:11:19.962 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 7: Sensor Multi Level REPORT received
2016-03-10 19:11:19.962 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 7: Sensor Type = Temperature(1), Scale = 1
2016-03-10 19:11:19.963 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 7: Sensor Value = 73
2016-03-10 19:11:19.963 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 7: Got an event from Z-Wave network: ZWaveMultiLevelSensorValueEvent
2016-03-10 19:11:19.963 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 7: Got a value event from Z-Wave network, endpoint = 0, command class = SENSOR_MULTILEVEL, value = 73
2016-03-10 19:11:19.963 [DEBUG] [erter.ZWaveMultiLevelSensorConverter] - NODE 7: Sensor is reporting scale 1, requiring conversion to 0. Value is now 73.
2016-03-10 19:11:19.963 [DEBUG] [erter.ZWaveMultiLevelSensorConverter] - NODE 7: Sensor is reporting scale 1, requiring conversion to 0. Value is now 73.

When I try to add a Battery Level Channel to a thing, I get the following error when trying to save: Error saving item Battery Level HTTP 404 Not Found.

Shortly all devices other than the controller will be removed from the list, so that should make it easier :wink:

1 Like

That’s not really possible unfortunately since it would require scanning serial ports and writing stuff to ports to see if it gets a response. In the meantime, depending on what’s connected, it might screw up another device connected to a COM port by writing some data that this device objects to!

This is a known issue as it’s currently not possible to set the channel properties. The binding supports the conversion, but until this is fixed, there’s not much I can do - sorry.

This is a bug in HABmin. Type removing the ‘-’ from battery-level and it should work. I’ll add some code to remove this automatically…

Good point. I’d forgotten about setting the serial port. As you noted though, when you remove the other items I think the issue will be pretty mell mitigated.

@chris … hope this is something you find essential?

Nodon return values

Button 1 (Filled Circle)
Single Click = 10
Double Click = 13
Long Click = 11

Button 2 (Plus)
Single Click = 20
Double Click = 23
Long Click = 21

Button 3 (Emtpy Circle)
Single Click = 30
Double Click = 33
Long Click = 31

Button 4 (Minus)
Single Click = 40
Double Click = 43
Long Click = 41

Example Log for Button1 Single Click = Scene activation node from node 13: Scene 10, Time 0

19:51:13.459 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0A 00 04 00 0D 04 2B 01 0A 00 D8 
19:51:13.462 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
19:51:13.464 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 0A 00 04 00 0D 04 2B 01 0A 00 D8 
19:51:13.465 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 0A 00 04 00 0D 04 2B 01 0A 00 D8 
19:51:13.466 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, payload=00 0D 04 2B 01 0A 00 
19:51:13.467 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 13: Application Command Request (ALIVE:DONE)
19:51:13.467 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 13: Incoming command class SCENE_ACTIVATION
19:51:13.468 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - Received Scene Activation for Node ID = 13
19:51:13.470 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - Scene Activation Set
19:51:13.471 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - Scene activation node from node 13: Scene 10, Time 0
19:51:13.481 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveCommandClassValueEvent
19:51:13.482 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Sent message Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=13, payload=0D 02 84 08 
19:51:13.483 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Recv message Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, payload=00 0D 04 2B 01 0A 00 
19:51:13.484 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=ApplicationCommandHandler, expected=SendData, cancelled=false
19:51:13.781 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 08 00 04 00 0D 02 84 07 7F 
19:51:13.784 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
19:51:13.785 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 08 00 04 00 0D 02 84 07 7F 
19:51:13.786 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 08 00 04 00 0D 02 84 07 7F 
19:51:13.787 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, payload=00 0D 02 84 07 
19:51:13.788 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 13: Application Command Request (ALIVE:DONE)
19:51:13.788 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 13: Incoming command class WAKE_UP
19:51:13.789 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 13: Received Wake Up Request
19:51:13.789 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 13: Received WAKE_UP_NOTIFICATION
19:51:13.789 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 13: Is awake with 0 messages in the wake-up queue.
19:51:13.790 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveWakeUpEvent
19:51:13.791 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Sent message Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=13, payload=0D 02 84 08 
19:51:13.792 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Recv message Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, payload=00 0D 02 84 07 
19:51:13.792 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=ApplicationCommandHandler, expected=SendData, cancelled=true
19:51:14.790 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 13: No more messages, go back to sleep
19:51:14.791 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 13: Creating new message for application command WAKE_UP_NO_MORE_INFORMATION
19:51:14.792 [DEBUG] [ve.internal.protocol.ZWaveController] - Message queued. Queue length = 1. Queue=[Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=13, payload=0D 02 84 08 ]
19:51:14.792 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - Took message from queue for sending. Queue length = 0
19:51:14.793 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 13 0D 02 84 08 25 60 23 
19:51:14.795 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 13: Sending REQUEST Message = 01 09 00 13 0D 02 84 08 25 60 23 
19:51:14.811 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 04 01 13 01 E8 
19:51:14.814 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
19:51:14.817 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 04 01 13 01 E8 
19:51:14.820 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 04 01 13 01 E8 
19:51:14.821 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 07 00 13 60 00 00 02 89 
19:51:14.823 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=SendData[0x13], type=Response[0x01], priority=High, dest=255, payload=01 
19:51:14.825 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 13: Sent Data successfully placed on stack.
19:51:14.827 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
19:51:14.828 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 13 60 00 00 02 00 00 87 
19:51:14.830 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 09 00 13 60 00 00 02 00 00 87 
19:51:14.831 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=SendData[0x13], type=Request[0x00], priority=High, dest=255, payload=60 00 00 02 
19:51:14.833 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 13: SendData Request. CallBack ID = 96, Status = Transmission complete and ACK received(0)
19:51:14.834 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Sent message Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=13, payload=0D 02 84 08 
19:51:14.836 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Recv message Message: class=SendData[0x13], type=Request[0x00], priority=High, dest=255, payload=60 00 00 02 
19:51:14.837 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=SendData, expected=SendData, cancelled=false
19:51:14.838 [DEBUG] [.serialmessage.ZWaveCommandProcessor] -          transaction complete!
19:51:14.839 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveTransactionCompletedEvent
19:51:14.840 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 13: Went to sleep
19:51:14.841 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 13: Is sleeping
19:51:14.842 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - NODE 13: Response processed after 46ms/4892ms.