Fensteröffnungszeit überwachen

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

66er
Beiträge: 2562
Registriert: 23.08.2015, 11:06
Danksagung erhalten: 2 Mal

Fensteröffnungszeit überwachen

Beitrag von 66er » 09.10.2017, 20:21

V2

Hallo zusammen,

als Ergänzung zu meiner Heizungssteuerung habe ich die Überwachung der Fensteröffnungszeit realisiert, um "unfreiwilliges Dauerlüften" zu unterbinden!

Und da das Thema "Fenster offen" ja immer wieder mal auftaucht, stelle ich Euch meine Lösung hier mal vor:

(Veränderungen/Optimierungen werden immer hier im ersten Beitrag erfolgen, sodass die Beschreibung hier immer aktuell ist.)
In Version 1 wurde durch Öffnen oder Schließen eines weiteren Fensters der Timer neu gesetzt, was zu unterschiedlichen Erinnerungsintervallen führte (maximal eingestellte Zeit x2). In V2 erfolgt die Erinnerung nun kontinuirlich im eingestellten Intervall (im Screenshot 3 Minuten), unabhängig davon, ob nach Öffnen des ersten Fensters weitere geöffnet/geschlossen werden. Solange noch irgendein Fenster offen ist, läuft die Erinnerung.

Danke an dieser Stelle an Tibin und seine Hartnäckigkeit. :wink:

Neben den Programmen und den darin verwendeten Variablen, nutze ich einen CUxD-Timer für die zyklische Ausführung.

Variablen

Ansage Fensteröffnungszeit - Typ Logik
eMail Fenster - Typ Logik
Fensteröffnungszeit überwachen - Typ Logik
Timer Fensteransage Start - Typ Logik

Starten und Stoppen des Timers:
Programm Timer starten stoppen.JPG
Natürlich kann hier auch individuell jede andere Zeit anstelle der 180 Sekunden eingetragen werden.

Aktivierung/Deaktivierung der Fensteröffnungszeitüberwachung:
Programm Überwachung EIN-AUS.JPG
Die eigentliche Überwachung übernimmt dieses Programm:
Programm Fensteröffnungszeit überwachen.JPG
Dann haben ich noch das Programm für die Ansage (über Home24-Mediaplayer) und weitere Massnahmen:
Programm Ansage.JPG
[Edit]
Nach einer einstellbaren Zeit wird mit diesem Programm und dem eMail-Addon zusätzlich eine eMail versandt:
Programm eMail Zeit Fenster.JPG
[/Edit]

Funktioniert problemlos und zufriedenstellend. :D

LG
Stefan

Edit 10.10.2017: eMail-Programm mit eingestellt
Edit (2) 15.10.2017: Optimierung des Zeitablaufs der Erinnerung: Überwachungsprogramm geändert und zus. Programm zu Starten/Stoppen des Timers
Zuletzt geändert von 66er am 15.10.2017, 11:52, insgesamt 2-mal geändert.
Ich übernehme keine Haftung für von mir gegebene Antworten, Tipps und veröffentlichte Projekte! Jeder ist für sich selbst verantwortlich! Arbeiten an 230V sind von einer Elektrofachkraft auszuführen!

Homematic in Betrieb seit 15.08.2015 | 3x USV APC ES400 | Visualisierung + Audio: Home24-Apps

CCU2 (2.25.15) Uptime-Rec. 163 Tage
addons: CUx-Daemon 1.8a / eMail-Addon 1.6.0 / XML-API 1.12 / HUE-Addon V1.4.1 / Sonos-Addon
150 Kanäle in 44 Geräten und 236 CUxD-Kanäle in 26 CUxD-Geräten
Heizung, Licht, SSD und Erweiterung GMA

bidirektional vernetzt mit


Charly in Betrieb seit 21.10.2018 ( 3_37_8) Uptime-Rec. >250 Tage
addons: CUx-Daemon 2.1.0 /CUxD-Highcharts 1.4.5 / eMail-Addon 1.6.8a / XML-API 1.18 /HUE-Addon V1.4.1 / Sonos-Addon
43 Kanäle in 13 Geräten und 221 CUxD-Kanäle in 21 CUxD-Geräten
Rollläden, SSD, Wetter, Logging, Licht, RM, Sonos, Shelly


Shelly an Homematic | individuelle Batterielaufzeitberechnung | Infrarot-Heizungssteuerung | Fensteröffnungszeit überwachen

Tibin
Beiträge: 284
Registriert: 26.10.2016, 16:08

Re: Fensteröffnungszeit überwachen

Beitrag von Tibin » 09.10.2017, 23:13

Hallo 66er,
danke nochmal für deine Antwort zu meinem Beitrag.
Musste natürlich gleich mal auf deinen Link klicken :mrgreen:
Und habe natürlich gleich mal Fragen zu deinem tollen Programm. :wink:
Dein "Programm für die Ansage", da gibt es doch für jedes Fenster eins, oder? (wegen Kueche MK lange auf)
CUxD-Timer habe ich leider noch nie benutzt, und jmaus hat ja auch geschrieben, dass die Zeitsteuerung jetzt repariert ist.
Kann man das was du mit CUxD-Timer umgesetzt hast, in die normale Zeitsteuerung "übersetzen"?
Oder geht das nur so?
Und die Variable eMail Fenster hast du dann bestimmt irgendwie mit ins Script gepackt, oder?
Sorry für die vielen Fragen, würde das aber auch gerne mal ausprobieren und versuchen nachzuvollziehen.
Gruß Tino

66er
Beiträge: 2562
Registriert: 23.08.2015, 11:06
Danksagung erhalten: 2 Mal

Re: Fensteröffnungszeit überwachen

Beitrag von 66er » 10.10.2017, 06:42

Hallo Tino,
Tibin hat geschrieben:...
Dein "Programm für die Ansage", da gibt es doch für jedes Fenster eins, oder? (wegen Kueche MK lange auf)
Nein, das Programm gibt es nur einmal! :D

"Küche MK lange auf" hat einen anderen Hintergrund:
In der Küche gibt es ein Fenster und eine Terrassentür und beide sind mit Nicht-HM-Kontakten einer anderen Anlage überwacht. Ich habe diese über ein Kontaktinterface "virtuell" in Homemmatic eingebunden. Wenn wir uns nun auf die Terrasse setzen bleibt die Tür lange auf. Nun würde alle 5 Minuten die Ansage kommen und das unterbinde ich mit dieser Variablen. Wird die nach einer Zeit X gesetzt, kommt keine Ansage mehr, bis die Küchenkontakte wieder zu sind. :idea: :wink:

Und wie Du sehen kannst, sind ja schon in diesem einen Programm alle zu überwachenden Fenster aufgeführt.
Tibin hat geschrieben: CUxD-Timer habe ich leider noch nie benutzt, und jmaus hat ja auch geschrieben, dass die Zeitsteuerung jetzt repariert ist.
Kann man das was du mit CUxD-Timer umgesetzt hast, in die normale Zeitsteuerung "übersetzen"?
Oder geht das nur so?
Das kanst Du auch mit der normalen Zeitsteuerung machen!

Ich habe inzwischen (fast) alle Zeitfunktionen auf CUxD-Timer umgestellt. Erstens hatte ich mit der integrierten Zeitsteuerung Probleme mit der Zuverlässigkeit, das sollte ja behoben sein. Aber zweitens finde ich das Arbeiten mit CUxD-Timer übersichtlicher, da sich alle Timer-Einstellungen in einem bzw. inzwischen 2 Geräten (16 Timer/Gerät) wiederfinden. Bei der Zeitsteuerung mußt Du wissen, in welchem Programm die Zeitsteuerung benutzt ist, um Zeiten zu verändern. :idea:

Schon in der Fensterüberwachung sind 2 Timer inegriert: 1x für den Ansageintervall und 1x für das Setzen der Variable "Kueche MK lange auf"
Tibin hat geschrieben: Und die Variable eMail Fenster hast du dann bestimmt irgendwie mit ins Script gepackt, oder?
Nein!
Die Variable frage ich in einem separaten Programm für den eMail-Versand ab. Sie triggert das Programm. :wink:

Der Vollständigkeit halber habe ich den Screenshot dazu im ersten Post nachträglich eingefügt.
Tibin hat geschrieben: Sorry für die vielen Fragen, würde das aber auch gerne mal ausprobieren und versuchen nachzuvollziehen.
Gruß Tino
Es gibt keinen Grund, Dich zu entschuldigen.

Falls noch etwas unklar geblieben ist, einfach nachfragen.

LG und viel Erfolg
Stefan

Tibin
Beiträge: 284
Registriert: 26.10.2016, 16:08

Re: Fensteröffnungszeit überwachen

Beitrag von Tibin » 10.10.2017, 18:46

Danke dir für die ausführliche Erläuterung.
66er hat geschrieben:Nein, das Programm gibt es nur einmal!
:mrgreen: Ok, war etwas irreführend
66er hat geschrieben:Der Vollständigkeit halber habe ich den Screenshot dazu im ersten Post nachträglich eingefügt.
Jetzt wird die Sache klarer. :wink: Ich hatte außerdem irgendwie die Sache mit dem MediaPlayer überlesen.
Du bekommst also nach 15min eine Mail mit den offenen Fenstern aber lässt dir trotzdem alle 5 min noch ansagen, dass welche offen sind, korrekt?
Ich hatte ja anfangs auch alle Fenster in einem Programm, das sieht wie du in meinem Thread noch sehen kannst ja fast genau so aus. Dann war ich ja schon dicht dran :mrgreen:
Du hast ja im Prinzip nur eine Variable zusätzlich und die zeitliche Abfrage.
Ich muss mir das mal nachbasteln und schauen. Ist immer besser. So "theoretisch" sehe ich das Ziel noch nicht :mrgreen:
Melde mich dann...
Gruß Tino.

Benutzeravatar
AndiN
Beiträge: 2440
Registriert: 10.06.2015, 08:54
Wohnort: Hennef
Hat sich bedankt: 1 Mal

Re: Fensteröffnungszeit überwachen

Beitrag von AndiN » 10.10.2017, 19:19

Hallo zusammen,

habe es ähnlich gelöst.

Sinngemäß:

Erstes Programm: Wenn Fenster A offen oder Fenster B offen oder .....

dann Skript: Abfrage: Welches Fenster wurde geöffnet ($src$) und dann wird der entsprechende Timer gestellt.


Zweites Programm: Wenn Timer A oder Timer B oder Timer C oder .....

dann Skript: Welcher Timer hat ausgeöst ($src$) und ist das zugehörige Fenster noch offen. Dann entsprechende Mediaplayer Ansage.


Natürlich könnte man im ersten Programm mit SONST den entsprechenden Timer nach der selben Methode stoppen.

Finde die CuXD Timer perfekt und nutze nirgends mehr das Zeitmodul (außer teilweise zur Prüfung)

Andi
Greenhorn

Letzter Reboot: 13.07.19 - FW Update // Uptime-Rekord: 65 Tage
Systeminfos: Raspberry Firmware: 3.47.10.20190713, 125 Geräte
Addons: Drucken 1.2a - HQ WebUI 2.5.7 - XML-API 1.20 - CUx-Daemon 2.3.3 - E-Mail 1.6.8c - hm_pdetect 1.5 - VPN cloudmatic
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Zentrale: Asus TF103 mit Home24 Tablet
- Diverse Links

Tibin
Beiträge: 284
Registriert: 26.10.2016, 16:08

Re: Fensteröffnungszeit überwachen

Beitrag von Tibin » 10.10.2017, 20:14

Na toll :shock: , ich suche die letzten Wochen nach einem passenden funktionierenden Programm im Forum, ohne wirklich fündig zu werden :mrgreen:
Ein Glück, Stefan macht das jetzt endlich mal zum Thema :wink:
Und Andi, darf man auch fragen wie deine Scripte aussehen.... :mrgreen: :mrgreen:
Gruß Tino
PS: Ihr nutzt ja beide den MediaPlayer zur Ansage. Habt ihr da keine Probleme mit? Bei mir sehr oft verzögert. Ja, die Tipps dazu (auch die aus deinem Thread, Andi) habe ich alle ausprobiert.

Benutzeravatar
AndiN
Beiträge: 2440
Registriert: 10.06.2015, 08:54
Wohnort: Hennef
Hat sich bedankt: 1 Mal

Re: Fensteröffnungszeit überwachen

Beitrag von AndiN » 10.10.2017, 20:35

Klar, ich hoffe die Skripte reichen?

Programm 1: Wenn Fenster A offen, ODER Fenster B offen usw.
dann Auszug aus Skript (Den Status vom Fenster kann man sich natürlich sparen, aber ich hatte den sowieso schon drin) Der Timer wird auf einen Wert "dom.GetObject("CUxD.CUX2800002:13.TIMER_GET").Value()" gesetzt. Da wird über Nacht ein Wert hinterlegt (wie lange sollte in dem Monat X optimalerweise gelüftet werden). Da könnte man auch eine Systemvariable für nutzen. Oder einfach direkt die Sekunden eintragen ;-)

Code: Alles auswählen

! Timer Lüftung einstellen
! ================

if ((dom.GetObject("$src$").Name()=="BidCos-RF.LEQ1249608:1.STATE")&&(dom.GetObject("Bad Obergeschoss Fenster").DPByHssDP("STATE").Value()!=0)){
! Bad Obergeschoß
dom.GetObject("CUxD.CUX2800003:9.TIMER_SET").State(dom.GetObject("CUxD.CUX2800002:13.TIMER_GET").Value());
}

if (dom.GetObject("$src$").Name()=="BidCos-RF.MEQ0368375:1.STATE")&&(dom.GetObject("Schlafzimmer vorne Fenster").DPByHssDP("STATE").Value()==true)){
! Schlafzimmer vorne
dom.GetObject("CUxD.CUX2800003:10.TIMER_SET").State(dom.GetObject("CUxD.CUX2800002:13.TIMER_GET").Value());
}

if ((dom.GetObject("$src$").Name()=="BidCos-RF.MEQ0368113:1.STATE")&&(dom.GetObject("Schlafzimmer hinten Fenster").DPByHssDP("STATE").Value()==true)){
! Schlafzimmer hinten
dom.GetObject("CUxD.CUX2800003:11.TIMER_SET").State(dom.GetObject("CUxD.CUX2800002:13.TIMER_GET").Value());
}

Programm 2:
Wenn Timer A ausgelöst, ODER Timer B ausgelöst... usw
dann: (musste hier Fragmente einfügen, weil ich im ganzen Skript noch Temperaturen Außenbereich in die Aussage mit einbeziehe. Nach dem Motto: Draußen ist es zu heiß, oder zu kalt. Außerdem setze ich eine Systemvariable "Lüftung" auf TRUE, damit ich sehe, dass der Raum an dem Tag gelüftet wurde.

Code: Alles auswählen

! ======================================================================
! AUSREICHEND GELÜFTET

string tmpM1= "Es wurde ausreichend gelueftet ";
string tmpW1= "Bitte Fenster schliessen ";

! Bad
if ((dom.GetObject("$src$").Name()=="CUxD.CUX2800003:9.STATE")&&(dom.GetObject("Bad Obergeschoss Fenster").DPByHssDP("STATE").Value()!=0)&&(dom.GetObject("SV_Lueftung_Bad_OG").Value()==false)){
dom.GetObject("SV_Lueftung_Bad_OG").State(true);
tmpW1=tmpW1 # "Bad . . .";}

! Schlafzimmer vorne
if ((dom.GetObject("$src$").Name()=="CUxD.CUX2800003:10.STATE")&&(dom.GetObject("Schlafzimmer vorne Fenster").DPByHssDP("STATE").Value()==true)&&(dom.GetObject("SV_Lueftung_Schlafraum").Value()==false)){
dom.GetObject("SV_Lueftung_Schlafraum").State(true);
tmpW1=tmpW1 # "Schlafzimmer. . .";}

! Schlafzimmer hinten
if ((dom.GetObject("$src$").Name()=="CUxD.CUX2800003:11.STATE")&&(dom.GetObject("Schlafzimmer hinten Fenster").DPByHssDP("STATE").Value()==true)&&(dom.GetObject("SV_Lueftung_Schlafraum").Value()==false)){
dom.GetObject("SV_Lueftung_Schlafraum").State(true);
tmpW1=tmpW1 # "Schlafzimmer. . .";}

! Ansage
if ((tmpW1!= "Bitte Fenster schliessen ")&&(dom.GetObject("SV_Rollos_Tag_oder_Nacht").Value()==true)&&(dom.GetObject("SV_Ansagen_aus_an").Value()==true)&&(dom.GetObject("SV_Anwesenheit").Value()==true)){
string tmpX="CUxD.CUX2801001:13";
string tmpW=dom.GetObject("Flur Smartphone Jeanny").State(); 
string tmpY="http://"#tmpW#":50000/tts="#tmpM1;
dom.GetObject(tmpX #".CMD_EXEC").State("wget -q -O - '"#tmpY#" "#tmpW1#"'");}
Ich hoffe Du kommst damit klar?

Andi
Greenhorn

Letzter Reboot: 13.07.19 - FW Update // Uptime-Rekord: 65 Tage
Systeminfos: Raspberry Firmware: 3.47.10.20190713, 125 Geräte
Addons: Drucken 1.2a - HQ WebUI 2.5.7 - XML-API 1.20 - CUx-Daemon 2.3.3 - E-Mail 1.6.8c - hm_pdetect 1.5 - VPN cloudmatic
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Zentrale: Asus TF103 mit Home24 Tablet
- Diverse Links

66er
Beiträge: 2562
Registriert: 23.08.2015, 11:06
Danksagung erhalten: 2 Mal

Re: Fensteröffnungszeit überwachen

Beitrag von 66er » 10.10.2017, 21:00

Hallo Ihr 2,

es ist sicherlich geschmackssache, ob man Lösungen per Script oder einfach per "Klickibunti" ausführt.

Bei mir liegt der Fokus auf Programmen, bei AndiN auf Scripte

@AndiN:

Falls Du weitere Details Deiner Umsetzung offen legen willst, würde ich mich freuen und fände es nur fair, wenn Du das in einem eigenen Projekt-Thread tun würdest.

Danke für Dein Verständnis

LG
Stefan

Benutzeravatar
AndiN
Beiträge: 2440
Registriert: 10.06.2015, 08:54
Wohnort: Hennef
Hat sich bedankt: 1 Mal

Re: Fensteröffnungszeit überwachen

Beitrag von AndiN » 10.10.2017, 21:12

Ach eine Antwort war ich Dir noch schuldig: Home24 Mediaplayer Verzögerung. Hatte ich früher mal. Aber das habe ich damals mit Screenon und Color gelöst. Sobald das Gerät in Standby geht habe ich eine deutliche Verzögerung. Über den o.a. Weg nicht mehr.
Greenhorn

Letzter Reboot: 13.07.19 - FW Update // Uptime-Rekord: 65 Tage
Systeminfos: Raspberry Firmware: 3.47.10.20190713, 125 Geräte
Addons: Drucken 1.2a - HQ WebUI 2.5.7 - XML-API 1.20 - CUx-Daemon 2.3.3 - E-Mail 1.6.8c - hm_pdetect 1.5 - VPN cloudmatic
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Zentrale: Asus TF103 mit Home24 Tablet
- Diverse Links

Tibin
Beiträge: 284
Registriert: 26.10.2016, 16:08

Re: Fensteröffnungszeit überwachen

Beitrag von Tibin » 10.10.2017, 21:15

Sorry Stefan, das war mein Fehler. Ich habe mir nach dem Absenden schon so etwas gedacht.
Bin gerade dabei es erstmal ohne Script ( also deine Lösung) zu probieren.
Muss mich jetzt mal um die CuXD Timer Geschichte kümmern, da ich die Zeitsteuerung ja nur im Wenn Teil nehmen kann und dann würde es ja zyklisch den ganzen Tag laufen. Den CuxD Timer kann man ja schön abbrechen im Programm.
Andy danke trotzdem für die Scripte... werde die auf jeden Fall mal später testen. :!:

Antworten

Zurück zu „Projektvorstellungen“