[Release] Nyckelharpa, an HSM Extension


Still no exit delay beeps. I'll await your changes and update upon your next release.



Do you know that his keypad is not the same as mine? Both are 3400 but his keypad it's 3400-G, some buttons changed, not sure if maybe needs something in the driver. Just asking.

My keypad beeps on all delays, I'm not using the optional "beep these alarm devices" section.


Thank you for confirming the Centralite V2 works as expected, I was starting to have doubts. I am aware the problem keypad is a Centralite V3, and I am working privately with @theroonie trying to get this resolved. What's odd is the Exit Delay sound works when initiated from the device's settings page using the M Pond DH, and when the device uses the HE Centralite Keypad DH and the system arms.

The Centralite V3 replaced the V2's A & B with police icon buttons. When the two police icon buttons are simultaneously pressed it triggers Panic. However, I do not know if the V3 has the Alarm sound which could easily be tested by clicking/tapping the Siren Button on the device's settings page.

Note the Centralite V2 does not have an Alarm Siren sound, but I set the DH to create 255 beeps instead for this device. On the Iris V2 the alarm sound is like the fast beep the centralite and Iris devices create on the last 10 seconds of exit delay, but goes on forever until stopped or the system is disarmed.


[Update] May 11, 2019 10:30 EDT

Enhancements and Changes

  1. Corrected Modefix profile not Saving when no modes are selected. This corrected @theroonie's "no exit delay tones" issue.

  2. Nyckelharpa main module: Added warning not to select a keypad for an alarm device, it kills the keypad's Entry Delay tones.

  3. Keypad Device Handler: Centralite V3 does not respond to Siren command. Generate 255 beeps for siren on this device as is done for Centralite V2

I urge everyone to stay up to date, please update your system,

How to Install
There are three (3) modules associated with this update.

Apps Code

  1. Nyckelharpa (V0.1.4)
  2. Nyckelharpa Modefix (V0.0.6)

Drivers Code

  1. Centralite Keypad

Source Code
Added some debugging information


Yes, thank you to @arnb for his efforts in figuring out the problem and updating the code. All of my issues with Nyckelharpa have been fixed with updated code.

His work and problem-solving is an example of what a community should be about. Thank you again.


Update done, thanks for this great app.


[Update] May 12, 2019 12:20PM EDT

Enhancements and Changes

  1. Added ability to sound short beeps when monitored contact opens and system is disarmed. Also additional setting controlling beep duration.

  2. Editing and validation of global settings, including warning when a Modefix profile must be set.

  3. Generates a global settings summary screen prior to saving

I urge everyone to stay up to date, please update your system,

How to Install
There is one (1) module associated with this update.

Apps Code

  1. Nyckelharpa (V0.1.5)

Source Code
Added some debugging information


I have a question. I haven't installed the app yet, but I'm wondering if it can help with something. I have a CentraLite 3400, with the A & B buttons. I wish it could set off a panic alarm, like the other keypads can. I have an Aeotec siren I would like to have triggered with the press of A & B. Is this possible with your app? Or do I need to sell this unit and find a different model? Thanks.


The 3400 does not create a hardware Panic when simultaneously pressing the A&B keys, as far as I can determine doing that does nothing.

The app allows for pin numbers, say 9999 to be a panic pin, triggering the intrusion state.

As for finding another keypad they: Iris V2 / V3 and Centralite/Xfinity, are currently available only as New Old Stock, or used on Ebay. The UEI was ported on Smarthings, and appears to work there with a mildly modified version of Mitch Pond's DTH.


After configuring everything according to the instructions I am still getting an HSM alert when a contact sensor is left open.

This is on version 0.1.5.


My apologies to you, and thank you for bringing this issue to my attention. After reviewing the documentation, I realized that the instructions for doing forced arming were missing, and without implementing the Talker module, there is no information on how to force arm the system. :disappointed_relieved:

The following information was added to documentation Section 7 of the github Read me file
How to Force Arm:

  • Arm system as you would normally. When there is an open contact sensor monitored by Nyckelharpa, the system will not arm as is normal for HSM

  • At the initial arm fail: any defined keypads beep twice, Talker issues a message alterting you to the failing sensor(s) that also contains the 15 second force rearm timing

  • The system may now be force armed by rearming the system after a minimum of 3 seconds, to a maximum of 15 seconds, from the initial arming failure


I haven’t tried to force arm the system but will give it a shot later this afternoon. I do have talker enabled and didn’t get any kind of cancellation notification.

I have 20+ contact sensors enabled and it does recognize which ones are not closed.


Please define the devices being used for output and also let me know if any other app messages are generated.


With Pushover & Talk defined for output and a contact sensor open the system as expected does not arm. My two keypads beep twice, I get a push notification and Alexa indicates a security device is offline. However, if I "Force Arm" between 3 & 15 seconds after the first I get the same results. This is the error I'm seeing in the log files for both my keypads:

dev:1502019-05-13 09:08:31.133 pm errorgroovy.lang.MissingMethodException: No signature of method: user_driver_mitchpond_Centralitex_Keypad_643.setExitDelay() is applicable for argument types: (java.util.LinkedHashMap) values: [[nightDelay:10, homeDelay:10, awayDelay:10]]


This is caused by having the keypad(s) defined in HSM. If they are defined in HSM, they must be removed.


I undefined the keypads in HSM and the error is gone but I get the same results from Nyckelharpa.


I'm asking you do a few thing that may seem redundant, but I am running out of options.

  • In Configure Armed-Away Intrusion Sensors do the NCKL Contacts in the HSM list minus the Panic Contact, match the contacts in the global Settings for Away? If not fix it to match and try again.

  • click tap "Done with Armed Away", click tap "Done with HSM"

  • In Apps click/tap Nyckelharpa, turn on logging
    in global settings click / tap "Next", click / tap Done

  • in apps click/tap Nyckelharpa Modefix, turn on logging
    click / tap "Next", click / tap Done*

  • start logging

  • trying arming from the keypad
    open a monitored contact
    arm for away (this should fail)
    count to 4 then quickly arm for away again

  • assuming it fails I interested int the following log messages
    From Nyckelharpa "checkOpenContacts entered $contactList $notifyOptions $keypad lastDoorsDtim: $lastDoorsDtim"
    From Nyckelharpa Modefix "ModeFix alarmStatusHandler entered, HSM state: ${theAlarm}, lastAlarm: ${lastAlarm} Mode: ${theMode} lastDoorsDtim $lastDoorsDtim"

Should this info not help resolve the issue, next step is to send me a Private Message with your telephone number and a good time to call.


One other thought that may be easier to try.

Reduce the number of sensors specified in both Nyckelharpa away and HSM away down to two (matching) Nyckelharpa uses real sensor, HSM uses the NCKL-child matching sensor.

Close both real sensors specified above, then open one of the sensors. Try it.


I removed all but two contact sensors and it still didn't work so I started digging through the log file and it looks like the problem was being caused by another user app (Snapshot) I had installed, I removed the Snapshot app and Nyckelharpa is now working.

I haven't confirmed this yet but I'm thinking I need to setup the Snapshot app to use the virtual contact sensors created by Nyckelharpa.


First, I am really pleased you were able to determine the cause, I was completely out of options and had no idea why it failed.

After a quick look at Snapshot, I have no idea how it could interfere with Nyckelharpa and or HSM.

Having never used Snapshot, it may be best to ask the app's author how to proceed, and to identify how the interference is occurring.

Just wondering, what did you see in the log file that made you suspect Snapshot?