[Custom Component] Alarmo - browser managed alarm system

Really keen to try this out, but I need to wait until it has MQTT support for interfacing with my commercial alarm system

In case it is helpful, I am using MQTT with Alarmo. My sensors are currently all Zigbee, and I use zigbee2mqtt to get the data into MQTT. I then use the MQTT integration to get the data into Home Assistant. Alarmo was able to immediately see my sensors after installation and is working, as expected. If you already have MQTT setup, I expect you would be able to use Alarmo.

I donā€™t mean using MQTT in that way. HA is doing the interface for you there, not Alarmo.
I need Alarmo to communicate via MQTT to my commercial alarm system as per how BWAlarm & Manual MQTT Alarm can

I am having the same problem - any changes to Entry Time are not save and this is happening with each of the four alarm modes.

MQTT support is planned, shouldnā€™t take much time to add it.
Ofcourse you could use automations in the mean time for connecting them, but the point of this integration is to make it easier to maintain, so I would be happy to integrate it.
Could you share your requirements/wishes?
Some things Iā€™m still thinking about:

  • Should there be a code required for arming through MQTT or should it be code-less (since its an internal communications bus)?
    Perhaps MQTT should be a dedicated user with own code (settings), so it is configurable.
  • Is there a need to choose which alarm states are published?
    I experienced that homebridge-mqtt does not support the ARMING / PENDING states, so I had to make a filter in node-red in the past.
  • And should the payload per state be customizable?
  • Should there be a topic for feedback of open sensors / triggered sensors for diagnostical purposes?
  • Option to override open sensors?

I will make a bugfix release for this then. Can imagine its annoying.

I made a small update that should fix this: v1.0.1.

Iā€™m not sure yet whatā€™s the best way to install updates smoothly.
In this case, the changes are only in the frontend (GUI).
Theoretically if you overwrite the files, the changes should be updated instantly (no HA restart required).
But Iā€™m not sure whether this will work in practise (due to browser caching).

After HA restart, the version number can be checked in HA.
It is visible when going to Configuration ā†’ Integrations and then clicking on the ā€˜1 deviceā€™ under Alarmo:
Version

If the problem persists after updating + restarting + checking this version number, then refresh your browser cache.
Maybe I will add a version number to the GUI in the future as well, to make life easier.

Getting errors using beta 0.117.0b6

Logger: homeassistant.components.websocket_api.http.connection.139909452651920
Source: custom_components/alarmo/alarm_control_panel.py:465
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 2:28:11 AM (2 occurrences)
Last logged: 2:28:17 AM

'leave'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 135, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1448, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1483, in _execute_service
    await handler.job.target(service_call)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 573, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 482, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 664, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 519, in _handle_entity_call
    await result
  File "/config/custom_components/alarmo/alarm_control_panel.py", line 465, in async_edit_config
    self._config[ATTR_DELAYS][event][mode] = val
KeyError: 'leave'

In my case, I have used this alarm control panel in conjuction with bwalarm or the MQTT manual alarm. It has an impresive set of features. And the comunication with HA and the alarm components is done via MQTT, mainly to set the states.
So, I think being compatible with this external app, should be a good starting point for MQTT support.

https://play.google.com/store/apps/details?id=com.thanksmister.iot.mqtt.alarmpanel.

This is sorted and yes, you need to get rid of the browser cache otherwise it wonā€™t work! Thanks, @neliss

Same for me. Thanks for the fix.

This looks great.

Nice little app, havenā€™t seen it before :slightly_smiling_face:
Supporting it will be no problem (itā€™s basically made for the standard HA mqtt alarm panel).
But it has some weird quirksā€¦ From the manual I understand that configuration is hard-coded to modes away/home and the entry/leave delays have to match his exact values (or Iā€™m reading it wrong).

Anyway: for coming week Iā€™m planning to migrate the integration to websocket API. It will open some doors to allow more flexible configuration. Not all settings have to be squeezed in the entity attributes.
After that, I will tackle the (growing) to-do list.

1 Like

Just installed v1.0.1 and itā€™s working great so far! Thanks for this!

@neliss Love it looks awesome. This is probably already on your todo list. But would be great if alarmo would let me know which doors and windows are open when enabling to prevent it going off because one of the kids (I dare not say wife) left a door or window open.

I think this is already the case.
If you register the Push notifications, you should get a message when the alarm could not be enabled (and for which reasons (reason is always a sensor)).
But the push capabilities are quite limited stillā€¦
The goal should be to allow any notify service for this.

I see what you mean. When I choose push target ā€œnotifyā€ it does nothing, but when I choose telegram as target it did send me a message that the door was still open. Donā€™t know why the notify did not work for this, notify does work when used in automation

Choosing option ā€˜notifyā€™ for push notifications, would call service ā€˜notify.notifyā€™.
What it does is one of the biggest mysteries in HA.
See here for more info: Who will notify.notify notify? - #8 by pedracca

I doubt if this option does do anything for you in automationā€¦

Iā€™m considering to hide it from the list, as it is very confusing.

When using notify as action in any automation I do get the message on my device with the home assistant app installed. As far as I could see thatā€™s the only place where the notify sends itā€™s message.

Another question/idea, I was playing around with it and I just got a false positive and had to go through all selected sensors to figure out which one triggered the alarm. For some reason my door went to unavailable which triggered the alarm. Wouldnā€™t it be handy to also note which sensor triggered the alarm in de telegram message.

Iā€™m not sure yet how to deal with these cases.

  • When a sensor is unavailable when arming, the alarm refuses to be enabled.
    It will (should) send you a push message saying that it has an indeterminate state.
  • At HA startup, sensors could be unavailable for a while. I implemented a 10 sec (or was it 20 sec) grace time, during which Alarmo will wait for all sensors to be available.
  • Then there is your case, a sensor becomes unavailable while the alarm is armed. Iā€™m not sure if I agree with you this is a false positive. The sensor cannot guard the parameter hence the security is compromised. Can imagine it is undesirable to have the siren triggered. But ignoring it would be a bad solution as well.

I would appreciate your opinion on the cases!

Yes definitely!
You can expect this to be added in a next release.

I do agree with this, I am glad that itā€™s triggered as it could be that someone tampered with the sensor. Waiting patiently for the next release, unfortunately Iā€™m no programmer to help.

Your work is greatly appreciated. Thanx