Earth Hour

Tijdens Earth Hour doen mensen over de hele wereld één uur het licht uit, als stil protest tegen de verwoesting van het milieu, de onverschilligheid daarover van de meeste mensen en de keiharde tegenwerking van machthebbers. Zie https://www.earthhour.org/.

Earth Hour valt meestal op de laatste zaterdag van maart, maar soms op de voorlaatste zaterdag als de laatste zaterdag samenvalt met een religieuze feestdag zoals Pasen of het Suikerfeest. Altijd tussen 20:30 en 21:30 uur lokale tijd.

Ik heb Earth Hour al een paar keer gemist, maar nu niet meer. Home Assistant regelt het voor me!

Ik heb een Automatisering gemaakt die elk jaar tijdens Earth Hour een script start. De automatisering zorgt dus voor het juiste moment en het script is wat er gebeurt. Beetje ingewikkeld, maar hieronder vertel ik precies wat ik heb gedaan en hoe jij het ook instelt.

Script

Maak eerst een script. Dat is een reeks gebeurtenissen die na elkaar plaatsvinden.
De eenvoudigste manier om dit script over te nemen is: voeg een nieuw script toe en kies dan via het menu rechtsboven voor “Bewerken in YAML”, dan plak je daar het script dat verderop staat op deze pagina.

Wat het script doet: het laat weten dat het Earth Hour is begonnen. Ik deed dat voorheen met Google Home speaker, maar in mijn nieuwe opzet ga ik die niet meer aansluiten, dus nu stuur ik een pushberichtje naar alle devices.

Dan worden alle lichten uitgezet, waarschijnlijk heb je daar wel een scene voor, hoe ik dat heb gedaan lees je elders op deze website.

Vervolgens start je een timer. Gebruik bij voorkeur de Timer uit de lijst Helper-functies, want die is betrouwbaarder dan gewoon een tijd wachten. Als tussentijds je systeem herstart (bijvoorbeeld i.g.v. updates) pakt de Helper-Timer de draad gewoon op waar hij was.

Dan wacht je tot de timer is afgelopen

En daarna zet je de verlichting weer aan.

Mijn script ziet er zo uit:

alias: Earth Hour
mode: single
icon: mdi:earth
sequence:
  - action: notify.notify
    metadata: {}
    data:
      message: Een uur lang zijn de lichten uit voor het klimaat.
      title: Het is Earth Hour!
    alias: Meld Earth hour aan iedereen
  - target:
      entity_id: input_boolean.lichten_mogen_aan
    action: input_boolean.turn_off
    data: {}
    alias: Lichten uit
  - data:
      duration: "1:00:00"
    target:
      entity_id: timer.earth_hour_timer
    action: timer.start
  - wait_for_trigger:
      - trigger: state
        entity_id:
          - timer.earth_hour_timer
        to: idle
  - target:
      entity_id: input_boolean.lichten_mogen_aan
    action: input_boolean.turn_on
    data: {}
    alias: Lichten aan

Automatisering

Dan maak je een automatisering. Die ‘weet’ precies wanneer het Earth Hour is en start op de juiste tijd het Earth Hour-script.

Mijn automatisering ziet er zo uit:

alias: Start Earth Hour-script tijdens Earth Hour
description: ""
triggers:
  - alias: Wanneer het Earth Hour is
    value_template: >-
      {% set earth_hour_dates = {
          "2024": "2024-03-23",
          "2025": "2025-03-22",
          "2026": "2026-03-28",
          "2027": "2027-03-20",
          "2028": "2028-03-25",
          "2029": "2029-03-31",
          "2030": "2030-03-30",
          "2031": "2031-03-29",
          "2032": "2032-03-27",
          "2033": "2033-03-26",
          "2034": "2034-03-25",
          "2035": "2035-03-24",
          "2036": "2036-03-29",
          "2037": "2037-03-28",
          "2038": "2038-03-27",
          "2039": "2039-03-26",
          "2040": "2040-03-31",
          "2041": "2041-03-30",
          "2042": "2042-03-29",
          "2043": "2043-03-28"
      } %}

      {% set today_str = now().strftime('%Y-%m-%d') %}

      {% set earth_hour_this_year = earth_hour_dates[now().year|string] if
      (now().year|string) in earth_hour_dates else false %}

      {{ today_str == earth_hour_this_year and now().hour == 20 and now().minute == 30 }}
    trigger: template
conditions: []
actions:
  - action: script.earth_hour
    metadata: {}
    data: {}
    alias: start het 'Earth Hour' script
mode: single

Deze werkt dus tot 2043, we kunnen even vooruit. (bron)

Zet zonodig de naam van jouw script in de code zodat het juiste script wordt gestart.