HMIP-SWO-PL interne Scripte

HMIP Sender und Empfänger der Serie Homematic IP

Moderator: Co-Administratoren

herbylfs
Beiträge: 49
Registriert: 07.04.2018, 16:59
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: HMIP-SWO-PL interne Scripte

Beitrag von herbylfs » 20.05.2018, 00:21

Für einen Nichtexperten die Beste Erklärung!
Ohne Inhalt und Sinn.

eines der Programme ???? enthält ein sehr kurzes Script und wird über das Zeitmodul getriggert. Dort im Zeitmodul steht die Zeit.

Die beiden anderen Programme???? laufen bei Aktualisierung.
Wo soll der Leie oder Nichtexperte das finden ?
mfg
herby
Wo kämen wir denn hin, wenn alle sagten "Wo kämen wir denn hin" und niemand ginge um zu sehen, wohin wir kämen, wenn wir gingen!?!
Ich hab so Hunger, dass ich vor lauter Durst gar nicht weiß was ich rauchen soll, so müde bin ich!!!
Spezialisten wissen immer mehr über immer weniger, bis Sie alles über nichts wissen.
Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher.

Benutzeravatar
JRiemann
Beiträge: 3903
Registriert: 12.11.2015, 21:05
Wohnort: Aurich
Danksagung erhalten: 3 Mal

Re: HMIP-SWO-PL interne Scripte

Beitrag von JRiemann » 20.05.2018, 08:55

Um die Antworten und Hinweise in diesem Thread zu vestehen muss keiner Experte sein! Es reicht lediglich aus sich mit den eingesetzten Geräten, dem System usw. auseinanderzusetzen. Aber gut... so ist es halt... pampig werden hilft auf jeden Fall nicht weiter!
Nicht vergessen dies ist ein User-Forum und nicht der Support von eQ3.

Beim anlernen legen einige Geräte (z.B. Schalt-Mess-Aktoren, Wetterstationen usw.) Programme und Skripte auf der CCU an. Diese Programme dienen dazu das die betreffenden Aktoren/Sensoren ihre Daten auswerten und darstellen können.
Solche Programme werden "unsichtbar" als "systemintern" von den Aktoren/Sensoren angelegt. Wenn man in der WebUI den Ordner Programme öffnet gibt es untern einen Button "systeminterne einblenden". Ein Klick darauf zeigt dann auch die "versteckten" Programme an.
Viele Grüße!
Jörg

NickHM
Beiträge: 3733
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 66 Mal
Danksagung erhalten: 120 Mal

Re: HMIP-SWO-PL interne Scripte

Beitrag von NickHM » 20.05.2018, 09:06

herbylfs hat geschrieben:Für einen Nichtexperten die Beste Erklärung!
Ohne Inhalt und Sinn.
Du schreibst selbst, dass Du die 3 Programme zum Sensor gefunden hast.
Ich suche den Teil zum umstellen der Uhrzeit von 07:00 aus 03:30, finde ihn aber nicht!
In den drei systeminternen Programmen seheich keine Zeit 07:00.
Sowohl der automatisch erzeugte Programmname , als auch die Triggerbedingung sind absolut selbst erklärend. Mehr Hilfestellung kann man nicht geben.
Screenshot 2018-05-20 09.03.14.png

herbylfs
Beiträge: 49
Registriert: 07.04.2018, 16:59
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: HMIP-SWO-PL interne Scripte

Beitrag von herbylfs » 29.07.2018, 20:01

Hi,
erstmal Entschuldigung für die Äusserungen vom Mai !!
War irgendwie angefressen.
Einiges hat sich in der Zeit durch Lesen der Forenbeiträge erledigt.

Jetzt suche ich eine möglichkeit, folgende Infos in Variablen zu setzen:

Aus /addons/xmlapi/statelist.cgi

Wetter HM

<datapoint name="BidCos-RF.OEQ1864826:1.RAIN_COUNTER" type="RAIN_COUNTER" ise_id="1369" value="14.750000" valuetype="4" valueunit="mm" timestamp="1532884372" operations="5"/>

Wetter IP 18F8

<datapoint name="HmIP-RF.001858A98C18F8:1.RAIN_COUNTER" type="RAIN_COUNTER" ise_id="5095" value="8.600000" valuetype="4" valueunit="mm" timestamp="1532884476" operations="5"/>

Wetter IP 19DD

<datapoint name="HmIP-RF.001858A98C19DD:1.RAIN_COUNTER" type="RAIN_COUNTER" ise_id="5193" value="12.700000" valuetype="4" valueunit="mm" timestamp="1532884394" operations="5"/>

zB
Regenmenge HM
Regenmenge IP18F8
Regenmenge IP19DD

Ist schon erstaunlich, das bei einen Regenguss, sehr verschiedene Werte herauskommen!
Für Hilfe sehr dankbar.
mfg
herby
Wo kämen wir denn hin, wenn alle sagten "Wo kämen wir denn hin" und niemand ginge um zu sehen, wohin wir kämen, wenn wir gingen!?!
Ich hab so Hunger, dass ich vor lauter Durst gar nicht weiß was ich rauchen soll, so müde bin ich!!!
Spezialisten wissen immer mehr über immer weniger, bis Sie alles über nichts wissen.
Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher.

Jan 2707
Beiträge: 4
Registriert: 23.01.2019, 21:23

Re: HMIP-SWO-PL interne Scripte

Beitrag von Jan 2707 » 10.04.2019, 06:22

Hallo Nick,

Könntest du mal das komplette Script einstellen?

NickHM
Beiträge: 3733
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 66 Mal
Danksagung erhalten: 120 Mal

Re: HMIP-SWO-PL interne Scripte

Beitrag von NickHM » 10.04.2019, 08:48

Jan 2707 hat geschrieben:
10.04.2019, 06:22
Hallo Nick,

Könntest du mal das komplette Script einstellen?
Ich weiss nicht genau, was Du meinst. Evtl. das im zweiten Beitrag ?

Jan 2707
Beiträge: 4
Registriert: 23.01.2019, 21:23

Re: HMIP-SWO-PL interne Scripte

Beitrag von Jan 2707 » 10.04.2019, 19:04

Ja genau. Das 2. Script komplett

Habe das so verstanden.

Die 3 innternen programme bleiben bis auf das erste mit dem zeittigger. Den von 7 auf 0.03 oder so.

4 variablen anlegen auf zahl

Ein programm von mir mit wenn regen dann aktualisiere... Usw. Dann script ist klar.

Im script ändere ich meine zahl von der 30... und meine systemvariablen einfügen bei:

= dom.GetObject ('meine systemvariable')

Aber damit weiß ich nicht was gemeint ist.

! Kopieren der internen Sysvar mit der Regenmenge des Vortages in die selbst angelegte SysVar
oSysVarRegenGestern.State(oSysVarRainCounterYesterday.Value());

Daher kannst du nur kurz den kompletten script einstellen.

Wäre nett, Danke

Batschkabb
Beiträge: 21
Registriert: 02.12.2018, 12:33
Hat sich bedankt: 13 Mal
Danksagung erhalten: 1 Mal

Re: HMIP-SWO-PL interne Scripte

Beitrag von Batschkabb » 22.05.2020, 01:01

Bei meiner Wetterstation Plus funktioniert der Reset von Sonnenscheindauer und Regenzähler nicht.
Es sieht so aus, als existieren bei mir die Skripte doppelt (15865 & 16607). Sieht das bei Euch auch so aus?
Prg.jpg
Reset.jpg
Reset.jpg (9.82 KiB) 1626 mal betrachtet

Batschkabb
Beiträge: 21
Registriert: 02.12.2018, 12:33
Hat sich bedankt: 13 Mal
Danksagung erhalten: 1 Mal

Re: HMIP-SWO-PL interne Scripte

Beitrag von Batschkabb » 27.06.2020, 22:57

Batschkabb hat geschrieben:
22.05.2020, 01:01
Sieht das bei Euch auch so aus?
Kann bitte jemand von Euch, der auch die Wetterstation HMIP-SWO-PL in Betrieb hat, die internen Skripte mal nachauen?

Ich würde ungern die Wetterstation aus der CCU3 löschen und neu anlernen, da dann die ganzen Skripte im Eimer sind.
Wenn ich den Inhalt der beiden Skripte von einem anderen System als Vergleich hätte, könnte ich das bei mir manuell anpassen.
Danke schon jetzt für die Unterstützung und Hilfe :D

NickHM
Beiträge: 3733
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 66 Mal
Danksagung erhalten: 120 Mal

Re: HMIP-SWO-PL interne Scripte

Beitrag von NickHM » 22.07.2020, 17:16

Hallo

etwas späte Antwort. Ich schaue hier nicht mehr so oft rein :)

Es könnte sein, dass in den Scripten eigene Anpassungen drin sind, um die Werte für den Vortag jeweils in eigene SV zu speichern.

Code: Alles auswählen

object chn = dom.GetObject('36774');
object oSysVarSunshineCounterToday = dom.GetObject('svHmIPSunshineCounterToday_36774');
object oSysVarSunshineCounterYesterday = dom.GetObject('svHmIPSunshineCounterYesterday_36774');
object oSysVarRainCounterToday = dom.GetObject('svHmIPRainCounterToday_36774');
object oSysVarRainCounterYesterday = dom.GetObject('svHmIPRainCounterYesterday_36774');
object oSysVarRegenGestern = dom.GetObject('RegenmengeGestern');
if (oSysVarSunshineCounterYesterday && oSysVarSunshineCounterToday) {oSysVarSunshineCounterYesterday.State(oSysVarSunshineCounterToday.Value());}if (oSysVarSunshineCounterToday) {oSysVarSunshineCounterToday.State(0);}if (oSysVarRainCounterYesterday && oSysVarRainCounterToday) {oSysVarRainCounterYesterday.State(oSysVarRainCounterToday.Value());}if (oSysVarRainCounterToday) {oSysVarRainCounterToday.State(0);}
oSysVarRegenGestern.State(oSysVarRainCounterYesterday.Value());

Code: Alles auswählen

object chn = dom.GetObject('36774');
object oOverflow = chn.DPByControl('WEATHER_TRANSMIT.RAIN_COUNTER_OVERFLOW');
object oRainCounter = chn.DPByControl('WEATHER_TRANSMIT.RAIN_COUNTER');
object oSysVarRain = dom.GetObject('svHmIPRainCounter_36774_00181709ADB1B5:1');
object oSysVarRainOldVal = dom.GetObject('svHmIPRainCounterOldVal_36774');
object oSysVarCounterToday =  dom.GetObject('svHmIPRainCounterToday_36774');
object oSysVarCounterYesterday =  dom.GetObject('svHmIPRainCounterYesterday_36774');
! SysVar fu%u0308r eigene Regenmenge heute¬
object oSysVarRainToday = dom.GetObject('RegenmengeHeute');
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 eigene SysVar¬
oSysVarRainToday.State(oSysVarCounterToday.Value());

Code: Alles auswählen

object chn = dom.GetObject('36774');
object oOverflow = chn.DPByControl('WEATHER_TRANSMIT.SUNSHINEDURATION_OVERFLOW');
object oSunshineCounter = chn.DPByControl('WEATHER_TRANSMIT.SUNSHINEDURATION');
object oSysVarSunshine = dom.GetObject('svHmIPSunshineCounter_36774_00181709ADB1B5:1');
object oSysVarSunshineOldVal = dom.GetObject('svHmIPSunshineCounterOldVal_36774');
object oSysVarCounterToday =  dom.GetObject('svHmIPSunshineCounterToday_36774');
object oSysVarCounterYesterday =  dom.GetObject('svHmIPSunshineCounterYesterday_36774');
boolean overFlowFlag = oOverflow.Value();
real devVal = oSunshineCounter.Value();
real devValMax = oSunshineCounter.ValueMax();
real oldDevVal = oSysVarSunshineOldVal.Value();
real diffVal = 0.0;
real sysVarVal = oSysVarSunshine.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;
}
}
oSysVarSunshineOldVal.State(devVal);
oSysVarSunshine.State(sysVarVal + diffVal);
todayTotal = sysVarTodayVal + diffVal;
if (todayTotal >= 1440.0) {todayTotal = 0.0;}
oSysVarCounterToday.State(todayTotal);

Antworten

Zurück zu „HomeMatic IP Aktoren und Sensoren“