mediola

Wetterstation HmIP-SWO-PR - pro - Anzeige Regenmege

HMIP Sender und Empfänger der Serie Homematic IP

Werbung


Wetterstation HmIP-SWO-PR - pro - Anzeige Regenmege

Beitragvon markusausmoers » 12.05.2018, 14:43

Hallo zusammen.

Ich besitze die Wetterstation HmIP-SWO-PR - pro. Diese zeigt auch sehr schön standartmäßig die heutige Regenmenge und die Regenmenge von gestern an.

1.jpg
1.jpg (23.27 KiB) 462-mal betrachtet


Diese Daten benötige ich nun um meine Bewässerung zu programmieren.

Ich kann sämtliche Werte im Programm abrufen, jedoch die Regenmenge (heute und gestern) ist dort nicht aufgelistet.

2.jpg
2.jpg (10.9 KiB) 462-mal betrachtet


Was mache ich falsch? bzw. was muss ich machen damit ich auf diese Daten zugreifen kann.

Für eure Hilfe bedanke ich mich schon einmal!
markusausmoers
 
Beiträge: 5
Registriert: 12.05.2018, 14:24

Re: Wetterstation HmIP-SWO-PR - pro - Anzeige Regenmege

Beitragvon NickHM » 12.05.2018, 14:49

Guten Abend

Du kommst so einfach nicht an die beiden SysVar ran, die in der WebUi angezeigt werden. Die sind versteckt.

Also musst Du das systeminterne Script der Wetterstation selbst anpassen.

Du legst Dir 2 neue SysVar an , die Du dann in Deinen Programmen weiter nutzen kannst. In dem vorhandenen Script musst Du die intern benutzten Variablen in Deine eigenen kopieren.

Beispiel hier:
https://homematic-forum.de/forum/viewtopic.php?f=58&t=42383
NickHM
 
Beiträge: 1012
Registriert: 23.09.2017, 12:04

Re: Wetterstation HmIP-SWO-PR - pro - Anzeige Regenmege

Beitragvon cyberjunkie » 12.05.2018, 14:52

Hallo,

ich denke die Regenmenge heute und gestern sowie die Sonnenscheindauer (heute/gestern) sind mittels interne Systemvariablen realisiert und werden mittels ebenfalls internen Programmen gesetzt. Eventuell hat hier aber jemand mehr Erfahrung damit, da der Wert bei Regenmenge/Sonnenscheindauer anscheinend nur ein fortlaufender Wert ist.

@NickHM : Da warst du wohl schneller - danke für die Erklärung. :)

Viele Grüße
René
cyberjunkie
 
Beiträge: 44
Registriert: 06.11.2016, 16:39
Wohnort: Steiermark, Österreich

Re: Wetterstation HmIP-SWO-PR - pro - Anzeige Regenmege

Beitragvon NickHM » 12.05.2018, 18:15

Guten Abend

Regenmenge / Sonnenscheindauer werden im Sensor weiter gezählt und bei Überlauf des Zählers wieder bei 0,0 begonnen. Oder bei Batteriewechsel.
Aus diesen Werten berechnet ein Script in der CCU die Werte für den Tag.

Das Rücksetzen der Werte für "heute" und kopieren in "gestern" erfolgt in einem zweiten Script, dass default um 07:00 gestartet wird (glaube ich). Warum bei eq-3 die Zählung für den tag um 07:00 beginnt weiss ich nicht. Da scheint in unserer Gegend schon lange die Sonne. Die Startzeit kann man aber sehr einfach im Zeitmodul in dem entsprechenden systeminternen Programm in der WebUi anpassen.
NickHM
 
Beiträge: 1012
Registriert: 23.09.2017, 12:04

Re: Wetterstation HmIP-SWO-PR - pro - Anzeige Regenmege

Beitragvon markusausmoers » 15.05.2018, 14:12

Ich habe es dank des Links schafft die Regenmenge Gestern anzeigen zu lassen. Diese kann ich nun auch für Programme verwenden.

Jedoch fehlt mir noch die heutige Tagesregenmege. Da verzweifel ich gerade dran.

Ich kann nur die Gesamtregenmenge verwenden. Ich benötigte jedoch die Summe welche an diesem Tage angefallen ist.

Ich hoffe nochmal auf Eure Hilfe.
markusausmoers
 
Beiträge: 5
Registriert: 12.05.2018, 14:24

Re: Wetterstation HmIP-SWO-PR - pro - Anzeige Regenmege

Beitragvon NickHM » 15.05.2018, 14:58

guten Morgen,

die Regenmenge heute versteckt sich in dem systeminternen Programm (Script) , das zu dem Sensor gehört und immer bei Aktualisierung ausgeführt wird. Kannst Du das Script mal hier rein kopieren?
NickHM
 
Beiträge: 1012
Registriert: 23.09.2017, 12:04

Re: Wetterstation HmIP-SWO-PR - pro - Anzeige Regenmege

Beitragvon markusausmoers » 15.05.2018, 20:34

Bitteschöön:

Code: Alles auswählen
object chn = dom.GetObject('20287');
object oOverflow = chn.DPByControl('WEATHER_TRANSMIT.RAIN_COUNTER_OVERFLOW');
object oRainCounter = chn.DPByControl('WEATHER_TRANSMIT.RAIN_COUNTER');
object oSysVarRain = dom.GetObject('svHmIPRainCounter_20287_00185709ACB197:1');
object oSysVarRainOldVal = dom.GetObject('svHmIPRainCounterOldVal_20287');
object oSysVarCounterToday =  dom.GetObject('svHmIPRainCounterToday_20287');
object oSysVarCounterYesterday =  dom.GetObject('svHmIPRainCounterYesterday_20287');
boolean overFlowFlag = oOverflow.Value();
real devVal = oRainCounter.Value();
real devValMax = oRainCounter.ValueMax();
real oldDevVal = oSysVarRainOldVal.Value();
real diffVal = 0.0;
real sysVarVal = oSysVarRain.Value();
real sysVarTodayVal = oSysVarCounterToday.Value();
real todayTotal = 0.0;
integer tmp_devVal = (devVal.ToString().ToFloat() * 1000).ToInteger();
integer tmp_oldDevVal = (oldDevVal.ToString().ToFloat() * 1000).ToInteger();
if (overFlowFlag == false) {
! Normal conditions
if (tmp_oldDevVal <= tmp_devVal) {
diffVal = devVal - oldDevVal;
}
! Device has rebooted
if (tmp_oldDevVal > tmp_devVal) {
diffVal = devVal;
}
} else {
!overFlow is true
if (tmp_oldDevVal > tmp_devVal) {
! An device overflow has occured
diffVal = (devVal + devValMax) - oldDevVal;
} else {
! Once the overflow flag has been set it will only be false when the device reboots
! Therefore this is the normal condition after an device overflow
diffVal = devVal - oldDevVal;
}
}
oSysVarRainOldVal.State(devVal);
oSysVarRain.State(sysVarVal + diffVal);
todayTotal = sysVarTodayVal + diffVal;
if (todayTotal >= 1440.0) {todayTotal = 0.0;}
oSysVarCounterToday.State(todayTotal);
Zuletzt geändert von alchy am 16.05.2018, 20:33, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
markusausmoers
 
Beiträge: 5
Registriert: 12.05.2018, 14:24

Re: Wetterstation HmIP-SWO-PR - pro - Anzeige Regenmege

Beitragvon NickHM » 15.05.2018, 23:35

Code: Alles auswählen
object chn = dom.GetObject('20287');
object oOverflow = chn.DPByControl('WEATHER_TRANSMIT.RAIN_COUNTER_OVERFLOW');
object oRainCounter = chn.DPByControl('WEATHER_TRANSMIT.RAIN_COUNTER');
object oSysVarRain = dom.GetObject('svHmIPRainCounter_20287_00185709ACB197:1');
object oSysVarRainOldVal = dom.GetObject('svHmIPRainCounterOldVal_20287');
object oSysVarCounterToday = dom.GetObject('svHmIPRainCounterToday_20287');
object oSysVarCounterYesterday = dom.GetObject('svHmIPRainCounterYesterday_20287');
!
!eigene sysVar
object oSysVarMyCounterToday = dom.GetObject('Regen_Heute');
!
boolean overFlowFlag = oOverflow.Value();
real devVal = oRainCounter.Value();
real devValMax = oRainCounter.ValueMax();
real oldDevVal = oSysVarRainOldVal.Value();
real diffVal = 0.0;
real sysVarVal = oSysVarRain.Value();
real sysVarTodayVal = oSysVarCounterToday.Value();
real todayTotal = 0.0;
integer tmp_devVal = (devVal.ToString().ToFloat() * 1000).ToInteger();
integer tmp_oldDevVal = (oldDevVal.ToString().ToFloat() * 1000).ToInteger();
if (overFlowFlag == false) {
! Normal conditions
if (tmp_oldDevVal <= tmp_devVal) {
diffVal = devVal - oldDevVal;
}
! Device has rebooted
if (tmp_oldDevVal > tmp_devVal) {
diffVal = devVal;
}
} else {
!overFlow is true
if (tmp_oldDevVal > tmp_devVal) {
! An device overflow has occured
diffVal = (devVal + devValMax) - oldDevVal;
} else {
! Once the overflow flag has been set it will only be false when the device reboots
! Therefore this is the normal condition after an device overflow
diffVal = devVal - oldDevVal;
}
}
oSysVarRainOldVal.State(devVal);
oSysVarRain.State(sysVarVal + diffVal);
todayTotal = sysVarTodayVal + diffVal;
if (todayTotal >= 1440.0) {todayTotal = 0.0;}
oSysVarCounterToday.State(todayTotal);
!
!kopieren in die eigene Variable
!
oSysVarMyCounterToday.State(todayTotal);
NickHM
 
Beiträge: 1012
Registriert: 23.09.2017, 12:04

Re: Wetterstation HmIP-SWO-PR - pro - Anzeige Regenmege

Beitragvon markusausmoers » 16.05.2018, 17:48

Danke. Wunderbar. Funktioniert !
markusausmoers
 
Beiträge: 5
Registriert: 12.05.2018, 14:24

Re: Wetterstation HmIP-SWO-PR - pro - Anzeige Regenmege

Beitragvon markusausmoers » 18.05.2018, 15:20

Ich bin es nochmal.

Es klappt leider doch noch nicht. Sobald Regen fällt aktualisiert er den Wert nicht.

Muss unter WENN das Zeitmodul Ganztätig oder der Regensenor (bei Regen) erfasst werden? Oder geht es nur zu einer bestimmten Zeitpunkt (also einmal am Tag), dass er die Regenmenge dann aktualisiert.
markusausmoers
 
Beiträge: 5
Registriert: 12.05.2018, 14:24

Nächste

Zurück zu HomeMatic IP Aktoren und Sensoren

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast







© homematic-forum.de & Lizenzgebern. Alle Rechte vorbehalten. Alle Bilder & Texte auf dieser Seite sind Eigentum
der jeweiligen Besitzer und dürfen ohne deren Einwilligung weder kopiert noch sonstwie weiter verwendet werden.