Wettersensor Pro: Niederschlagswerte über mehrere Tage
Moderator: Co-Administratoren
-
- Beiträge: 76
- Registriert: 18.06.2018, 12:47
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 1 Mal
Wettersensor Pro: Niederschlagswerte über mehrere Tage
Hallo zusammen,
der Wettersensor Pro liefert ja bekanntlich den Niederschlagswert für heute und gestern und resetet diese jeweils um 07:00 Uhr morgens.
Gibt es eine Möglichkeit, die Rückstellzeit zu verändern?
Gibt es eine Möglichkeit, den Niederschlag auch z.B. über 2 oder 3 Tage in Summe zu erfassen?
Viele Grüße und ein schönes Wochenende!
der Wettersensor Pro liefert ja bekanntlich den Niederschlagswert für heute und gestern und resetet diese jeweils um 07:00 Uhr morgens.
Gibt es eine Möglichkeit, die Rückstellzeit zu verändern?
Gibt es eine Möglichkeit, den Niederschlag auch z.B. über 2 oder 3 Tage in Summe zu erfassen?
Viele Grüße und ein schönes Wochenende!
-
- Beiträge: 10685
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 330 Mal
- Danksagung erhalten: 507 Mal
Re: Wettersensor Pro: Niederschlagswerte über mehrere Tage
Blende unter "Programme und Zentralverknüpfungen" die "systeminternen Programme" ein und ändere dann das Programm "prgDailySunshineRainCounter_xxxx" nach deinen Wünschen. Ich hab das Zeitmodul z.B. auf 00:00 Uhr gesetzt.
Wenn du mehrere Tageswerte zusammenzählen möchtest, dann musst du dir ein kleines Skript schreiben, das du in das obige Programm einfügst und das dir die Werte der Systemvarialben "svHmIPRainCounterToday_xxxx" für drei Tage in einer neuen Systemvariablen "Summierte Regenmenge" aufaddiert.
Also z.B. in der Form
Wenn du mehrere Tageswerte zusammenzählen möchtest, dann musst du dir ein kleines Skript schreiben, das du in das obige Programm einfügst und das dir die Werte der Systemvarialben "svHmIPRainCounterToday_xxxx" für drei Tage in einer neuen Systemvariablen "Summierte Regenmenge" aufaddiert.
Also z.B. in der Form
Code: Alles auswählen
integer countPeriod = 259200; ! Zeitperiode in Sekunden
integer resetDelay = 36000; ! Verzögerung zum Zurücksetzen der Systemvariablen svRainCounterCum
string svRainCounterDay = "svHmIPRainCounterToday_xxxx";
string svRainCounterCum = "Summierte Regenmenge";
integer timeDiff; integer rainCounterCum = 0; integer rainCounterDay = 0;
timeDiff = (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svRainCounterDay)).Timestamp().ToInteger() - (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svRainCounterCum)).Timestamp().ToInteger();
rainCounterDay = (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svRainCounterDay)).Value();
if(timeDiff < countPeriod){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svRainCounterCum)).State(rainCounterCum + rainCounterDay);}
else{(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svRainCounterCum)).State(0, resetDelay);}
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.
-
- Beiträge: 76
- Registriert: 18.06.2018, 12:47
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 1 Mal
Re: Wettersensor Pro: Niederschlagswerte über mehrere Tage
Hallo dtp,
vielen lieben Dank! Die Zeit habe ich nun ebenfalls auf 00:00 Uhr zurückgesetzt.
Das Script kopiere ich unter den bereits vorhandenen Script-Abschnitt in dem internen Programm und muss dort lediglich "countPeriod" entsprechend des gewünschten Zeitfensters bis zum nächsten Reset anpassen? Muss an "resetDelay" irgendwas verändert werden?
Viele Grüße und vielen Dank!
vielen lieben Dank! Die Zeit habe ich nun ebenfalls auf 00:00 Uhr zurückgesetzt.
Das Script kopiere ich unter den bereits vorhandenen Script-Abschnitt in dem internen Programm und muss dort lediglich "countPeriod" entsprechend des gewünschten Zeitfensters bis zum nächsten Reset anpassen? Muss an "resetDelay" irgendwas verändert werden?
Viele Grüße und vielen Dank!
- Baxxy
- Beiträge: 11084
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 638 Mal
- Danksagung erhalten: 2301 Mal
Re: Wettersensor Pro: Niederschlagswerte über mehrere Tage
Du musst natürlich noch eine
Typ Zahl anlegen und in dtp's Script die Zeile...
Code: Alles auswählen
string svRainCounterDay = "svHmIPRainCounterToday_xxxx";
Da mir auf die Schnelle nicht einfällt wie man die versteckten SysVars angezeigt bekommt würde ich vorschlagen du suchst die korrekte Bezeichnung im original Script vom HmIP-SWO-PR - pro.
Grüße
Baxxy
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 76
- Registriert: 18.06.2018, 12:47
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 1 Mal
Re: Wettersensor Pro: Niederschlagswerte über mehrere Tage
@Baxxy, auch dir vielen Dank!
Ich habe die Variable "NiederschlagSumme" wie beschrieben angelegt.
Die versteckte Systemvariable ist die 4-stellige Zahlenfolge oder? Die wird mir im vorhandenen Script schon angezeigt, daher habe ich diese einfach übernommen.
Dummerweise habe ich das Script grade getestet und die Werte wurden alle genullt. Daher sehe ich nicht pb es geklappt hat
Ich habe die Variable "NiederschlagSumme" wie beschrieben angelegt.
Die versteckte Systemvariable ist die 4-stellige Zahlenfolge oder? Die wird mir im vorhandenen Script schon angezeigt, daher habe ich diese einfach übernommen.
Dummerweise habe ich das Script grade getestet und die Werte wurden alle genullt. Daher sehe ich nicht pb es geklappt hat
Code: Alles auswählen
object chn = dom.GetObject('4410');
object oSysVarSunshineCounterToday = dom.GetObject('svHmIPSunshineCounterToday_4410');
object oSysVarSunshineCounterYesterday = dom.GetObject('svHmIPSunshineCounterYesterday_4410');
object oSysVarRainCounterToday = dom.GetObject('svHmIPRainCounterToday_4410');
object oSysVarRainCounterYesterday = dom.GetObject('svHmIPRainCounterYesterday_4410');
if (oSysVarSunshineCounterYesterday && oSysVarSunshineCounterToday) {oSysVarSunshineCounterYesterday.State(oSysVarSunshineCounterToday.Value());}if (oSysVarSunshineCounterToday) {oSysVarSunshineCounterToday.State(0);}if (oSysVarRainCounterYesterday && oSysVarRainCounterToday) {oSysVarRainCounterYesterday.State(oSysVarRainCounterToday.Value());}if (oSysVarRainCounterToday) {oSysVarRainCounterToday.State(0);}
integer countPeriod = 172800; ! Zeitperiode in Sekunden
integer resetDelay = 36000; ! Verzögerung zum Zurücksetzen der Systemvariablen svRainCounterCum
string svRainCounterDay = "svHmIPRainCounterToday_4410";
string svRainCounterCum = "NiederschlagSumme";
integer timeDiff; integer rainCounterCum = 0; integer rainCounterDay = 0;
timeDiff = (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svRainCounterDay)).Timestamp().ToInteger() - (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svRainCounterCum)).Timestamp().ToInteger();
rainCounterDay = (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svRainCounterDay)).Value();
if(timeDiff < countPeriod){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svRainCounterCum)).State(rainCounterCum + rainCounterDay);}
else{(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svRainCounterCum)).State(0, resetDelay);}
-
- Beiträge: 10685
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 330 Mal
- Danksagung erhalten: 507 Mal
Re: Wettersensor Pro: Niederschlagswerte über mehrere Tage
4410 ist die ID, die dein Wettersensor angelegt hat. Die einfach statt der vier Xe einfügen. Korrekt.
Erstelle aber bitte ein neues Skript und füge es nicht in das Original ein.
Hast du eine neue Systemvariable "NiederschlagSumme" vom Typ Zahl erstellt?
Erstelle aber bitte ein neues Skript und füge es nicht in das Original ein.
Hast du eine neue Systemvariable "NiederschlagSumme" vom Typ Zahl erstellt?
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.
- Baxxy
- Beiträge: 11084
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 638 Mal
- Danksagung erhalten: 2301 Mal
Re: Wettersensor Pro: Niederschlagswerte über mehrere Tage
Tja, als wäre es 00:00 Uhr. Kann passieren.
Aber dtp ist sehr gut im scripten daher sollte das auch funktionieren.
Ich würde aber dtp's Script nicht in das original Script einfügen sondern als separates Script im DANN anlegen.
Im Scriptkopf lege ich auch immer ein paar Info's ab, z.B. so...
Code: Alles auswählen
!- Regenmenge letzte 3 Tage Script für HmIP-SWO-PR - pro (Author dtp)
!- https://homematic-forum.de/forum/viewtopic.php?f=26&t=59194#p586259
integer countPeriod = 172800; ! Zeitperiode in Sekunden
integer resetDelay = 36000; ! Verzögerung zum Zurücksetzen der Systemvariablen svRainCounterCum
...
...
Grüße
Baxxy
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 76
- Registriert: 18.06.2018, 12:47
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 1 Mal
Re: Wettersensor Pro: Niederschlagswerte über mehrere Tage
Danke euch beiden. Den Tipp mit dem Scriptkopf habe ich direkt umgesetzt
Müsste das Script nicht aber in das interne Programm "prgRainCounter_4410" rein, welches scheinbar bei Erkennen von Niederschlag auslöst und somit einen stets aktuellen Wert ausgibt? Ansonsten würden die neue Variable ja immer nur nachts um 00:00 Uhr aktualisiert oder?
Edit:
Jetzt habe ich glaube ich grade einen Knoten im Kopf, entschuldigt. Ich erkläre kurz mein Vorhaben...
Nachts um 1 Uhr fragt ein Programm ab, ob es a) regnet und b) der Niederschlag der letzten 48h > X mm war. Trifft nichts von all dem zu, startet die Bewässerung.
Vielleicht sehe ich ja grade den Wald vor lauter Bäumen nicht, aber müsste das schöne Script von dtp nicht vor dem internen Script abgearbeitet werden? Ansonsten hätte das interne Script ja den tagesaktuellen Wert bereits auf den Vortag geschoben und den tagesaktuellen Zähler wiederum resetet bevor dtp's Script rechnen darf?
Müsste das Script nicht aber in das interne Programm "prgRainCounter_4410" rein, welches scheinbar bei Erkennen von Niederschlag auslöst und somit einen stets aktuellen Wert ausgibt? Ansonsten würden die neue Variable ja immer nur nachts um 00:00 Uhr aktualisiert oder?
Edit:
Jetzt habe ich glaube ich grade einen Knoten im Kopf, entschuldigt. Ich erkläre kurz mein Vorhaben...
Nachts um 1 Uhr fragt ein Programm ab, ob es a) regnet und b) der Niederschlag der letzten 48h > X mm war. Trifft nichts von all dem zu, startet die Bewässerung.
Vielleicht sehe ich ja grade den Wald vor lauter Bäumen nicht, aber müsste das schöne Script von dtp nicht vor dem internen Script abgearbeitet werden? Ansonsten hätte das interne Script ja den tagesaktuellen Wert bereits auf den Vortag geschoben und den tagesaktuellen Zähler wiederum resetet bevor dtp's Script rechnen darf?
- Baxxy
- Beiträge: 11084
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 638 Mal
- Danksagung erhalten: 2301 Mal
Re: Wettersensor Pro: Niederschlagswerte über mehrere Tage
Da du nur 48h die Regenmenge erfassen willst würde ich anders an die Sache herangehen.
Die Werte für 0h bis -24h (SysVar: "svHmIPRainCounterToday_4410") und für -24h bis -48h (SysVar: "svHmIPRainCounterYesterday_4410") stehen dir ja zur Verfügung und brauchen nur kurz bevor dein Bewässerungsprogramm startet zusammengerechnet werden.
Du willst um 01:00 bewässern somit würde ich das Programm "prgDailySunshineRainCounter_xxxx" erst um 01:01 Uhr ausführen lassen damit die Tagesdaten noch zur Verfügung stehen.
Um 00:59 Uhr würde ich täglich ein Programm mit einem simplen Script starten was die beiden Regenmengen zusammenrechnet und in eine SysVar Typ Zahl mit Beispielnamen "Regenmenge_letzte_48h" schreibt.
Code: Alles auswählen
!- Werte zweier SysVars addieren und in eine 3. SysVar schreiben
real rain24 = dom.GetObject (ID_SYSTEM_VARIABLES).Get ("svHmIPRainCounterToday_4410").Value();
real rain48 = dom.GetObject (ID_SYSTEM_VARIABLES).Get ("svHmIPRainCounterYesterday_4410").Value();
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("Regenmenge_letzte_48h").State(rain24 + rain48);
Das ganze ist recht simpel und relativ unflexibel, sollte aber ermöglichen was gefordert war.
Grüße
Baxxy
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 10685
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 330 Mal
- Danksagung erhalten: 507 Mal
Re: Wettersensor Pro: Niederschlagswerte über mehrere Tage
Ruud2702 hat geschrieben: ↑06.06.2020, 16:38Müsste das Script nicht aber in das interne Programm "prgRainCounter_4410" rein, welches scheinbar bei Erkennen von Niederschlag auslöst und somit einen stets aktuellen Wert ausgibt? Ansonsten würden die neue Variable ja immer nur nachts um 00:00 Uhr aktualisiert oder?
Nee, das muss es nicht, weil nur der Tageswert unmittelbar vor dem Zurücksetzen interessant ist.
Da widerum hast du allerdings Recht. Nimm mein Skript und führe es um 00:00 Uhr aus und führe dann das original Skript mit einer Sekunde Verzögerung aus. Dann bist du auf der sicheren Seite.Ruud2702 hat geschrieben: ↑06.06.2020, 16:38...aber müsste das schöne Script von dtp nicht vor dem internen Script abgearbeitet werden? Ansonsten hätte das interne Script ja den tagesaktuellen Wert bereits auf den Vortag geschoben und den tagesaktuellen Zähler wiederum resetet bevor dtp's Script rechnen darf?
Wenn dich nur die letzten 48 Stunden interessieren, dann kannst du es auch so machen, wie von @Baxxy vorgeschlagen. Mein Skript hätte halt den Vorteil, dass du den Erfassungszeitraum frei wählen kannst.
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.