Hallo zusammen,
bin noch ziemlicher Homematic Anfänger, wie man bestimmt an der Frage merken kann
Ich habe es hingekriegt, dass ich eine Benachrichtigung aufs Handy kriege, wenn mein Badezimmerfenster länger als 15 Minuten offen ist und auch wenn es dann wieder geschlossen wird.
Jetzt möchte ich ein bisschen weiter experimentieren und beim schließen des Fensters angeben wie lange es offen war.
Ich hatte es mir eigentlich recht simpel vorgestellt. Zweimal den Zeitpunkt (Systemzeit?!) merken und die Differenz berechnen.
Leider bin ich per google immer noch nicht fündig geworden, wie das bei der Homematic funktioniert.
Daher wäre ich zum einen dankbar für eine konkrete Umsetzungshilfe, zum anderen aber auch die Frage, ob es irgendwo eine brauchbare Skript-Doku gibt, mit der man bei solchen Anfängerfragen weiterkommt.
Schönen Gruß
oetzi
Zeit zwischen 2 Ereignissen ausgeben
Moderator: Co-Administratoren
- Black
- Beiträge: 5480
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: Zeit zwischen 2 Ereignissen ausgeben
https://www.eq-3.com/Downloads/eq3/down ... g_V2.2.pdf
https://www.eq-3.de/Downloads/eq3/downl ... l_V1.2.pdf
https://www.eq-3.de/Downloads/eq3/downl ... e_V1.1.pdf
https://www.eq-3.de/Downloads/eq3/downl ... kunden.pdf
Das ist die offizell zugängliche Scriptdukumentation.
Black
https://www.eq-3.de/Downloads/eq3/downl ... l_V1.2.pdf
https://www.eq-3.de/Downloads/eq3/downl ... e_V1.1.pdf
https://www.eq-3.de/Downloads/eq3/downl ... kunden.pdf
Das ist die offizell zugängliche Scriptdukumentation.
Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
-
- Beiträge: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: Zeit zwischen 2 Ereignissen ausgeben
Vielleicht hilft dir das hier als Beispiel auch noch weiter.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
Re: Zeit zwischen 2 Ereignissen ausgeben
Dank euch, insbesondere das Beispiel von dtp hat mir weitergeholfen um die Lösung dann selber hinzukriegen.
Falls es anderen hilft hier meine Lösung:
Vorbedingung:
Systemvariable vom Typ Zahl und einem ausreichenden Maximalwert (ich hab folgenden genutzt: 2059676718) um die aktuelle Zeit als Integer abspeichern zu können.
Wenn das Fenster geöffnet wird, läuft folgendes Skript:
Beim Fenster schließen läuft dann folgendes Skript ab:
Falls es anderen hilft hier meine Lösung:
Vorbedingung:
Systemvariable vom Typ Zahl und einem ausreichenden Maximalwert (ich hab folgenden genutzt: 2059676718) um die aktuelle Zeit als Integer abspeichern zu können.
Wenn das Fenster geöffnet wird, läuft folgendes Skript:
Code: Alles auswählen
! Aktuelle Zeit abspeichern
! Systemvariable holen
var sv = dom.GetObject("BAD_Zeitpunkt_Fenster-auf");
! Aktuelle Zeit setzen
integer fensterAufZeit;
fensterAufZeit = (currenttime.Format().ToTime()).ToInteger();
! Aktuelle Zeit in SystemVar schreiben
sv.State(fensterAufZeit);
Beim Fenster schließen läuft dann folgendes Skript ab:
Code: Alles auswählen
! Deklaration Variablen
string durS; string durM; string durH;
integer fensterAufZeit; integer fensterZuZeit; integer duration;
! Berechnungen
! Wert der SysVar (Zeitpunkt Fenster offen) holen
var sv = dom.GetObject("BAD_Zeitpunkt_Fenster-auf");
fensterAufZeit = sv.Value();
fensterZuZeit = (currenttime.Format().ToTime()).ToInteger();
duration = (fensterZuZeit - fensterAufZeit);
durS = duration.ToTime().Format("%S");
durM = duration.ToTime().Format("%M");
durH = duration.ToTime().Format("%H").ToInteger() - 1;
! Nachricht
string po_title="Badezimmerfenster wieder GESCHLOSSEN";
string po_message="Gel%C3%BCftet: "#durH#":"#durM#":"#durS#" Stunden";