Anfänger braucht Hilfe bei Lichtautomation

Hallo zusammen,

hoffe, ich habe ein ähnliches Thema nicht übersehen.

Ich habe eine Automation erstellt, wo in 3 Zeitfenstern das Licht bei Bewegung eingeschaltet werden soll. Im 1. und 2. Zeitfenster wird das Licht hell geschaltet, im 3. Zeitfenster gedimmt.

Nun würde ich die Zeitfenster gerne über das Dashboard varialble gestalten. Z.B. über ein Dropdown-Menü die Zeitpunkte anpassen.

Leider sind meine Kenntnisse noch sehr gering und ich hoffe hier Hilfe zubekommen.

Meine Automatisierung sieht zu Zeit wie folgt aus:

alias: Licht Flur Decke
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.bewegungsmelder_flur
    id: BWM Ein
    from: "off"
    to: "on"
  - trigger: state
    entity_id:
      - binary_sensor.bewegungsmelder_flur
    id: BWM Aus
    from: "on"
    to: "off"
conditions: []
actions:
  - choose:
      - conditions:
          - condition: and
            conditions:
              - condition: trigger
                id:
                  - Bewegung
                  - BWM Ein
              - condition: time
                after: "17:00:00"
                before: "22:00:00"
                weekday:
                  - mon
                  - tue
                  - wed
                  - thu
                  - fri
                  - sat
                  - sun
        sequence:
          - type: turn_on
            device_id: 70ee1323df009248dc410c45b295999d
            entity_id: 5f59c52b4408119952f303170e24f876
            domain: light
            brightness_pct: 100
      - conditions:
          - condition: and
            conditions:
              - condition: trigger
                id:
                  - Bewegung
                  - BWM Ein
              - condition: or
                conditions:
                  - condition: time
                    before: "06:00:00"
                    after: "00:00:00"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
                  - condition: time
                    after: "22:00:00"
                    before: "23:59:59"
                    weekday:
                      - mon
                      - tue
                      - wed
                      - thu
                      - fri
                      - sat
                      - sun
        sequence:
          - type: turn_on
            device_id: 70ee1323df009248dc410c45b295999d
            entity_id: 5f59c52b4408119952f303170e24f876
            domain: light
            brightness_pct: 5
      - conditions:
          - condition: trigger
            id:
              - Keine Bewegung
              - BWM Aus
          - condition: or
            conditions:
              - condition: time
                before: "06:00:00"
                after: "00:00:00"
                weekday:
                  - mon
                  - tue
                  - wed
                  - thu
                  - fri
                  - sat
                  - sun
              - condition: time
                after: "17:00:00"
                before: "23:59:59"
                weekday:
                  - sun
                  - sat
                  - fri
                  - thu
                  - wed
                  - tue
                  - mon
        sequence:
          - type: turn_off
            device_id: 70ee1323df009248dc410c45b295999d
            entity_id: 5f59c52b4408119952f303170e24f876
            domain: light
mode: single

Mein erster Gedanke war, ich erstelle 3 Helfer des Typs dropdown und setze statt der Uhrzeit die Entitäts-ID des jeweiligen Dropdown-Menü.

Aber das funktioniert anscheinend so nicht, da ich beim speichern eine Fehlermeldung bekomme.

Dann habe ich noch eine 2. Frage:

Bei weekday habe ich ja alle 7 Wochentage eingetragen, sind diese Zeilen nötig, wenn es täglich stattfinden soll?

Vielen Dank schonmal!!

Torsten

Statt der Uhrzeit, und ggf. Einstellmöglichkeiten per Helfer, würde ich mir die Sonne zu Hilfe nehmen:

Damit entfällt die lästige Umstellerei der Uhrzeit mit sich ändernden Jahreszeiten.

Wg. Wochentagen, nein du musst Die nicht angeben, wenn es eh an allen Tagen auslösen soll.

Hallo @Jorge, danke für den Hinweis. So eine Automation hatte ich anfangs beim I/O-Broker, war aber nicht zufrieden mit dieser Lösung und war mit der Festen Zeit die man über das Dashboard anpassen kann glücklicher.

Gruß Torsten

Besser wäre, die konkrete Fehlermeldung und den verwendeten Code hier zu posten.

Das, was im Input Select als Option steht, wird als Text interpretiert. Damit Home Assistant diesen Text als Zeit erkennen kann, musst du ein Template benutzen.

Option im Input Select z. Bsp. 10:15

in der Automation:


  - condition: template
    value_template: |-
      {% set zeit = states('input_select.test') %}
      {{ zeit == states('sensor.time') }}

sensor.time muss natürlich existieren. Das Date ist immer ein String (= Text), und den kannst du mit deiner Option vergleichen.

Deine Erklärung ist einleuchtend.

Wert in Dropdown = Text

In meiner Automation benötigt = Zahl

Hier ein Screenshot von der Fehlermeldung:

Screenshot 2025-05-25 103423

Der verwendete funktionierende Code steht in meinem 1. Post. Ich habe statt der Uhrzeit den Helfer eingetragen, was ja nicht funktioniert.

Wo es bei mir jetzt noch Hakt, wie kann ich aus dem Text eine Zahl machen?

Ich habe ja z. B. den Dropdown Helfer

input_select.licht_flur_abend_umschalten

und den Zahlen Helfer

input_number.licht_flur_abend_umschalten

wo muss ich jetzt was Eintragen, damit das funktioniert?

Gruß Torsten

Wenn du bei der condition: time bleiben willst, kannst du alternativ auch Input Datetime Helfer verwenden.
Ich hatte nicht groß in deine Automation reingeschaut. Willst du also mehrere Helfer anlegen für die einzelnen Zeitfenster?
wo taucht dort eine Input Number auf?

@Kitty

Ich bin noch absoluter Anfänger in HA und versuche mich mit solchen Sachen vertraut mit der Materie zu machen.

Da ich aus deinem letzten Post gelernt habe, dass ich ja eine Zahl brauche und das Dropdown nur einen Text liefert, habe ich schonmal einen Input Number angelegt, in der Hoffnung du kannst es mir anhand dieses Beispiels erklären, wie ich da weiterkomme.

Wenn es mit dem Weg über Dropdown einen einfacheren weg als condition: time gibt, wäre ich dir sehr dankbar wenn du ihn mir zeigst.

Gruß Torsten

Alles cool. :slight_smile:

Mein Vorschlag geht von einem existierenden sensor.time aus. Hast du so einen? Bitte mal

{{ states('sensor.time') }}

in Entwicklerwerkzeuge ——> Template reinkopieren und das Ergebnis mitteilen.

Ich hoffe, ich habe das Richtig verstanden:

Perfekt. Das Ergebnis zeigt, dass du noch keinen Zeit-Sensor eingerichtet hast.
Über Integrationen kannst du einen erstellen.

Hier braucht man 6 Input Selects.

Wie hat das IOBroker gelöst?

Welchen genau muss ich nehmen?

Leider habe ich die Integration nicht mehr, habe das vor 6 Jahren 1x erstellt und kann mich leider nicht mehr errinnern wie ich es damals über Blockly umgesetzt habe.

Don´t change a running System. Einmal eingestellt und nie wieder angefasst.

Aus verschiedenen Gründen war ich nicht mehr Glücklich mit IO-Broker und dachte mir, Probiere HA aus. Bisher bin ich ganz Zufrieden mit dem System. Was Umsetzung und Kompatibilität angeht. Nun möchte ich ein bisschen mehr über das “Programmieren” lernen.

EDIT:

Ich habe jetzt mal “Datum & Zeit” ausgewählt und 1 Entität damit erstellt.

Das mit den 6 Input Select habe ich jetzt nicht verstanden! (Meinst du Helfer?)

Wenn du den Test von oben wiederholst (oder in „Zustände“ schaust), müsste {{ states('sensor.time') }} jetzt die aktuelle Uhrzeit ausspucken.

Ja. Für deine 3 Zeitfenster.

Vielleicht fällt mir oder anderen noch etwas Schickeres ein.

Da sich die Zeitfenster überschneiden und ein Datumswechsel drin ist. Sind es eigentlich nur 2 Zeitfenster.

In meinem Beispiel oben:

Zeitfenster 1: 00:00 Uhr bis 06:00Uhr

Zeitfenster 2: 17:00 Uhr bis 22:00Uhr

Zeitfenster 3: 22:00Uhr bis 23:59 Uhr

Zeitfenster 3 geht in Zeitfenster 1 über. Was ja 2 feste Werte sind 00:00Uhr und 23:59 Uhr

Zeitfenster 2 und Zeitfenster 3 gehen nahtlos über. Im Beispiel 22:00Uhr.

Also Bräuchte ich ja nur 3 Input_Select.

  1. Ende 1. Zeitfenster (input_select.licht_flur_morgens_aus)
  2. Beginn 2. Zeitfenster (input_select.nachmittag_ein)
  3. Zeitpunkt Wechsel Zeitfenster 2 zu 3 (input_number.licht_flur_abend_umschalten)

So habe z.B. den Input.Select für morgens erstellt.

Die hatte ich ja schon erstellt.

Ach so, ich ging davon aus, dass du alle Zeiten einzeln bei Bedarf ändern willst.

Ins Template würde ich packen:


{{ zeit1 < states('sensor.time') < zeit2 }}

Und die Zeiten als Automations-Variablen, z. Bsp.

actions:

  - variables:
      zeit1: "{{ states('input_select.bla') }}"
      zeit2:
      usw.

  - action: …

Ich bin mir nicht sicher ob ich das Richtig verstehe.

Meinst du so?

alt:

actions:
  - choose:
      - conditions:
          - condition: and
            conditions:
              - condition: trigger
                id:
                  - Bewegung
                  - BWM Ein
              - condition: time
                after: "17:00:00"
                before: "22:00:00"
                weekday:
                  - mon
                  - tue
                  - wed
                  - thu
                  - fri
                  - sat
                  - sun
        sequence:
          - type: turn_on

neu

actions:
  - choose:
      - conditions:
          - condition: and
            conditions:
              - condition: trigger
                id:
                  - Bewegung
                  - BWM Ein
              - variables:
                  zeit1: "{{ states('input_select.nachmittag_ein') }}"
                  zeit2: "{{ states('input_select.licht_flur_abend_umschalten') }}"
        sequence:
          - type: turn_on

wo setze ich dann

{{ zeit1 < states('sensor.time') < zeit2 }}

ein?


actions:

  - variables:
      zeit1: "{{ states('input_select.bla') }}"
      zeit2:
      usw.

  - choose:
      - conditions:
          - condition: and
            conditions:
              - condition: trigger
                id:
                  - Bewegung
                  - BWM Ein
              - condition: template
                value_template: "{{ zeit1 < states('sensor.time') < zeit2 }}"

Das sieht bei mir jetzt wie folgt aus:

actions:
  - variables:
    zeit1: "{{ states('input_select.licht_flur_morgens_aus') }}"
    zeit2: "{{ states('input_select.nachmittag_ein') }}"
    zeit3: "{{ states('input_select.licht_flur_abend_umschalten') }}"
	
  - choose:
      - conditions:
          - condition: and
            conditions:
              - condition: trigger
                id:
                  - Bewegung
                  - BWM Ein
              - condition: template
                value_template: "{{ zeit2 < state('sensor.time') < zeit3 }}"
        sequence:
          - type: turn_on

Wenn ich jetzt speichern möchte, kommt folgende Fehlermeldung:

Screenshot 2025-05-25 173631

Die Variablen sind nicht richtig eingerückt, vgl. den vorletzten Beitrag.

Ich habe die 3 Variablen jetzt eingerückt, es kommt keine Fehlermeldung mehr.

Aber das Licht wird nicht geschaltet.

value_template: "{{ zeit2 < state('sensor.time') < zeit3 }}"

Das ist aber so richtig geschrieben, oder?

in zeit2 müsste jetzt 17:00 stehen und in Zeit3 22:00

EDIT:

Wenn ich mir das jetzt genauer anschaue, wie ist das mit der Zeit um Mitternacht. In der “alten” Automatik hatte ich ja bei dem 1. Zeitfenster 00:00:00 Uhr drin und im 3. Zeitfenster 23:59:59 eingetragen, die ja nicht verändert werden sollen. Kann ich da statt einer varible zeit, direkt 00:00:00 eintragen? Wenn ja mit Anführungsstrichen?

Da fehlt ein s

states('sensor.time')

Wenn du mit Sekunden arbeiten willst, wird sensor.time nicht funktionieren. Dann lieber mit


{{ now().strftime('%T') }}

arbeiten.