Description text logging - actionable?

Sorry it has been a few years since I even looked at this. Currently I am only looking at who unlocked the door and not if it was unlocked manually.

When I see these advanced RM rules, my illusory superiority with creating rules instantly goes away.

I went with what I believe should work and dumbed down... I utilized the app from within this thread and created the virtual switches. I used the unlocked switch with the following RM rule.

Does it look right? Haven't had a chance to test it as I'm on lunch break at work...

I utilized rvrolyk's code with your modification for schlage locks. Going to test tonight and if it's a no-go. I'll be utilizing @aaiyar method. :ok_hand:

Really love this community and the responsiveness from everyone. Blessings to you all!

1 Like

I don't have that app ...... but if the app works, your rule should work I think.

Never mind, still playing with this. Something changed in the last two years since I was doing this. :slight_smile:

At some point in time, the text description logging changed so if your lock is working the same as mine, you can't really use it via my app code or the rule machine text description method.

See if your lock is reporting the multiple descriptions for the one event of turning the knob to lock or unlock the door. If it is and if yours reports the [digital] as the first thing, they we can't use the description for much of anything anymore unless someone wants to get really fancy.

image

Which driver are you using?

The only one that I know of for my lock. :slight_smile: Everything else works perfectly and I don't use the text description for anything over the last couple of years so I didn't notice the multiple logging until looking at this today.

image

1 Like

Just for the heck of it, can you try the "Generic Z-Wave Lock" driver and repeat the test. You'll have to hit "Configure" after changing drivers, and then Configure again after changing back to the Schlage driver.

That change the text description but the multiple reporting is the same.

image

image

1 Like

Thanks - that's the lock then. Nothing can be done about it. Bummer.

The thing is, if you used an external automation system, like Node-RED, you could still use that as a trigger. But I'm not sure how to do that in Rule Machine.

Originally I had another Schlage lock at my old house and this is a new one now. So I am not sure if it is the new lock or a change in the driver over the last two years or if it is just my particular lock or environment. It will be interesting to see if the behavior is the same for others or not.

The driver hasn't been changed in 2+ years, when Hubitat dropped these locks from the list of compatible devices. I did see that others have reported the same multiple reporting that you have.

1 Like

It sure is. I am using the BE468/9 driver.

Lock-Logs-Physical

Unfortunately, my RM rule didn't work with your virtual device/app. Didn't send me a notification when the lock was manually unlocked. I thought it was because i had the trigger as digital on for the switch, then I added regular switch trigger, still didn't work...

I'll give @aaiyar's driver troubleshooting tip a try. If that doesn't work, I'll attempt to recreate his RM rule.

Man, I wish RM has the ability to share rules like webcore sometimes....

It does.

If you need my rule, I'm happy to send it to you to import. That being said, the dual notification seem to be a hardware limitation of the Schlage BE468/BE469 z-wave locks. As such, there is no way around it ..... outside of someone writing a Schlage driver that ignores the first event.

I think I am going to attempt this app/driver and then if all else fails, I'll be using your RM rule to log.

Is it a file you share? how does rule sharing work? Very intrigued. Please PM me in regards to this whenever you get some free time or if it's not a private thing, please do share. :green_heart:

It'll have the same issue. Unfortunately. I created it using a lock that doesn't send double events.

But when I get time this afternoon, I'll send you a JSON with my rule.

1 Like

Here you go.

Background: I have keyless locks. And they do not produce double events like the Schlage lock seems to. And my suspicion is that the double events will interfere with this rule working properly.

The rule below only determines if the lock was locked from the outside or the inside. If it is from the outside, the descriptionText will contain the word "button". If it is from the inside, the description text will contain the word "thumb".

You can import the JSON below the screenshot of the rule.

Exported Rule

{"deviceReplacements":{"1219":{"deviceName":"Yale Zigbee Lock","deviceLabel":"Front Door Lock","deviceTypeName":"Yale Zigbee Lock","deviceTypeNamespace":"Hubitat"}},"appReplacements":{"3131":{"appTypeName":"Rule-5.1","appTypeNamespace":"hubitat","appType":"sys","appName":"Rule-5.1","appLabel":"How was the lock locked?","parentAppInstalledAppId":"3117","parentAppTypeName":"Rule Machine","parentAppTypeNamespace":"hubitat","parentAppName":"Rule Machine","parentAppLabel":"Rule Machine","childApps":{},"singleInstance":false}},"appData":{"3131":{"state":{"parens":{"1":0,"2":0},"actionDone":true,"ndx":9,"dateFormat":"yyyy-MM-dd","nestedBlock":[],"installedRules":[],"clonedName":"How was the lock locked?","selectActionsParams":{"label":"How was the lock locked?"},"editCondIf":null,"stopOnST":false,"usesTime":false,"nestedIf":[],"inIf":null,"trigCustoms":[],"repeating":null,"setDisabledActs":true,"capabDone":true,"skipping":false,"lastEvtName":"Front Door Lock","locationBlocked":[],"pbFixed":true,"inRepIf":null,"ruleNdx":3,"notEqual":true,"actionList":["1","2","3","4","5","6"],"firstR":{"1":false,"2":false},"actLabelIndent":"","varSettingsUpdated":true,"certainTimes":[],"disabledActions":[],"prevState":{"PB":"true","description":"Front Door Lock was locked via command [digital]"},"blockIf":false,"eval":{"1":[3],"2":["6"]},"lastEvtText":"Front Door Lock was locked via command [digital]","capabstrue":{"1":"Front Door Lock locked"},"nestedSkipAll":[],"skipType":"if","lastEvtDate":"2023-01-05","nestedInIf":[],"actions":{"1":{"wait":null,"delay":"","modes":{},"method":"getSetVariable","indent":"","rule":null,"cond":0},"2":{"wait":null,"delay":"","modes":{},"method":"getIfThen","indent":"","rule":1,"cond":0},"3":{"wait":null,"delay":"","modes":{},"method":"getLogMsg","indent":"\\t","rule":null,"cond":0},"4":{"wait":null,"delay":"","modes":{},"method":"getElseIf","indent":"\\t","rule":2,"cond":0},"5":{"wait":null,"delay":"","modes":{},"method":"getLogMsg","indent":"\\t","rule":null,"cond":0},"6":{"wait":null,"delay":"","modes":{},"method":"getEndIf","indent":"\\t","rule":null,"label":"END-IF","cond":null}},"usesDate":false,"actNdx":7,"lastEvtValue":0,"installed":true,"waitEvents":[],"private":"true","isPredicate":false,"copyL":[],"lv_description":{"name":"description","attribute":null,"type":"string","value":"Front Door Lock was locked via command [digital]","deviceId":null},"simpleCond":false,"changedValues":true,"nestedRepIf":[],"lastEvtTime":"14:03","condOper":"cond","nestedElse":[null],"formerState":"description","varTriggersFixed":true,"setCopyActs":true,"skipAll":null,"needWaitCancel":false,"cutAction":[],"broken":false,"stopped":false,"rulesList":[],"nestedLabel":[],"oldInputAct":true,"inputAct":true,"stateVarsUpdated":true,"lastEvtDevId":"1219","waitCondNdx":1,"token":1,"capabsfalse":{"3":"Variable description<span style='color:black'>(String variable)</span> *contains* 'button'","6":"Variable description<span style='color:black'>(String variable)</span> *contains* 'thumb'"},"stPrimed":true,"allLocalVars":{"description":{"attribute":null,"type":"string","value":"String variable","deviceId":null}},"varSettingsOld":{},"timeFormat":"HH:mm","doActN":"N","olddValues":true,"needWaitDone":false},"appSettings":[{"deviceList":null,"multiple":false,"name":"tCapab1","type":"enum","value":"Lock"},{"deviceList":null,"multiple":false,"name":"cut1","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"isVar_6","type":"bool","value":""},{"deviceList":null,"multiple":false,"name":"actionDone","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"isVar_3","type":"bool","value":""},{"deviceList":null,"multiple":false,"name":"tCapab3","type":"enum","value":""},{"deviceList":null,"multiple":false,"name":"chkBox1","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"I1","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"chkBox2","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"I2","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"butEndIf","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"logmsg.3","type":"textarea","value":"%device% was %value% from the outside"},{"deviceList":null,"multiple":false,"name":"tCapab7","type":"enum","value":""},{"deviceList":null,"multiple":false,"name":"chkBox3","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"I3","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"useST","type":"bool","value":""},{"deviceList":null,"multiple":false,"name":"varType","type":"enum","value":""},{"deviceList":null,"multiple":false,"name":"xVarV.1","type":"enum","value":"description"},{"deviceList":null,"multiple":false,"name":"actSubType.1","type":"enum","value":"getSetVariable"},{"deviceList":null,"multiple":false,"name":"tstate1","type":"enum","value":"locked"},{"deviceList":null,"multiple":false,"name":"actSubType.2","type":"enum","value":"getIfThen"},{"deviceList":null,"multiple":false,"name":"actSubType.3","type":"enum","value":"getLogMsg"},{"deviceList":null,"multiple":false,"name":"actSubType.4","type":"enum","value":"getElseIf"},{"deviceList":null,"multiple":false,"name":"butElse","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"editPV","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"cut2","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"dValues","type":"bool","value":"true"},{"deviceList":null,"multiple":false,"name":"cut3","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"valString.1","type":"textarea","value":"%text%"},{"deviceList":null,"multiple":false,"name":"hasAll","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"cancelCapab","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"actType.1","type":"enum","value":"modeActs"},{"deviceList":null,"multiple":false,"name":"editToken","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"3.0.false","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"RelrDev_3","type":"enum","value":"*contains*"},{"deviceList":null,"multiple":false,"name":"xVar_6","type":"enum","value":"description"},{"deviceList":null,"multiple":false,"name":"hbVar","type":"text","value":""},{"deviceList":null,"multiple":false,"name":"valStringOp.1","type":"enum","value":"Set string"},{"deviceList":null,"multiple":false,"name":"RelrDev_6","type":"enum","value":"*contains*"},{"deviceList":null,"multiple":false,"name":"1.0.false","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"xVar_3","type":"enum","value":"description"},{"deviceList":null,"multiple":false,"name":"lvTable","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"1","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"2","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"origLabel","type":"text","value":"How was the lock locked?"},{"deviceList":null,"multiple":false,"name":"3","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"eraseRule","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"actType.3","type":"enum","value":"messageActs"},{"deviceList":null,"multiple":true,"name":"logging","type":"enum","value":null},{"deviceList":null,"multiple":false,"name":"actType.2","type":"enum","value":"condActs"},{"deviceList":null,"multiple":false,"name":"editCond","type":"enum","value":""},{"deviceList":null,"multiple":false,"name":"delayAct.1","type":"enum","value":"none"},{"deviceList":null,"multiple":false,"name":"actType.4","type":"enum","value":"condActs"},{"deviceList":null,"multiple":false,"name":"delayAct.3","type":"enum","value":"none"},{"deviceList":null,"multiple":false,"name":"updateRule","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"hasRule","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"cancelGV","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"disableL","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"2.0.true","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"description","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"delete","type":"enum","value":""},{"deviceList":null,"multiple":false,"name":"N","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"copyL","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"trashAll","type":"button","value":""},{"deviceList":{"1219":"Front Door Lock"},"multiple":true,"name":"tDev1","type":"capability.lock","value":null},{"deviceList":null,"multiple":false,"name":"actionCancel","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"pointless","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"comments","type":"textarea","value":""},{"deviceList":null,"multiple":false,"name":"state_6","type":"text","value":"thumb"},{"deviceList":null,"multiple":false,"name":"cancelBtn","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"disable2","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"disable3","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"state_3","type":"text","value":"button"},{"deviceList":null,"multiple":false,"name":"disable1","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"rCapab_3","type":"enum","value":"Variable"},{"deviceList":null,"multiple":false,"name":"not6","type":"bool","value":""},{"deviceList":null,"multiple":false,"name":"not3","type":"bool","value":""},{"deviceList":null,"multiple":false,"name":"moreVar","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"cutX","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"stays1","type":"bool","value":""},{"deviceList":null,"multiple":false,"name":"rCapab_7","type":"enum","value":""},{"deviceList":null,"multiple":false,"name":"rCapab_6","type":"enum","value":"Variable"},{"deviceList":null,"multiple":false,"name":"chkBox4","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"I4","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"cut4","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"disable4","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"4","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"4.0.false","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"actType.5","type":"enum","value":"messageActs"},{"deviceList":null,"multiple":false,"name":"actSubType.5","type":"enum","value":"getLogMsg"},{"deviceList":null,"multiple":false,"name":"logmsg.5","type":"textarea","value":"%device% was %value% from the inside"},{"deviceList":null,"multiple":false,"name":"delayAct.5","type":"enum","value":"none"},{"deviceList":null,"multiple":false,"name":"actSubType.6","type":"enum","value":"getEndIf"},{"deviceList":null,"multiple":false,"name":"I5","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"chkBox5","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"cut5","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"disable5","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"5","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"5.0.false","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"I6","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"chkBox6","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"cut6","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"disable6","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"6","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"6.0.false","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"runAction","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"pausRule","type":"button","value":""},{"deviceList":null,"multiple":false,"name":"stopRule","type":"button","value":""}],"subscriptions":[{"handler":"allHandlerX","name":"lock.locked","type":"DEVICE","typeId":1219,"typeName":"Front Door Lock","filter":"true"}]}}}

Your right. It still sends double notifications for all events. :weary:

Getting closer to my solution. So messing around with an APP auto lock from HPM developed by lewis.heidrick. His app is successfully able to limit the notification to only 1 notification per manual thumb unlock. :+1:

My only issue is that his app has a bug where I setup 2 different instances with different time restrictions and both have notifications enabled for manual unlocks. Even though 1 is restricted by time it still produces double notifications. Once I pause one instances and test, I get 1 notification. Will see if the dev can fix the bug. :crossed_fingers:.

I don't think the issue is as much that there are multiple reports for the one event, it is if the first description logging entry is the correct one or not. Since my first log entry is [digital] that is what gets used so it won't work for me. Yours looks like it is sending thumb turn [physical] as being the first so I would assume it should work based on my testing.

1 Like