Unable to rotate venetian blinds via rules (Z-wave Qubino flush shutter)

Hi,

I hope this is the right forum for this type of question. I am a newcomer to Openhab2 looking for some basic help. I have installed Qubino Flush Shutter (Z-wave) items in my house for my venetian blinds and I am trying to control them via Openhab2. While UP/STOP/DOWN works via the UI, but I can not get the rotation of the blinds to work reliably. I am using the following items config:

Group:Rollershutter:OR(UP,DOWN) Blinds “All Blinds”

Rollershutter Blinds_SF “Blinds SF” (Blinds) {channel=“zwave:device:2ddbb6c4:node21:blinds_control”}

I tried to set up rules that I can activate that do the following:

Blinds?.members.forEach [theBlinds|
sendCommand(theBlinds,UP)
createTimer(now.plusMillis(1500)) [| sendCommand(theBlinds,STOP) ]
]

as well as

Blinds?.members.forEach [theBlinds|
sendCommand(theBlinds,UP)
Thread.sleep(1500)
sendCommand(theBlinds,STOP)
]

Both do not work reliably if there are many blinds in the group “Blinds”, as that sometimes the blinds move up for a fraction of a second, sometimes for several seconds. It looks to me as if this is related to network delays or delays of the Qubino items to react to commands. I was looking around to find some alternative solution without timers, but couldn’t find any examples via google or search on this site. Any help would be super !

Hmm, I don’t know the Qubino shutters, but I assume they should work the same as do my Fibaros.
That is, you have two command channels to address up/down and lamella tilt separately. This could be two different endpoints, or with the Fibaro, it’s two different commands.
Fibaros provide a MANUFACTURER_PROPRIETARY command for tilting (in addition to the standard SWITCH_MULTILEVEL for up/down). This second channel you need to assign to another item, like this (sorry, OH1 syntax - in OH2, you would add another channel):

Rollershutter EG_Wohnen_Jalousie_links "Raffstore links [%d %%]"        <rollershutter> (EG_Wohnen,Jalousien) { zwave="113:command=switch_multilevel,invert_state=false"}
Dimmer EG_Wohnen_Jalousie_links_Lamellen "Lamellen links [%d %%]"       <rollershutter> (EG_Wohnen,Jalousien)   { zwave="113:command=MANUFACTURER_PROPRIETARY,type=lamella" }

Check out your node’s .XML file for the endpoints and commands it is offering and see if you can address those.

Thanks for this, this is VERY useful. I didn’t realise so far that one could do things like this with 2 bindings to 1 item.

I do find in the Qubino doc COMMAND_CLASS_MANUFACTURER_SPECIFIC_V2. My problem is that I am lacking the knowledge how to translate this to commands I could send to it. Again, probably my lack of experience on how this works internally. I don’t understand how those XML files (see cdjackson item list) translates into commands I could use, and no doc I could find with a simple beginners how-to.

I just realise, the Qubino does have 3 endpoints and endpoint 2 according to the doc is only active if the node is in venetian mode (!). I should probably try that one and see what happens.

Btw, the doc is here: http://qubino.com/download/1041/

Well, it’s 1 binding with 1 device with 1 endpoint and 2 items that both point to the same endpoint.
Or in OH2, it’s 1 binding, 1 thing with 2 channels and 2 items pointing to those two channels.

[quote=“Elsing, post:3, topic:16690”]I do find in the Qubino doc COMMAND_CLASS_MANUFACTURER_SPECIFIC_V2. My problem is that I am lacking the knowledge how to translate this to commands I could send to it. Again, probably my lack of experience on how this works internally. I don’t understand how those XML files (see cdjackson item list) translates into commands I could use, and no doc I could find with a simple beginners how-to.
[/quote]
It’s not difficult. The .xml file stores what the device it actually telling you it believes it can do. @chris’ item list is basically just constructed using these files as a source as pilot users send them in.
In OH1, it’s located in /var/lib/openhab/zwave and called nodeXX.xml (XX = zwave ID). Not sure if that changed in OH2, search the Wiki if you don’t find it there. You’ll find sections <supportedCommandClasses> and - if the device has more than one - <endpoints>, and the entries inside those are what you’re looking for.
I have a Qubino device (ZMNHDA dimmer, not the shutter) showing
<commandClass>MANUFACTURER_SPECIFIC</commandClass>, and that’s right the string to use.

Pretty likely, yes. Try that.
If it does not work out of the box, you might need to ex- and re-include the device after setting it to venetian mode, or at least you need to make it re-send its endpoint data (‘reinitialize node’ in habmin, or press the button). That should result in an update of your node.xml

Very interesting, see, I am learning (slowly). Your help is much appreciated !!!

For my Qubino I find no 2 endpoints (like for a double light switch in comparison) in those xml files (they are at /userdata/zwave now in OH2). Instead, I find:

  <multiLevelSwitchCommandClass>
    <version>3</version>
    <instances>1</instances>
    <versionSupported>3</versionSupported>
    <switchTypePrimary>DOWN_UP</switchTypePrimary>
    <switchTypeSecondary>DOWN_UP</switchTypeSecondary>
    <isGetSupported>true</isGetSupported>
  </multiLevelSwitchCommandClass>

so there are 2 up/down switch types. What I see this is the only hint for how to use them. Do you know how to address the secondary one ? It seems I could send up/down commends to the secondary switch ? Or am I misreading this ?

PS: I did exclude the node after changing it to venetian, which significantly changed the behaviour of using the wall-push-buttons up/down, so I think this is a feature, not a bug, that there is no additional endpoints.

There needs to be an endpoint #2. The Qubino manual is clearly stating this. Redo ex-inclusion, re-initialize more than once via habmin. Note you mustn’t reset the device (guess that would reset it to non-venetian default mode, that’s why).
Can you tilt the blinds with the local pushbuttons as described in the manual ?

Please can you provide the XML and a debug log that logs the data during initialisation. I believe that this issue is the same as another user and Qubino are making use (it seems) of a new feature in ZWave that’s not supported by OH (yet!). It would be good to get a few logs to confirm this if possible.

Ok, will try to produce this.

I have the Qubino Flush Shutters running with Openhab 1.8.1

My items file looks like this:

Dimmer Rollo_EG_Wohnzimmer "Außenrollo [%d %%]"                 (EG_Wohnzimmer)    {zwave="27:command=switch_multilevel,invert_state=true,invert_percent=false"}
Dimmer Rollo_EG_Wohnzimmer_Lam "Außenrollo Lam [%d %%]"                 (EG_Wohnzimmer)    {zwave="27:2:command=switch_multilevel,invert_state=false,invert_percent=false"}

Perhaps this might help you?

Cheers,
Martin

I suspect there’s a newer version that isn’t reporting endpoints in the same way - hence why these endpoints are not showing up in the XML (this will be the same for OH1 and OH2).

Unfortunately mixed success with producing useful logfile output or a new xml file. I can hardly get HABmin to give me the option to reinitialise the Qubino Flush Shutter nodes under HABmin->configuration->things->nodeXX->tools(advance). For the Qubino Flush 2 Relays it is there all the time. I normally did “remove device from controller” to reinit it as said in the doc, so I never payed attention to this before.

After some waiting I got the option in HABmin for node 5, so I did this after setting “log:set DEBUG org.openhab.binding.zwave”. The first output I am getting for node 5 is:

2016-11-14 22:22:07.505 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 5: Configuration update received
2016-11-14 22:22:07.515 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 5: Configuration update action_reinit to -232323.0
2016-11-14 22:22:07.515 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 5: Re-initialising node!
2016-11-14 22:22:07.528 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveInitializationStateEvent
2016-11-14 22:22:07.528 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 5: Got an event from Z-Wave network: ZWaveInitializationStateEvent
2016-11-14 22:22:07.531 [DEBUG] [ve.internal.protocol.ZWaveController] - NODE 5: Init node thread start
2016-11-14 22:22:07.541 [DEBUG] [l.initialization.ZWaveNodeSerializer] - NODE 5: Serializing from file /Users/markus/HausSteuerung/Openhab2/openhab/userdata/zw\
ave/node5.xml
2016-11-14 22:22:07.541 [DEBUG] [l.initialization.ZWaveNodeSerializer] - NODE 5: Error serializing from file: file does not exist.
2016-11-14 22:22:07.542 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Starting initialisation from EMPTYNODE
2016-11-14 22:22:07.542 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - EMPTYNODE: queue length(0), free to send(true)
2016-11-14 22:22:07.542 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: loop - EMPTYNODE try 1: stageAdvanced(false)
2016-11-14 22:22:07.542 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: Initialisation starting
2016-11-14 22:22:07.542 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - advancing to PROTOINFO
2016-11-14 22:22:07.542 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveInitializationStateEvent
2016-11-14 22:22:07.542 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 5: Got an event from Z-Wave network: ZWaveInitializationStateEvent
2016-11-14 22:22:07.576 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: loop - PROTOINFO try 0: stageAdvanced(true)
2016-11-14 22:22:07.576 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: PROTOINFO - send IdentifyNode
2016-11-14 22:22:07.576 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - queued packet. Queue length is 1
2016-11-14 22:22:07.576 [DEBUG] [ve.internal.protocol.ZWaveController] - Message queued. Queue length = 142. Queue={}
2016-11-14 22:22:07.576 [DEBUG] [ve.internal.protocol.ZWaveController] - NODE 5: Init node thread finished

I can confirm that the original “node5_orig.xml” file (attached the backup copy) was deleted when I re-initialised the node. Later, after tons of other (seemingly unrelated debug output) I find:

2016-11-14 22:22:12.111 [DEBUG] [ve.internal.protocol.ZWaveController] - Message queued. Queue length = 144. Queue={}
2016-11-14 22:22:12.111 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - Took message from queue for sending. Queue length = 143
2016-11-14 22:22:12.111 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 04 00 41 05 BF
2016-11-14 22:22:12.111 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 255: Sending REQUEST Message = 01 04 00 41 05 BF
2016-11-14 22:22:12.113 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 09 01 41 D3 9C 01 04 11 07 EA
2016-11-14 22:22:12.114 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2016-11-14 22:22:12.114 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 01 41 D3 9C 01 04 11 07 EA
2016-11-14 22:22:12.114 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 09 01 41 D3 9C 01 04 11 07 EA
2016-11-14 22:22:12.114 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=IdentifyNode[0x41], type=Response[0x01], priority=High, dest=255, callback=0, payload=D3 9C 01 04 11 07
2016-11-14 22:22:12.114 [DEBUG] [rialmessage.IdentifyNodeMessageClass] - NODE 5: ProtocolInfo
2016-11-14 22:22:12.114 [DEBUG] [rialmessage.IdentifyNodeMessageClass] - NODE 5: Listening = true
2016-11-14 22:22:12.114 [DEBUG] [rialmessage.IdentifyNodeMessageClass] - NODE 5: Routing = true
2016-11-14 22:22:12.114 [DEBUG] [rialmessage.IdentifyNodeMessageClass] - NODE 5: Beaming = true
2016-11-14 22:22:12.115 [DEBUG] [rialmessage.IdentifyNodeMessageClass] - NODE 5: Version = 4
2016-11-14 22:22:12.115 [DEBUG] [rialmessage.IdentifyNodeMessageClass] - NODE 5: FLIRS = false
2016-11-14 22:22:12.115 [DEBUG] [rialmessage.IdentifyNodeMessageClass] - NODE 5: Security = false
2016-11-14 22:22:12.115 [DEBUG] [rialmessage.IdentifyNodeMessageClass] - NODE 5: Max Baud = 40000
2016-11-14 22:22:12.115 [DEBUG] [rialmessage.IdentifyNodeMessageClass] - NODE 5: Basic = Routing Slave
2016-11-14 22:22:12.115 [DEBUG] [rialmessage.IdentifyNodeMessageClass] - NODE 5: Generic = Multi-Level Switch
2016-11-14 22:22:12.115 [DEBUG] [rialmessage.IdentifyNodeMessageClass] - NODE 5: Specific = Motor Control Class C
2016-11-14 22:22:12.115 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Creating new instance of command class NO_OPERATION
2016-11-14 22:22:12.115 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Command class NO_OPERATION, endpoint null created
2016-11-14 22:22:12.115 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Version = 1, version set. Enabling extra functionality.
2016-11-14 22:22:12.116 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 5: Adding command class NO_OPERATION to the list of supported command classes.
2016-11-14 22:22:12.116 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Creating new instance of command class BASIC
2016-11-14 22:22:12.116 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Command class BASIC, endpoint null created
2016-11-14 22:22:12.116 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 5: Adding command class BASIC to the list of supported command classes.
2016-11-14 22:22:12.116 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Creating new instance of command class SWITCH_MULTILEVEL
2016-11-14 22:22:12.116 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Command class SWITCH_MULTILEVEL, endpoint null created
2016-11-14 22:22:12.116 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 5: Adding command class SWITCH_MULTILEVEL to the list of supported command classes.
2016-11-14 22:22:12.116 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Creating new instance of command class SWITCH_BINARY
2016-11-14 22:22:12.116 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Command class SWITCH_BINARY, endpoint null created
2016-11-14 22:22:12.116 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 5: Adding command class SWITCH_BINARY to the list of supported command classes.
2016-11-14 22:22:12.116 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Creating new instance of command class VERSION
2016-11-14 22:22:12.116 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Command class VERSION, endpoint null created
2016-11-14 22:22:12.116 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 5: Adding command class VERSION to the list of supported command classes.
2016-11-14 22:22:12.116 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Creating new instance of command class MANUFACTURER_SPECIFIC
2016-11-14 22:22:12.116 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Command class MANUFACTURER_SPECIFIC, endpoint null created
2016-11-14 22:22:12.116 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 5: Adding command class MANUFACTURER_SPECIFIC to the list of supported command classes.
2016-11-14 22:22:12.117 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=IdentifyNode[0x41], type=Request[0x00], priority=High, dest=255, callback=\
0, payload=05
2016-11-14 22:22:12.117 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=IdentifyNode[0x41], type=Response[0x01], priority=High, dest=255, callback\
=0, payload=D3 9C 01 04 11 07
2016-11-14 22:22:12.117 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=IdentifyNode, callback id=0, expected=IdentifyNode, cancelled=false        transaction c\
omplete!
2016-11-14 22:22:12.117 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveTransactionCompletedEvent
2016-11-14 22:22:12.117 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - PROTOINFO: Transaction complete (IdentifyNode:Request) success(true)
2016-11-14 22:22:12.117 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - checking initialisation queue. Queue size 1.
2016-11-14 22:22:12.117 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - message removed from queue. Queue size 0.
2016-11-14 22:22:12.117 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - PROTOINFO: queue length(0), free to send(true)
2016-11-14 22:22:12.118 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Initialisation retry timer started 5000
2016-11-14 22:22:12.118 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: loop - PROTOINFO try 1: stageAdvanced(false)
2016-11-14 22:22:12.118 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - advancing to INIT_NEIGHBORS
2016-11-14 22:22:12.118 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveInitializationStateEvent
2016-11-14 22:22:12.118 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 5: Got an event from Z-Wave network: ZWaveInitializationStateEvent
2016-11-14 22:22:12.118 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: loop - INIT_NEIGHBORS try 0: stageAdvanced(true)
2016-11-14 22:22:12.118 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: INIT_NEIGHBORS - send RoutingInfo
2016-11-14 22:22:12.119 [DEBUG] [almessage.GetRoutingInfoMessageClass] - NODE 5: Request routing info
2016-11-14 22:22:12.119 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - queued packet. Queue length is 1
2016-11-14 22:22:12.119 [DEBUG] [ve.internal.protocol.ZWaveController] - Message queued. Queue length = 144. Queue={}
2016-11-14 22:22:12.119 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - NODE 255: Response processed after 7ms/4381ms.
2016-11-14 22:22:12.119 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - Took message from queue for sending. Queue length = 143
2016-11-14 22:22:12.120 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 07 00 80 05 00 00 03 7E
2016-11-14 22:22:12.120 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 255: Sending REQUEST Message = 01 07 00 80 05 00 00 03 7E
2016-11-14 22:22:12.123 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 20 01 80 EF E3 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6A
2016-11-14 22:22:12.123 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2016-11-14 22:22:12.124 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 20 01 80 EF E3 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\
 6A
2016-11-14 22:22:12.124 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 20 01 80 EF E3 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6A
2016-11-14 22:22:12.124 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=GetRoutingInfo[0x80], type=Response[0x01], priority=High, dest=255, callback=0, payload=EF E3 38 00 00 00 00 0\
0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2016-11-14 22:22:12.124 [DEBUG] [almessage.GetRoutingInfoMessageClass] - NODE 5: Got NodeRoutingInfo request.
2016-11-14 22:22:12.125 [DEBUG] [almessage.GetRoutingInfoMessageClass] - NODE 5: Neighbor nodes: 1 2 3 4 6 7 8 9 10 14 15 16 20 21 22
2016-11-14 22:22:12.125 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveNetworkEvent
2016-11-14 22:22:12.125 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 5: Got an event from Z-Wave network: ZWaveNetworkEvent
2016-11-14 22:22:12.125 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=GetRoutingInfo[0x80], type=Request[0x00], priority=High, dest=255, callbac\
k=0, payload=05 00 00 03
2016-11-14 22:22:12.125 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=GetRoutingInfo[0x80], type=Response[0x01], priority=High, dest=255, callba\
ck=0, payload=EF E3 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2016-11-14 22:22:12.125 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=GetRoutingInfo, callback id=0, expected=GetRoutingInfo, cancelled=false        transacti\
on complete!
2016-11-14 22:22:12.125 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveTransactionCompletedEvent
2016-11-14 22:22:12.125 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - INIT_NEIGHBORS: Transaction complete (GetRoutingInfo:Request) success(true)
2016-11-14 22:22:12.125 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - checking initialisation queue. Queue size 1.
2016-11-14 22:22:12.125 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - message removed from queue. Queue size 0.
2016-11-14 22:22:12.125 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - INIT_NEIGHBORS: queue length(0), free to send(true)
2016-11-14 22:22:12.125 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Initialisation retry timer started 5000
2016-11-14 22:22:12.125 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: loop - INIT_NEIGHBORS try 1: stageAdvanced(false)
2016-11-14 22:22:12.125 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - advancing to FAILED_CHECK
2016-11-14 22:22:12.125 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveInitializationStateEvent
2016-11-14 22:22:12.125 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 5: Got an event from Z-Wave network: ZWaveInitializationStateEvent
2016-11-14 22:22:12.126 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: loop - FAILED_CHECK try 0: stageAdvanced(true)
2016-11-14 22:22:12.126 [DEBUG] [rialmessage.IsFailedNodeMessageClass] - NODE 5: Requesting IsFailedNode status from controller.
2016-11-14 22:22:12.126 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - queued packet. Queue length is 1
2016-11-14 22:22:12.126 [DEBUG] [ve.internal.protocol.ZWaveController] - Message queued. Queue length = 144. Queue={}
2016-11-14 22:22:12.127 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - NODE 255: Response processed after 7ms/4381ms.
2016-11-14 22:22:12.127 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - Took message from queue for sending. Queue length = 143
2016-11-14 22:22:12.127 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 04 00 62 05 9C
2016-11-14 22:22:12.127 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 255: Sending REQUEST Message = 01 04 00 62 05 9C
2016-11-14 22:22:12.128 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 04 01 62 00 98
2016-11-14 22:22:12.129 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2016-11-14 22:22:12.129 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 04 01 62 00 98
2016-11-14 22:22:12.129 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 04 01 62 00 98
2016-11-14 22:22:12.129 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=IsFailedNodeID[0x62], type=Response[0x01], priority=High, dest=255, callback=0, payload=00
2016-11-14 22:22:12.129 [DEBUG] [rialmessage.IsFailedNodeMessageClass] - NODE 5: Is currently marked as healthy by the controller
2016-11-14 22:22:12.129 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=IsFailedNodeID[0x62], type=Request[0x00], priority=High, dest=255, callbac\
k=0, payload=05
2016-11-14 22:22:12.129 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=IsFailedNodeID[0x62], type=Response[0x01], priority=High, dest=255, callba\
ck=0, payload=00
2016-11-14 22:22:12.129 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=IsFailedNodeID, callback id=0, expected=IsFailedNodeID, cancelled=false        transacti\
on complete!
2016-11-14 22:22:12.129 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveTransactionCompletedEvent
2016-11-14 22:22:12.130 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - FAILED_CHECK: Transaction complete (IsFailedNodeID:Request) success(true)
2016-11-14 22:22:12.130 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - checking initialisation queue. Queue size 1.
2016-11-14 22:22:12.130 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - message removed from queue. Queue size 0.
2016-11-14 22:22:12.130 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - FAILED_CHECK: queue length(0), free to send(true)
2016-11-14 22:22:12.130 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Initialisation retry timer started 5000
2016-11-14 22:22:12.130 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: loop - FAILED_CHECK try 1: stageAdvanced(false)
2016-11-14 22:22:12.130 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - advancing to WAIT
2016-11-14 22:22:12.130 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveInitializationStateEvent
2016-11-14 22:22:12.130 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 5: Got an event from Z-Wave network: ZWaveInitializationStateEvent
2016-11-14 22:22:12.130 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: loop - WAIT try 0: stageAdvanced(true)
2016-11-14 22:22:12.130 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: WAIT - Listening=true, FrequentlyListening=false
2016-11-14 22:22:12.130 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: WAIT - Advancing
2016-11-14 22:22:12.130 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - advancing to PING
2016-11-14 22:22:12.130 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveInitializationStateEvent
2016-11-14 22:22:12.130 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 5: Got an event from Z-Wave network: ZWaveInitializationStateEvent
2016-11-14 22:22:12.130 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: loop - PING try 0: stageAdvanced(true)
2016-11-14 22:22:12.131 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer: PING - send NoOperation
2016-11-14 22:22:12.131 [DEBUG] [ndclass.ZWaveNoOperationCommandClass] - NODE 5: Creating new message for command No Operation
2016-11-14 22:22:12.132 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Node advancer - queued packet. Queue length is 1
2016-11-14 22:22:12.132 [DEBUG] [ve.internal.protocol.ZWaveController] - Message queued. Queue length = 144. Queue={}
2016-11-14 22:22:12.132 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - NODE 255: Response processed after 5ms/4381ms.

I did not get the node5.xml file recreated, unfortunately. At the end I tried restarting the system after some waiting. No success either.

Not sure how helpful this is, I am still struggling with the system which keeps me from producing seemingly more useful information.

Hi Martin, thanks for this, I’ll give it a try. Not sure it will work, see discussion with Chris Jackson.

Here the node5.xml file. Sorry for the long post, no icon to attach a file ?

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>MULTILEVEL_SWITCH</genericDeviceClass>
    <specificDeviceClass>MOTOR_CONTROL_CLASS_C</specificDeviceClass>
  </deviceClass>
  <homeId>0xe449d1cf</homeId>
  <nodeId>5</nodeId>
  <version>4</version>
  <manufacturer>0x159</manufacturer>
  <deviceId>0x52</deviceId>
  <deviceType>0x3</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <nodeInformationFrame>
    <commandClass>ZWAVE_PLUS_INFO</commandClass>
    <commandClass>VERSION</commandClass>
    <commandClass>MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>DEVICE_RESET_LOCALLY</commandClass>
    <commandClass>POWERLEVEL</commandClass>
    <commandClass>BASIC</commandClass>
    <commandClass>SWITCH_ALL</commandClass>
    <commandClass>SWITCH_BINARY</commandClass>
    <commandClass>SWITCH_MULTILEVEL</commandClass>
    <commandClass>METER</commandClass>
    <commandClass>MULTI_INSTANCE</commandClass>
    <commandClass>ASSOCIATION</commandClass>
    <commandClass>MULTI_INSTANCE_ASSOCIATION</commandClass>
    <commandClass>ASSOCIATION_GROUP_INFO</commandClass>
    <commandClass>CONFIGURATION</commandClass>
  </nodeInformationFrame>
  <supportedCommandClasses>
    <entry>
      <commandClass>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </noOperationCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_MULTILEVEL</commandClass>
      <multiLevelSwitchCommandClass>
        <version>3</version>
        <instances>1</instances>
        <versionSupported>3</versionSupported>
        <switchTypePrimary>DOWN_UP</switchTypePrimary>
        <switchTypeSecondary>DOWN_UP</switchTypeSecondary>
        <isGetSupported>true</isGetSupported>
      </multiLevelSwitchCommandClass>
    </entry>
    <entry>
      <commandClass>CONFIGURATION</commandClass>
      <configurationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <configParameters>
          <entry>
            <int>71</int>
            <configurationParameter>
              <index>71</index>
              <size>1</size>
              <value>1</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>40</int>
            <configurationParameter>
              <index>40</index>
              <size>1</size>
              <value>1</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>72</int>
            <configurationParameter>
              <index>72</index>
              <size>2</size>
              <value>150</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>73</int>
            <configurationParameter>
              <index>73</index>
              <size>1</size>
              <value>2</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>10</int>
            <configurationParameter>
              <index>10</index>
              <size>2</size>
              <value>255</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>42</int>
            <configurationParameter>
              <index>42</index>
              <size>2</size>
              <value>300</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>74</int>
            <configurationParameter>
              <index>74</index>
              <size>2</size>
              <value>0</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>76</int>
            <configurationParameter>
              <index>76</index>
              <size>1</size>
              <value>10</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>78</int>
            <configurationParameter>
              <index>78</index>
              <size>1</size>
              <value>0</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>110</int>
            <configurationParameter>
              <index>110</index>
              <size>2</size>
              <value>32536</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>80</int>
            <configurationParameter>
              <index>80</index>
              <size>1</size>
              <value>1</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>85</int>
            <configurationParameter>
              <index>85</index>
              <size>1</size>
              <value>0</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>120</int>
            <configurationParameter>
              <index>120</index>
              <size>1</size>
              <value>5</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>90</int>
            <configurationParameter>
              <index>90</index>
              <size>1</size>
              <value>5</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
        </configParameters>
      </configurationCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_BINARY</commandClass>
      <binarySwitchCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </binarySwitchCommandClass>
    </entry>
    <entry>
      <commandClass>ZWAVE_PLUS_INFO</commandClass>
      <zwavePlusCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <zwPlusVersion>1</zwPlusVersion>
        <zwPlusRole>5</zwPlusRole>
        <zwPlusNodeType>0</zwPlusNodeType>
        <zwPlusDeviceType>0x1a00</zwPlusDeviceType>
        <zwPlusInstallerIcon>0x1a00</zwPlusInstallerIcon>
        <isGetSupported>true</isGetSupported>
      </zwavePlusCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <libraryType>LIB_SLAVE_ENHANCED</libraryType>
        <protocolVersion>4.5</protocolVersion>
        <applicationVersion>1.1</applicationVersion>
        <hardwareVersion>1</hardwareVersion>
      </versionCommandClass>
    </entry>
    <entry>
      <commandClass>BASIC</commandClass>
      <basicCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION_GROUP_INFO</commandClass>
      <associationGroupInfoCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <autoSubscribeGroups>
          <int>1</int>
        </autoSubscribeGroups>
      </associationGroupInfoCommandClass>
    </entry>
    <entry>
      <commandClass>DEVICE_RESET_LOCALLY</commandClass>
      <deviceResetLocallyCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </deviceResetLocallyCommandClass>
    </entry>
    <entry>
      <commandClass>MULTI_INSTANCE_ASSOCIATION</commandClass>
      <multiAssociationCommandClass>
        <version>3</version>
        <instances>1</instances>
        <versionSupported>3</versionSupported>
        <maxGroups>9</maxGroups>
      </multiAssociationCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_ALL</commandClass>
      <switchAllCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
        <mode>SWITCH_ALL_INCLUDE_ON_OFF</mode>
      </switchAllCommandClass>
    </entry>
    <entry>
      <commandClass>METER</commandClass>
      <meterCommandClass>
        <version>3</version>
        <instances>1</instances>
        <versionSupported>4</versionSupported>
        <meterType>ELECTRIC</meterType>
        <meterScales>
          <meterScale>E_KWh</meterScale>
          <meterScale>E_W</meterScale>
        </meterScales>
        <canReset>true</canReset>
        <isGetSupported>true</isGetSupported>
        <isSupportRequestSupported>true</isSupportRequestSupported>
      </meterCommandClass>
    </entry>
    <entry>
      <commandClass>POWERLEVEL</commandClass>
      <powerLevelCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <powerLevel>0</powerLevel>
        <powerTimeout>0</powerTimeout>
      </powerLevelCommandClass>
    </entry>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <initSerialNumber>false</initSerialNumber>
        <deviceManufacturer>345</deviceManufacturer>
        <deviceType>3</deviceType>
        <deviceId>82</deviceId>
      </manufacturerSpecificCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION</commandClass>
      <associationCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <maxGroups>9</maxGroups>
      </associationCommandClass>
    </entry>
  </supportedCommandClasses>
  <securedCommandClasses/>
  <associationGroups>
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <name>lifeline</name>
        <profile>0x1</profile>
        <commands>
          <commandClass>SWITCH_MULTILEVEL</commandClass>
          <commandClass>METER</commandClass>
          <commandClass>DEVICE_RESET_LOCALLY</commandClass>
        </commands>
        <associations>
          <associationMember>
            <node>1</node>
            <endpoint>0</endpoint>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
    <entry>
      <int>2</int>
      <associationGroup>
        <index>2</index>
        <name>BasicSetKey1</name>
        <profile>0x2001</profile>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>3</int>
      <associationGroup>
        <index>3</index>
        <name>BasicSetKey2</name>
        <profile>0x2002</profile>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>4</int>
      <associationGroup>
        <index>4</index>
        <name>BasicSetMovement</name>
        <profile>0x2000</profile>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>5</int>
      <associationGroup>
        <index>5</index>
        <name>BasicSetEndPosition</name>
        <profile>0x2000</profile>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>6</int>
      <associationGroup>
        <index>6</index>
        <name>BasicSetAtClosed</name>
        <profile>0x2000</profile>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>7</int>
      <associationGroup>
        <index>7</index>
        <name>MultilevelSetRollerPositi</name>
        <profile>0x2000</profile>
        <commands>
          <commandClass>SWITCH_MULTILEVEL</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>8</int>
      <associationGroup>
        <index>8</index>
        <name>MultilevelSetTiltPosition</name>
        <profile>0x2000</profile>
        <commands>
          <commandClass>SWITCH_MULTILEVEL</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>9</int>
      <associationGroup>
        <index>9</index>
        <name>TemperatureReport</name>
        <profile>0x3101</profile>
        <commands/>
        <associations/>
      </associationGroup>
    </entry>
  </associationGroups>
  <nodeNeighbors>
    <int>1</int>
    <int>2</int>
    <int>3</int>
    <int>4</int>
    <int>6</int>
    <int>7</int>
    <int>8</int>
    <int>9</int>
    <int>10</int>
    <int>14</int>
    <int>15</int>
    <int>16</int>
    <int>20</int>
    <int>21</int>
    <int>22</int>
  </nodeNeighbors>
  <lastSent>2016-11-14 21:18:02.800 UTC</lastSent>
  <lastReceived>2016-11-14 21:18:03.34 UTC</lastReceived>
</node>

Thanks @Elsing - unfortunately the logfile isn’t so useful but the XML is…

@vossivossi if you don’t mind could you also post your XML for your version of this device.

Also, can you both confirm the actual device you have - eg ZMNHCD (I just want to be sure we’re all talking about the same versions of the devices ;))?

Thanks.

1 Like

Sorry, of course, my version is ZMNHCD1 (H1S5P1) if I read the sticker correctly.

Btw, I couldn’t make the 2nd switch_mutlilevel channel to work on OH2, no surprise I suppose.

Hi @chris , I presume you don’t have the new Qubino nodes at hand for any further testing and debugging of the issue. Let me know if I could help trying out some development patches (within my knowledge of the system), if you think this would be helpful.

Thanks - there is still some things to work out yet.

You can also refer here -:

My device also is the ZMNHCD Flush Shutter, but it may indeed be an older version as I already purchased it in March 2016. In Habmin it states

Manfacturer ID: 159
Device ID: 52
Device Type: 3
Version: 4
Protocol Version: 4.5
Application Version: 1.1

I think the Application Version is actually the important one, and my device is 1.1. The most recent manual on the Qubino website is for Version 1.4

However the manual’s content has not changed that much.

@Elsing: Did you change parameter 71 and excluded and reincluded the module from/to your Z-Wave network? This is important as otherwise the Endpoint 2 is not available. Here the text from the manual:

Endpoint 2 is supported by the module only when the parameter no. 71 is set to the value
1 and the module is excluded and re-included into the network.

I do not understand why Qubino is choosing this complicated way but after I finally did it my Endpoint 2 showed up.

Best regards,
Martin

@vossivossi can you post your XML for this node? What I’m interested in is if the MULTI_INSTANCE class is listed in the XML or the NIF. From the logs and XML I’ve seen, it’s not announced in the NIF which means the binding doesn’t interrogate it. Maybe changing this parameter will also cause this class to be announced…

I do agree that these devices seem to be overly complicated…