Deze blog laat zien hoe je Alarmo installeert en configureert en hoe je met behulp van Node-RED extra functionaliteit kunt toevoegen.
Installatie
Zoek in HACS op de term ‘alarmo‘ en download beide integraties, dus zowel Alarmo als de Alarrmo Card
Hierna dient de Integratie in Home Assistant zelf toegevoegd worden via Instellingen -> Apparaten & Diensten. Zoek op ‘Alarmo’ en voeg deze toe aan Home Assistant.
Herstart hierna Home Assistant.
Configuratie
In de zijbalk is nu de Alarmo optie bijgekomen en deze wordt gebruikt om Alarmo te configureren.
De instellingen zijn verdeeld in 4 weergaves:
Algemeen
In Algemeen kunnen de diverse alarm-modi ingesteld worden. ‘Inschakelen Afwezig‘ en ‘Inschakelen Thuis‘ zijn standaard aangezet, daarnaast kan ook ‘Inschakelen Nacht‘, ‘Inschakelen Vakantie‘ en ‘Inschakelen met overbrugging‘ aangezet worden. Deze kunnen dan per ruimte ingesteld worden, bijvoorbeeld voor ‘Beneden’:
Als je de master aan laat staan, geeft die alleen de alarm-modi die op alle gebieden overeenkomen.
Per alarm-modus kunnen de ‘Vertrek vertraging’, de ‘Binnenkomst vertraging‘ en de ‘Activatie tijd‘ ingesteld worden.
Daaronder kunnen de ‘Gebieden‘ ingesteld worden en zodoende kan het alarmsysteem verdeeld worden in zones voor het huis. Per gebied kan zoals gezegd ingesteld worden welke alarm-modi gebruikt dienen te worden en elk gebied bevat dan de sensoren voor het alarmsysteem.
Sensoren
In de Sensoren weergave worden de sensoren getoond en deze kunnen dan per gebied aan de verschillende modi toegevoegd worden. Bijvoorbeeld de achterdeur in gebied Beneden komt in alle alarm-modi:
In de Geavanceerde instellingen voor elke sensor kunnen de volgende aanpassingen worden gemaakt:
Handig hier is de optie ‘Automatisch omzeilen‘ om een sensor te kunnen overbruggen als deze aan staat en je toch het alarm wilt inschakelen. Of ‘Actieve toestand toestaan bij inschakelen‘ om bijvoorbeeld een deur of raam pas dicht te doen als het alarm al aan staat.
Verder zal een sensor automatisch een ‘Apparaat type‘ krijgen en afhankelijk hiervan wordt een voorkeur voor de Alarmmodi ingesteld. Rookmelders en waterdetectors worden standaard op ‘Altijd‘ gezet. Voor deurcontacten en bewegingsmelders kan gekozen worden welke Alarmmodi gebruikt dienen te worden.
Codes
In de Codes weergave kunnen gebruikers toegevoegd worden en elke gebruiker kan een eigen pincode of wachtwoord hebben en of deze vereist zijn voor in-, uit- of omschakelen.
Het is hier ook mogelijk een code aan te maken die onder dwang gebruikt kan worden om direct het alarm te activeren door de optie ‘Is een forceer code‘ aan te zetten:
Acties
In de Actions weergave kunnen Meldingen en Acties ingesteld worden. Meldingen kunnen naar mobile phones gestuurd worden aan de hand van de diverse statussen van het alarmsysteem. Acties kunnen uitgevoerd worden op basis van de status van het alarmsysteem.
Er kunnen voor deze gebeurtenissen Meldingen en Acties worden ingesteld:
Voorbeeld van een Melding:
Een Conditie wordt ingesteld voor de gebeurtenis wanneer het alarm wordt uitgeschakeld, in dit geval voor het gebied ‘Beneden’ en voor elke Modi:
Vervolgens dient via een Taak te worden aangegeven welke melding waar naartoe gestuurd moet worden. Er kan een variabele meegestuurd worden wie het alarm heeft uitgeschakeld:
Tenslotte wordt een omschrijving meegegeven:
Voorbeeld van een Actie:
De Conditie voor een Actie wordt bijvoorbeeld aangemaakt als het alarm is afgegaan in gebied master:
Als Taak wordt dan ingesteld dat de lampen in de light-group ‘alarm_lichten’ aangezet moeten worden:
Via de YAML editor kan dan tevens een kleur meegegeven worden voor de lampen die dat ondersteunen:
De Alarmo Panel kaart
Via HACS was ook de Alarmo Card integratie gedownload en daarmee kunnen de Alarm-panels van Alarmo op een Dashboard weergave worden geplaatst. Voor elk gebied dat is aangemaakt in de instellingen van Alarmo kan een Alarmo Card worden gebruikt zodat via een weergave elk gebied apart ingesteld kan worden. Bijvoorbeeld:
Alleen de ingestelde alarm-modi per gebied kunnen weergegeven worden. Meer instellingen kunnen gemaakt worden zoals de grootte van de modi of het numeriek keypad laten tonen, etc.
Mocht een sensor aan staan die niet ingesteld is om overbrugd (omzeilen in de sensor instellingen) te worden, dan zal tevens een rode indicatie op de card weergegeven worden dat de bewuste alarm-modi niet ingeschakeld kan worden via de instelling ‘Toon gereed/niet gereed indicator op inschakelmodusknoppen‘:
Als het alarm wordt ingeschakeld, verschijnt de afteltimer. Als een deur wordt geopend met een sensor, verschijnen de status ‘in afwachting’ en een afteltimer. Wanneer de timer afloopt, wordt het alarm geactiveerd en wordt een Action uitgevoerd. Op de alarm-card is vervolgens te zien welke sensor het alarm heeft geactiveerd. Er verschijnt ook een melding op de mobile phone om ons te laten weten dat het alarm is afgegaan. Deze laat ook zien welke sensor het alarm heeft geactiveerd.
Ook als het alarm niet aan staat zullen rookmelders en waterdetectors het alarm activeren, een melding naar de mobile phone sturen en eventueel een Action activeren.
Waarom dan ook nog Node-RED gebruiken in combinatie met Alarmo?
Als eerste wil ik mijn rookdetectors periodiek kunnen testen zonder dat er gelijk allemaal toeters en bellen afgaan via het alarm-systeem. Wat ik mis in Alarmo is een test-modus voor bepaalde sensoren waarmee het alarm niet ge-activeerd wordt. De rookmelders hebben een test-button en sommige fabrikanten hebben die apart van de rookdetectie terwijl bij andere fabrikanten met de test-button ook de rookdetectie geactiveerd wordt.
De oplossing hiervoor is een helper van het type input_boolean in Home Assistant maken en die gebruiken om de test-mode aan of uit te zetten. Echter, die kan niet gebruikt worden binnen Alarmo ;-( en dus maak ik hiervoor een flow in Node-RED om de rookmelders te gebruiken in plaats van als sensor in Alarmo. Bijvoorbeeld:
In het geval dat de waterdetectie sensoren van de vaatwasser of wasmachine aan gaan, wil ik tevens de slimme stekkers van de vaatwasser of de wasmachine uit zetten om kortsluiting te voorkomen. Daarnaast heb ik ook een test-mode voor de waterdetectie sensoren hetgeen misschien overbodig is…
Via een RFC sticker (TAGS in Home Assistant) kan ik ’s avonds voor het slapen gaan deze scannen met mijn smartphone en hiermee het alarm aanzetten en de verlichting uit doen. Deze functionaliteit is niet aanwezig in Alarmo dus daar maak ik een Node-RED flow voor.
Op basis van aanwezigheid (GEO-location) zet ik het alarm op ‘armed_away‘ of op ‘disarmed‘ zodat ik daar niets verder voor hoef te doen als ik weg ga of thuis kom.
Je ziet hier een node genaamd ‘Get alarmcode’ en dat vergt enige uitleg:
De alarmcodes in Alarmo kunnen ingesteld worden per gebruiker via de ‘Codes‘ optie. Voor Node-RED heb ik een aparte code aangemaakt zodat ik in een melding kan zien wie het alarm heeft uitgezet, in dit geval dus ‘nodered’. Echter, ik wil wachtwoorden en pincodes niet in Node-RED flows zetten als leesbare tekst maar haal de code uit de secrets.yaml van Home Assistant en plaats deze in een Node-RED variabele. Hiervoor is de volgende flow:
De eerste node controleert op event type ‘home_assistant_client‘ hetgeen een trigger is voor deze flow als Node-RED gestart/herstart wordt. Een switch-node controleert of de payload van het event dan ‘running’ is. Vervolgens wordt met een ‘read-file node‘ de secrets.yaml ingelezen waarna een ‘yaml-node‘ het yaml-formaat in de payload zet. Tenslotte zet een ‘change-node‘ de msg.payload.alarmcode (alarmcode is de regel uit de secrets.yaml file) om naar een global.alarmcode variabele die gebruikt kan worden in de rest van de flows.
Het alarmo-systeem zelf wil ik ook kunnen testen zonder dat er allerlei toeters en bellen afgaan, lichten op rood gaan knipperen etc… ook hiervoor heb ik een helper van het type input_boolean gemaakt waarmee ik kan aangeven dat het alarm in test-mode staat (of niet). Deze voorwaarde kan ik niet in de Alarmo Meldingen kwijt. Via Actions zou ik hiervoor een script moeten maken maar dan is (voor mij) een Node-RED flow sneller gemaakt.
Uiteraard sta ik open voor handige oplossingen binnen Alarmo zelf! 😉
Meer info over Alarmo: https://github.com/nielsfaber/alarmo