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.