Zeitliche Steuerung einer smarten Steckdose

Hallo zusammen,

ich habe gerade eine Denkblockade. Ich möchte eine smarte Steckdose, wenn sie 7 Tage nicht an war, automatisch anschalten. Ich könnte jetzt natürlich sagen: schalte die Steckdose immer Sonntags um 10 Uhr an. Aber…

Wenn die Steckdose zwischendurch schon mal an war, sollen die 7 Tage von da an rechnen. Also nicht immer Sonntags, sondern immer nach 7 Tagen seit der letzten Nutzung. Mir fällt dazu leider gerade garnichts ein.

Ich suche also etwas nach dem Motto: rechne mir 7 Tage nach der letzten Änderung zu OFF.

alias: ""
description: ""
trigger:
  - platform: time_pattern
    hours: /168
condition: []
action:
  - type: turn_on
    device_id: xxxx
    entity_id: switch.tapo_xxxx
    domain: switch
mode: single

Aber woher bekomme ich den Status der letzten Änderung und wie addiere ich die 7 Tage?

Mit auslöser von zu also wenn er von an zu aus wechselt lässt du den timer laufen und wenn der durch ist mach an.

z.b.

trigger:
  - platform: state
    entity_id:
      - input_boolean.samsung_refresh
    from: "on"
    to: "off"

ach so …
…und dann die 7 Tage bzw. 168 Stunden als (Bedingung) Action delay?
…und den Modus der Automation ändern auf “restart”?

description: ""
mode: restart
trigger:
  - platform: state
    entity_id:
      - switch.tapo_xxxx
    from: "on"
    to: "off"
    for:
      hours: 0
      minutes: 5
      seconds: 0
condition: []
action:
  - delay:
      hours: 168
      minutes: 0
      seconds: 0
      milliseconds: 0
  - type: turn_on
    device_id: xxxx
    entity_id: switch.tapo_xxxx
    domain: switch

Werde ich testen, dann war es echt einfach.

Läuft das Delay denn noch, wenn es mal unterbrochen wurde (Neustart, Update …)?

Ich vermute nicht.

Wenn noch jemand eine andere Lösung hat, teste ich gerne weiter. Habe aber gerade selber keine andere Idee

Vielleicht würde es mit diesem Trigger gehen

trigger:
  - platform: device
    type: turned_off
    device_id: xxxyyyzzz
    entity_id: switch.tapo_xxx
    domain: switch
    for:
      hours: 168
      minutes: 0
      seconds: 0

Geht der Trigger denn nicht verloren beim Neustart/Update? Oder liest der last_changed aus?

Weiß ich leider auch nicht :man_shrugging:t3:

Helfer? Wäre meine Idee.

So hab ich meine Licht aus Automation im Wohnzimmer umgesetzt. Helfer Datum/Uhrzeit, nur Uhrzeit gewählt. Die Uhrzeit kann ich auf dem Dashboard eingeben. Automation: ist Uhrzeit gleich input_datetime.wohnzimmer mach das Licht aus.

Für deinen Fall. Geht der Schalter aus, setz den Helfer auf Zeitstempel plus 168 Stunden. Automation Helfer ist Zeit jetzt, mach den Schalter an.

Die Helfer überleben einen Neustart, meiner Erfahrung nach.

Liebe Grüße

Wie setze ich denn den Helfer auf den aktuellen Zeitstempel des Ausschaltens?

Die Idee mit einem Helfer hatte ich nämlich auch schon, komme aber nicht weiter.

Hab gerade sowas gefunden:

1 „Gefällt mir“

Datum und Uhrzeit in ein Helper ist kein Problem, aber wir addiere ich 7 Tage?

service: input_datetime.set_datetime
target:
  entity_id: input_datetime.steckdose_tapo_waschezimmer
data:
  datetime: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"

Laut dem Link von @maxe würde ich es so verstehen:

service: input_datetime.set_datetime
target:
  entity_id: input_datetime.steckdose_tapo_waschezimmer
data:
  datetime: "{{ (now().date() + timedelta(days=7)).strftime('%Y-%m-%d %H:%M:%S') }}"
1 „Gefällt mir“

Fast perfekt, aber die Uhrzeit wird nicht gespeichert.

Edit:
datetime: "{{ (now() + timedelta(days=7)).strftime('%Y-%m-%d %H:%M:%S') }}"
Damit geht es

3 „Gefällt mir“