I have recently purchased the above button. Generally it works fine but I have the following issue
I want to control the lights on a fibaro 2 relay switch. So essentially I want control one relay and not both. Since the button works by adding zwave nodes into association groups this is not going to cut it.
Has anyone found a way to make it work without switching on / off both relays at the same time ?
I was afraid this is going to be the solution. i have played with scenes. The problem with this is that it is not as intuitive as using the association groups. The users (apart from me) will have to know to use different scenes in order to switch the lights on and off
With association groups you could just push the button once to switch them on and once again to switch the off like the traditional bistable switch.
You can achieve the same functionality with a simple rule also.
You just add a check for the current status of the switch and send the opposite command to it when pressing once the Fib Button.
The problem with this is that once you press the button one time, the moment you press it again there is no update sent to openhab. Only when the scene number changes (when you tap the button twice for example) does the update being sent to openhab
Are you sure? This would be strange for a scene controller to do this so I would suggest to double check the logs in debug mode. Maybe it’s a bad implementation by Fibaro, but it would be quite a nasty error I think.
It looks like the binding is sending out the update, and the event message is probably right since the value didn’t change. But OH can send events and trigger rules when there’s a change, or when there’s any update, so my first question would be what your rule looks like that you’re using to trigger the actions?
Not sure if I can use a ‘received update’ on my rules in this case because I need to specify to which value this has been changed. I simple ‘received update’ will apply to all scenes and I want to only focus on 1.0
I just tried a pretty simple rule and it did not work
when
Item ButtonScene changed to 1.0
then
if(Bathlights.state==OFF) {
sendCommand(BathLights, ON)
}
else {
sendCommand(BathLights, OFF)
}
Pressing the button once constantly does nothing
When I use the one below, it works
when
Item ButtonScene changed to 1.0
then
sendCommand(BathLights, ON)
sendCommand(Manual_Override, ON)
end
rule "Switch Off Lights with Fibaro Button"
when
Item ButtonScene changed to 1.2
then
sendCommand(BathLights, OFF)
sendCommand(Manual_Override, OFF)
end
Your current rule won’t work properly since your trigger will not fire (there will be no change to the state from another value to 1.0 if you press the button only once constantly)
A solution would be to trigger on received update and then within the logic of the rule handle the scene values
Something like:
rule "ButtonScene"
when
Item ButtonScene received update
then
if (ButtonScene.state == 1.0) {
if(Bathlights.state==OFF) {
BathLights.sendCommand(ON)
}
else {
BathLights.sendCommand(OFF)
}
}
[...]
warning: I didn’t test this out and I am not so good in writing nested if statements
I did not know that even though the eventlogs do not display anything, the ‘received update’ is still triggered !
I did some testing while inserting extra logging in several parts of the code and I can confirm that this is the case. Tested this and it works!
I don’t understand the behavior. If I press the button shortly it won’t fire an event. If I press the button longer I get the event 1.1 if I press down the button and if I release the button I get the state 1.2