Ich wollte euch hier mal meinen Skript zeigen mit dem ich eine Benachrichtigung bekomme wenn die Waschmaschine fertig ist und ich die Wäsche raus nehmen kann.
Und nebenbei habe ich noch eine Variabel die mir anzeigt wie viel Energie mich der Waschgang gekostet hat.
<?
/* Verbrauch und Benachrichtigung Script für Waschmaschinen
erstellt von Patrick Ramm
Nur für den privaten Gebrauch */
$gesamtNR = 29648 ; //ID vom Objekt ENERGY_COUNTER hier eingeben
$momentanNR = 52459 ; //ID vom Objekt POWER hier eingeben
$webfrontNR = 55179 ; //ID vom Webfront mit der PushNotification hier eingeben
$betrieb = 1; //Schwelle ab wann Maschine an ist in Watt
$standby = 4; //Schwelle wo Maschine im Leerlauf ist in Watt
/* Ab hier nichts mehr verändern */
$kategorie=IPS_GetParent($_IPS['SELF']);
$ObjektID = @IPS_GetObjectIDByName("Status", $kategorie);
if ($ObjektID === false)
{
IPS_CreateVariableProfile("Waschmaschine", 1); //Profil erstellen für Status der Waschmaschine
IPS_SetVariableProfileValues("Waschmaschine", 0, 2, 1);
IPS_SetVariableProfileAssociation("Waschmaschine", 0, "Aus", "", 0xFF0000);
IPS_SetVariableProfileAssociation("Waschmaschine", 1, "läuft", "", 0x00FF00);
IPS_SetVariableProfileAssociation("Waschmaschine", 2, "Bitte Wäsche entnehmen","" , 0xFFFF00);
$eid = IPS_CreateEvent(1); //Wenn Variabeln noch nicht erstellt wurden
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, 0 /* Keine Datumsüberprüfung */, 0, 0, 2, 2 /* Minütlich */ , 1 /* Alle 1 Minuten */);
IPS_SetEventActive($eid, true);
$Variabel = array(); //Variabeln erstellen
$Variabel[] = array("Typ" => 1,
"Name"=>"Status",
"Info"=>"Statusanzeige",
"Profil"=>"Waschmaschine");
$Variabel[] = array("Typ"=>2,
"Name"=>"Verbrauch Waschgang",
"Info"=>"",
"Profil"=>"");
$Variabel[] = array("Typ"=>2,
"Name"=>"Vor Waschen",
"Info"=>"",
"Profil"=>"");
for($i=0; $i < count($Variabel); $i++)
{
/* echo $Variabel[$i]["Typ"];
echo $Variabel[$i]["Name"];
echo $Variabel[$i]["Info"];
echo $Variabel[$i]["Profil"]; */
$kategorie=IPS_GetParent($_IPS['SELF']);
echo $Variabel[$i]["Typ"];
$vid = IPS_CreateVariable($Variabel[$i]["Typ"]);
IPS_SetParent($vid, $kategorie);
IPS_SetName($vid, $Variabel[$i]["Name"]);
IPS_SetInfo($vid, $Variabel[$i]["Info"]);
IPS_SetVariableCustomProfile($vid, $Variabel[$i]["Profil"]);
}}
$vorherNR = @IPS_GetObjectIDByName("Vor Waschen", $kategorie);
$waschgangNR = @IPS_GetObjectIDByName("Verbrauch Waschgang", $kategorie);
$statusNR = @IPS_GetObjectIDByName("Status", $kategorie);
$status = GetValue($statusNR);
$gesamt = GetValue($gesamtNR);
$vorher = GetValue($vorherNR);
$momentan = GetValue($momentanNR);
If ($status == 0 && $momentan > $betrieb) //Wenn Waschmaschine gestartet wird
{SetValue($statusNR, 1 );
SetValue($vorherNR, $gesamt ); //Zählerstand merken
//WFC_PushNotification($webfrontNR, 'WM', 'Waschmaschine geht an', '', 0); //Nachricht das Maschine angeschaltet wurde
}
If ($status == 1 && $momentan < $standby)
{SetValue($statusNR, 2 );
WFC_PushNotification($webfrontNR, 'WM', 'Wäsche bitte entnehmen', '', 0); //Waschmaschine ist fertige, Wäsche kann entnommen werden
}
If ($status == 2 && $momentan < $betrieb)
{
SetValue($statusNR, 0 );
$ende = $gesamt - $vorher;
SetValue($waschgangNR, $ende ); //Energieverbrauch in Variabel schreiben
//WFC_PushNotification($webfrontNR, 'WM', 'Wäsche entnommen', '', 0); //Nachricht das Wäsche entnommen wurde
}
?>
Um den Skript verwenden zu können muss er in den Ordner POWERMETER von der Steckdose
desweiteren müssen oben die 3 Id´s eingeben werden,
einmal die Schwelle ab wann die Waschmaschine im Betrieb ist.
(Bei mir hat sich 1 Watt bewert, wenn die Waschmaschine ganz aus ist zieht sie noch 0,1 Watt und sobald ich die Drehscheibe drehe ist sie bei 2-3 Watt)
und die Schwelle wenn die Waschmaschine fertig ist.
(Bei mir hatte die Waschmaschine ca 2-3 Watt also habe ich 4 Watt eingestellt.)
Ich hoffe ihr könnt was mit dem Skript anfangen
Gruß Patrick