YET another take on an alarm system

@gazoscalvertos Locks added to the delayed: section of the alarm.yaml does NOT trigger the warning state. Tested it a couple times.

Do they work in immediate mode?

My apologies but the one time I go run a test and the door is offline! :rofl: I just tested it with another door and Its working great!

Haha no probs. Happens all the time with me

Yes sorry,I want say alarm.html

yes I updated it

Could you check both your web browser console and your HA error log for any related messages when you try and disarm the alarm please?

If the service works and the automation works its likely this is an issue with the panel (alarm.html)

on home-assistant.log there is no errors.

On chrome console:
frontend-c873dc80aa0057847f22bcf3fff98f57.html:57 paper-drawer-panel is deprecated. Please use app-layout instead! ready @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:57 [Deprecation] Styling master document from stylesheets defined in HTML Imports is deprecated, and is planned to be removed in M65, around March 2018. Please refer to https://goo.gl/EGXzpw for possible migration paths. alarm:1 Uncaught (in promise) DOMException: Only secure origins are allowed (see: https://goo.gl/Y0ZkNV). alarm-5dd91a8727687290d83e5ea013c06bc4.html:1142 Uncaught TypeError: Cannot read property 'state' of undefined at HTMLElement.getWeather (http://192.168.10.230:8123/frontend/panels/alarm-5dd91a8727687290d83e5ea013c06bc4.html:1142:88) at HTMLElement.onAttached (http://192.168.10.230:8123/frontend/panels/alarm-5dd91a8727687290d83e5ea013c06bc4.html:1091:8) at HTMLElement.attached (http://192.168.10.230:8123/frontend/panels/alarm-5dd91a8727687290d83e5ea013c06bc4.html:1011:12) at HTMLElement.attached (http://192.168.10.230:8123/frontend_latest/frontend-c873dc80aa0057847f22bcf3fff98f57.html:1:76867) at HTMLElement.connectedCallback (http://192.168.10.230:8123/frontend_latest/frontend-c873dc80aa0057847f22bcf3fff98f57.html:1:70476) at n.e.(anonymous function) [as appendChild] (http://192.168.10.230:8123/frontend_latest/frontend-c873dc80aa0057847f22bcf3fff98f57.html:1:68851) at Object.window.hassUtil.dynamicContentUpdater (http://192.168.10.230:8123/frontend_latest/frontend-c873dc80aa0057847f22bcf3fff98f57.html:11:77864) at Polymer.importHref (http://192.168.10.230:8123/frontend_latest/frontend-c873dc80aa0057847f22bcf3fff98f57.html:86:10021) at e (http://192.168.10.230:8123/frontend_latest/frontend-c873dc80aa0057847f22bcf3fff98f57.html:1:61708) at e (http://192.168.10.230:8123/frontend_latest/frontend-c873dc80aa0057847f22bcf3fff98f57.html:1:61335)

The only error i can see there is one relating to weather. Do you have this enabled and installed?

Sorry, I disable it now (i forget do it after update…)

homeassistant@HA:~/.homeassistant$ cat alarm.yaml
platform: bwalarm
name: House

code: !secret alarm_code #Code, should consist of one or more digits ie 6482
panic_code: !secret panic_code #[OPTIONAL] Panic Code should consist of one or more digits ie 9876, it needs to be different to your standard alarm code. This enables a special panic mode. This can be used under duress to deactivate the alarm which would appear to the unseeing eye as deactivated however a special attribute [panic_mode] listed under the alarm_control_panel.[identifier] will change to ACTIVE. This status could be used in your automations to send a notification to someone else police/spouse/sibling/neighbour that you are under duress. To deactive this mode arm then disarm your alarm in the usual manner.

pending_time: 25 #Grace time in seconds to allow for exit and entry using Away mode
trigger_time: 600

alarm: automation.alarm_triggered
warning: automation.alarm_warning

clock: True  #Optional - True enables a clock in the center of the status bar
perimeter_mode: False #Optional - True enables perimeter mode, this could be known as 'Day Mode' i.e. only arm the doors whilst there is someone using all floors
weather:  False #Optional - Allows a weather summary to be displayed on the status bar. Dark Sky weather component must be enabled with the name sensor.dark_sky_summary

and here you have errores on chrome console (i tried with firefox and internet explorer too)

frontend-c873dc80aa0057847f22bcf3fff98f57.html:57 paper-drawer-panel is deprecated. Please use app-layout instead!
ready @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:57
ready @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_enableProperties @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
__enableOrFlushClients @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_readyClients @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_readyClients @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_flushClients @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_propertiesChanged @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_flushProperties @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
ready @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
ready @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
ready @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:134
_enableProperties @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
__enableOrFlushClients @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_readyClients @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_flushClients @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_propertiesChanged @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_flushProperties @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
ready @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_enableProperties @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
a @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
a @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
r @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
a @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
__ensureInstance @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
__render @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
__renderDebouncer.Polymer.Debouncer.debounce @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_timer._asyncModule.run @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
window.MutationObserver.observe.characterData @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
characterData (async)
run @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
setConfig @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
debounce @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
__debounceRender @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
r @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
a @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
e @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_propertiesChanged @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_flushProperties @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
__enableOrFlushClients @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_flushClients @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_propertiesChanged @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_flushProperties @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_invalidateProperties @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_setProperty @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
__dataHasAccessor.(anonymous function).Object.defineProperty.set @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:1
_updateHass @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:140
window.HAWS.subscribeConfig.e @ frontend-c873dc80aa0057847f22bcf3fff98f57.html:140
u @ core-8f7092d0539f93e721211e2ee881a5f7.js:1
(anonymous) @ core-8f7092d0539f93e721211e2ee881a5f7.js:1
Promise resolved (async)
d @ core-8f7092d0539f93e721211e2ee881a5f7.js:1
(anonymous) @ core-8f7092d0539f93e721211e2ee881a5f7.js:1
s @ core-8f7092d0539f93e721211e2ee881a5f7.js:1
(anonymous) @ core-8f7092d0539f93e721211e2ee881a5f7.js:1
[Deprecation] Styling master document from stylesheets defined in HTML Imports is deprecated, and is planned to be removed in M65, around March 2018. Please refer to https://goo.gl/EGXzpw for possible migration paths.
states:1 Uncaught (in promise) DOMException: Only secure origins are allowed (see: https://goo.gl/Y0ZkNV).
(anonymous) @ states:1
Promise (async)
(anonymous) @ states:1

There doesnt appear to be any errors in the log there. IE and firefox are not supported in HA anyway.

Do you still get the error when you uncomment the panic_code option in alarm.yaml? if this is the case then your setup doesn’t appear to be reading the new files.

Could you manually check bwalarm and look at line 29 to confirm this is listed:
CONF_PANIC_CODE = ‘panic_code’

homeassistant@HA:~/.homeassistant$ cat custom_components/alarm_control_panel/bwalarm.py
“”"
My take on the manual alarm control panel
“”"
import asyncio
import datetime
import logging
import enum
import re
import voluptuous as vol
from operator import attrgetter

from homeassistant.const import (
STATE_ALARM_ARMED_AWAY, STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED,
STATE_ALARM_PENDING, STATE_ALARM_TRIGGERED, CONF_PLATFORM, CONF_NAME,
CONF_CODE, CONF_PENDING_TIME, CONF_TRIGGER_TIME, CONF_DISARM_AFTER_TRIGGER,
EVENT_STATE_CHANGED, EVENT_TIME_CHANGED,
STATE_ON)
from homeassistant.util.dt import utcnow as now
from homeassistant.helpers.event import async_track_point_in_time
import homeassistant.components.alarm_control_panel as alarm
import homeassistant.components.switch as switch
import homeassistant.helpers.config_validation as cv

STATE_TRUE = ‘true’
STATE_UNLOCKED = ‘unlocked’
STATE_OPEN = ‘open’
STATE_DETECTED = ‘detected’

CONF_PANIC_CODE = ‘panic_code’
CONF_IMMEDIATE = ‘immediate’
CONF_DELAYED = ‘delayed’
CONF_IGNORE = ‘homemodeignore’
CONF_NOTATHOME = ‘notathome’
CONF_OVERRIDE = ‘override’
CONF_PERIMETER_MODE = ‘perimeter_mode’
CONF_PERIMETER = ‘perimeter’
CONF_ALARM = ‘alarm’
CONF_WARNING = ‘warning’

That has me stumped. So do you still get the error if you remove the comment on panic_code?

Invalid config for [alarm_control_panel.bwalarm]: [panic_code] is an invalid option for [alarm_control_panel.bwalarm].

What actually happens when you try to disable the alarm using your alarm code?

Have you cleared the Cache on your web browser?

If i remove the comment error stills.

When i try to dissarm with my Code happens nothing.

It’s very strange.

Hi,

I tried out your alarm system today and it seems to work fine. Setup was really easy and it basically worked out of the box for me. I’m using a couple of Z-wave and Zigbee sensors.

There are a couple of bugs though (tested with code from today, HA 0.60, Chrome):

  1. (and most irritating): the number pad ignores some of the clicks. It is easily reproducible and happens quite often, sometimes even on the first number. I cannot pin it down exactly, though. Maybe it is related to 2.

    EDIT: it happens every time if you click on a button and quickly move the mouse away from the button. It is probably because the mouse-up event is used instead of mouse-down. So you cannot quickly enter the pin with the mouse without losing digits.

  2. Clicking on the icon of the arm buttons shows the button pressed animation but is not triggering the associated action. This is probably because the icon swallows the click event.

  3. The top left hamburger button does not work. Sliding in the menu does work though.

  4. The settings screen is somehow messed up. Since I’m not sure what the intention was I’ll just append a screenshot. Layout seems strange and the two sliders don’t have labels.

  5. The settings icon does not reflect a changing background color (seems to have
    blue hardcoded, see screenshot)

  6. The clock shows an a.m./p.m. in the middle even if the time is shown in 24h format (see screenshot in the first post). (I’ve helped myself and removed it from the html and added a margin-right:20px on the meridiem element).

Furthermore, here are some suggestions for further improvement:

  1. An option to hide the settings button - especially since there is nothing set up currently.

  2. In armed mode, the interaction should be limited to the alarm panel. All other actions, especially bringing in the home assistant menu or the settings screen should be blocked. If an intruder can just swipe the menu open and shut down home assistant, there will be no alarm and the whole thing is useless.

  3. Please add some more documentation on the different modes. Especially the difference between home mode and perimeter mode.

  4. Would it be possible to just show the problematic sensors instead of all sensors? The “All Sensors” group is really great for debugging but it also becomes quite large if a lot of sensors are present. Maybe this could be controlled by a debug setting.

Cheers
Jochen

Another bug:

On my phone, two of the sensor groups are not adapting their layout thus becoming illegible:

The groups probably should be aligned vertically on smaller screens.

Cheers @jo-me

  1. Fixed (hopefully), this is a bug in Polymer by the looks of it. Have changed to on-click to see if that improves the experience.
  2. As above
  3. Fixed.
  4. Removed for now, this is part of a new feature not yet implemented. Basically adjustable visual settings, colours etc without the need to restart HA.
  5. Fixed
  6. Will remove the meridiem

Suggestions:

  1. Done
  2. Good idea, will implement
  3. Good idea, will implement
  4. So chop down the list and only show open sensors when not armed?

Also fixed the vertical/horizontal layout depending on screensize.

Will upload to github tonight.

Cool :slight_smile:

About suggestion 4: Yeah, thats what I meant. Basically, only the relevant sensors should be visible at any time. This makes it easier to grasp in one look whether something needs attention before arming (or which sensor was responsible for an alarm). What do you think?

Btw, I noticed an error appearing in the chrome dev console when the alarm panel is opened.

Just my opinion but I personally like it as it is, I want to see an overview which sensors are in which groups as it changes depending on the mode you are using.

Ok I got it Working. Same there is a bug if you set alarm_code to 0000.

I replace it to 1234 and now works!.

Hi all,

Getting error when updated the latest files. :frowning:

Please help.

2018-01-04 22:11:41 ERROR (MainThread) [homeassistant.config] Invalid config for [automation]: expected dict for dictionary value @ data[‘action’][0][‘data’]. Got None
extra keys not allowed @ data[‘action’][0][‘message’]. Got None. (See /config/configuration.yaml, line 88). Please check the docs at https://home-assistant.io/components/automation/
2018-01-04 22:11:41 ERROR (MainThread) [homeassistant.config] Invalid config for [automation]: expected dict for dictionary value @ data[‘action’][0][‘data’]. Got None
extra keys not allowed @ data[‘action’][0][‘message’]. Got None. (See /config/configuration.yaml, line 88). Please check the docs at https://home-assistant.io/components/automation/
2018-01-04 22:11:41 ERROR (MainThread) [homeassistant.config] Invalid config for [automation]: expected dict for dictionary value @ data[‘action’][0][‘data’]. Got None
extra keys not allowed @ data[‘action’][0][‘message’]. Got None. (See /config/configuration.yaml, line 88). Please check the docs at https://home-assistant.io/components/automation/
2018-01-04 22:11:41 ERROR (MainThread) [homeassistant.config] Invalid config for [automation]: expected dict for dictionary value @ data[‘action’][1][‘data’]. Got None
extra keys not allowed @ data[‘action’][1][‘message’]. Got None. (See /config/configuration.yaml, line 88). Please check the docs at https://home-assistant.io/components/automation/
2018-01-04 22:11:41 ERROR (MainThread) [homeassistant.config] Invalid config for [automation]: expected dict for dictionary value @ data[‘action’][1][‘data’]. Got None
extra keys not allowed @ data[‘action’][1][‘message’]. Got None. (See /config/configuration.yaml, line 88). Please check the docs at https://home-assistant.io/components/automation/
2018-01-04 22:11:42 ERROR (MainThread) [homeassistant.config] Invalid config for [automation]: expected dict for dictionary value @ data[‘action’][0][‘data’]. Got None
extra keys not allowed @ data[‘action’][0][‘message’]. Got None. (See /config/configuration.yaml, line 88). Please check the docs at https://home-assistant.io/components/automation/

Thanks,