Ich muss euch schon wieder belästigen, aber ich komme hier nicht weiter.
In HomeputerCL bin ich ja relativ fit aber bei IP-Symcon hab ich noch keinen Durchblick.
Ich hab mein EM1010PC bereits integriert und erhalte Daten (dank des Beitrags von Tommi)
ich möchte jetzt wenn ein gewisser Schwellwert unterschritten wird EIN Mail senden.
Ein Mail senden kann hab ich schon hinbekommen.
Das Problem ist leider, ich bekomme alle 5 Minuten ein Mail gesendet, wie kann ich das machen das nur ein Mail gesendet wird.
und ein Ereignis wo als Variable der Energiesensor eingetragen ist undi „Grenzunterschreitung“ Wert ist 0,01 das Script „sende_mail“
aufruft.
das war es dann auch schon.
Oder der Grenzwert ist zu knapp gewählt. Meine WaMa zieht 1-2 Watt im „Ruhemodus“ - der leider auch während eine Wollwaschgangs (Stichwort: ziehen lassen) erreicht wird. Habe daher noch einen Zeitfaktor einbauen müssen.
Das mit dem Zeitfaktor hört sich gut an.
Wenn es nicht zu viel verlangt ist, könntest du mir sagen (eventuell beschreiben) wie du dein WAMA Projekt aufgebaut hast?
Ich muss mich in die Thematik erst einarbeiten.
Mich macht das fertig wenn ich hinten und vorne keine Ahnung hab.
<?php
//Definitionen
//Letzter Last-Wert Geschirrspüler
$Last = getvalue(56924 /*[Haustechnik\Plugwise\Geschirrspüler]*/);
//Terminal EG Online für Sprachausgabe?
$Terminal = GetValue(40754 /*[Haustechnik\Status\TouchTerminal Wohnzimmer]*/);
$TerminalURL = "http://192.168.22.120:3773/wsdl/IIPSVariableManager";
//Meldungstext Betreff
$meldung = "";
//Schaltschwelle
$Schaltschwelle = 17; // Watt
$meldung = "";
//Hinweistext für Spülvorgang ENDE definieren
$Ausgabeziel = 18837; //Remote-Variable für Sprachausgabe
$Hinweistexte = array( "Hinweis! Der Spuelvorgang ist beendet.",
"Der Geschirrspueler ist fertig.",
"Bitte das saubere Geschirr aus der Maschine nehmen.",
"Das Geschirr ist sauber und kann aufgeraumt werden.",
"Bitte sauberes Geschirr aus dem Spueler nehmen.",
"Das Geschirr ist fertig gespuelt. Bitte einraeumen.",
"Der Geschirrspueler hat seine Arbeit beendet.",
);
$Zufall = mt_rand(0,count($Hinweistexte)-1);
$Ausgabe = $Hinweistexte[$Zufall];
//Auswertung
switch ($_IPS['SENDER'])
{
case "Variable";
if ($Last >= $Schaltschwelle)
{
$meldung = "- Geschirrspüler -
Spülvorgang hat begonnen. (".$Last.")
";
Versenden($meldung);
SetValue(42049 /*[Skripte allgemein\Alarmscripts\Geschirrspüler Status\Spülvorgang]*/, true);
}
else
{
IPS_SetScriptTimer($IPS_SELF, 1500); //Wartezeit bis Ende-Meldung
}
break;
case "TimerEvent";
$meldung = "- Geschirrspüler -\Spülvorgang ist beendet. (".$Last.")
";
Versenden($meldung);
SetValue(42049 /*[Skripte allgemein\Alarmscripts\Geschirrspüler Status\Spülvorgang]*/, false);
IPS_SetScriptTimer($IPS_SELF, 0);
if ($Terminal == 0) //Terminal EG für SPrachausgabe Online?
{
@$soap = new SoapClient($TerminalURL);
@$result = $soap->WriteVariableString($Ausgabeziel, $Ausgabe);
}
break;
}
function Versenden($meldung)
{
$array = array(
"Betreff" => "- Geschirrspüler -",
"Nachrichtentext" => $meldung.date("d.m.Y",time())." / ".date("H:i",time())." Uhr.",
"NachrichtentextUTF8" => utf8_encode($meldung.date("d.m.Y",time())." / ".date("H:i",time())." Uhr."),
"application" => "IP-Symcon",
"priority" => 1,
);
IPS_RunScriptEx(18090 /*[Email und Termine\Email Versand IP-Symcon]*/, $array); // Email versenden
IPS_RunScriptEx(56778 /*[Skripte allgemein\Prowl Pushdienst\Prowl Ausgangsmodul]*/, $array); // Prowl versenden
}
?>
Sollte einigermaßen selbsterklärend sein. Das Skript wird zum einen über eine Grenzwertunter-, zum andern über eine Grenzwertüberschreitung und durch einen Verzögerungstimer getriggert.
Das Häkchen bewirkt, das es nur bei der ersten Überschreitung des Grenzwertes eine Aktion ausgelöst wird. Egal, wie oft der Grenzwert anschliessend noch überschritten wird, es wird nichts mehr ausgelöst.
Erst wenn du wieder einmal zurück über den eingestellt Grenzwert bist, wird bei erneuter Überschreitung wieder ein Event ausgelöst.