ELK M1 Interface

Problem found! Should be fixed in next HA release.

Welcome to the community Leo! Thanks for finding the bug!

Awesome! Thanks!

Hello everyone. First time posting in this forum. I have the Elk integration working, and it seems to mostly be working correctly. But some things are not quite right. Zone changes (violated/normal) are reflected correctly, and I can change the text on the keypads. I can arm/disarm the system from Lovelace. Clearly the connection is there and it is working. But it doesn’t seem to reliably show when the system is armed/disarmed. In fact, most of the time, there is a yellow flashing “Pending” icon. I’m not sure what that means. Any thoughts?

Check you ElkM1 configuration. See this: https://www.home-assistant.io/integrations/elkm1/#elkm1-configuration-and-version

In the Services section of Elk M1 documentation, arm home, night, and vacation are listed, but not arm away.

Why wouldn’t arm away be an option?

The ElkM1 documentation covers just additional features over the standard alarm control panel features. Arm away is part of the standard implementation and services.

Thanks. It says “Besides the standard Home Assistant services for Climate, Light, Scene, Sensor, and Switch”

Should it say “Besides the standard Home Assistant services for Climate, Light, Scene, Sensor, Switch, and Alarm”

Cheers, Richard

Doc fix submitted.

1 Like

Does anyone know the proper format to arm from an automation? Here’s the last thing I’ve tried:

  action:
    - service: elkm1.alarm_arm_away
      data:
        entity_id: alarm_control_panel.area_001

You need to add your alarm code below entity_id

data:
  entity_id: alarm_control_panel.area_001
  code: 1111 (or whatever your code is)
1 Like

The service you want is: alarm_control_panel.alarm_arm_away. That is one on the standard alarm_control_panel services.

Quick tip. If you select Developer in the sidebar and then Services from the top bar of that screen you can type in the name of a service. If you type alarm in the Service text field you will see a drop down of all the services that start with alarm. It will also show the data required to be filled in for the service.

1 Like

Why in home assistant all the area, zone and output show up even if I set to exclude: [3-208] on the configuration file? Does it ever work?

works just fine for me. hard to diagnose your issue if you dont post a config :man_shrugging:

Here is my configuration files for the elk alarm. I try different format but not working.
elkm1:
host: elk://192.168.1.45:2101
temperature_unit: F
area:
exclude:
- 2-8
zone:
include:
- 1-28
exclude:
- 30-208
output:
exclude: [3-208]
task:
exclude:
- 5-32
plc:
enabled: false

exclude:

- 1-256

thermostat:
enabled: false
counter:
enabled: false
keypad:
exclude: [3-16]
setting:
exclude:
- 6-20

Please format your code because what you posted lacks proper indentation which is critical for valid YAML.

To format it, select all the code and click the </> icon in the editor’s menu bar.

Alternately, you can type three consecutive back-quotes ``` on a separate line before the code and then another three on a separate line after the code.

I need help with the display_message function. I’m not getting any error messages, and I think it should be working, but no luck so far.

Here’s the data I’m sending:

{"line1":"Clear","line2":"48.0 deg F","clear":2,"beep":0,"timeout":0}

By the way, I forgot to mention that I have enabled global setting 36-40. I have also tried adding an “entity_id”: “alarm_control_panel.home” to the message being sent. Still no luck. I’m not sure if the entity_id should be a part of the incoming message or if it should be set in the dialog of the call service node.

The elkm1.alarm_display_message service works; I was able to call it using the services tab in developer tools within Home Assistant. I just used the default service data that was populated as an example.

My guess would be some something of how the Node Red service call is being built. I know barely enough about Node Red to be a danger to myself and others, so I’m not sure what to suggest. The entity_id is passed along with the other parameters (message line 1/2, timeout, etc.) as part of the service call. Based on how I think I’m reading the debug messages there, it looks like the entity_id is missing in that last message.

That was a good idea testing it from the services tab. I did the same and it does indeed work. The only obvious difference I see are 1) the strings for line1 & line2 are delimited with single quotes in the developer tab; and 2) (I think this may be the key) the entity_id field is not delimited at all on the developer tab. I think I need to do something to evaluate alarm_control_panel.home and pass that value instead???

I’m pretty new to HASS and node-red, so this very likely isn’t an Elk interface issue at all, and more about me not knowing what I am doing.

What the developer tab sends:

entity_id: alarm_control_panel.home
clear: 2
beep: 0
timeout: 10
line1: 'Clear'
line2: '51.1 deg F'

What I am sending in node-red:

entity_id: "alarm_control_panel.home"
line1: "Mist"
line2: "65.8 deg F"
clear: 2
beep: 0
timeout: 0

In that service call call, if you’re supposed to be supplying a JSON fragment, then you need to quote the keys (e.g, "entity_id": "alarm_control_panel.home") rather than having the keys for the dictionary be bare.

Just poking around a bit, I have this as the payload for light.turn_on service call in Node Red:

{
    "brightness": 70,
    "rgb_color": [
        255,
        0,
        255
    ]
}

Try quoting the strings that comprise the keys and see if that works…

The difference is that in the Home Assistant developer services tab, you’re looking at YAML fragments in there, not JSON. You can express the identical data structures in each, it’s just that the syntax for YAML is intended to be more “human” friendly (believe it or not…)