Hallo allerseits!
Da hier keine Rückmeldung mehr kam und ich grad das Problem für mich gelöst habe (Waschmaschine + Wäschetrockner), will ich euch gern daran teilhaben lassen.
VORAB: Ich habe IPS erst seit ca. 1-2 Wochen und habe so gut wie keine PHP Kenntnisse Aber es klappt
Infos zum Skript > Ich verwende die HomeMatic Zwischenstecker mit Leistungsmessung. Dazu errechne ich mir noch den Verbrauch und die Stromkosten. Und ich lasse mir anzeigen, ob eine Maschine Aktiv oder Inaktiv ist.
Da Waschmaschine und Trockner, wie allen bekannt ist, immer mal Pausen machen, habe ich beobachtet wie lange diese Pausen bei mir sind und für mich festgestellt, dass wenn 120 Sekunden (deshalb der Timer auf dieser Zeit) vergehen und dann immer noch keine höhere Power gemessen wurde, dann ist die Maschine fertig (würde höhere Power kommen, dann würde der Timer wieder auf 0 gesetzt werden).
Mein Skript wird über ein Ereignis ausgelöst > Variablenaktualisierung POWER des Leistungsmesser > Und dann halt über Timer der vom Skript selbst aktiviert wird.
Hoffe ich hab mich soweit halbwegs verständlich ausgedrückt
<?
$waschmaschinepower = GetValueFloat(17603 /*[SKRIPTE\HomeMatic\Zwischenstecker mit Leistungsmessung\L01 (Waschmaschine)\Messwerte\POWER]*/);
if (($waschmaschinepower < 3) AND (GetValue(32439 /*[SKRIPTE\HomeMatic\Zwischenstecker mit Leistungsmessung\L01 (Waschmaschine)\Messwerte\Aktiv_Inaktiv]*/) == true)) {
IPS_SetScriptTimer($IPS_SELF, 120);
}
elseif ($waschmaschinepower > 3) {
SetValue(50393 /*[SKRIPTE\HomeMatic\Zwischenstecker mit Leistungsmessung\L01 (Waschmaschine)\Messwerte\Push-Nachricht gesperrt]*/, false);
SetValue(32439 /*[SKRIPTE\HomeMatic\Zwischenstecker mit Leistungsmessung\L01 (Waschmaschine)\Messwerte\Aktiv_Inaktiv]*/, true);
IPS_SetScriptTimer($IPS_SELF, 0);
}
else {
IPS_SetScriptTimer($IPS_SELF, 0);
}
$waschmaschineverbrauch = GetValue(16347 /*[SKRIPTE\HomeMatic\Zwischenstecker mit Leistungsmessung\L01 (Waschmaschine)\Messwerte\ENERGY_COUNTER]*/);
$waschmaschineverbrauch = $waschmaschineverbrauch * 0.001;
SetValue(34969 /*[SKRIPTE\HomeMatic\Zwischenstecker mit Leistungsmessung\L01 (Waschmaschine)\Messwerte\Gesamtverbrauch kWh]*/, $waschmaschineverbrauch);
$L01kosten = GetValue(34969 /*[SKRIPTE\HomeMatic\Zwischenstecker mit Leistungsmessung\L01 (Waschmaschine)\Messwerte\Gesamtverbrauch kWh]*/) * 0.29;
SetValue(46185 /*[SKRIPTE\HomeMatic\Zwischenstecker mit Leistungsmessung\L01 (Waschmaschine)\Messwerte\Stromkosten]*/, $L01kosten);
if($IPS_SENDER == "TimerEvent") {
if ($waschmaschinepower < 3) {
if (GetValue(50393 /*[SKRIPTE\HomeMatic\Zwischenstecker mit Leistungsmessung\L01 (Waschmaschine)\Messwerte\Push-Nachricht gesperrt]*/) == false) {
WFC_PushNotification(13103 /*[HEAVEN]*/, "WASCHMASCHINE", "ist FERTIG!", "", 0);
HM_WriteValueString(10392 /*[SKRIPTE\HomeMatic\Funk-Gong\GONG01\Sound]*/ ,"SUBMIT","1,1,3,0");
IPS_Sleep (3000);
HM_WriteValueString(10392 /*[SKRIPTE\HomeMatic\Funk-Gong\GONG01\Sound]*/ ,"SUBMIT","1,1,3,1");
SetValue(50393 /*[SKRIPTE\HomeMatic\Zwischenstecker mit Leistungsmessung\L01 (Waschmaschine)\Messwerte\Push-Nachricht gesperrt]*/, true);
$counter = GetValue(53446 /*[SKRIPTE\HomeMatic\Zwischenstecker mit Leistungsmessung\L01 (Waschmaschine)\Messwerte\Counter]*/);
$counter = $counter + 1;
SetValueInteger(53446 /*[SKRIPTE\HomeMatic\Zwischenstecker mit Leistungsmessung\L01 (Waschmaschine)\Messwerte\Counter]*/, $counter);
IPS_SetScriptTimer($IPS_SELF, 0);
}
else {
SetValue(32439 /*[SKRIPTE\HomeMatic\Zwischenstecker mit Leistungsmessung\L01 (Waschmaschine)\Messwerte\Aktiv_Inaktiv]*/, false);
IPS_SetScriptTimer($IPS_SELF, 0);
}
}
}
?>
Sollte noch etwas unklar sein, einfach nachfragen
Grüße von einem neuen IPS Verrückten ,
Chris