Yale Assure SL w/ zwavejs

I built a new house and moved in about 3 months ago. I setup the locks with Zwave JS (I have two installed currently) and I’m completely lost how they work. Right now in my dashboard it’s showing both “jammed”. Which simply isn’t true, they both are locked.

Any insight to get reporting status or make sure of the functionality that these provide? It seems the integration is just not reporting right.

Did you find a solution to the lock showing jammed continually? I have two of these locks, and once they show jammed, they show it forever. I have searched for a resolution, but have found no way to clear the jammed status other than resetting the lock to factory defaults.

I actually jammed the lock on purpose to test an automation. I am moving over from Homeseer and believe the problem is most likely in zwavesj as the jammed status clears immediately once the lock has a successful lock operation on Homeseer.

Nope. I’ve come to the conclusion they are crap. They will lock remotely, but I can’t get the status to report back right.

The locks are not crap. I have 4 of these Yale locks running for years now on legacy Z-Wave. I’m thinking the new zwave_js.value_updated trigger platform could be used here, just have to figure it out.

For legacy OZW 1.4— I had automations that would watch for the state attribute “lock_status” of the lock entity to change to “Deadbolt Jammed” then notify me. Now with JS I’m having the same problem with the lock status sensor staying perpetually at jammed. Moving past that if I set the JS log level to debug I can see it happening like this:

021-09-07T14:32:49.054Z DRIVER « [Node 013] [REQ] [ApplicationCommand]
│ sequenced: false
notification type: Access Control
notification status: 255
notification state: Lock jammed

Just need to capture that notification state as an automation trigger…

Looks like this might be covered here:

I hope this gets resolved. I just got 3 yale locks, and I do like them, would love for this to work. I have one lock that is “forever Jammed”. I’d love to be able to report back when a lock is actually jammed and cleared.

This is from zwave-js. It is definitely not currently Jammed

I had this issue as well and was able to fix it by just using the ‘Developer Tools’ to manually set the state back to off.

I just tried that but after a restart it goes back to “on”. Makes sense since it’s coming from the zwave device.
Does it go back for you?

Did you do this? Can you post an example?

I’m still in the boat here of crap. I’ve got 3 now, and I can’t even tell if they are locked or not from Zwave.

@huntj06 I thought your topic here was about the jammed status— are you saying you can’t tell if they are locked/unlocked? If that’s the case you should be looking at the “lock” entity, not any of the sensors, the icon will change and the available command will change depending on the lock status.


I have found the Yale locks to report as jammed sometimes if the hole isn’t quite deep enough for the deadbolt to extend all the way.

I have also found the CBA (connected by August) versions of the Yale locks to be the best “smart” locks. But the HA integration via August is a cloud integration and updates take a few seconds which can be slightly limiting if you are using the lock to trigger automations.

In case anyone is still looking at this, I was able to automate it with node red and a python script I found for another issue. I am sure it can be done without node red, but I have found it easier to use.
The flow starts when the door is locked, checks to see if the lock is jammed, then waits 30 seconds for an unlock and a lock before running the script.

In the python_scripts folder:

#  python_scripts/set_state.py 

# Set the state or other attributes for the entity specified in the Automation Action
# I am using this to set the state of the door lock Jammed entity to off in Node Red

inputEntity = data.get('entity_id')
if inputEntity is None:
    logger.warning("===== entity_id is required if you want to set something.")
    inputStateObject = hass.states.get(inputEntity)
    inputState = inputStateObject.state
    inputAttributesObject = inputStateObject.attributes.copy()

    for item in data:
        newAttribute = data.get(item)
        logger.debug("===== item = {0}; value = {1}".format(item,newAttribute))
        if item == 'entity_id':
            continue            # already handled
        elif item == 'state':
            inputState = newAttribute
            inputAttributesObject[item] = newAttribute
    hass.states.set(inputEntity, inputState, inputAttributesObject)
1 Like