Jak przerwać automatyzację zewnętrznym eventem?

Mam taką automatyzację do porannej pobudki, żarówka zapala się o 6:20 w sypialni i co 20 sekund rozjaśnia się o 1% aż do godziny 7:30:

alias: Morning artifical sunlight 🌞
description: Dim up 1% by each 20 s
triggers:
  - at: "06:20:00"
    trigger: time
actions:
  - target:
      device_id: 272b27c7dbe9662c575ccba2e5f9411b
    data:
      brightness_pct: 1
      color_temp_kelvin: 2000
    action: light.turn_on
  - repeat:
      until:
        - condition: time
          after: "07:30:00"
      sequence:
        - delay: "00:00:20"
        - target:
            device_id: 272b27c7dbe9662c575ccba2e5f9411b
          data:
            brightness_step_pct: 1
          action: light.turn_on
  - target:
      device_id: 272b27c7dbe9662c575ccba2e5f9411b
    data:
      color_temp_kelvin: 4000
    action: light.turn_on
  - delay: "00:00:02"
  - target:
      device_id: 272b27c7dbe9662c575ccba2e5f9411b
    action: light.turn_off
mode: single

Szukam sposobu jak przerwać automatyzację poprzez wyłączenie tej żarówki, czy ktoś może z Was spotkał się z takim problemem?

1 Like

Tzn chcesz za pomocą wyłączenia żarówki sprawić, aby automatyzacja się przerwała, czy chcesz jakimś innym triggerem wywołać przerwanie automatyzacji, które ma dać rezultat wyłączenia żarówki?

1 Like

Tak dokładnie, żarówka ma się rozjaśniać i świecić do wskazanej godziny 7:30 AM, zaś wyłączenie żarówki np. z poziomu pilota, albo HA, ma zatrzymać całą tę automatyzację.

Obecnie jak wyłączę żarówkę pomiędzy 6:20 a 7:30, to automatyzacja ją załącza i dalej żarówka się rozjaśnia.

Ok, to polecam zrobić tak:

  1. Dodaj nowy trigger do tej samej automatyzacji - “żarówka została wyłączona”
  2. Zawiń całą automatyzację w if - tak, aby pętla załączyła się tylko, jeżeli jest 6:20
  3. Zmień “mode” tej automatyzacji na “restart”
2 Likes

Zrobiłem mniej więcej tak, śmiga :yellow_heart::

alias: Morning artificial sunlight (supports manual turning off automation)
description: Dim up 1% every 20s
triggers:
  - at: "6:20:00"
    trigger: time
  - entity_id:
      - light.ikea_of_sweden_tradfri_bulb_e14_ws_globe_470lm
    to:
      - "off"
    trigger: state
conditions: []
actions:
  - choose:
      - conditions:
          - condition: time
            after: "06:19:59"
            before: "06:20:01"
        sequence:
          - target:
              device_id: 272b27c7dbe9662c575ccba2e5f9411b
            data:
              brightness_pct: 1
              color_temp_kelvin: 2000
            action: light.turn_on
          - repeat:
              until:
                - condition: time
                  after: "07:30:00"
                - condition: state
                  entity_id: light.tradfri_bulb
                  state: "off"
              sequence:
                - delay: "00:00:20"
                - target:
                    device_id: 272b27c7dbe9662c575ccba2e5f9411b
                  data:
                    brightness_step_pct: 1
                  action: light.turn_on
          - target:
              device_id: 272b27c7dbe9662c575ccba2e5f9411b
            data:
              color_temp_kelvin: 4000
            action: light.turn_on
          - delay: "00:00:02"
          - target:
              device_id: 272b27c7dbe9662c575ccba2e5f9411b
            action: light.turn_off
            data: {}
mode: restart
1 Like

Ludzie obcykani w HA radzą żeby trzymać wszystko jako flagi stanu, automatyzacja opiera się na tych stanach a eventy po prostu zmieniają stany (coś jak budowanie frontendu).

1 Like

Chyba jest gotowiec do tego co Ty chcesz:

Próbowałeś może?

1 Like

Ogólnie mój kod działa, ale to brzmi super, przetestuję! :slight_smile: