OH not responding to WallMoteQuad input

Hi, all. I got my Aeotec WallMoteQuad to connect to OpenHAB, but the Rules aren’t responding to input.

Here’s one part of what is showing up in the debug log when I push (in this case) Button 3.

NODE 7: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=3.0
NODE 7: Updating channel state zwave:device:f71779d3f4:node7:scene_number to 3.0 [DecimalType]

And I have some rules that I would expect to be triggered by those button pushes, but nothing happens:

Does anybody have any advice?

  1. What proof do you have that the rule is not running? Often times rules run with no noticeable impact if the logic is mixed up.

  2. Can we see the configuration for item(s) that you have linked to the zwave:device:f71779d3f4:node7:scene_number channel?

In general, with the aeotec remotes (wall motes, nano motes, etc.) it is sufficient to have the scene_number channel linked to a number item and then check that item for updates (updated instead of changed allows you to capture sequential pushes of the same button). Here’s one of my examples:

1 - I put a script in that writes a message to the log with the script is triggered. If I click “Run” it shows up.

2 - is this what you mean?

Excellent, just checking.

Yeah, that’ll do. You’ve connected your item to the scene_number1 channel. These devices are configured with a bunch of these scene endpoints and it gets a little murky. I’ve not had any success with the numbered scene channels (I think you may need a different configuration on the device itself to make use of them). You can get everything you need with just the general scene_number channel (see my image in the post above).

When you click any of the 4 buttons then that one channel will get a number in the format of “#.#”. The ones place is just 1 - 4 and tells you which button is sending the scene, and the tenths place is (if I recall) 0 = press released, 1 = press started, and 2 = long press being held. So a state of 2.1 means that someone just started a press in quadrant 2 and so forth.

An additional benefit here is that you only need one item for all the information coming from the device, not four different items.

Okay, thanks… I don’t see how to add a channel to a rule. When I click “Add trigger:thing event”, I get this dialog:


So I select the first item (blank) and I get this screen:

If I click on Channel > , I get a single item list with the first item being blank (similar to the blank on top of the first image).

Then I save the script and try to run it and I get this error:
HANDLER_INITIALIZING_ERROR
Getting handler ‘core.ChannelEventTrigger’ for module ‘8’ failed: null

Not sure if I was even going down the right path there…

Sorry, I see my response was somewhat ambiguous.

scene-number is not a trigger channel (so you can’t add it as a rule trigger). You still need to link an item to it, but instead of item1 … item4 linked to channels scene_number1scene_number4 you just need one single Number item linked to the general scene_number channel. That item will then receive updates as I described above of the #.# form and your rule trigger will be when that item receives an update.

Can you describe how I would go about doing that?

“Linking” is just the term for what you have already done with the other items. I don’t know if you did it via text files or from the channel page of your quadmote thing or the create thing from equipment feature of the semantic model.

As for the rule you have already shown a screenshot of a UI rule with several triggers (the "When"s that you build for a rule) in your original post. Many of them say When X changed but the fourth one down says When X was updated. It is that kind of trigger that you want for your rule. The nice thing is, if you create an item linked to the general scene_number channel of the quadmote thing, then you only need 1 trigger for the rule, not all of them.

Okay, thanks, this is helping. I’m getting somewhere. I linked the Scene Number to the channel:

Now this trigger works:

And then I have it execute this script:

var scenenum = ZW130WallMoteQuad_SceneNumber.state
switch (scenenum) {

      case 1.0 : {  //off
        ZW39DimmableSmartPlug.sendCommand(0)
      }
      case 2.0 : {   //lowest brightness
        ZW39DimmableSmartPlug.sendCommand(1)
      }
      case 3.0 : {   //medium brightness
        ZW39DimmableSmartPlug.sendCommand(33)
      }
      case 4.0 : {   //maximum brightness
        ZW39DimmableSmartPlug.sendCommand(100)
      }
}

Thanks for your help!

1 Like