Kwikset Z-wave Door Locks never update status in OpenHab

Its been working great for me. If it helps this is my rule that updates the lock status from the alarm raw event for all my locks.

rule "Lock: Update lock states after alarm_raw event"
when
    Item Lock_DiningRoom_DeckDoor_AlarmRaw changed
    or
    Item Lock_FrontRoom_FrontDoor_AlarmRaw changed
    or
    Item Lock_DiningRoom_GarageDoor_AlarmRaw changed
    or
    Item Lock_Garage_RVPadDoor_AlarmRaw changed
    or
    Item Lock_LivingRoom_BasementDoor_AlarmRaw changed

then
    //Take use item name of triggering event to determin the name of the Lock Item
    val actionItem = gAll_Locks.members.findFirst[ item | item.name.toString == triggeringItem.name.toString.replace("_AlarmRaw","_DoorLock") ]

    //Process the JSON from the raw alarm to get the Type and Value
    val actionType = transform("JSONPATH", "$.type",triggeringItem.state.toString)
    val actionTypeValue = transform("JSONPATH", "$.value", triggeringItem.state.toString)

    //Log the values
    logDebug("RULE_SYSTEM", "DiningRoom Deck Door Event Triggered")
    logDebug("RULE_SYSTEM", "Lock: Alarm events: Item Name: {}, Item State: [{}]",actionItem.name.toString,triggeringItem.state.toString)
    logDebug("RULE_SYSTEM", "Lock: Alarm events: TFormed State: {}, StateValue: {}", actionType, actionTypeValue)


    /*  Alarm types and levels from the documentation
    Alarm Type    Alarm Level            Notification Event
    021              001                 Lock Secured using Keyed cylinder or inside thumb-turn
    023              001                 Lock Secured by Controller – Bolt Jammed (Not fully extended)
    024              001                 Lock Secured by Controller – Successful (Fully extended)
    026              001                 Lock Auto Secured – Bolt Jammed (Not fully extended)
    027              001                 Lock Auto Secured – Successful (Fully extended)
    017              001                 Lock Secured at Keypad – Bolt Jammed (Not fully extended)
    018              000 or User-ID#*    Lock Secured at Keypad – Successful (Fully extended)

    019              User-ID#*           Lock Un-Secured by User (User-ID) at Keypad
    022              001                 Lock Un-Secured using Keyed cylinder or inside thumb-turn
    025              001                 Lock Un-Secured by Controller – Successful (Fully retracted)

    161              001                 Failed User Code attempt at Keypad

    167              001                 Low battery level
    168              001                 Critical battery level
    169              001                 Battery level too low to operate lock

    112              User-ID#*           New User Code (User-ID#) added to the lock
    032              001                 All User Codes deleted from lock
    162              User-ID#*           Attempted access by user (User-ID#) outside of scheduled


* User-ID# values: 001 to 030
    Rule inspired by this but modified to work with our locks
    https://community.openhab.org/t/zwave-yale-yrd220-lock/34180/5
    */
    switch (actionType) {
        //Locking actions
        case "17": {
            actionItem.postUpdate(ON)
            logDebug("RULE_SYSTEM", "{} Lock Secured at Keypad – Bolt Jammed (Not fully extended)", actionItem.name)
        }
        case "18": {
            actionItem.postUpdate(ON)
            logDebug("RULE_SYSTEM", "{} Lock Secured at Keypad by User [{}] – Successful (Fully extended)", actionItem.name, actionTypeValue)
        }
        case "21": {
            actionItem.postUpdate(ON)
            logDebug("RULE_SYSTEM", "{} Lock Secured using Keyed cylinder or inside thumb-turn", actionItem.name)
        }
        case "23": {
            actionItem.postUpdate(ON)
            logDebug("RULE_SYSTEM", "{} Lock Secured by Controller – Bolt Jammed (Not fully extended)", actionItem.name)
        }
        case "24": {
            actionItem.postUpdate(ON)
            logDebug("RULE_SYSTEM", "{} Lock Secured by Controller – Successful (Fully extended)", actionItem.name)
        }
        case "26": {
            actionItem.postUpdate(ON)
            logDebug("RULE_SYSTEM", "{} Lock Auto Secured – Bolt Jammed (Not fully extended)", actionItem.name)
        }
        case "27": {
            actionItem.postUpdate(ON)
            logDebug("RULE_SYSTEM", "{} Lock Auto Secured – Successful (Fully extended)", actionItem.name)
        }

        //Unlocking actions
        case "19": {
            actionItem.postUpdate(OFF)
            logDebug("RULE_SYSTEM", "{} Lock Un-Secured by User ({}}) at Keypad", actionItem.name, actionTypeValue)
        }
        case "22": {
            actionItem.postUpdate(OFF)
            logDebug("RULE_SYSTEM", "{} Lock Un-Secured using Keyed cylinder or inside thumb-turn", actionItem.name)
        }
        case "25": {
            actionItem.postUpdate(OFF)
            logDebug("RULE_SYSTEM", "{} Lock Un-Secured by Controller – Successful (Fully retracted)", actionItem.name)
        }

        //Misc Informational actions (No Locking\Unlocking with these)
        case "161": {
            logDebug("RULE_SYSTEM", "{} Failed User Code attempt at Keypad", actionItem.name)
        }
        case "167": {
            logDebug("RULE_SYSTEM", "{} Low battery level", actionItem.name)
        }
        case "168": {
            logDebug("RULE_SYSTEM", "{} Critical battery level", actionItem.name)
        }
        case "169": {
            logDebug("RULE_SYSTEM", "{} Battery level too low to operate lock  ", actionItem.name)
        }
        default : {
            val String message = "Unknown door lock Event, " + triggeringItem.state.toString
            logDebug("RULE_SYSTEM", "Lock: Alarm events: {}",message)
            //SMS_Notification.sendCommand(message)
        }
    }

end
1 Like