Wetterstation HmIP-SWO-PR - pro - Anzeige Regenmege

HMIP Sender und Empfänger der Serie Homematic IP

Moderator: Co-Administratoren

markusausmoers
Beiträge: 5
Registriert: 12.05.2018, 14:24

Wetterstation HmIP-SWO-PR - pro - Anzeige Regenmege

Beitrag von 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) 1004 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) 1004 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!

NickHM
Beiträge: 1661
Registriert: 23.09.2017, 12:04

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

Beitrag von 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:
viewtopic.php?f=58&t=42383

cyberjunkie
Beiträge: 45
Registriert: 06.11.2016, 16:39
Wohnort: Steiermark, Österreich

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

Beitrag von 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é

NickHM
Beiträge: 1661
Registriert: 23.09.2017, 12:04

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

Beitrag von 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.

markusausmoers
Beiträge: 5
Registriert: 12.05.2018, 14:24

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

Beitrag von 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.

NickHM
Beiträge: 1661
Registriert: 23.09.2017, 12:04

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

Beitrag von 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?

markusausmoers
Beiträge: 5
Registriert: 12.05.2018, 14:24

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

Beitrag von 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

NickHM
Beiträge: 1661
Registriert: 23.09.2017, 12:04

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

Beitrag von 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);

markusausmoers
Beiträge: 5
Registriert: 12.05.2018, 14:24

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

Beitrag von 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

Beitrag von 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.

Antworten

Zurück zu „HomeMatic IP Aktoren und Sensoren“