Logging Keypad Arm/Disarm for HSM

Realizing that my Nyckelharpa and my centralitex keypad were not being updated by Hubitat Package manager, I deleted the associated devices and drivers and attempted to load back through HPM. HPM finds Nyckelharpa, but will not let click on it to install. Any ideas?

Take a look at what's currently installed for Nyckelharpa apps and the Centralite Keypad device, then remove same and retry HPM. Plan B is to do it manually.

Ok, I missed a part I needed to remove. My bad. I am installing through HPM now.

After installing through HPM, it appears that the CentraliteX driver last updates were in June. It does not have your latest updates when I installed through HPM.

True, Centralite Keypad driver must be manually installed from the Beta repo. (Don't update other modules from beta!)

I have Nyckelharpa reinstalled. I also have CentralX reinstalled and my keypad is using CentraliteX. I created my codes. They arm and disarm the system just fine. I do not see the variable for the lock code name changing.
codes
it says the last code name is "scott" and that's not the last code I used. The update time is right and the "disarmed" function is right.

The setting appears correct.
lock mgr

The CentraliteX keypad driver looks up to date:


The latest update on the Nyckelharpa apps in the respository show only updates to the centralite keypad 13 hours ago and no other updates.

Is this right?

To be done.

Ok, my bad. I thought I had missed something. Pulse me when you want me to test. I should see the updates in HPM now that my install is from there. Great work, by the way.

1 Like

Beta is updated for Nyckelharpa pins, now sets lastCodeName in device

  • From beta repo manually update app module Nyckelharpa.groovy, and driver module Centralite Keypad.groovy (it was updated again must be done)
  • try it

I tested with an Iris V2 keypad

The new code bits work perfectly. I alternated back and forth between three codes and the current state of the alarm, last code name, and pin status were correctly updated. Thank you! This is awesome.

I have been working with @mbarone on his Virtual Keypad app for dashboards. Is there any chance that you could tag up with him and provide the same hook into his virtual keypad for nyckelharpa?

I use and looked at @mbarone's Virtual Basic Keypad driver. The code is already in it for lastCodeUsed. That driver and app support Lock Code Manager pins.

If you are suggesting adding Nyckelharpa pins to the Virtual Keypad, that's not a viable option.

Nyckelharpa package updated.

Yes, I had spoken to @mbarone and he said that Nyckelharpa would need to support his Virtual keyboard driver to use Nyckelharpa codes. Sounds like you don't think this is doable.

1 Like

Both packages would need coordinated modifications no matter how it's accomplished.

Both packages currently and independently support LCM pins and the lastCodeName attribute. Is there a reason LCM pins can't be used?

For the record, I use LCM pins with Nyckelharpa on four keypads with the Centralitex-Keypad driver.

Is the "lastUpdate" field in the CentraliteX keypad meant to be the last time the keypad was disarmed? If so, I have noticed that this field is updated whenever HSM changes to disarmed. In my Hubitat home, I disarm HSM either via 1) the Geofence with our phones, 2) via an Alexa command (a switch) , 3) via the keyapd. I have discovered that your lastUpdate field updates in all three of these cases and follows the HSM state. Ideally, this field should track only the CentraliteX keypad device since it is an attribute of the device.

It's the last time the keypad mode changed. Keypad modes correspond to HSM arm states. Feel free to adjust the code so it suits your requirements.

 private setModeHelper(String armMode, delay) {
	if (logEnable) log.debug  "In setmodehelper armMode: $armMode delay: $delay"
	sendEvent(name: "armMode", value: armMode)
	if (armMode != 'entryDelay')
		{
		def lastUpdate = formatLocalTime(now())
		sendEvent(name: "lastUpdate", value: lastUpdate, displayed: false)
		}
	sendStatusToDevice(armMode)
}

I see what you are saying. However, logic dictates that if we are logging the code name and the state of the last code entry, that the time would reflect when the code was entered on the keypad correctly.

HSM state seems to do that. However, HSM state also changes when a person enters the Geofence and can also change when HSM state is changed by the user. In these two examples, no interaction is made with the keypad. I was trying to log when user X disarmed via the keypad.

With my CentraliteX device, I can see that HSM was disarmed successfully and by who. The lastEvent on the keypad reflects the time that "ANY" HSM state change was executed. I'd rather have a specific logged event for the point in time when user X disarmed HSM but specifically by the keypad device since this attribute is associated with this keypad device.

When a pin code is accepted, and there are entry or exit delays, the pin acceptance time does not correspond to the time the HSM state changes, and the HSM State may not be changed during arming if there are open contacts.

I understand you want to filter only Disarming events from the keypad and get the name of the user that created the event. My suggestion using Rule Machine:

  • trigger on the keypad device attribute armMode changing to disarmed
  • pull the name from lastCodeName
  • get the current time in RM

From a keypad event log

Revising that RM after disarming from a Dashboard

  1. Trigger: lastCodeName changes on a keypad device

  2. Actions

    • Wait up to nn (exit/entry) delay seconds for HSM to change arm states
    • If state is disarmed notify

HI,
I am fairly new to Hubitat, I read through your diverse posts and want to brave your code for its benefits. 1) Is there any issue with using both Nyckleharpa PINS/codes and LOCK MANAGER pins. It sounds like you also use Lock Manager... (Not using, I would be able to use the virtual keypad, and I know that my locks receive the codes from Lock Manager and are working)? . 2) Do you recommend any "compatible" devices to do the speaker/talking....? 3) Is the Github documentation on installing and configuring the most uptodate? 4) Is there any video or other assistance I should look at? I have read completely through this thread and the one on GitHub the "Nicklehapa, an HSM Extension"? LASTLY AND MOST IMPORTANT, THANK YOU for all the MANY enhancements, correction and assistance I have seen throughout the threats !!!