Wochenliste oder Array

Hi,

ich suche nach einer Möglichkeit eine Liste zu erstellen in der ich abhängig vom Wochentag einen Wert abfragen kann und deren Inhalt ich auf einem Dashboard editieren kann.

Bisher ist die einzige Lösung, die mir dafür einfällt einen Helfer für jeden Wochentag zu erstellen und beim Auslesen jedes Mal eine vollständige Auswahl nach dem Muster “Wenn Montag, nimm diesen Helfer, wenn Dienstag nimm diesen Helfer…….).

Gibt es da irgend etwas eleganteres? Gibt es so etwas wie Arrays die man auch speichern kann in HA?

Danke für eure Aufmerksamkeit

Hilft dir die Work Day Integration nicht?

Auch in Automationen:

bleibt natürlich die Frage was genau du machen willst

Nein, die benutze ich auch für andere Dinge, aber ich brauche etwas, das nichts mit den Arbeitstagen zu tun hat.

Eher so etwas wie “Immer Montags Option A, immer Dienstags Option B, immer Mittwochs Option A…..” und welche Option an welchem Tag muss immer mal wieder angepasst werden.

Die Aufgabenstellung ist mir nicht wirklich klar. Vielleicht denst Du auch um zu viele Ecken herum.
Kannst Du mal bitte ein konkretes Beispiel nennen.

Gruß Osorkon

Abhängig davon, wer mit Kochen dran ist, sollen zu bestimmten Zeiten oder Ereignissen bestimmte Dinge ausgelöst werden.

Mit Kochen dran sein kann:
Person A
Person B
wechselnd (weil Wochenende)
oder das Essen wird improvisiert (weil an diesem Tag meistens niemand zuhause ist)

Die Woche ist so aufgeteilt, dass über einen längeren Zeitraum die gleiche Einteilung bestehen bleibt, aber gelegentlich wird diese Einteilung geändert. Wer an welchem Tag dran ist soll auf einem Dashboard sowohl abzulesen, als auch einzustellen sein.

Eine Lösung mit sieben Dropdown Menüs wäre zwar machbar, aber pro Automatisierung nervig umzusetzen, weil man je nach Wochentag einen anderen Helper auslesen muss und dann pro Helper noch mal die vier zustände abfragen muss.

In der Programmierung würde ich die Werte in ein Array eintragen und einfach die Nummer des Wochentages als Index für die Abfrage im Array nutzen, aber anscheinend gibt es so etwas wie ein Array nicht in HA.

Falls Du den Google Kalender eingebunden hast würde ich dort einen Kalender erstellen.
Da kann man auch Änderungen machen wenn mal anders.

Ich bin mir noch nicht ganz sicher ob ich es richtig Überrissen habe.
Für jeden Wochentag gibt es ein Input Select mit der Auswahl Bob und Anne.

In diesen Bsp. heißen die Input Select, wie die Wochentage, also montag, dienstag, mittwoch, etc.

input_select:
  montag:
    name: Wer kocht am Montag
    options:
      - Bob
      - Anne
    initial: Anne
    icon: mdi:cookie
  dienstag:
    name: Wer kocht am Dienstag
    options:
      - Bob
      - Anne
    initial: Anne
    icon: mdi:cookie
  mittwoch:
    name: Wer kocht am Mittwoch
    options:
      - Bob
      - Anne
    initial: Anne
    icon: mdi:cookie
  donnerstag:
    name: Wer kocht am Donnerstag
    options:
      - Bob
      - Anne
    initial: Anne
    icon: mdi:cookie
  freitag:
    name: Wer kocht am Freiatag
    options:
      - Bob
      - Anne
    initial: Anne
    icon: mdi:cookie
  samstag:
    name: Wer kocht am Samstag
    options:
      - Bob
      - Anne
    initial: Anne
    icon: mdi:cookie
  sonntag:
    name: Wer kocht am Sonntag
    options:
      - Bob
      - Anne
    initial: Anne
    icon: mdi:cookie

Mit folgenden Template kannst Du ermitteln, wer heute Küchendienst hat:

{% set wochentag = ["montag", "dienstag", "mittwoch", "donnerstag", "freitag", "samstag", "sonntag"] %}
{% set heute = "input_select." + wochentag[now().weekday()] %}
{{ states(heute) }}

Jetzt kannst Du entweder direkt dieses Template als Bedingung in Deinen Automationen verwebenden:

actions:
  - choose:
      - conditions:
          - condition: template
            value_template: |
              {% set wochentag = ["montag", "dienstag", "mittwoch", "donnerstag", "freitag", "samstag", "sonntag"] %}
              {% set heute = "input_select." + wochentag[now().weekday()] %}
              {{ states(heute) == "Bob" }}
        sequence:
          - action: light.turn_on
            metadata: {}
            target:
              entity_id: light.xyz
            data:
              rgb_color:
                - 255
                - 38
                - 0
      - conditions:
          - condition: template
            value_template: |
              {% set wochentag = ["montag", "dienstag", "mittwoch", "donnerstag", "freitag", "samstag", "sonntag"] %}
              {% set heute = "input_select." + wochentag[now().weekday()] %}
              {{ states(heute) == "Anne" }}
        sequence:
          - action: light.turn_on
            metadata: {}
            target:
              entity_id: light.xyz
            data:
              rgb_color:
                - 0
                - 249
                - 0

Oder Du erstellst Dir einen template Sensor und verwendest diesen als Bedingung

actions:
  - choose:
      - conditions:
          - condition: state
            entity_id: sensor.kuchendienst_heute
            state:
              - Bob
        sequence:
          - action: light.turn_on
            metadata: {}
            target:
              entity_id: light.xyz
            data:
              rgb_color:
                - 255
                - 38
                - 0
      - conditions:
          - condition: state
            entity_id: sensor.kuchendienst_heute
            state:
              - Anne
        sequence:
          - action: light.turn_on
            metadata: {}
            target:
              entity_id: light.xyz
            data:
              rgb_color:
                - 0
                - 249
                - 0

Gruß Osorkon

Ja genau so in der Art habe ich mir das vorgestellt, aber jetzt bin ich doch ein wenig bräsig: Wo, erstelle ich dieses Input Select? Ich kann mir die YMAL von Automationen anzeigen lassen und von Dashboardelementen, aber das müsste doch ein Helper sein oder? Da kann ich keine YAML öffnen. Oder kommt das in die configuration.yaml ???

Vielen Dank schon mal!

Du kannst es bequem auch als Helfer über die GuI erstellen.
Geht aber bei dieser Anzahl in Yaml schneller.
Je nach dem wie Du Deine Konfiguration eingerichtet hast, direct in der configuration.yaml oder ausgelagert in der input_select.yaml oder, oder.

Gruß Osorkon

Ich wusste nicht, dass ich Helper direkt in der configuration.yaml definieren kann. Das macht vieles deutlich leichter. Ich wäre auch nie auf die Idee gekommen den Namen des select_inputs mit dem Template dynamisch zu vervollständigen.

VIELEN Dank!

Schon immer. :grin: Die Helfer in der GUI kamen erst später nach und nach dazu.

Um Wissenslücken zu schließen bietet sich das Lesen der Dokumentation an. :wink:

Immer wieder gerne. :smiley:

Gruß Osorkon

1 „Gefällt mir“