NEWS
Dynamische Abfrage Tür/Fenster Status
-
Anbei mein Blockly Script um den Status meiner Fenster und Türen zu überwachen.
Features:
- Es werden alle Tür/Fensterkontakte zur Prüfung hinzugezogen. Nach Einbinden eines neuen Sensors, wird dieser automatisch zur Prüfung hinzugezogen.
- Man kann auch Sensoren aus dieser Prüfung nehmen, falls diese keine Fenster oder Türen "überwachen". Im Skript sind zwei Sensoren rausgenommen. In meinem Fall "Klingelsensor" und "Briefschlitz". Kann nach belieben erweitert werden.
- Es werden immer alle Sensoren neu evaluiert, sobald sich ein Status ändert. So sind die Datenpunkte immer mit den korrekten Informationen befüllt
- es werden 3 Datenpunkte befüllt
- fenster_tueren_offen
- Datenpunkt Zahl
- Anzahl an offenen Fenstern und Türen zusammen, bspw. "2"
- fenster_tueren_offen_list
- Datenpunkt Zeichenkette
- Aufzählung der einzelnen offenen Fenster und Türen, bspw. "Terassentür links Kinderzimmer"
- fenster_tueren_offen_string
- Datenpunkt Zeichenkette
- Beschreibung des Zustandes, inkl. aller offenen Fenster und Türen (nutzbar für Ausgaben als Sprache oder in VIS), bspw. "Es sind 2 Türen und Fenster geöffnet: Terassentür links Kinderzimmer"
- fenster_tueren_offen
- Der Kanalname desn Sensors, nicht der Datenpunktname (.*open), werden zur Befüllung der neuen Datenpunkte genutzt
Nachteile
- maximale Anzahl an Sensoren muss im Skript festgelegt werden (aktuell auf 50 gesetzt) --> Ggf. hat hier jemand eine bessere Idee für die Schleife?!
Infos
- die Sensoren sollten wiedererkennbar benannt werden (bspw. Terassentür links, Haustür, Kinderzimmer Kind1, etc.)
- die unter Features aufgeführten Datenpunkte müssen selbst angelegt werden
- Im Skript werden Aquara Sensoren die über Deconz angelernt sind genutzt. Sollten andere Sensoren oder Adapter genutzt werden (bspw. zigbee Adapter), müsste das nach Anpassungen im Skript aber auch funktionieren. Im Prinzip basiert das Skript darauf, dass ein bestimmter Datenpunkt (.*open), nur bei solch einem Sensor existiert
Ich selbst nutze es zur automatischen Ansage, wenn morgens der letzte die Haustür zum Gehen öffnet und als manuelle Abfrage über Alexa bei Bedarf. In Zukunft möchte ich noch ein Tablet oder Smartmirror im Flur mit dem aktuellen Status befüllen.
Blockly Export
Screenshots
- Es werden alle Tür/Fensterkontakte zur Prüfung hinzugezogen. Nach Einbinden eines neuen Sensors, wird dieser automatisch zur Prüfung hinzugezogen.
-
Hi,
das was du suchst nennt sich selector. Funktioniert glaube ich aber nur über javascript. Damit kannst du dir alle Geräte des deconz Adapters in eine Liste packen lassen.
Statt dann bis 50 durch die Schleife zu laufen durchläufst du die Liste der Geräte. Es gibt einige Skripte zum Thema Offene Fenster, die machen das genau so.
-
@siggi85 Hi, so etwas suche ich auch. Ich habe Dein Script versucht an die Aqara Sensoren des Zigbee-Adapters anzupassen. Leider komme ich da nicht weiter.
Der Datenpunkt im Zigbee heisst opened der dann wahlweise auf true/false steht.
Ich kann in deinem Script nicht erkennen, wo auf diesen Wert geprüft wird.Aktuell werden nur die Datenpunkte *.offen=0 und *.string= Alle Türen und Fenster sind zu. gefüllt.
Woran könnte dies liegen?
Danke im voraus.Kai
-
@zokkai
Im Deconz Adapter sind alle Sensoren durchnummeriert. Daher gehe ich alle Sensoren durch und prüfe ob es einen "open" Datenpunkt gibt.Ich habe es mir also zugegebenermaßen ziemlich einfach gemacht...
Im Zigbee wird das nicht durchnummeriert. Hier müsste man mit Selector arbeiten wie im Kommentar von @martinschm beschrieben.
Auch wenn diese nicht nativ in blockly möglich ist, über Funktionen kann man ja auch in Blockly direkt Javascript verwenden. Sollte also möglich sein.Ich würde diese Variante auch präferieren (sie ist ersten eleganter und zweitens wird der deconz Adapter wohl mittelfristig auch auf IDs umgebaut statt einfach durchzunummerieren). Habe mich mit Selectoren aber noch nicht auseinandergesetzt, falls du das anpasst würde ich die Lösung auch gerne wissen.
-
@siggi85 danke dür die Info.
Ich bin alleridngs auch nur Anwender und kann mir ein paar Blockly's zusammenklöppeln, mehr aber dann auch nicht.
Von daher werde ich mal sehen, ob ich es anders lösen kann. -
@zokkai sagte in Dynamische Abfrage Tür/Fenster Status:
@siggi85 danke dür die Info.
Ich bin alleridngs auch nur Anwender und kann mir ein paar Blockly's zusammenklöppeln, mehr aber dann auch nicht.
Von daher werde ich mal sehen, ob ich es anders lösen kann.Wenn ich das doch mal anpassen sollte (wahrscheinlich spätestens wenn deconz umgestellt wird
), werde ich das Update hier posten.
-
-
@martinschm sagte in Dynamische Abfrage Tür/Fenster Status:
Vielleicht lassen sich die Skripte ja vereinigen bzw gemeinsam weiter entwickeln.
Grundsätzlich nix dagegen, allerdings hab ich kein Plan von blockly (und will auch keinen haben). Zum anderen ist mein Skript für Türen eher ungeeignet da ich, soweit ich das gesehen, hab nen anderen Ansatz verfolge und auch der Meinung bin das Türen und Fenster nicht in einem Skript verwurstet gehören. Außerdem hab ich nen opt-in Ansatz (Solange nicht anders definiert, wird nix als Fensterkontakt angesehen), das blockly scheint nen opt-out Ansatz zu verfolgen (Erstmal ist alles Fensterkontakt außer es wurde ausgeschlossen). Mein Skript arbeitet zudem Raumbasiert und kann alle Sensoren verwenden egal welcher Adapter sie zur Verfügung stellt, die Zuweisung der Kontakte erfolgt über die Aufzählungen Räume und Funktionen. Dürfte schwierig werden das zu verbinden. Aber wer es sich anguggen will, hier isses zu finden.
-
Ein Script für Türen, eins für Fenster das andere für beide wieder sind nur zur visualisierung ohne telegram das andere telegram
Hunderte scripte ==> 1 Adapter wen man sich zusammensetzt und über die Funktionalität einig
-
@Dutchman sagte in Dynamische Abfrage Tür/Fenster Status:
Ein Script für Türen, eins für Fenster das andere für beide wieder sind nur zur visualisierung ohne telegram das andere telegram
Hunderte scripte ==> 1 Adapter wen man sich zusammensetzt und über die Funktionalität einigDeswegen hab ich das Fensterskript gemacht, welches möglichst generisch alle Kontakte verwenden kann und Ausgaben via Alexa/Mail/Telegram macht, Lüftungsempfehlung sowie umfangreiche Konfigmöglichkeiten bietet UND auch noch die Daten für Visualisierung zur Verfügung stellt, sowohl als einzelne Datenpunkte als auch als fertige Tabelle. Ich sehe einfach nicht was Türen in diesem Skript zu suchen haben, bei diesen würde ich eher an Alarmoptionen etc. denken. Und klar kann man nen Adapter draus machen, aber was genau wäre der Vorteil eines Adapters gegenüber dem Skript in diesem Fall?
-
Ich fände einen Adapter auch eine gute Idee. Ist einfacher zu handeln und nutzbarer für die Masse als ein Skript. Das war auch ein Grund das ganze in ein Blockly zu verpacken: Dass kann die Masse auch einfacher auf seine Bedürfnisse anpassen.
Obwohl ich das Skript von @Pittini nicht selber implementiert habe, lesen sich die Features sehr durchdacht.
Die Idee Fenster und Türen zusammen zu bringen ist einfach: Wenn das Haus verlassen wird, will ich schnell und einfach prüfen können, ob ich vergessen habe was zu schließen. Entweder über einen Smartmirror in der Nähe der Haustür und/oder über eine Ansage, die alle aktuell offenen Fenster und Türen ansagt die noch offen sind wenn die Haustür geöffnet wird und wenn die Zahl offener Türen UND Fenster >0 beträgt.
Es kann also durchaus Sinn machen Türen und Fenster zusammen zu betrachten; es hängt nur davon ab, aus welcher Motivation und mit welchem Ziel man diese Daten zusammen bringt. Zum Status vom Lüften ist die Überwachung der Türen natürlich weniger relevant. Da macht das wirklich wenig Sinn.