Xfinity Keypad B Button

I just bought an Xfinity XHK1 keypad and got it working, using the Nickelharpa app and the Centralitex driver. Now I would like to trigger an action when a user enters the code and presses the "B" button (bottom right).

Thank you,

If you look on the device page, it should show the attributes it's passing upon sucessful entry code. Use that as the trigger,.

I don't see any attributes, and I don't see a way to use keypad attributes in an app trigger.

I've been experimenting: pressing buttons and watching the log; modifying apps.

I think the "A" button sends a "disarm" code and that switches HSM to "disarm". I think the "B" button sends an "arm" code, but the nickelharpa app changes that to "disarm", and that switches HSM to "disarm".

I have found no way to use any keypad press as a trigger for an app.


On the device page you're not seeing attributes in the upper right hand corner?

I have one of these, and I press the top middle button(man running away icon) then the PIN, to arm away. I've never used the A or B buttons.
Paging the Nyckelharpa master @arnb

This is turning into a slightly broader question:

I really want a keypad button that will disable all alarms (intrusion, smoke, water) when we have a false alarm (burnt toast, accidentally leave intrusion alarm on). This has become important because we recently connected our system to Noonlight for monitoring, and I found a way to connect our Kidde smoke detectors (very loud) to Hubitat. So we want a button we can use quickly and without thinking.

I also want a button that will set the system in "normal" mode (smoke and water, but not intrusion) when we've eliminated the cause of the false alarm.

That keypad requires a pin for all functions.
A button resets the proximity sensor.
B button is non-functional

1 Like

Thanks for for the app and for replying.

I can see now that my emphasis on one button was misleading. I really mean one procedure. So button plus keycode is fine, so long as we can do that once to disarm and silence everything. Always requiring the keycode makes sense for security.

Time to think let realize: I don't think I have any use for ArmNight, so I can use that key to disarm all, The keypad key will change HSM state to armnight, and I can use that HSM state change to trigger my app. All the other keys can stay as is. So I think I found a solution that works for me, and I thank all of you for the virtual "couch".

I tested keypad functions two ways, and found that "A" and "B" keys have the same effect on HSM:

  1. I checked HSM status(by looking at the summary on the Apps page of the browser interface) each time I tried a keypad button sequence, I used the Hubitat app on my phone to put HSM in disarmall state, then pressed "A" and entered my keycode; HSM status changed to what I call "normal" (intrusion disarmed; smoke, water, and custom monitors armed). I got the same result when I redid the test with "B" instead of "A".

  2. I watched my Hubitat log as I pressed keys on the keypad. I'm still learning to read the log, so I'm not good at describing. When I pressed "A" and then entered my keycode, I'm pretty sure I saw that the keypad received a disarm command. When I pressed "B" and then entered my keycode, I'm pretty sure I saw that the keypad received an arm command and then Nickelharpa sent a disarm command. As I'm writing this, I realize you would probably like me to send a copy of the log. I'll do that, but may take a few days.

This keypad disarms by entering a valid pin without first tapping the Home, Away, or Night key. Since the A or B key does nothing** , following it by entering the pin sends the disarm request. Other keypads with one touch no pin arming, such as the Iris V2, require the pin entry followed by the OFF key for disarming.

On my system disarming HSM with any method, real keypad, virtual keypad app, dashboard, terminates Water and Security alerts (don't have smoke setup).

As for triggering an app or RM with the ArmNight HSM Status, sure you can do that. However, if a standard HSM disarm is not clearing the alarm, please post what is failing.

**When the A or B key is touched in the midst of entering a command(Night/Away/Home) and or pin it acts as a reset and the sequence must be reentered.

This could be done with RM and a virtual button/switch on a dashboard, or a real button/switch mounted on the wall.

I use my water sensors as a switch of sorts. When a sensor detects water it sets off HSM with blinking lights, messages on the phone and Fully Browser dashboard devices, and it actives a device that shutsoff the main water valve. When the sensor stops detecting water, it clears the alarm. Water remains off until a button is tapped on a dashboard.

Once I decided I wanted a real button to disarm and quiet everything, I decided I may as well get a keypad. It could control other HSM functions (so one device for all); could require a pass code (makes sense for security); and we could have more than one.

An attempt to clarify how I've been testing, and some of my results.

When I use a browser on my pc to view the app page for my Hubitat, I can see a summary of the HSM state. This is what I report as HSM status.

Before testing today, I disabled all my apps that might change HSM status.

I have a dashboard tile that displays HSM Status. When I show that dashboard on my phone and press that tile, I get a window with buttons that let me change HSM status. The buttons and their effects on HSM status are
disarm: intrusion disarmed; armed smoke/water; armed all custom rules
arm home: armed home, armed smoke/water; all custom rules disarmed
arm night: no effect
arm away: armed away, armed smoke/water, all custom rules disarmed
arm all rules: no change in intrusion or smoke/water; armed all custom rules
disarm all rules: no change in intrusion or smoke/water; all custom rules disarmed
disarm all: all monitoring disarmed; all custom rules disarmed

I was surprised that arm night had no effect, but that's probably because I haven't set arm night to monitor anything.

Here are the effects I found for keypad buttons. Each entry below is for pressing the specified button and then my keycode
arm night: no effect
arm away: same as "arm away" above
arm home: same as "arm home" above
A: same as "disarm" above
B: same as "disarm" above


  1. I confess that I needed to read arnb's note a couple of times before I understood
    that the "A" and "B" keys do nothing, and the effects I see are actually the
    result of my entering my keycode.
  2. For a brief discussion about the effect of "disarm", including a recent change
    in its behavior, see my thread called "Enabling HSM monitoring of smoke and water".

Useful info. Thanks for the link.

Everything's working well, but I want to be a bit fussy.

When I press each of the top buttons and then enter my code, HSM switches into "armedaway", "armedhome", or "armednight" state (respectively). When I just enter my code, HSM switches into "disarmed " state, which means intrusion is not armed, while smoke/water and custom rules are armed. Switching HSM into "disarmed" state also clears all alerts.

I have an app that does a few things when HSM status switches to "armednight". The app switches HSM to the "disarmed all" state, which disarms all monitoring (intrusion, smoke/water, and custom). The app also silences all noise makers and disables the connection with Noonlight, our monitoring service.

So now I can use the keypad to A) arm away; B) arm home; C) disable all alarms, D) silence all noise makers, and disconnect Noonlight; or E) restore HSM to normal mode. All good, and what I hoped the keypad would do for me.

Now for the fussy part. I would like a way to change the color of the keypad's ArmNight button to red, to indicate (for us) that HSM is in "disable all" state. My attempts to just change the button color failed. I tried pressing the "Arm Night" button in the Commands section of the keypad's device listing. And I tried using an app to send the "armNight" custom command to the keypad. I also tried changing HSM status to "armedNight", but that armed Smoke/Water monitoring.

Thank you, again