Hallo,
Bevor ich mit der Recherche und Entwicklung von Szenen beginne, konsultiere ich die Gladys-Nutzer: Wie kann ich eine Szene erstellen, die für alle installierten Sensoren den oder die Sensoren anzeigt, deren Batteriestand unter einem bestimmten Schwellenwert liegt?
Vielen Dank,
Jean
Hallo @cicoub13 ![]()
Vielen Dank für diese Information, ich habe diese Funktion tatsächlich gerade dank dir entdeckt. Allerdings hätte ich mir gewünscht, die Möglichkeit zu haben, tägliche Benachrichtigungen zu erhalten, zum Beispiel, und die Wahl der Benachrichtigungsmethode (ich habe eine sehr nette Sprachassistentin zu Hause). Dadurch hätte mir der Umweg über eine Szene mit der Abfrage von Variablen (welches Objekt hat eine schwache Batterie und welcher ist der Batteriestand) mehr Flexibilität gegeben. Ist das vorstellbar?
Jean
Ja, @lmilcent hat es hier gemacht Scènes : récupérer un type d'état de tous les périphériques (ex: type batterie)
Aber du musst alle deine zu überwachenden Geräte hinzufügen, was lange gedauert hat und zur Funktion geführt hat, von der ich dir oben erzählt habe ![]()
Hallo @cicoub13,
Entschuldige, dass ich das Thema wieder ausgrabe… aber die Benachrichtigungsfunktion per Nachricht funktioniert für meinen Sohn nicht, der die Batterien der Sensoren selbst wechseln möchte
Er hat nämlich keinen Zugriff auf die Oberfläche und wird daher nicht benachrichtigt. Wir haben jedoch das Glück, eine nette „virtuelle Person“ zu haben, die uns akustisch informiert, und würden ihr gerne auch die Möglichkeit geben, uns über den Batteriezustand zu informieren. Wäre es möglich, eine einzelne Szene zu erstellen (bei der Anzahl der batteriebetriebenen Sensoren…) die die Benachrichtigung per Nachricht ersetzen könnte (z. B. die Möglichkeit, in Szenen eine Schleife über eine Sammlung einzuführen)?
Danke ![]()
Hallo
Ich verstehe den Bedarf und habe deinen Beitrag daher in einen Feature-Request umgewandelt.
Wir entwickeln die am häufigsten gewünschten Funktionen mit höchster Priorität, also schauen wir mal, ob dieser genug Stimmen erhält.
@cicoub13 Bevor wir den Beitrag in einen Feature-Request umwandeln, denke ich, es ist gut, genau zu definieren, worum es geht. Für mich ist das hier im Moment noch keine konkrete Funktionsanfrage. Ich rollbacke das zu einer Diskussion ![]()
Das funktioniert, aber es muss noch verfeinert werden.
Hallo @pierre-gilles
Konkrekt hätte ich mir gewünscht, eine Lösung zu haben, mit der ich in einer einzigen Szene den Wert einer Eigenschaft eines Sensors in einer Gruppe von Sensoren abfragen und auf diesen Wert basierend auf einem Schwellenwert oder Zustand reagieren kann. Hier könnte ich z. B. den Zustand aller Batterien überprüfen und eine Sprachmeldung ausgeben, wenn dieser Wert unter 10 % liegt.
Wenn eine solche Möglichkeit angeboten würde, könnte sie verwendet werden:
- um alle Lichter einer Gruppe (eines Raums) auszuschalten,
- um zu überprüfen, ob alle Türen/Fenster eines Raums oder eines ganzen Hauses geschlossen sind.
Also, an die Entwickler: Herzlichen Dank
![]()
@jean_bruder Es scheint mir, dass es zwei Bedürfnisse in dem gibt, was du gerade ausgedrückt hast: das eine besteht darin, den Zustand mehrerer Geräte auf einfache Weise zu überprüfen (um die Aktionen „Zustand abrufen“ und „weiter, wenn“ nicht zu vervielfachen), und das andere besteht darin, auf mehrere Geräte auf einfache Weise zu wirken (indem man die Aktionen „ein Gerät steuern“ nicht vervielfacht).
Ich antizipiere, aber @pierre-gilles wird sicherlich sagen, dass man daraus zwei Funktionsanfragen machen muss. Aber in diesem Stadium der Diskussion kann man das Bedürfnis in einem einzigen Thema verfeinern…
Wenn ich versuche, das, was du über die Überprüfung mehrerer Geräte erwähnst, zu entwerfen, könnte es so aussehen:
Und um mehrere Geräte zu steuern, könnte es so aussehen:
Spiegelt das dein Bedürfnis wider?
Guten Abend @StephaneB
Wow, danke für die schnelle Berücksichtigung ![]()
Was die im Gruppenmodus getesteten Eigenschaften angeht, hätte ich eher formuliert: Die Szene wird nur fortgesetzt, wenn für mindestens ein aufgelistetes Gerät die getestete Eigenschaft die Bedingung erfüllt (zum Beispiel: Batterie < 10). Also wird fortgesetzt, wenn eine Batterie < 10 % ist. Und wenn dann mehr als eine Batterie unter 10 % liegt, wie behandelt man dann jede einzelne danach (zum Beispiel die Namen der Batterien unter 10 % abrufen)?
In einem zweiten Beispiel könnte man sich vorstellen, alle Fenster eines Raumes zu behandeln: Wenn mindestens eines nicht geschlossen ist, reagieren. Man muss also eine Gruppe von Sensoren und einen Bereich behandeln können ![]()
Für die Steuerung der Geräte einer Gruppe wäre das perfekt ![]()
Vielen Dank schon jetzt für die Berücksichtigung meiner Anfrage!
Für das „mindestens eines“ denke ich, dass man daraus eine Option der Aktion machen kann, mit der man zwischen „alle Geräte“ oder „mindestens eines“ wählen kann. Denn ich denke, dass beide Anwendungsfälle nützlich sein können.
Für deinen Bedarf, alle Geräte eines Bereichs oder eines Raums auszuwählen, habe ich Angst, dass es kompliziert wird, weil man diesen „Raum“ auswählen müsste und dann den Gerätetyp, der ausgewählt werden soll (um deinem Beispiel „alle Fensteröffnungsmelder eines Raums“ zu entsprechen). Und daher denke ich, dass die Dropdown-Liste, in der du auswählst, was du möchtest, indem du einige Buchstaben eingibst, um zu filtern, ausreichen sollte. So funktioniert es zum Beispiel bei „Steckdosen einschalten“, und wenn du deine Geräte gut benannt hast, finde ich es effektiv…
Und schließlich, was die Möglichkeit betrifft, in der Folge der Szene die Geräte durchzugehen, die die Bedingung erfüllt haben, habe ich keine Ahnung, wie man das machen könnte. Das ähnelt nichts, was Gladys bereits ermöglicht, daher müsste man ein neues Konzept erfinden… Ich überlasse es Pierre-Gilles zu sagen, ob ihm das machbar erscheint…
Kannst du uns ein bisschen mehr über diese „virtuelle Person“ erzählen, damit wir den Bedarf besser verstehen? ![]()
Für diese Anfrage weiß ich nicht, ob du diese Aktion kennst, aber das ist schon möglich ![]()
Bei mir habe ich einen Knopf in meinem Flur „Alles ausschalten“, der alles bei mir in allen Räumen ausschaltet, praktisch, wenn man das Haus verlässt:
Dafür denke ich, dass drei neue Konzepte diesen Bedarf erfüllen könnten:
- Eine Szenenaktion, mit der alle Geräte mit einer bestimmten Funktion abgerufen werden können
- Eine „Schleifen“-Aktion, mit der über diese Liste iteriert werden kann
- Schließlich die „Bedingung Wenn… Dann… Sonst“-Funktion, an der wir gerade arbeiten hier.
Vielleicht fehlt noch ein Baustein, um deine „virtuelle Person“ zu kontaktieren. Erzähl uns mehr über diesen Bedarf.
@StephaneB danke, dass du über das Thema nachgedacht hast! Es freut mich, Mockups und solche Überlegungen zu sehen, das ist wirklich der schwierigste Teil der Entwicklungsarbeit ![]()
Allerdings denke ich, dass deine „Bedingung für mehrere Geräte“ nicht dem Bedarf entspricht, denn du überprüfst, ob alle Geräte alle Bedingungen erfüllen, während wir hier wissen wollen, welche Geräte welche Bedingungen erfüllen.
Nicht alle Batterien fallen gleichzeitig aus, und nicht alle Fenster sind gleichzeitig geöffnet!
Das ist nicht schlecht! Die große Frage bei dieser Art von Szenenaktion ist, ob wir lieber etwas sehr generisches oder sehr spezifisches machen?
Zum Beispiel haben wir bei den Lichtern etwas Spezifisches gemacht, sollen wir das Konzept auf die Lichthelligkeit erweitern oder auf einen generischen Ansatz wie den von dir vorgeschlagenen umsteigen? Wir sollten die Funktionen auflisten, die für diese Art von Steuerung geeignet sind und dann entscheiden, denke ich
Hallo @pierre-gilles
Dabei handelt es sich um eine Sprachsynthese, die uns über verschiedene Dinge informiert, dank Gladys (Fenster/Türen, die beim Schlafengehen nicht geschlossen wurden, je nach Innen-/Außen-Temperatur, Ankündigung der Uhrzeit und der bevorstehenden Kalenderereignisse, automatische Außenbewässerung oder nicht, je nach Luftfeuchtigkeit… kurz gesagt, alles, was eine sofortige Information liefern kann, ohne dass man sein Smartphone in der Nähe haben muss…) über POST-Anfragen in den Szenen (technisch gesehen enthält die POST-Anfrage den Text+Variablen, die ausgesprochen werden sollen, sie wird an einen STT-Container gesendet, der den Audiostream an die verschiedenen Lautsprecher des Hauses über PulseAudio weiterleitet).
Tatsächlich ist das ein schlechtes Beispiel, da ich diese Funktion bereits verwende, tut mir leid…
Was die Mehrfachprüfung in derselben Szene mit angepassten Aktionen betrifft, beschreibst du die Idee perfekt ![]()
Wir hatten uns bereits darüber ausgetauscht, und ich bleibe bei meiner POST-Anfrage, die „den Job erledigt“.
Da sind wir uns einig ![]()
Da sind wir uns weniger einig, vor allem, weil es einige gibt… ![]()
Schönen Abend,
Jean
Du hast recht, das Mockup entspricht nicht dem Bedarf von Jean, die Geräte anschließend durchzugehen. Ich werde einen anderen Vorschlag machen… Aber ich finde, die Aktion « Bedingung für mehrere Geräte » wäre nützlich, und hier ist ein neues Mockup mit der Option, « alle Geräte » oder « mindestens ein Gerät » auszuwählen:
Falls das Mockup für dich aussagekräftig genug ist, würde ich gerne eine Funktionsanfrage stellen, um zu sehen, ob es andere interessiert. Ist das für dich okay?
Genau das finde ich sinnvoll: Für die häufigsten Eigenschaften macht eine sehr spezifische Aktion Sinn (Ein/Aus der Steckdosen und Ein/Aus der Lichter, die bereits existieren). Aber für den Rest wäre eine generischere Aktion hilfreich, um « alles andere » zu behandeln… Wenn das für dich okay ist, nehme ich das Mockup für eine Funktionsanfrage, in der wir die zu berücksichtigenden Funktionen/Eigenschaften auflisten können. Okay?
Ich habe darüber nachgedacht und denke, dass wir mit einer Aktion, die ich „Für jedes Gerät fortfahren“ genannt habe, klarkommen könnten, die so funktioniert:
Was haltet ihr davon, @jean_bruder und @pierre-gilles? Und auch alle anderen ![]()
Wenn wir die Aktion „Für jedes Gerät fortsetzen“ einrichten, die die parallele Ausführung der folgenden Aktionsblöcke startet, frage ich mich, ob wir nicht auch eine Aktion „Auf alle Geräte warten“ benötigen, um alle diese parallel gestarteten Ausführungen vor der Fortsetzung der Szene mit einer einzigen Ausführung der folgenden Blöcke zusammenzuführen. Verstehen Sie, was ich meine?
Guten Abend @StephaneB
Wow, genau das brauche ich, um eine Sammlung von Dingen zu verarbeiten ![]()
Guten Abend @StephaneB
Wenn wir die Aktion „Für jedes Gerät fortsetzen“ einrichten, die die parallele Ausführung der folgenden Aktionsblöcke startet, frage ich mich, ob wir nicht auch eine Aktion „Auf alle Geräte warten“ benötigen, um alle diese parallelen Ausführungen zu sammeln, bevor wir mit der Szene und einer einzigen Ausführung der folgenden Blöcke fortfahren. Verstehen Sie, was ich meine?
Genau, das ist sehr klug, denn wenn eine Parallelisierung der Aktionen durchgeführt wird, gibt es bei der Nachrichtenübermittlung oder einer identischen Verarbeitung keine Probleme, aber aufgrund meiner Nutzung (Senden einer Sprachnachricht) wird es unhörbar sein ![]()
Genau, das ist sehr klug, denn wenn eine Parallelisierung der Aktionen durchgeführt wird, sei es für das Senden von Nachrichten oder eine identische Verarbeitung, gibt es keine Probleme. Aber aufgrund meiner Nutzung (Senden einer Sprachnachricht) wird es unhörbar sein
Aber in dem, was ich als Mock-up aufgebaut habe, hast du Zugriff auf den Namen eines Geräts und den Wert der Eigenschaft, genau weil wir in dem Teil sind, der für ein bestimmtes Gerät parallel zu den anderen ausgeführt wird. Wenn wir eine Aktion « Warten auf alle Geräte » hinzufügen, haben wir keine Kenntnis mehr von jedem einzelnen Gerät…
Tatsächlich sehe ich nicht, wie man eine Aktion konstruieren kann, die genau deinen Bedarf erfüllt: Was du, soweit ich das verstehe, möchtest, ist, eine Schleife über alle Geräte innerhalb einer einzigen Aktion zu erstellen, und dass diese Aktion eine Textkette konstruiert, die alle Gerätenamen kumuliert, um sie dann an deine Box zu senden…
Aber mit dem « Fortsetzen für jedes Gerät », das ich vorschlage, könntest du diese Information als Text haben, ordnungsgemäß in Telegram benachrichtigt.
Und ich denke, du könntest sogar, indem du über node-red gehst, einen Fluss erstellen, der die Sprachnachricht « bastelt », die du zu erzeugen versuchst…





