ZWave association with no updates

So I have a ZWave setup with a Aeon Labs DSA02203-ZWUS Z-Wave Z-Stick Series 2 USB Dongle. I was able to get it working, and in HABmin I got my HomeSeer dimmers and one GE Fan switch all added. Those devices that support associations (the HomeSeer dimmers) all automatically seemed to add themselves to the Group 1 association group, and associate themselves with Node 1 (the controller).

However, I don’t seem to be getting any updates in OpenHAB when I physically change the switches (the switches work, I’m just not getting the updates from physical interactions). The item command is SWITCH_MULTILEVEL, with no refresh intervals, etc., which seems to be what all the docs I’ve read say is needed. They show in HABmin as associated.

What am I doing wrong?

The following page has a few notes on these dimmers… if this rings a bell with anyone

Z-Wave Plus introduces a new process for scene activation – “Central Scene
Control”. Press and release the button, it will send a certain command to the central controller via the lifeline association group 1. This allows the controller to react to key pressed, key released and key held down.

  • Press and release the top button, “Scene 001 Key Pressed” preset by the Gateway will be turned ON.
  • Press the top button twice, “Scene 001 Key Pressed Twice” preset by the Gateway will be turned ON.
  • Press the top button 3 times, “Scene 001 Key Pressed 3 Times” preset by the Gateway will be turned ON.
  • Press and release the bottom button, “Scene 002 Key Pressed” preset by the Gateway will be turned ON.
  • Press the bottom button twice, “Scene 002 Key Pressed Twice” preset by the Gateway will be turned ON.
  • Press the bottom button 3 times, “Scene 002 Key Pressed 3 Times” preset by the Gateway will be turned ON.

Please provide a DEBUG log, and also your item definitions. If device is sending CENTRAL_SCENE, and your items are looking for SWITCH_MULTILEVEL, then it won’t work ;).

Below is my device configuration

Dimmer  Light_DiningRoom        "Dining Room [%s %%]"   {zwave="2:command=SWITCH_MULTILEVEL"}
Dimmer  Light_FamilyRoom        "Family Room [%s %%]"   {zwave="3:command=SWITCH_MULTILEVEL"}
Dimmer  Light_MasterBedroom     "Master Bedroom [%s %%]"        {zwave="4:command=SWITCH_MULTILEVEL"}
Dimmer  Fan_MasterBedroom       "Master Bedroom [%s %%]"        {zwave="6:command=SWITCH_MULTILEVEL,refresh_interval=600"}

And heres a log that I think would be relevant. This popped up immediately on hitting the switch:

2016-08-20 15:16:42.554 [DEBUG] [eController$ZWaveReceiveThread:1530]- Receive Message = 01 19 00 49 84 04 13 04 11 01 5E 86 72 5A 85 59 73 26 27 70 2C 2B 5B 7A EF 5B 94
2016-08-20 15:16:42.558 [DEBUG] [eController$ZWaveReceiveThread:1446]- Receive queue ADD: Length=1
2016-08-20 15:16:42.558 [DEBUG] [b.z.i.protocol.ZWaveController:1194]- Receive queue TAKE: Length=0
2016-08-20 15:16:42.561 [DEBUG] [o.b.z.i.protocol.SerialMessage:243 ]- Assembled message buffer = 01 19 00 49 84 04 13 04 11 01 5E 86 72 5A 85 59 73 26 27 70 2C 2B 5B 7A EF 5B 94
2016-08-20 15:16:42.563 [DEBUG] [b.z.i.protocol.ZWaveController:1195]- Process Message = 01 19 00 49 84 04 13 04 11 01 5E 86 72 5A 85 59 73 26 27 70 2C 2B 5B 7A EF 5B 94
2016-08-20 15:16:42.565 [DEBUG] [b.z.i.protocol.ZWaveController:194 ]- Message: class = ApplicationUpdate (0x49), type = Request (0x00), payload = 84 04 13 04 11 01 5E 86 72 5A 85 59 73 26 27 70 2C 2B 5B 7A EF 5B
2016-08-20 15:16:42.571 [DEBUG] [.ApplicationUpdateMessageClass:49  ]- NODE 4: Application update request. Node information received.
2016-08-20 15:16:42.573 [DEBUG] [b.z.i.protocol.ZWaveController:648 ]- Notifying event listeners: ZWaveNodeInfoEvent
2016-08-20 15:16:42.574 [DEBUG] [.z.internal.ZWaveActiveBinding:449 ]- ZwaveIncomingEvent
2016-08-20 15:16:42.575 [DEBUG] [.z.i.p.s.ZWaveCommandProcessor:66  ]- Sent message Message: class = SendData (0x13), type = Request (0x00), payload = 06 02 26 02
2016-08-20 15:16:42.577 [DEBUG] [.z.i.p.s.ZWaveCommandProcessor:67  ]- Recv message Message: class = ApplicationUpdate (0x49), type = Request (0x00), payload = 84 04 13 04 11 01 5E 86 72 5A 85 59 73 26 27 70 2C 2B 5B 7A EF 5B
2016-08-20 15:16:42.578 [DEBUG] [.z.i.p.s.ZWaveCommandProcessor:68  ]- Checking transaction complete: class=ApplicationUpdate, expected=ApplicationCommandHandler, cancelled=false
2016-08-20 15:16:42.580 [DEBUG] [eController$ZWaveReceiveThread:1530]- Receive Message = 01 0B 00 04 00 04 05 5B 03 1B 00 01 B3
2016-08-20 15:16:42.582 [DEBUG] [eController$ZWaveReceiveThread:1446]- Receive queue ADD: Length=1
2016-08-20 15:16:42.586 [DEBUG] [b.z.i.protocol.ZWaveController:1194]- Receive queue TAKE: Length=0
2016-08-20 15:16:42.588 [DEBUG] [o.b.z.i.protocol.SerialMessage:243 ]- Assembled message buffer = 01 0B 00 04 00 04 05 5B 03 1B 00 01 B3
2016-08-20 15:16:42.589 [DEBUG] [b.z.i.protocol.ZWaveController:1195]- Process Message = 01 0B 00 04 00 04 05 5B 03 1B 00 01 B3
2016-08-20 15:16:42.590 [DEBUG] [b.z.i.protocol.ZWaveController:194 ]- Message: class = ApplicationCommandHandler (0x04), type = Request (0x00), payload = 00 04 05 5B 03 1B 00 01
2016-08-20 15:16:42.591 [DEBUG] [ApplicationCommandMessageClass:40  ]- NODE 4: Application Command Request (ALIVE:DONE)
2016-08-20 15:16:42.592 [DEBUG] [ApplicationCommandMessageClass:58  ]- NODE 4: Incoming command class CENTRAL_SCENE
2016-08-20 15:16:42.593 [DEBUG] [.ZWaveCentralSceneCommandClass:77  ]- NODE 4: Received central scene command (v1)
2016-08-20 15:16:42.595 [DEBUG] [.ZWaveCentralSceneCommandClass:84  ]- NODE 4: Received scene 1 ; key 0
2016-08-20 15:16:42.596 [DEBUG] [b.z.i.protocol.ZWaveController:648 ]- Notifying event listeners: ZWaveCommandClassValueEvent
2016-08-20 15:16:42.597 [DEBUG] [.z.internal.ZWaveActiveBinding:449 ]- ZwaveIncomingEvent
2016-08-20 15:16:42.598 [DEBUG] [.z.internal.ZWaveActiveBinding:466 ]- NODE 4: Got a value event from Z-Wave network, endpoint = 0, command class = CENTRAL_SCENE, value = {key=0, scene=1}
2016-08-20 15:16:42.599 [DEBUG] [ApplicationCommandMessageClass:89  ]- Transaction not completed: node address inconsistent.

Check the distance between your device and your controller. Looks like it is too far away …

It’s 5 feet away.

I saw @chris saying a while ago too close is also bad …

5cm would be bad, 5ft will be ok… You just need to be far enough away that the transmitter from one device doesn’t overload the receiver on the other…

Plus like i said, the switch works fine. I can trigger changes from OpenHab and all that. It just isn’t updating in OpenHab when I physically change the switch.

Ok, so it’s using the CENTRAL_SCENE class. I think you want to use something like -:

Dimmer  Light_DiningRoom        "Dining Room [%s %%]"   {zwave="2:command=CENTRAL_SCENE,scene=1,key=0"}

You can omit the key part if you want in which case your item will be given the value of the key. If you use key= then the value will be 1 or 0 depending on whether or not the scene has this key value.

This is normal - it simply means that the received frame didn’t complete a transaction. You’ll see this whenever a frame is received that the controller didn’t request.

Thanks for clarifying. I almost never switch to debug mode because the zwave binding is working without any errors …

I’m new to this, so I’m not even sure what a scene is so bear with me…

That didn’t work. These are dimmers if that makes a difference, not binary switches. These switches support single, double, or triple taps, as well as holding for setting dimmer level.

I saw a binding in the examples for a Fibaro Universal Dimmer which looks like it might be similar, but I have no idea how to determine what values to use here. Is there better documentation you might point me to on scenes and how to configure them correctly? Do I need to make an item for each of these scenes and use rules to do something when I receive them?

I’m not completely sure - normally a scene is a ‘value’ - ie not a dimmer type value, but a fixed value (eg - run scene number 1). So, maybe this device can be configured to send either central scene or multilevel switch - I’m not sure and you’d need to look in the device manual to see if there’s any configuration.

Take a look in the log - the line that I showed you above tells you what the device is sending.

Hopefully you don’t need a rule if you can get it to send the multilevel switch class - otherwise it might get messy :frowning:.

I have a feeling its going to get Messy then. I imagine if this were configurable the options would show up in HABmin? Because all I have is an orientation settings and a couple around changing stepping levels for the dimmer.

Even on the HomeSeer site it says:

IMPORTANT: HS-WD100+ and HS-WS100 provide instant status feedback and double-tap, triple-tap, press & hold functionality using the Z-Wave “central scene” command class. The feature is supported by all HomeSeer systems, including HS3 software and HomeTroller controllers. If you’re using another brand of controller, be sure to check with that manufacturer to see if the central scene features are supported.

Any idea where I should start? I’m a developer by trade, so I’m not afraid of getting my hands dirty here, just have no idea where to start.

What are the devices you are trying to use? Is it just the WD100 (you said HomeSeer and GE devices in the top message, but didn’t say what ones).

HomeSeer dimmer: HS-WD100+
The GE isn’t relevant. It doesn’t support association.

I do see that just doing refresh_interval to something like once every 10 seconds works fine. Obviously that kind of defeats the purpose of buying such nice switches though, as I specifically was looking for ones that did associations. It will work for now, but if I can make this work in a better way, I totally want to.

My guess at how this works is that the device can’t be used to send multilevel_switch commands - it will only receive them - that’s a complete guess based on the following statement in the manual -:

HomeSeer users: this switch creates 3 devices; a root device, central scene device and control device.
The root device may be used to manage Z-Wave settings.
The central scene device may be used as a trigger for events.
The control device will will send on / off / dim commands to the switch.

This seems to indicate the central scene gets sent from the switch, but dimming (ie multilevel_switch) only gets sent TO the switch.

Which would jive with what I’m seeing. I can send updates, I just don’t get any back. Does that mean that I need to do something like the following:

  1. Create an item that handles receive of a CENTRAL_SCENE command
  2. Write a rule that takes this and sets the status for the device in OpenHab

I mean sounds like if I want to use the double, triple tap stuff I’d need to do that anyway, so Id be fine with doing this for the general reporting too. Would the above actually cause a loop though, or is there something I can do in an OpenHab rule that sets the status of an item without actually SENDING that status to the thing again?

Any idea how I would identify which CENTRAL_SCENE message is the one I want, and how I get a number (percentage) out of it for such a setup?

My guess is that you can’t get a percentage from the central_scene class - it is normally only used to send event notifications so that you can trigger a ‘scene’ (which is normally a preset configuration of lights etc).

The only thing I can suggest is to check the log and see what comes out - if the information doesn’t come from the device, we’re a bit lost unfortunately.

If you want to get the status of the switch, you could try adding the refresh_interval=15 command to the item definition for the multilevel_switch command and see if that works - it might give you the value, it just won’t be immediately updated when you flick the switch.

Hi, Chris,

I’m not seeing the desired results when a scene command is generated by an HS-WS100+.

Configuration:
OH1.8.2, HABmin 1.4.0.201504061533, org.openhab.binding.zwave 1.9.0.201612010210

Device: HomeSeer HS-WS100+ (node 15)

Here’s the log for a typical single tap of the device (grep’d for only NODE 15):

2016-12-03 15:24:09.081 [DEBUG] [ApplicationCommandMessageClass:41  ]- NODE 15: Application Command Request (ALIVE:DONE)
2016-12-03 15:24:09.082 [DEBUG] [ApplicationCommandMessageClass:146 ]- NODE 15: Incoming command class CENTRAL_SCENE (0x5b)
2016-12-03 15:24:09.083 [DEBUG] [.ZWaveCentralSceneCommandClass:77  ]- NODE 15: Received central scene command (v1)
2016-12-03 15:24:09.085 [DEBUG] [.ZWaveCentralSceneCommandClass:84  ]- NODE 15: Received scene 1 ; key 0
2016-12-03 15:24:09.086 [DEBUG] [b.z.i.protocol.ZWaveController:668 ]- NODE 15: Notifying event listeners: ZWaveCommandClassValueEvent
2016-12-03 15:24:09.088 [DEBUG] [.z.internal.ZWaveActiveBinding:472 ]- NODE 15: Got a value event from Z-Wave network, endpoint = 0, command class = CENTRAL_SCENE, value = {key=0, scene=1}

And here’s what happens when I tap twice on the “ON” side of the pad:

2016-12-03 15:29:24.978 [DEBUG] [ApplicationCommandMessageClass:41  ]- NODE 15: Application Command Request (ALIVE:DONE)
2016-12-03 15:29:24.980 [DEBUG] [ApplicationCommandMessageClass:146 ]- NODE 15: Incoming command class CENTRAL_SCENE (0x5b)
2016-12-03 15:29:24.982 [DEBUG] [.ZWaveCentralSceneCommandClass:77  ]- NODE 15: Received central scene command (v1)
2016-12-03 15:29:24.984 [DEBUG] [.ZWaveCentralSceneCommandClass:84  ]- NODE 15: Received scene 1 ; key 3
2016-12-03 15:29:24.985 [DEBUG] [b.z.i.protocol.ZWaveController:668 ]- NODE 15: Notifying event listeners: ZWaveCommandClassValueEvent
2016-12-03 15:29:24.988 [DEBUG] [.z.internal.ZWaveActiveBinding:472 ]- NODE 15: Got a value event from Z-Wave network, endpoint = 0, command class = CENTRAL_SCENE, value = {key=3, scene=1}

So, thought I, I’ll use what I’ve seen elsewhere and try to capture some of these events with items that looks like this:

Switch  GarageLights    "Garage Lights"            {zwave="15:command=SWITCH_BINARY" }
Switch  GarageLights_S1	"Garage Lights_Scene 1T"   {zwave="15:command=CENTRAL_SCENE,scene=1"}
Switch  GarageLights_S2	"Garage Lights_Scene 2T"   {zwave="15:command=CENTRAL_SCENE,scene=2"}
Switch  GarageLights_S3	"Garage Lights_Scene 3T"   {zwave="15:command=CENTRAL_SCENE,scene=3"}
Switch  GarageLights_S4	"Garage Lights_Scene 3T"   {zwave="15:command=CENTRAL_SCENE,scene=4"}

(I actually had “key” values in there before, but tried simplifying when that didn’t work, either.)

I made a rule that looks like this:

rule "Garage Lights Switch Update"
	when 
		Item GarageLights_S1 received update or
		Item GarageLights_S2 received update or
		Item GarageLights_S3 received update or
		Item GarageLights_S4 received update or
		Item GarageLights received update
	then
		logInfo("GLSM", "Got an update from the Garage Lights switch.")
end

I get a log entry when I command GarageLights on from the sitemap, and it occasionally fires off on its own when the network burps or something (not sure what causes it), but I never can trigger this rule with the CLASS_SCENE things like I thought I should be able to based on what was described above.

Any ideas what’s not quite right here?

Thanks,
Bill