How to use the Fibaro Keyfob and to manage challenges around it

It was just yesterday I brought back my first Fibaro Keyfob and I love it.

I have a few other Z-Wave scene controllers and this is my rule template . (This one for the KeyFob)

.items:

Number KeyFob1                    (div, remotes)         { channel = "zwave:device:f180343d:node74:scene_number" }
Number KeyFobBatt1                (div, remotes)         { channel = "zwave:device:f180343d:node74:battery-level" }

.rule:

var String drState


rule "KeyFob1" 
when
        Item KeyFob1 received update
then 
    var swState = KeyFob1.state
    var name = "KeyFob1Rule" 
    logInfo(name, "Update: " + swState)

    
    switch swState {
        case 1.0: {logInfo(name, "Square1xClick") 
        }
        case 1.3: {logInfo(name, "Square2xClick") 
        }
        case 1.4: {logInfo(name, "Square3xClick") 
        }
        case 1.2: {logInfo(name, "SquareHoldDown")
        }
        case 1.1: {logInfo(name, "SquareRelease")
        }
        case 2.0: {logInfo(name, "O1xClick") 
            if (BulbStairsState.state == ON) {
                trumpetLights.sendCommand(OFF)
                BulbStairsState.sendCommand(OFF)
                drState = AllDR.state.toString   // save current state
                AllDR.postUpdate(OFF)            // dining room group OFF
            } else {
                trumpetLights.sendCommand(ON)
                BulbStairsState.sendCommand(ON)
                AllDR.postUpdate(drState)
            }
        }
        case 2.3: {logInfo(name, "O2xClick") 
        }
        case 2.4: {logInfo(name, "O3xClick") 
        }
        case 2.2: {logInfo(name, "OHoldDown")
        }
        case 2.1: {logInfo(name, "ORelease")
        }
        case 3.0: {logInfo(name, "X1xClick") 
            KodiHarmonyCmd.sendCommand("Esc")
        }
        case 3.3: {logInfo(name, "X2xClick") 
        }
        case 3.4: {logInfo(name, "X3xClick") 
        }
        case 3.2: {logInfo(name, "XHoldDown")
            KodiHarmonyCmd.sendCommand("Stop")
        }
        case 3.1: {logInfo(name, "XRelease")
        }
        case 4.0: {logInfo(name, "Triangle1xClick") 
        }
        case 4.3: {logInfo(name, "Triangle2xClick") 
        }
        case 4.4: {logInfo(name, "Triangle3xClick") 
        }
        case 4.2: {logInfo(name, "TriangleHoldDown")
        }
        case 4.1: {logInfo(name, "TriangleRelease")
        }
        case 5.0: {logInfo(name, "-1xClick") 
            OnkyoHarmonyCmd.sendCommand("VolumeDown")
        }
        case 5.3: {logInfo(name, "-2xClick") 
        }
        case 5.4: {logInfo(name, "-3xClick") 
        }
        case 5.2: {logInfo(name, "-HoldDown")
            OnkyoHarmonyCmd.sendCommand("Mute")
        }
        case 5.1: {logInfo(name, "-Release")
        }
        case 6.0: {logInfo(name, "+1xClick") 
            OnkyoHarmonyCmd.sendCommand("VolumeUp")
        }
        case 6.3: {logInfo(name, "+2xClick") 
        }
        case 6.4: {logInfo(name, "+3xClick") 
        }
        case 6.2: {logInfo(name, "+HoldDown")
        }
        case 6.1: {logInfo(name, "+Release")
        }
    }                
end
1 Like