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 en ook niet hoeven aan te passen in Node-RED als de secret aangepast wordt in HA.
Ik haal de code dus 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.