Alexa Disarming alarm

I need some help peoples. Unfortunately I can’t get the Alexa skill integration to disarm the alarm via the voice pin.

For context. I’m running core in docker. It’s the alexa custom skill and I’m using alarmo. The alarm is exposed and showing in alexa fine and I’m able to arm it. When disarming it, Alexa is saying the alarm is disarmed, but nothing happens and I get a log entry advising the wrong code was used. (I have entered manually to check it).

I have also, for the prosperity of testing, installed a manual alarm panel and exposed that too. This however, only ends with me getting a Alarm isn’t responding message.

In terms of diagnosing, admittedly I’m not too sure what I am looking for, I can see it in the logs, but it just says REDACTED so I can’t advise what information is being returned.

Any help would be appreciated. It is late in the evening for me, so there might be something simple I’m missing.

TIA!

I don’t have a direct answer for you, but there’s some extensive notes and some caveats in the documentation specific to arming and disarming. Did you already look through these and make sure you followed all the directions?

Yeah, I’ve used that guide in the past to set everything up. I re-read it whilst I was setting this up, new features and updates since I set the alexa integration up.

I have just, as an attempt to see, updated the lambda function script in case there were any changes. Sadly, no luck!

@christy2951hernandez, was you meant to re-tag me?

Been playing with the skill tonight, to the point where I made up a completely new skill to test with using a long-lived code. Still the same result :frowning:

I did however, notice, whilst I was testing using the Alexa Skill test page (where you can type your command), it phrases the code as “ninety nine ninety nine” (not my actual code for security reasons) but testing with different codes, all written down similar.

I’m pretty sure in the past when I used the test page, the JSON I/O data sits on the right of the screen, however it always remained blank. Not sure if this is something I have turned off somewhere by mistake or need a debug mode.

I hope this is still relevant. I had the same issue here, and was able to get around it. What I found is that Alexa only uses the security pin for itself, and does not pass it down to the alarm device, I am using Alarmo in my situation. To get around this, I created an automation for this.

  1. Find out the event that Alexa is sending by using the developer tools, and events and listen for all events with *. Enable the event listener right before you ask alexa to arm or disarm, and then unsubscribe from the event. This was my output from the event:
event_type: alexa_smart_home
data:
  request:
    namespace: Alexa.SecurityPanelController
    name: Disarm
    entity_id: alarm_control_panel.alarmo
  response:
    namespace: Alexa
    name: Response
origin: LOCAL
time_fired: "2024-10-26T13:32:24.952539+00:00"
context:
  id: [REDACTED]
  parent_id: null
  user_id: [REDACTED]

Copy this information an use it as the trigger for an automation, and have the automation fire on an event In my situation it was this:

Event Type: alexa_smart_home

request:
  namespace: Alexa.SecurityPanelController
  name: Disarm
  entity_id: alarm_control_panel.alarmo
  1. I added a condition that it would only trigger if Alarmo was not disarmed
condition: not
conditions:
  - condition: state
    entity_id: alarm_control_panel.alarmo
    state: disarmed
  1. The action will be to call the alarm_disarm service on the entity. For the data, pass in the code. It might be wise for logging to create a user just for Alexa so that you can know if and when that triggered the alarm off.
action: alarm_control_panel.alarm_disarm
target:
  entity_id:
    - alarm_control_panel.alarmo
data:
  code: "1234"

I hope this helps anyone that comes across it.