Anzahl offene Fenster

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

mel04
Beiträge: 44
Registriert: 10.11.2014, 14:09

Re: Anzahl offene Fenster

Beitrag von mel04 » 06.08.2019, 10:27

Gestöbert. Beitrag entdeckt. Gelesen, kopiert, angepasst. Und wieder eine kleine Verbesserung bei den Statusmeldungen.
Vielen Dank an Alchy. Es funktioniert richtig gut.
Zeigt mir bei Abwesenheit die geöffneten Fenster an.
ABER. Heute bekomme ich bei Abwesenheit auch eine Pushover als Warnung mit Anzeige von 0 Fenstern.
ONLYOPEN steht natürlich auf yes
string ONLYOPEN= "yes"; ! if yes pushed only the opened sensors

Ich möchte eigentlich nur eine Meldung bei Abwesenheit, wenn mind. 1 Fenster offen ist. Logisch oder?

Habe ich etwas überlesen?

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Anzahl offene Fenster

Beitrag von alchy » 06.08.2019, 23:18

Schau ich mir nochmal an nach dem Urlaub.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

mel04
Beiträge: 44
Registriert: 10.11.2014, 14:09

Re: Anzahl offene Fenster

Beitrag von mel04 » 08.09.2019, 12:45

Konntest du schon etwas herausfinden?

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Anzahl offene Fenster

Beitrag von alchy » 09.09.2019, 21:49

Herausfinden ist so eine Sache.

string ONLYOPEN= "yes";
soll ja nur die geschlossenen ausblenden. Einfach eben, wenn man X Sensoren hat und nur die geöffneten gemeldet haben will.
Die logische Konsequenz ist auch die Meldung 0 wenn keine geöffnet sind.

Aber du kannst ja das Gewünschtes relativ einfach erhalten, wenn du einfach in der Zeile mit dem Versand auch noch zusätzlich auf den Zähler größer 0 prüfst.

if ( (count>0) && (USE_PUSHOVER == "yes") &&( (dom.GetObject(ID_DATAPOINTS)).G.....

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

mel04
Beiträge: 44
Registriert: 10.11.2014, 14:09

Re: Anzahl offene Fenster

Beitrag von mel04 » 02.10.2019, 08:44

Hallo Alchy,
erstmal natürlich Danke.
Aber so ganz verstehe ich deine Aussage/Logik nicht.
string ONLYOPEN= "yes"; ! if yes pushed only the opened sensors
Hier heißt es doch, es werden nur die geöffneten Fenster gemeldet.

Aber seis drum. Wenn diese If-Abfrage zum Erfolg führt bin ich glücklich.
Nur weiß ich leider nicht, wo genau und mit welcher Syntax ich diese im Scrip einfügen muss.
Kannst du mir hier behilflich sein?
Vielen Dank.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Anzahl offene Fenster

Beitrag von alchy » 02.10.2019, 09:33

Natürlich werden nur die geöffneten Fenster gemeldet.
Sind also von 8 Fenster nur 1 geöffnet, dann wird dir nur das geöffnete gemeldet. Statt einer Liste von geschlossenen und dem einem geöffneten.
Ganz streng genommen könnte man auch deiner Argumentation folgen und dann bei 0 geöffneten Kontakten das Script z.B. abbrechen.
ABER
Viele User benutzen das eben genau so und wollten es genau so. z.B um trotzdem zur Sicherheit eine Nachricht zu erhalten wenn alles zu ist.
Also habe ich es damals so erstellt.

Es gibt immer verschiedene Wege etwas zu realisieren, der einfachste Weg ist es wahrscheinlich eben genau so, wie ich es extra rot geschrieben habe. Ziemlich weit unten gibt es die Zeile:

Code: Alles auswählen

if ( (USE_PUSHOVER == "yes") &&( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#PUSH_CUXD_ID#".CMD_EXEC")) ){ (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#PUSH_CUXD_ID#".CMD_EXEC").State("curl -s -k -d token='"#TOKEN#"' -d user='"#USERKEY#"' -d device='"#USERDEVICE#"' -d html='"#HTML#"' -d title='"#TITLE#"' -d message='"#slist.ToUTF8()#"' -d priority='"#PRIO#"' -d sound='"#SOUND#"' -d retry='"#RETRY#"' -d expire='"#EXPIRE#"' https://api.pushover.net/1/messages.json"); }
diese Zeile ersetzt du durch

Code: Alles auswählen

if ( (count>0) && (USE_PUSHOVER == "yes") &&( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#PUSH_CUXD_ID#".CMD_EXEC")) ){ (dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#PUSH_CUXD_ID#".CMD_EXEC").State("curl -s -k -d token='"#TOKEN#"' -d user='"#USERKEY#"' -d device='"#USERDEVICE#"' -d html='"#HTML#"' -d title='"#TITLE#"' -d message='"#slist.ToUTF8()#"' -d priority='"#PRIO#"' -d sound='"#SOUND#"' -d retry='"#RETRY#"' -d expire='"#EXPIRE#"' https://api.pushover.net/1/messages.json"); }
Dann erhältst du keine Pushovernachricht, wenn kein Fenster offen ist.

Alchy
Zuletzt geändert von alchy am 23.12.2019, 21:40, insgesamt 1-mal geändert.
Grund: curl Aufruf angepasst

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

mel04
Beiträge: 44
Registriert: 10.11.2014, 14:09

Re: Anzahl offene Fenster

Beitrag von mel04 » 02.10.2019, 10:45

Ganz herzlichen Dank für die schnelle Antwort. Ich werde es zeitnah testen.

Ludger
Beiträge: 8
Registriert: 15.01.2020, 11:04

Re: Anzahl offene Fenster

Beitrag von Ludger » 15.01.2020, 11:40

Hallo Alchy,

vielen Dank für das tolle Script.
Leider bin ich noch nicht so lange bei Homematic, aber Dank des Forums gibt es eine Menge zu lernen.

Ich verwende das Script um im Falle eines Alarms eine Pushnachricht zu bekommen, damit ich weiß welcher Sensor den Alarm ausgelöst hat.
Dieses können Fensterkontakte oder auch Bewegungsmelder (HM-Sen-MDIR) sein.

Für die Fensterkontakte klappt es wunderbar, aber irgendwie bekomme ich die if-Anweisung für die Bewegungsmelder nicht hin.

Gibt es da schon was (leider nichts dazu gefunden) oder kann mir jemand einen Tipp geben wie die Melder ausgelesene werden ?

Vielen Dank
Ludger

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Anzahl offene Fenster

Beitrag von alchy » 15.01.2020, 19:27

Ich gehe mal von >> Anzahl offene Fenster << aus. :?:

Wie ich schon mal geschrieben habe, geht es in dem Script um geöffnete Fenster. :lol:
Also habe ich das ein oder andere Gerät integriert (sicher nicht alle) welche zum detektieren von offenen Fenster und Türen geeignet sind.
Ich habe noch niemanden erlebt, der mit einem Bewegungsmelder geöffnete Fenster detektiert. Also werde ich mir verkneifen Bewegungsmelder in dieses Script einzupflegen. :mrgreen:

Das also erstmal dazu.
Natürlich kann man auch mittels Script alle Bewegungsmelder prüfen, wie auch alle eingeschalteten Lichter zählen oder alle geschlossene Rollläden usw. Die Scripte oder einige davon sollte es auch im Forum geben. Wenn es sein muss schreibe ich auch mal schnell eines für Bewegungsmelder.

ABER
nun schreibst du:
Ludger hat geschrieben:
15.01.2020, 11:40
Ich verwende das Script um im Falle eines Alarms eine Pushnachricht zu bekommen, damit ich weiß welcher Sensor den Alarm ausgelöst hat.
Dafür sehe ich dieses Script nicht als bevorzugte Lösung. (natürlich kann man es dazu nehmen)
Das geht einfacher mittels zusammen geklickten Programm. (Dann brauchst du nämlich niemanden der dir Scripte anpasst. )

Wenn Fenster 1 offen
oder Fenster 2 offen
oder BWM 1 Bewegung erkannt
oder Wassermelder4 Wasserstand erkannt
oder rauchmelder 22 Rauch erkannt
....
Dann
Systemvariable Hausalarm XYZ. ausgelöst.

(wobei ich da trennen würde zwischen, Fenster, Wasser, Bewegung, Feuer usw.)
aber man kann es auch in einem Programm zusammenklicken so wie du mit Fenster und Bewegungsmelder.
Jedenfalls ist so ein gängiges skizziertes Programm. wahrscheinlich hast du es schon so ähnlich. :?:

Dann hast du mehrere Möglichkeiten dieses für dein Vorgehen zu nutzen.
Du ermittelst den >> Auslöser eines Programmes finden und loggen <<
und lässt dir damit eine Pushnachricht schicken.

ODER

du reagierst dann auf das Auslösen des Alarms und ermittelst den Auslöser aus der Alarmvariable.

Wenn Hausalarm XYZ ausgelöst
DANN
Script

und da ermittelst du den Auslöser aus der Variable. Was meine ich damit?
Schau mal in der Klickibunti wenn ein Alarm ausgelöst wird oben rechts KLICK auf Alarmmeldungen.
Der Alarm wird angezeigt und dort steht auch, welcher Datenpunkt den Alarm ausgelöst hat.
Das hat aber den klitzekleinen Fehler, das EQ-3 wie üblich inkonsequent gearbeitet hat und nur Datenpunkte ermittelt werden können. Soll heissen, löst z.B. eine Systemvariable usw. den Alarm aus dann steht da nix. Dann würde aber mein obiges Auslöser eines Programmes Script immer noch funktionieren.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Ludger
Beiträge: 8
Registriert: 15.01.2020, 11:04

Re: Anzahl offene Fenster

Beitrag von Ludger » 16.01.2020, 08:03

Morgen Alchy,

ja genau, das Fenster-Script meinte ich.
Danke dir für deine Hinweise. Natürlich hatte ich verstanden, dass es dabei um geöffnete Fenster geht. ;-)
Ich suchte nur eine Möglichkeit die Bewegungsmelder nach dem gleichen Prinzip auszuwerten.

Dein Script zum Suchen des Auslösers eines Programms hatte ich schon ausprobiert. Das klappt auch super, aber alle Bewegungsmelder haben eine zentrale Systemvariable und ebenso die Fensterkontakte.
Diese Variablen wir bei eingeschalteten Alarm auf Veränderung geprüft.
Sobald dann ein Fensterkontakt oder Bewegungsmelder auslöst, wird die Variable umgesetzt und das Programm ausgelöst.
Das klappt soweit, aber im Protokoll oder der Pushnachricht steht dann als Auslöser des Programms die Systemvariable :shock:

Kann man auch ermitteln wer die Variable geändert hat? Dann müsste ich ja mein Ergebnis haben?

Das war der Grund warum ich dann das anderen Script (offene Fenster) genutzt hatte um auszuwerten wer der Auslöser ist.

Viele Grüße
Ludger

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“