Update or command rule not being triggered for WallMote

zwave
wallmote
Tags: #<Tag:0x00007fd3220293b8> #<Tag:0x00007fd322029278>

(Lorenzo Thurman) #1

I have an Aeon WallMote configured in PaperUI and now I’m trying to get it setup to control devices using rules, but my rules are never triggered when tapping any of the buttons.

I have four items in my items file. One for each button. Here is an example:
Number scene1 {channel=“zwave:device:8b948369:node5:scene_number1”}

Here is the corresponding rule:
rule "Scene 1"
when
Item scene1 received update
then
logInfo(“scene1”, “scene1”)
logInfo(“scene1”, scene1.state.toString)
end

I see nothing in the logs. I’ve tried using ‘received command’ as well, but nothing is logged. Any ideas? I’m using an Aeon z-stick, by the way.


(Lorenzo Thurman) #2

I got it resolved, I need to add an Item bound to the scene, not the individual scene#'s. So now its working, but I see I’m not getting updates for the battery, so now my question has changed. Does anyone know how to get battery updates working for the WallMote?


(Frank Thal) #3

I have the same problem, but I cannot see your solution:

Item:
Number Scene_Wallmote “Wallmote Scene Number” {channel=“zwave:device:51afa763:node25:scene_number”}

Rule:
rule “Wallmote”
when
Item Scene_Wallmote received update
then
logDebug(“Output”, "Wallmote Button : " + Scene_Wallmote)
end

In the log I can see the changing of the values when tapping the buttons. But the update does not trigger the rule. Could you explain your solution in detail ?


(Lorenzo Thurman) #4

What you have here appears correct as it matches my solution. But to explain, the WallMote has multiple channels that can be bound:

zwave:device:f21cd9de:node26:scene_number
zwave:device:f21cd9de:node26:scene_number1
zwave:device:f21cd9de:node26:scene_number2
zwave:device:f21cd9de:node26:scene_number3
zwave:device:f21cd9de:node26:scene_number4

I was initially using the channel for scene_number1, which was incorrect. the scene_number was the correct one to use. It appears that you are doing that as well.

On second thought, I see a syntax error in your log statement:

logDebug(“Output”, "Wallmote Button : " + Scene_Wallmote)

I’m not sure about the concatenation, that may be correct, but using simply Scene_Wallmote should produce an error in the logs when the rule is parsed. Try this instead:

logDebug(“Output”,  Scene_Wallmote.state.toString)

The logs can only output strings and Scene_Wallmote is an object. You need to get the state of the object and convert that state to a string. Hope this helps.


(Scott Rushworth) #5

Concatenation can be used here. Adding the .toString method is cleaner, but the Rules DSL will also “help”, and convert to strings for you, so this will work…

logDebug(“Output”, "Wallmote Button : " + Scene_Wallmote.state)

However, it is better form to use parameterization rather than concatenation…

logDebug(“Output”, "Wallmote Button : {}",Scene_Wallmote.state)