Met Home Assistant kun je heel handig zogenaamde automatiseringen maken. Als je veel dezelfde type automatiseringen hebt, dan is een ‘blueprint’ erg handig. Een blueprint is een script met bepaalde onderdelen gemarkeerd als configureerbaar. Hierdoor kun je automatiseringen maken op basis van dezelfde blueprint, met elk een eigen configuratie.
Een van de eerste zaken die je vaak wilt automatiseren is het automatisch aan- en uitzetten van licht op basis van beweging. Bij beweging wil je dat het licht automatisch aangaat en na verloop van tijd weer uitgaat. Om dit slimmer te maken wil je dit alleen doen als het donker is en niet overdag. Verder wil je misschien dat deze automatisering alleen voor bepaalde tijdstippen geldt. Tenslotte is het ook handig dat je soms niet wilt dat het licht automatisch uitgaat na verloop van tijd en de mogelijkheid hebben om dit op te heffen. Ik heb voor al deze eisen een blueprint gemaakt die al deze zaken meeneemt.
Ik maak voor de bewegingssensor gebruik van een Aqara Motion Sensor.
Het mooie van deze sensor is, naast dat deze goedkoop is, ook nog een lichtmeting (lux) heeft. Deze lichtmeting is niet super nauwkeurig, maar goed genoeg voor mijn doel.
Voor het schakelen van mijn licht maak ik gebruik van een mix van Shelly 1 en Shelly 1L schakelaars die achter mijn bestaande licht schakelaars zijn verstopt.
Op deze manier kan ik altijd mijn normale schakelaars gebruiken, maar deze ook via WiFi schakelen. Het verschil tussen de Shelly 1 en Shelly 1L is voornamelijk voor mij of ik een Neutrale (blauwe) draad voorhanden had voor mijn licht of niet.
Tenslotte heb ik naast mijn normale schakelaars nog een Aqara Wireless Switch bevestigd indien ik de mogelijkheid wil hebben om het automatisch uitschakelen van het licht op te heffen.
In mijn bluepriunt maak ik gebruik van een zogenaamde input boolean om aan te geven of licht wel of niet automatisch moet worden uitgeschakeld na verlopen tijd. Deze ‘input booleans’ definieer je in je ‘\config\configuration.yaml’ file.
# input_booleans to indicate if light should be kept on after motion input_boolean: notify_kelder: name: Kelder Boolean to indicate if light should stay on
In mijn blueprint controleer ik deze input-boolean dan of het licht automatisch uit mag of niet. Als je het licht handmatig uitzet dan wordt deze ‘input-boolean’ weer op ‘false’ gezet. Indien je de Aqara Wireless Switch dubbel klikt dan wordt deze ‘input-boolean’ op ’true’ gezet. Als je eenmaal klikt op de Aqara Wireless Switch dan togglet deze de geconfigureerde Shelly en ‘input-boolean’.
Om mijn blueprint te gebruiken creëer je in de ‘\config\blueprints\automation’ directory die je gebruikt voor Home Assistant een nieuwe directory genaamd ‘henri’. Zet hierin vervolgens de file ‘smart-motion.yaml’ met de volgende inhoud:
blueprint: name: Henri's Motion Activated Lightswitch description: 'Turn on a switch when motion is detected and turn it off after configurable time-out. As conditions you can set start- and end-time of period to check and lux threshold. Further you can define input_boolean device which, when set, will leave switch on.' domain: automation input: motion_entity: name: Motion Sensor description: Define Motion sensor selector: entity: domain: binary_sensor device_class: motion multiple: false lux_entity: name: Lux Sensor description: Define Lux sensor selector: entity: domain: sensor device_class: illuminance multiple: false light_target: name: Light Switch description: Define switch to turn on/off selector: target: entity: domain: switch push_entity: name: Push Sensor description: Define 'input_boolean', to keep switch on when set (no time-out). selector: entity: domain: input_boolean no_motion_wait: name: Wait time description: Time to leave the switch on after last motion is detected. default: 120 selector: number: min: 0.0 max: 3600.0 unit_of_measurement: seconds mode: slider step: 1.0 start_time: name: Start Time description: Start-time of period when to check for movement default: '00:00:00' selector: time: {} end_time: name: End Time default: '00:00:00' description: End-time of period when to check for movement selector: time: {} lux_treshold: name: Lux Treshold description: Lux threshold needed to turn on switch default: 20 selector: number: min: 0.0 max: 500.0 unit_of_measurement: lux mode: slider step: 5.0 mode: restart max_exceeded: silent trigger: platform: state entity_id: !input motion_entity from: 'off' to: 'on' condition: - alias: Time condition: time after: !input start_time before: !input end_time - alias: Lux condition: numeric_state entity_id: !input lux_entity below: !input lux_treshold action: - service: switch.turn_on target: !input light_target - repeat: sequence: - wait_for_trigger: platform: state entity_id: !input motion_entity from: 'on' to: 'off' - delay: !input no_motion_wait until: - condition: - condition: state entity_id: !input push_entity state: 'off' - condition: state entity_id: !input motion_entity state: 'off' - service: switch.turn_off target: !input light_target
Als je nu een nieuwe ‘automation’ maakt dan kun je deze blueprint gebruiken en de configuratie-gegevens invullen:
Indien je geen gebruikt wilt maken van de mogelijkheid om automatisch uitzetten van het licht tegen te gaan dan kun je een dummy ‘input-boolean’ aanmaken die altijd op ‘false’ staat.
Indien je nog vragen hebt over deze blueprint of als jij ook nog handige blueprints hebt, dan hoor ik die graag van je in de reacties.