Shelly 1 Gen 1 aller 3 Tage neu starten

Hallo liebe Community,

irgendwie stehe ich auf dem Schlauch. Da mein Shelly 1 sich manchmal “aufhängt”, möchte ich ihn automatisch aller 3 Tage neu starten. Auslöser soll ein Template sein. Das Auslösen funktioniert aber nicht, oder ich bin zu blöd. Wenn es eine elegantere Methode gibt, teilt es mir gern mit. Mein Code der Automation ist:

alias: Reboot Shelly Garagentor
description: Garagentor nach 3 Tagen neu starten
trigger:
  - platform: template
    value_template: >-
      {{ ( now() - states('sensor.garagentor_uptime')|as_datetime ).seconds >
      259200 }}
    enabled: true
  - platform: template
    value_template: >-
      {{ ( now() - states('sensor.garagentor_uptime_2')|as_datetime ).seconds >
      259200 }}
    enabled: true
condition: []
action:
  - metadata: {}
    data: {}
    target:
      entity_id: button.garagentor_reboot
    action: button.press
  - action: notify.mobile_app_ronny_poco_x3
    metadata: {}
    data:
      message: Reboot Shelly Garagentor
      title: Reboot Shelly Garagentor
  - delay:
      hours: 0
      minutes: 10
      seconds: 0
      milliseconds: 0
mode: single

Für eure Hilfe schon einmal vielen Dank und vorab ein wunderschönes und gesundes Wochenende.

Ich schlage einen Zeitplan-Helfer vor. Dort legst du die Zeiten des Auslösens fest und wenn der Helfer true wird, lässt du den shelly neustarten.

Aber dann kann ich ja nur einen Tag festlegen oder? Aber keine Zeitspanne für Uptime?

Ich weiß jetzt nicht genau was du mit “aufhängen” meinst, aber bei mir sind ab und an welche nicht erreichbar.
ich habe mir dann folgende Automation gebaut:
Wenn nicht erreichbar, dann neu laden.

description: "Neu Laden"
mode: single
trigger:
  - platform: state
    entity_id:
      - light.gaste_wc
    to: unavailable
condition: []
action:
  - action: homeassistant.reload_config_entry
    metadata: {}
    data: {}
    target:
      device_id: 03e7441f590xxxxxxxxx

Im Zeitplan-Helfer kann man quasi wiederkehrende Termine anlegen. Du erstellst für jeden Tag also einen Termin, an dem dein Shelly neustarten soll. Bspw. Montag 3:00, Mittwoch 3 Uhr, Freitag 3 Uhr. Nach dem Neustart bleibt der Shelly doch automatisch an. Eine extra Zeitspanne für Uptime ist doch nicht notwendig. Dein Zeitplan könnte so aussehen:

Ich werde es mal probieren.

Vielen Dank erst einmal. :grinning:

{{  (as_timestamp(now()) - states('sensor.garagentor_uptime') | int(0)) > 259200 }}

Du kannst bzw. Du solltest die Templates im Template Editor testen, bevor Du diese verwenden tust.

{{ as_timestamp(now() }}

liefert Dir den aktuellen Zeitstempel in Sekunden.

{{ states('sensor.garagentor_uptime') | int(0) }}

Gehe davon aus, dass der Sensor sensor.garagentor_uptime die Uptime ebenfalls in Sekunden liefert, zumindest tun das meine.

Gruß
Osorkon

Ich meine damit, dass der Zustand (Offen oder Geschlossen) mit Hilfe des AddOns nicht mehr korrekt angezeigt wird. Nach einem Reboot klappt es dann wieder. Daher wollte ich “vorsorgen”.

@Osorkon : So alles korrekt?


Setze ich die Zeit auf 60 Sekunden springt der Zustand auf True, sonst bleibt er noch bei False. Ich habe den Shelly heute Abend manuell gestartet.

Welcher Wert liefert den der Sensor bei dir?

Wenn Du das Template hier im Template Editor eingeben tust?

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

Gruß
Osorkon

Hier kommt bei mir True??? Mache ich hier etwas falsch?

Und hier

{{ states('sensor.garagentor_uptime') | int(0) }}

Ist der Status 0 → ist das auch so richtig?

2024-09-20T13:19:23+00:00

Irgendwie komme ich mit dem Zeitstempel noch nicht zurecht. Ich habe das Gefühl, bei kleineren Zahlen geht es, bei größeren nicht mehr. Ich versuche es jetzt erstmal mit dem Zeitplan wie von @Gunter vorgeschlagen. Morgen ist der erste Reboot angesetzt. Ich werde euch berichten. Solltet ihr noch einen Hinweis haben, wo in meinem Code mit dem Zeitstempel der Fehler drin ist, dann bitte gern raus damit :wink: .

Ansonsten erst einmal ein schönes Wochenende und danke für eure Hilfe.

Wenn Dein uptime Sensor nicht die Sekunden als Status wiedergibt, sondern ein Datum mit Uhrzeit, dann musst Du natürlicher daraus auch einen Zeitstempel machen.

{{  (as_timestamp(now()) - as_timestamp(states('sensor.garagentor_uptime')) ) > 259200 }}

Gruß
Osorkon

1 „Gefällt mir“

Danke für deine Hilfe. :ok_hand: In yaml bin ich leider nicht soweit. Da bin ich leider immer auf Google oder auf Hilfe hier im Forum angewiesen.

Ich habe jetzt den Reboot auf 100.000 Sekunden eingestellt. Melde mich.

Vorerst vielen Dank für deine Mühe.

1 „Gefällt mir“

Vielen Dank :hugs: So hat es jetzt funktioniert. Ja, ich gebe ganz ehrlich zu, dass ich mit YAML noch so meine Schwierigkeiten habe, dass zu verstehen. Aber ich lerne gern dazu.

@Osorkon nochmals vielen, lieben Dank und ein wunderschönen und gesunden Sonntag.