Abfrage, ob innerhalb eins Zeitfensters ein Gerät aktiv war

Hallo,

ich möchte in einer Automatisierung unter “aber wenn nur” prüfen, ob ein Gerät innerhalb der letzten 24h (ggf. auch kurzfristig) aktiv war oder generell nicht.

Habt Ihr eine Idee, wie das in der Automatisierung umgesetzt werden kann?

Grüße

Am einfachstes fällt mir erst mal ein Helfer-Schalter ein.
Dann in einer Automation den Schalter on/off schalten.

Trigger: Gerät aktiv (TriggerID: aktiv)
Trigger: Zeit 0:00 o.ä. (TriggerID: reset)

Aktion: Wenn ausgelöst durch TriggerID “aktiv” → Schalter auf on
Aktion: Wenn ausgelöst durch TriggerID “reset” → Schalter auf off

Diesen Helfer-Schalter nimmst du dann für deine ursprüngliche Bedingung.

Auslöser: Zustand änderst sich nicht für 24h

trigger:
  - platform: state
    entity_id:
      - sensor.xyz
    for:
      hours: 24
      minutes: 0
      seconds: 0

Gruß
Osorkon

:+1:
Manchmal sieht man den Wald vor lauter Bäumen nicht bzw. man wird ein bisschen betriebsblind.

Aber das klappl leider nicht wenn ich prüfen möchte, ob innerhalb der letzten 24h ein Gerät eingeschaltet war.

Bsp.: um 7 Uhr ist ein Gerät für eine Stunde bis 8 Uhr aktiv danach ausgeschaltet. um 17 Uhr frage ich ab, ob das Gerät in den letzten 24h aktiv war → als Ergebnis erwarte ich “wahr”.

Habt Ihr für so eine Abfrage eine Idee?

Also willst Du keinen Auslöser, sondern brauchst eine Bedingung.
Auch da kann man Dir weiter helfen. :grinning:

Was meinst Du genau mit aktiv? Also ob es ein oder ausgeschaltet wurde, richtig?

Das lässt sich dann aber nur mit einer Template Bedingung prüfen. Also jetzt minus Zeitpunkt letze Änderung < 24h

{{ ((as_timestamp(now()) - as_timestamp(states.switch.xyz.last_changed)) | float / 3600)  < 24 }}

Mit last changed werden allerdings alle Änderungen erfasst, also auch nicht verfügbar, etc.

Wenn Du wirklich nur den Statuswechsel von on zu off und off zu on berücksichtigen willst.

Müsstest Du Dir einen Trigger-based Template Sensor erstellen. Mit denn triggern von Off zu On und On zu Off.
Der Wert des Template Sensors ist dann die aktuelle Zeit, also now().

Diesen Template Sensor kannst Du dann in die obere Template Bedingung einbauen.

Gruß
Osorkon

Das würde dann z.b. auch wieder mit meiner o.g. Helfer Lösung funktionieren.

Wenn Du aber den Helfer immer zur Uhrzeit 00:00 ausschalten tust. Kannst Du nur prüfen ob das Geräte seit 00:00 ein oder ausgeschaltet wurde. Aber nicht ob es in den letzten 24 h geschaltet wurde. :wink:

@thombe Du hast nun die Qual der Wahl, was Deinen Ansprüchen am besten genügt.

Gruß
Osorkon

Du könntest beim Schalten des Gerätes auch einen Timer-Helfer starten, der 24 Stunden läuft, und dann abfragen, ob er noch aktiv ist.

Ach ja, und der Timer startet beim erneuten Auslösen während der Laufzeit immer neu.

Hallo,

vielen Dank für Eure guten Ideen :slight_smile:

Ich habe jetzt folgendes “gebaut”:

  • eine Automatisierung, die beim Wechsel von “ein” zu “aus” des zu überwachenden Gerätes einen Helferschalter aktiviert
    -eine Automatisierung, die beim Wechsel des zu überwachenden Gerätes von “ein” zu “aus” nach 24h den Helferschalter deaktiviert.
    grafik

Ergebnis:

Wenn das Gerät in gewissen Zyklen arbeitet und nicht länger als 24h deaktiviert ist, ist der Helfer immer an.

Wenn das Gerät länger als 24h deaktiviert ist, ist der Helfer aus

Wenn das der Helfer aus ist, und das Gerät wieder aktiviert wird, ist der Helfer wieder an.

Perfekt!

Zusätzlich kann über die “Für-Abfrage” das Zeitfenster beliebig angepasst werden :slight_smile:

Grüße

1 „Gefällt mir“

Das sieht gut aus und funktioniert auch. Allerdings darf HA nicht neu gestartet werden, während der Helfer an ist. Denn dabei vergisst das System alles und die Abschaltung nach den 24 Stunden wird nicht mehr ausgeführt. Du kannst dann auch nicht mehr sehen, wie lange der Schalter an war.

Ein Timer-Helfer, bei dem “Wiederherstellen” angehakt ist, überlebt den Neustart. Du kannst ihn Dir mit einer Entitäten-Karte auf dem Dashboard anzeigen lassen und siehst ihn ablaufen, wenn er aktiv ist. Und nach zwei Mausklicks von dort kannst Du in seinen Einstellungen die Laufzeit ändern. Wenn die Automation, die ihn startet, während der Laufzeit erneut ausgeführt wird, startet er immer wieder von vorne.

Hallo Heiko,

Danke für den Tip - das Thema HA-Neustart hatte ich hier nicht bedacht. Das werde ich jetzt auf den Timer-Helfer umstricken - mit “Wiederherstellen” :slight_smile:

Ich habe ein vgl. Problem mit dem history_stats:

Ich zeichne die Dauer des Betriebs eines Gerätes im Monat auf. Bei Neustart des HA kann (muss aber nicht) es vorkommen, dass der Wert plötzlich größer oder kleiner wird - nur durch den Neustart. Hängt das ggf. auch mit einer Einstellung vgl. “Wiederherstellen” zusammen? Wenn dieser Fehler auftritt, kann der Wert über Statistik nicht korrigiert werden (ich passe ihn zwar an → aber es ändert sich nichts…).

Grüße

Mit history_stats hab ich mich noch nicht beschäftigt. Aber an einer Einstellung dürfte das nicht liegen, zumal der Fehler nicht immer und dazu noch in beide Richtungen auftritt. Mach ggf. mal einen neuen Thread damit auf und poste Deinen Code. Vielleicht kennt jemand anders das Problem ja schon.