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.