Interessant, dieser Bedarf. Ist die Geschichte des Durchschnitts wirklich erforderlich, oder würde ein Vergleich auch funktionieren? Zum Beispiel, wenn du sagst „Wenn die Kühlschranktemperatur in den letzten 2 Stunden unter oder gleich 1,5°C liegt“, würde das funktionieren?)
Für mich ist das ein bisschen anders. Ich könnte herausfinden, ob es einen Ausschlag (hoch oder tief) gab, aber nicht, ob der Kühlschrank generell zu kalt ist.
Nur der Durchschnitt wird mir zeigen, ob er zum Beispiel über 2 Stunden zu kalt ist.
Zeitbedingung
- Fall Nr. 1 → OK
- Fall Nr. 2 → Wenn eine Bedingung nicht erfüllt ist, ist sie standardmäßig wahr.
Im Beispiel der Zeitbedingungen sind « Nach 9:00 Uhr » und « Vor <leer> » wahr. Um 8:00 Uhr ist man zwar nicht nach 9:00 Uhr, aber vor <leer>. Wird die Bedingung dann bestätigt oder nicht?
Bedingung zur Sonne
Das ist klar und verständlich, ich sehe im Moment keine weiteren Fälle.
Verbesserung eines bestehenden Sensors
Das beantwortet eines meiner Probleme ![]()
1. Es muss nun sichergestellt werden, dass Bewegungssensoren einen Zustand « Keine Bewegung erkannt » direkt nach einem « Bewegung erkannt » senden.
→ Laut der Weboberfläche des Zigbee2Mqtt-Projekts senden meine Xiaomi Aqara Zigbee-Sensoren diesen Zustand tatsächlich.
Aber für diejenigen, die als nicht diesen Zustand sendend identifiziert wurden, kann Gladys (oder der Dienst) dies nach 20 Sekunden für sie tun, so wie es bei meinem Sensor der Fall zu sein scheint?
4. Zu definieren: Was passiert, wenn die Bedingung 4 Stunden lang gültig ist? […] eine potenziell unendliche Ausführung der Szene?
→ Ich hatte genau diesen Bedarf: die Anzahl der Ausführungen einer Szene pro Tag zu begrenzen.
Ein konkretes Beispiel, das gleichzeitig mit diesem Problem gelöst würde: mein Bewegungssensor (im Briefkasten) generiert 2x Ereignisse und meine Szene wird zweimal ausgeführt.
Home Assistant bietet einen « Bouncer » an, glaube ich, um nur eines der beiden Ereignisse zu berücksichtigen.
Ich dachte auch daran, in den Szenen, auf Ebene der Auslösebedingung, eine neue Möglichkeit vorzuschlagen, die Anzahl der Ausführungen zu begrenzen. 1x / Stunde, 1x / Minute, 10x / Tag, usw.
Nein, « Nach 9:00 Uhr » ist die Bedingung nur dann wahr, wenn es nach 9 Uhr ist ![]()
Ich sah das eher direkt nach der Bewegung, im Modus „Zurück auf 0 nach einer Bewegung“.
Diese Frage @VonOx würde ich gerne wissen, wie das bei Home Assistant funktioniert?
Du kannst das bereits mit der Bedingung « Nur ausführen, wenn der Schwellenwert überschritten wird (und nicht bei jedem gesendeten Wert) » in der Box « Gerätezustandsänderung » machen.
Diese Bedingung sorgt dafür, dass nur Änderungen der Werte berücksichtigt werden. Wenn es zweimal denselben Wert gibt, wird die Szene nur einmal ausgeführt ![]()
Ich bin einverstanden, dass das praktisch sein kann! Aber in diesem Fall denke ich nicht, dass das die Lösung ist. Ich denke, die Box « Gerätezustandsänderung » behandelt den Fall allein.
Mmm, ich bin mir nicht sicher, ob das meine Frage beantwortet. Ich möchte nur wissen, ob eine Szene zweimal gleichzeitig gestartet werden kann. Ich spreche von einem anderen Fall.
Stell dir vor, du hast einen Trigger „Wenn ein Bewegungssensor 30 Minuten lang keine Bewegung erkennt“, und du erhältst folgende Ereignismeldungen:
- 12:01: Bewegung erkannt
- 12:03: Keine Bewegung
- 12:05: Keine Bewegung
- 12:07: Keine Bewegung
- […]
- 12:19: Keine Bewegung
- 12:32: Keine Bewegung
- 12:33: Keine Bewegung
- 12:35: Keine Bewegung
[…] - 13:01: Keine Bewegung
- 13:03: Keine Bewegung
Wann wird die Szene ausgeführt?
Theoretisch sollte die Bedingung um 12:31 erfüllt sein (genau 30 Minuten nach der ersten Bewegung), aber um 12:33 ist die Bedingung immer noch erfüllt (es gab tatsächlich keine Bewegung), und ebenso um 12:34, und ebenso um 12:35…, und ebenso um 13:03
Wird die Szene also unendlich oft ausgeführt, solange keine Bewegung erkannt wird?
Denn für mich ist diese „30 Minuten ohne Bewegung“-Geschichte wie ein gleitendes Fenster… Ich weiß nicht, ob das sehr klar ist ![]()
Hallo @pierre-gilles,
Meine Meinung dazu, da ich viele Anforderungen an diesem Punkt habe:
Normalerweise versuchst du, im Kontext „Gerät“ zu entwickeln. Ein Device war für dich (und ich denke, für alle hier) immer ein „physisches“ Gerät mit allem, was dazugehört.
Ein Bewegungsmelder als physisches Gerät ist ein Gerät, das aus einem Bewegungsmelder, einem Timer und oft, aber nicht zwingend, einem Helligkeitssensor besteht (aber das ist nicht die Frage hier).
In der Hausautomation geht es also genau darum, den Timer in der Benutzeroberfläche einstellen zu können. AMHA sollte diese Option also im Datenblatt des Geräts eingestellt werden. Anschließend sollte dieser Timer, wie bei physischen Geräten, den Wert des Geräts auf null zurücksetzen (d. h. keine Bewegung erkannt), wenn innerhalb dieses Zeitraums keine weitere Bewegung erkannt wird.
Anschließend ist in den Szenen alles möglich:
Gerät: Küchenmelder - Timer: 30 min
Beispiel Nr. 1 = 2 Szenen
Küchenmelder geht auf 1
Szene 1 / Trigger1: 12:01: Küchenmelder erkannt (Front ansteigend = beim Anstieg auf 1)
Aktion: Licht einschalten
Ende
30 Minuten später, wenn keine Bewegung erkannt wurde, geht der Küchenmelder auf 0
Szene 2 / Trigger1: 12:31: Keine Küchenmelder-Erkennung (Front abfallend = beim Abfall auf 0)
Aktion: Licht ausschalten
Ende
Beispiel Nr. 2 = 2 Szenen wie Beispiel Nr. 1
Küchenmelder geht auf 1
Szene 1 / Trigger1: 12:01: Küchenmelder erkannt (Front ansteigend = beim Anstieg auf 1)
Aktion: Licht einschalten
Ende
Letzte Bewegungserkennung um 12:25 Uhr, Küchenmelder geht um 12:55 Uhr auf 0
Szene 2 / Trigger1: 12:55: Keine Küchenmelder-Erkennung (Front abfallend = beim Abfall auf 0)
Aktion: Licht ausschalten
Ende
Gerät: Schrankenmelder - Timer: 5 min
Beispiel Nr. 3 = 1 Szene - man möchte, dass die Aktion die umgekehrte Wirkung zu einer festen Dauer hat
Schrankenmelder geht auf 1
Szene 1 / Trigger1: 12:01: Schrankenmelder erkannt (Front ansteigend = beim Anstieg auf 1)
Aktion: Schranke öffnen
Aktion: 10 Minuten warten
Aktion: Schranke schließen (auch wenn eine weitere Erkennung aufgetreten ist und unabhängig davon, ob der Melder wieder auf 0 gegangen ist)
Ende
Hinweis: In diesem Beispiel, wenn die Schranke zwischenzeitlich geschlossen wurde und eine weitere Bewegung vor den 10 Minuten erkannt wird, öffnet sich die Schranke erneut. Diese Szene muss die zuvor gestartete Szene zwingend stoppen.
Gerät: Babyzimmer-Melder - Timer: 30 min
Beispiel Nr. 4 - aufbauend auf deinem vorherigen Beispiel:
Babyzimmer-Melder geht beim Schlafengehen auf 1
Szene 1 / Trigger1: Alle 30 Minuten
Bedingung 1: zwischen 10 Uhr und 12 Uhr und zwischen 14 Uhr und 16 Uhr
Bedingung 2: wenn keine Bewegung im Babyzimmer erkannt wird
Aktion: Nachricht senden: „Achtung, keine Bewegung erkannt seit 30 Minuten“
Ende
Mit dieser Methode wird alles mit dem Bewegungsmelder möglich. Ich bin nach wie vor überzeugt, dass ein Timer direkt an das Gerät adressiert werden sollte. In den Szenen wäre für die Bewegungserkennung keine zusätzliche Funktion nötig, außer einer zusätzlichen Option zum Kontrollkästchen „Nur einmal ausführen“, die „Bei jeder neuen Ausführung die laufende Szene stoppen“ lauten könnte.
Ich hoffe, das hilft weiter.
Ich stimme @Terdious zu, das ist genau das, was ich in meinen Räumen umsetzen möchte.
@Terdious hat bereits geantwortet, aber tatsächlich ist es bei diesen Sensoren eine gleitende Zeit. Die Bedingung ist auch nach Ablauf der Zeit noch erfüllt, aber das ist uns egal, wir müssen nur einmal auslösen.
In diesem Fall ist diese Art von Szene wirklich einfach in HA zu erstellen
Der PR für die zeitliche Bedingung ist auf GitHub verfügbar:
https://github.com/GladysAssistant/Gladys/pull/1151
Okay, danke für das Feedback
Also scheint euch mein Vorschlag gut zu sein? Danach müssen wir noch über die Implementierung nachdenken, nicht einfach bei diesem Trigger ![]()
Hallo @pierre-gilles,
Heute Nachmittag wollte ich ein Szenario erstellen:
« Wenn niemand zu Hause ist, es dunkel ist und jemand hereinkommt, dann schalte ich das Licht im Eingangsbereich ein ».
ABER:
- Ich kann die Anwesenheit jeder Person im Haushalt nicht erkennen (keine Möglichkeit dazu)
- Das bedeutet, dass ich wissen muss, wann niemand mehr im Haus ist und die Haustür geöffnet wird
Beim Nachdenken dachte ich daran, einen Gladys-Benutzer « Bewohner » zu erstellen, für den ich die Anwesenheit basierend auf meinen Sensoren im Haus verwalten kann, nämlich Präsenz- und Türöffnungssensoren.
Allerdings sah ich für die Effizienz und Reaktionsfähigkeit die Dinge wie folgt:
- Bei Bewegung im Haus oder Öffnen der Haustür (wenn vorher Anwesenheit) => Anwesenheit
- (Alle Minuten überprüfen) Wenn in den letzten 15 Minuten keine Tür- oder Präsenzbewegung => Abwesenheit
Dafür sieht man klar, dass es notwendig ist, den Verlauf der Werte über einen definierten Zeitraum zu konsultieren, wie der Block « Präsenz überprüfen » es tut.
Angesichts der Neuheiten seit der Anforderung dieser Funktion, was müsste man vor der Entwicklung dieser Funktion (von dir oder jemand anderem) überarbeiten?
Oder wie siehst du die Dinge, wenn sich deine Sichtweise dazu verändert hat?
Weitere Anmerkung (unbezogen):
→ Es müsste eine Beschreibung der Funktionsweise des Bausteins « Gerät steuern » hinzugefügt werden, ich bin mir nicht sicher, was das macht.
Dort, wo ich nicht weiterkomme, ist der Teil
- wenn Bewegung in den letzten 30 Minuten, dann ist jemand zu Hause
Ich sehe nicht, wie ich diese Erkennung umsetzen soll.
Ah okay, entschuldige, ich verstehe besser, du willst keine individuelle Anwesenheitsverwaltung, du willst einfach eine Erkennung wie einen Bewegungssensor in einem Hausflur (der sich aktiviert, wenn du reinkommst, und sobald nach X Zeit keine Bewegungen mehr erkannt werden, das Licht ausschaltet).
Tatsächlich ist das im aktuellen Zustand nicht möglich (vielleicht geht es mit Basteln, aber auf jeden Fall nicht einfach/sauber).
Es gibt mehrere Funktionsanfragen, die diese Entwicklung verlangen, diese hier (nachdem der Titel nicht mehr aussagekräftig ist) und diese:
Ich denke, es fehlt einfach die Zeit für die Entwicklung (Spec/Dev)
Pull Requests sind willkommen.
Ok, ich verstehe. Letztlich geht es für dich nicht so sehr darum, die Werte eines Geräts im Zeitverlauf zu erfassen, sondern eher darum, die Szenen anzupassen, um meine sehr spezifische Problemstellung zu lösen.
Aktuell ist das genau das, was meiner Problemstellung entspricht, aber generell bleibt es eine nützliche Funktion, die meiner Meinung nach sinnvoll ist.
Es sei denn, es gibt tatsächlich eine andere Methode, um im Großen und Ganzen dasselbe zu erreichen. In diesem Fall können wir diesen Feature-Request schließen und einen neuen, besser detaillierten öffnen?
Der Feature-Request, den ich oben verlinkt habe?
Ja, genau das wollte ich sagen. Der Feature-Request, den du verlinkt hast, entspricht genau meinem spezifischen Bedarf.
Aber es wird sicherlich Fälle geben, in denen wir auf die alten Werte eines Sensors zugreifen müssen, um beispielsweise einen Durchschnitt zu bilden oder zu überprüfen, wie lange ein bestimmter Wert nicht erfasst wurde.
Daher erscheint mir dieses Feature immer noch aktuell, wie in meiner allerersten Nachricht beschrieben.
Ich denke, man sollte in diesem Fall viel präziser bei den Funktionsanfragen sein, ich wäre dafür, diesen Antrag zu schließen und bei präzisen Anfragen andere Anfragen wieder zu öffnen ![]()
So wird niemand für diesen Antrag stimmen, da er sehr vage ist. Der Titel muss von der Community verstanden werden.
Okay, ich werde einen präziseren neuen Vorschlag erstellen.
[EDIT]
Der Vorschlag für die Berechnungen der Werte existierte bereits:




