Unschöne Automation (Code) vereinfachen?

Hallo,

ich habe mir eine Automation gebaut, welche mich alle paar Wochen daran erinnert, dass ich Mülldienst habe. Da ich in einem 7-Parteien Haus wohne, sind das alle 7 Wochen.

Jetzt habe ich mir die Wochen gezogen und ein kleiones Script gebaut, das mir aber nicht gefällt.
Ich kann nämlich nur eine Woche die größer als X und kleiner als Y ist aussuchen.
Ich komme ja vom IObroker, und das Blockly dort ist wirklich klasse.
Das fehlt mir in HA wirklich :slight_smile:

Also ich will genau die eine Woche zwischen den Werten. Und nicht so wie das momentan aussieht:

trigger:
  - platform: state
    entity_id:
      - counter.kalenderwoche
condition:
  - condition: or
    conditions:
      - condition: numeric_state
        entity_id: counter.kalenderwoche
        above: 15
        below: 17
      - condition: numeric_state
        entity_id: counter.kalenderwoche
        above: 22
        below: 24
      - condition: numeric_state
        entity_id: counter.kalenderwoche
        above: 29
        below: 31
      - condition: numeric_state
        entity_id: counter.kalenderwoche
        above: 36
        below: 38
      - condition: numeric_state
        entity_id: counter.kalenderwoche
        above: 43
        below: 45
      - condition: numeric_state
        entity_id: counter.kalenderwoche
        above: 50
        below: 52

Da kann mir bestimmt jemand einen Tip geben oder?

Danke schonmal.

Mein Alternativ-Vorschlag wäre die Local Calendar Integration. Da kannst du Termin-Serien anlegen und die Termine in Automationen verarbeiten.

Du könntest die Wochen auch in eine Liste packen und dann prüfen, ob die aktuelle Kalenderwoche in der Liste enthalten ist. Das hat den Vorteil, dass du einfach weitere Wochen hinzufügen oder entfernen kannst, ohne dass du das Skript ändern musst. Du musst hier nur die Wochennummern in der Liste anpassen, falls sich dein Mülldienst-Rhythmus ändert. Hier ein Beispiel:

trigger:
  - platform: state
    entity_id: counter.kalenderwoche
condition:
  - condition: template
    value_template: "{{ state('counter.kalenderwoche') | int in [16, 23, 30, 37, 44, 51] }}"

1 „Gefällt mir“

Vielen Dank euch beiden. Das hört sich beides gut an.

@Flens ich habe deinen Code mal bei mir eingefügt. Gefällt mir gut. Das mit den Templates will ich unbedingt auch noch lernen. Da sieht man mal wie einfach es sein kann wenn man weiß was man tut :smiley:

@Alex Die Integration schau ich mir am WE mal an. Die kenne ich noch gar nicht. Danke für den Tip.

Der nächste step wäre dann eine Erinnerung einen Tag bevor die Tonne geleert wird aber nur in der Woche in der ich Mülldienst habe. Die ganze Termine habe ich sowieso schon im Kalender.
Vielleicht ist das ja was für die Integration die du meinst. Ich schau mir das die Tage mal an.