[Custom Component] Alarmo - browser managed alarm system

Hi Dave, when are you finally moving your own house to Alarmo?
If something is holding you back from migrating, just let me know.
I know there is an open PR for linking your Paradox system to Alarmo, we could follow up on this.

Hi Dave

Thank you for your suggestions. I have now just solved this.

The sensor doesn’t send any numeric values, instead it sends “vibrate”, “drop” or “tilt”

pnbruckner had responded to someone else who was having exactly the same issue, so it worked out really well.

Solution is to create a binary sensor but using the above values and state_attr.

Thank you and Nelis for your help.

Hello!

I have a Ring Keypad v1 and I am trying to use it with Alarmo (I have a Wintop keypad which is already working but I will replace it with the Ring Keypad).
I have the arm away, arm home and disarm working(and tested) as expected. What I am trying to do now is to find a way of using the keypad to bypass sensors so if on arm there are opened/triggered sensors, it would tell me on the keypad (the functionality is already there) and I would just confirm and it would bypass the sensors. Problem is that I have no idea how to get that from Alarmo. I know the entity alarm_control_panel.alarmo has an attribute open_sensors which I can read from, just having trouble to link all that together.
Nothing I said is related to a lack of functionality from Alarmo (which is the best alarm I used in HA), it’s more of a question to gather ideas (if anyone sees something I wasn’t able to).

Thanks!

1 Like

What I am trying to do now is to find a way of using the keypad to bypass sensors so if on arm there are opened/triggered sensors, it would tell me on the keypad (the functionality is already there) and I would just confirm and it would bypass the sensors. Problem is that I have no idea how to get that from Alarmo. I know the entity alarm_control_panel.alarmo has an attribute open_sensors which I can read from, just having trouble to link all that together.

I understand completely.
The main problem is that HA automations are based on state changes, the failed-to-arm case is usually from disarmed → disarmed state so hard to catch.
I made a (half) solution in the form of the built-in panel which allows you to create simple automations for operating a device or sending a notification when this happens.

What’s missing is a good way to have alarmo trigger an external automation.
One possibility is using events.
I could probably generate an event from alarmo for the failed-to-arm case, and pass some contextual information (like a list of entity_id’s with their state).
I don’t have any experience with HA automations which trigger on events, but it seems the best fit here.
If it would be helpful, I could see if this can be added in a next update.

2 Likes

Hey neliss,

Thanks for the great explanation as usual! I always test a million different things and it either ends up doing what I need (or close!) or I give up and try again at a later date with a fresh brain :slight_smile:
If it’s not too much trouble for you, that would be great, when I have everything working I will share here as well, I think the Ring keypad is a great addition for the alarm ( not too expensive at 49 quid!), a shame v2 doesn’t work without S2 so until zwave_js adds that, v1 it is.

Hopefully this coming week. I’ve just been really busy with home renovations. I also need to migrate from the deprecated OpenZWave to ZWave JS so I have been putting both off as I don’t want to setup Alarmo until the ZWave migration is complete.

I think my current integration of my Paradox Alarm and HA will be fine to use directly as long as I can cross reference the MQTT topics / commands etc correctly. Once I get the above tasks complete I’ll find out how it goes.

Just to illustrate what I said, I tried the following:

     - condition: template
       value_template: >
         {{ state_attr('alarm_control_panel.alarmo','open_sensors') != None }}

It works, I am able to send a message to the Ring Keypad , I confirm I want to bypass the sensors and it arms the alarm with the sensors bypassed.
The only thing I couldn’t make it work (which I believe it’s related to what you explained before) is that if I try to arm the alarm via the keypad the first time with a window opened, it will say it will be armed because the alarm doesn’t know a window is opened until it tries to arm it.

Edit: I managed to make it work and it’s reliable (as far as I can see on testing):

So I have the normal arm away but I check the condition on the automation action and put a delay of 1 second, this will make sure the open sensors are captured and show up on open_sensors:

-  alias: Arm Alarm Away Keypad - Ring
   description: Alarm gets armed away on Ring Keypad
   trigger:
   - platform: event
     event_type: zwave_js_notification
     event_data:
       node_id: 33
       event_type: 5
       data_type: 2
       event_data: "XXXX"
   - platform: state
     entity_id: alarm_control_panel.alarmo
     from: disarmed
     to: arming
   action:
   - service: alarm_control_panel.alarm_arm_away
     entity_id: alarm_control_panel.alarmo
   - condition: template
     value_template: >
       {{ state_attr('alarm_control_panel.alarmo','open_sensors') == None }}
   - delay:
       seconds: 1

Then to send the bypass message, I do the following, I put a delay of 1 second then check for the open_sensors, if it’s opened, the message is sent.

-  alias: Send open sensors signal to Ring Keypad if arming away
   description: Keypad gets an opened sensor signal if sensors are opened
   trigger:
   - platform: event
     event_type: zwave_js_notification
     event_data:
       node_id: 33
       event_type: 5
       data_type: 2
       event_data: "XXX"
   action:
     - delay:
         seconds: 1
     - condition: template
       value_template: >
         {{ state_attr('alarm_control_panel.alarmo','open_sensors') != None }}
     - service: zwave_js.set_value
       data:
         command_class: '135'
         property: value
         value: 5
       target:
         device_id: d30567960d1251410d1d719dc5e1a49a

Pretty happy with the solution.

I love the new button scale function - but it does not seem to change anything in the home assistant app as it does nothing for the card when shown on my table (but shows larger buttons on PC). I have tried restart the app and the whole tablet, even created a new dashboard with only Alarmo card on it.

Any suggestion to scale up buttons on tablet?

@maskfaen I see something similar. In Firefox on my desktop, the whole layout gets wider and taller when the button size increases. In the app, it looks about the same. In the Fully browser, it seems to get taller with scaling, but not wider.

1 Like

Hi there, first of all love the integration its tops! I was curious the best way to integrate this with an existing home system that is in HA. I have an NX584 system and was hoping alarmo would be able to ‘control’ another panel so to speak so that when alarmo goes armed_away it would set my panel to armed_away, and vice-versa. I have cobbled it together with actions going to the panel, and automations to sync alarmo to the panel - maybe thats an enhancement?

I installed this intervention a few months ago and was working perfectly. I noticed that since the last HA update it still does my normal Armand disarm, but not does not seem to go into a trigger mode when one of my sensors opens?? I tried to reboot the server I will try and reload the integration again to see if this works.

I have tested it on PC, Phone and Google Nest Hub.
All were working as I would expect.
Could you please open an issue in GitHub if you have problems, preferably with some screenshots to illustrate expectations vs reality?

I like the idea, but see quite some limitations:

  1. For arming/disarming the NX584 system from Alarmo, the pincode needs to be known. Only if the code of Alarmo is kept the same as the NX584 system it could be used for the operation, else it will fail (unless it is stored separately somewhere).
  2. You cannot make Alarmo arm automatically by arming the NX584 system, at least not with a delay, because Alarmo cannot see which mode was used (arm home/away/night all transition via state arming). Perhaps it is possible if only 1 mode is used (e.g. always armed away), but it would need to be defined somewhere.
  3. Alarmo cannot detect the sensors under the NX584 system. So once it triggers there will not be any display of the root cause.

Ideally all sensors under the NX584 system are registered as binary_sensor entities in HA, it would make things much easier.

I would be very surprised if triggering of the alarm would be broken by the last HA update.
Maybe you could check your sensor configuration, see if all sensors are assigned properly?
I am not aware of any issue here, if you’re convinced something is wrong please let me know through GitHub.

I was able to get it working. Due to custom integrations it was failing to load. I needed to delete and reinstall both from HACS and in the integrations section after this all started working for me

I too just tried this and the options are great. I like the countdown and the visual display if a contact is open while trying to arm, but I could not get the name to change. I would also like to have the font a different color to match my setup. Currently will not change form the blue font color.

Switched over to Alarmo from bwalarm this morning - went smoother than I thought it would. Thanks for your work on this alarm @neliss , it is very simple to setup and use. I already have existing notifications, sirens, lights, auto-set and auto-disarm automations that so far are working fine with alarmo.

For anyone else coming from bwalarm, be sure to update your automations as such:

  • Change “warning” state in bwalarm automations to “pending” in alarmo automations
  • Change “pending” state in bwalarm automations to “arming” in alarmo automations

These states are consistent with the Home Assistant manual alarm. bwalarm, as good as it was, was slightly different in this regard and it caused me confusion from time to time.

And where you want to show which sensor triggered the alarm:

bwalarm equivalent:

        title: "URGENT Home Alarm"
        message: 'ALARM TRIGGERED!!! {{ states[states.alarm_control_panel.home.attributes.changed_by.split(".")[0]][ states.alarm_control_panel.home.attributes.changed_by.split(".")[1]].name }}'

alarmo equivalent:

      title: 'URGENT Home Alarm'
      message: >
        {% for open_sensor in state_attr("alarm_control_panel.alarmo", "open_sensors").keys() |list %}
          ALARM TRIGGERED!!! {{ state_attr(open_sensor, 'friendly_name') }}
        {% endfor %}

Also quite happy with the alarmo lovelace card on our android panel at the front door; it’s far more intuitive for users to see a countdown. It’s a small thing but it makes a big difference.

Thanks again

4 Likes

Nice to hear!
I was looking at bwalarm before I started this project, but it was broken at the time so I never had the chance to try it myself.
From what I understood the GUI was quite sleek and complete, while Alarmo only comes with a simple keypad card :blush:
Is there anything you miss in Alarmo?

I used bwalarm mostly for the “engine” and not really the alarm interface, since we mostly automate arming and disarming. I liked the ability to set delayed alarms and immediate alarms for different sensors in different modes (arm_home and arm_away), so I’m happy to find that here too. The UI for the alarm panel itself did also show the open sensors (whether the alarm was set or not) which was useful, but I’ve replicated that myself with a conditional list of entities.

I also appreciate that alarmo is more “strict” about arming the alarm whilst some of the sensors are open; with bwalarm there were times that the home alarm would set even with a downstairs window open (due to my automations calling the arm service), and I needed some workarounds to identify this happening. From what I understand so far with alarmo it won’t let my automation set the alarm and I’ll receive a notification with force_arm and retry options, which I much prefer.

Happy camper, thanks! I’ll give it a few days of general usage to see if I have any feedback for you

I used Bwalarm (and Not another alarm prior) for the longest time. Creating an alarm with existing sensors was one of my main reasons for starting to use HA.

I think Alarmo is the most polished alarm integration I have used out of the lot. It acts and has settings like most home security systems.

I think if there is one thing I miss from BWalarm, is that it would check for open sensors BEFORE starting the exit delay. It would be handy to have that option at least, to save walking out of the house, and a minute later being notified you “left the back door open”.

Yes I have put one of the codes in my secrets file so it is able to arm via an action script. It also happens to be the same code as the alarmo codes for simplciity sake.

I am ok with the delay. If I set alarmo to away it sets my nx584 to away, and home or night both set nx584 to home. If I set the nx584 to away it sets alarmo to away and home sets to home. I’m still trying to figure out the best way to integrate night with some conditions when setting home.

I do really like how I can change the state of alarmo on the fly. On my nx584 i need to disarm and then set to a new mode.

All of the sensors from nx584 are registered as binary sensors. I also added all my Arlo (aarlo via HACS) sensors into the mix as I didn’t have too many on the nx584.

Thanks again! As I continue using it ill let you know if there are any suggestions I come across.

Remembered one I forgot to mention. It would be nice to have a bit more oomph to the notification. I keep my phone on silent and it just vibrates which I could easily miss. For other automations I have used the ‘critical’ option for important, and priority: high for android. I guess given the variety of platform and variations it might be tricky but i want my phone to scream until i stop it when the alarm goes off.

  action:
  - service: notify.mobile_app_iPhone
    data:
      message: Time to leave for dinner at the clover estate.
      data:
        push:
          sound:
            name: default
            critical: 1
            volume: 1.0
  - service: notify.mobile_app_android
    data:
      message: Home Assistant
      title: Home Assistant is searching your phone!
      data:
        ttl: 0
        priority: high
        channel: alarm_stream