Click on the line in the table to access the settings.
checked and this is what I have:
Device Type : Door
Enabled modes: highlighted are Home and Away
Advanced settings:
Use exit delay: not active
Use entry delay: Active
Arm after closing: Active
Bypass automatically: Not active
Trigger when unavailable: Not active
Hi everyone, just a small update
With release v1.7.4 the support for configuring sensor groups is added.
Which is a bit of a hidden feature so I thought I owe you some introduction.
What are sensor groups about?
In a sensor group, 2 (or more) sensors need to be triggered within a defined time span, before the alarm will be activated.
This functionality is meant for suppressing false triggers, which unfortunately can happen (especially with battery-powered sensors and PIR motion detectors).
Example
A small example use-case:
You have a (square) living room which has 4 motion sensors, one in each corner.
All 4 sensors are assigned to sensor group ‘Motion living room’.
The sensor group is configured with a time-out of 5 minutes.
Now when the alarm is armed, the motion sensors start working together:
- If two out of four motion sensors detect movement within 5 minutes, the alarm will be triggered.
- If there is more than 5 minutes between detected movements of the different sensors, this is ignored.
- If one sensor is continuously flickering (I actually have experienced this myself), this is ignored as well.
Where do I find this?
Update to v1.7.4 first.
You can find this feature within the sensor configuration page (so by clicking any sensor in the ‘Sensors’ tab).
Then click the ‘setup groups’ button here:
Opens a dialog where you can set up a like this:
I guess it speaks pretty much for itself, otherwise there is some documentation on it.
Hope you find this feature useful
Please like this post if you do, or let me know why you don’t (user feedback is very low lately)
PS: This is a new feature, and although I tested it, it might contain bugs. Please take this in consideration.
I’m trying to activate Alarmo with a telegram command. I can’t find the mode!
can someone help me, maybe with an example? Thank you
done, thanks anyway
alias: attiva allarme con telegram
description: ‘’
trigger:
- platform: event
event_type: telegram_command
event_data:
command: /allarme
condition: []
action: - service: alarmo.arm
data:
code: ‘1111’
entity_id: alarm_control_panel.casa
mode: single
Hi!
I saw that this plugin has some support for other language than English, https://github.com/nielsfaber/alarmo/tree/main/custom_components/alarmo/frontend/localize/languages. I think that would be nice to have it translated to Swedish because even if I write some actions with Swedish text some sensor text when you use the build in parameters will still be in English. I can help out with that. Anyone know how I can do that?
You can submit (via pull request) a se.json file, based on the en.json.
Note that as alarmo grows the file needs to be periodically updated, so I prefer to see people taking care of the maintenance as well.
As for open_sensors text, I would like to make this translated as well. This is a bit harder since the message is composed by the backend (which doesn’t have access to the json translation file).
Would it be possible to allow arming from ‘home’ to ‘away’ without having to disarm in between and then still have the exit delay?
It can be a start to translate the existing English file but does maintenance of this work in these kind of project? How can I be notified if some text is the English file is changed or added so I can translate that to Swedish to?
Currently not, since state ‘leaving’ occurs only between ‘disarmed’ and ‘armed’ states, not when staying in ‘armed’ state.
Perhaps it would be possible to change this though.
There is no such mechanism in place.
If translations are missing, the English texts are used as fallback.
Typically new translations are required only after a new functionality is added.
If someone goes over the json file every one or two months, I think it should be sufficient.
You can achieve this by overloading any Alarmo alarm arming service calls in your configuration with a script like this. This script will check the current alarm state and if it’s not disarmed it will disarm the alarm, then arm it in the mode specified in the call
arm_alarm:
alias: "Arm Alarm"
description: "Arm house alarm."
icon: mdi:alarm-bell
fields:
mode:
description: "Alarm arm mode."
example: 'away'
code:
description: "Alarm arm code."
example: '1111'
override:
description: "Bypass open sensors."
example: 'true'
variables:
hass_code: !secret ALARMO_HA
code: "{{ code|default(hass_code) }}"
sequence:
- condition: template
alias: Alarm not already armed
value_template: "{{ not is_state('alarm_control_panel.master',mode) }}"
- choose:
- conditions:
- condition: not
alias: Alarm is not disarmed
conditions:
- condition: state
entity_id: alarm_control_panel.master
state: disarmed
sequence:
- service: alarm_control_panel.alarm_disarm
target:
entity_id: alarm_control_panel.master
data:
code: "{{ code }}"
- choose:
- conditions: "{{ override|default(false) }}"
sequence:
- service: alarmo.arm #ISSUE does not support target!
data:
entity_id: alarm_control_panel.master
mode: "{{ mode }}"
code: "{{ code }}"
force: true
skip_delay: true
default:
- service: alarmo.arm
data:
entity_id: alarm_control_panel.master
mode: "{{ mode }}"
code: "{{ code }}"
Example service call.
- service: script.arm_alarm
data:
mode: night
code: !secret ALARMO_HA
On a related note…
I’ve seen this warning pop up a few times recently and I’m not understanding why. The alarm is supposed to go from state arming to state armed_away. Any idea what’s happening here?
WARNING (MainThread) [custom_components.alarmo.alarm_control_panel] Cannot go to state armed_away from state arming.
Arming is only allowed when the alarm is disarmed (or armed in case of switching modes).
If the alarm is in arming, there is already a transition in progress. It can only be aborted by disarming, before starting another one.
Ah ha. I knew exactly where to look after your explanation. I have an auto arming automation with multiple possible triggers. I had conditions for not already armed but I neglected to add a not arming condition as well. Thank you!
My Alarm Auto Arm Automation
- id: alarm_auto_arm #OCC
alias: "[Alarm] Auto Arm"
description: "Auto arm alarm by occupancy mode."
mode: restart
trigger:
- platform: state
id: disarmed
entity_id: alarm_control_panel.master
to: disarmed
for: # wait to see if someone comes home (almost home, plug in dead phone)
minutes: 5
- platform: state
id: away
entity_id: input_select.occupancy_mode
to:
- Away
- Vacation
- platform: state
id: night
entity_id: input_select.occupancy_mode
to: Night
- platform: state
id: lock_keypad
entity_id: # do not auto arm with garage side door
- sensor.back_door_lock_status
- sensor.front_door_lock_status
- sensor.side_door_lock_status
to: #LOCK_USER
- Locked (Keypad)
- Locked (Jason)
- Locked (Sheri)
- Locked (Dawn)
condition:
- condition: state
entity_id:
- input_boolean.alarm_automation
- input_boolean.alarm_auto_arming
state: 'on'
- condition: state
entity_id: input_boolean.alarm_temp_override
state: 'off'
- "{{ is_state('input_boolean.lock_automation','on') if trigger.id in ['unlock_keypad','lock_keypad'] else true }}"
- "{{ is_state('input_boolean.presence_automation','on') if trigger.id in ['away','night'] else true }}"
action:
- choose:
- conditions: "{{ trigger.id == 'disarmed' }}"
sequence:
- wait_template: "{{ is_state('binary_sensor.someone_home','on') }}"
timeout: # wait to see if presence override to turns on
minutes: 5
- condition: state
entity_id: alarm_control_panel.master
state: disarmed
- condition: state
entity_id: binary_sensor.someone_home
state: 'off'
- service: script.arm_alarm # rearm alarm if still disarmed and nobody home
data:
mode: away
- conditions:
- "{{ trigger.id in ['lock_keypad','away'] }}"
- condition: not
alias: Alarm not already armed_away
conditions:
- condition: state
entity_id: alarm_control_panel.master
state:
- armed_away
- arming
sequence:
- choose: #LOCK_USER
- conditions: "{{ trigger.id == 'away' or trigger.to_state.state == 'Locked (Keypad)' }}"
sequence:
- service: script.arm_alarm
data:
mode: away
- conditions: "{{ trigger.to_state.state == 'Locked (Jason)' }}"
sequence:
- service: script.arm_alarm
data:
mode: away
code: !secret ALARMO_JASON
- conditions: "{{ trigger.to_state.state == 'Locked (Sheri)' }}"
sequence:
- service: script.arm_alarm
data:
mode: away
code: !secret ALARMO_SHERI
- conditions: "{{ trigger.to_state.state == 'Locked (Dawn)' }}"
sequence:
- service: script.arm_alarm
data:
mode: away
code: !secret ALARMO_DAWN
- conditions:
- "{{ trigger.id == 'night' }}"
- condition: not
alias: Alarm not already armed_night
conditions:
- condition: state
entity_id: alarm_control_panel.master
state:
- armed_night
- arming
sequence:
- service: script.arm_alarm
data:
mode: night
Hi, do you also have this problem?
The Alarmo card is often slow to load, not always but often this happens.
This does not happen with the HomeAssistant “Alarm Control Panel” card, I have configured the two parallel cards to see the difference:
That is not how I wanted it to look
Is this solved by refreshing the HA page, or it stays like this?
Does it occur only after restarting HA or more frequently?
I prefer to follow-up on this problem via GitHub issues.
it is also happening to me,
on every page refresh
This happens when for example I am doing something else on Homeassistant, then I open the view that contains that card and it remains like this for a few seconds.
It’s as if there was a delay during card loading, or a dialogue delay between card and Alarmo integration.
Thank you so much for this great component. I’m now using it as the main alarm system for my house.
I’ve set up Alerts in the configuration.yaml file which are working great based on Alarmo changing to triggered and when someone disarms the alarm it send a notification to my phone. I was able to add who disarmed it by pulling the changed_by state however to take this even further it would be great to disable users/codes based on who is present. i.e. I set up user James and then have an automation that says if James isn’t present that user code is disabled. The reason I require this is to force each user to use their code so I can accurately determine who disabled the alarm.
Is it possible to add an option to enable/disable users?
Thanks a lot for your feedback!
Unfortunately not.
However there is an open feature request about this, and I see it fairly easy to implement.
The only question is when. At the moment the time I can spend on improvements is quite limited.