Habe hier noch mal ein kleinen Skript
Dieser kann in eine beliebige Kategorie gepackt werden
es muss nur die ID vom HM Temperaturfühler eingegeben werden und der zweite Skript weiter unten muss mit dem Namen Reset in der selben Kategorie platziert werden
<?
/* Min Max Temperatur Werte mit Zeitangabe
erstellt von Patrick Ramm
Nur für den privaten Gebrauch */
$AktuellNR = 51908 /*[Terrasse\Außenfühler\Temperatur Außen]*/; //ID vom Temperaturfühler
/* Ab hier nichts mehr verändern */
$kategorie=IPS_GetParent($_IPS['SELF']);
$ObjektID = @IPS_GetObjectIDByName("Max Temp", $kategorie);
if ($ObjektID === false)
{
$eid = IPS_CreateEvent(1); //Timer erstellen
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();
$Variabel[] = array("Typ" => 2,
"Name"=>"Max Temp",
"Info"=>"",
"Profil"=>"~Temperature");
$Variabel[] = array("Typ"=>3,
"Name"=>"Max Time",
"Info"=>"",
"Profil"=>"~String");
$Variabel[] = array("Typ"=>2,
"Name"=>"Min Temp",
"Info"=>"",
"Profil"=>"~Temperature");
$Variabel[] = array("Typ"=>3,
"Name"=>"Min Time",
"Info"=>"",
"Profil"=>"~String");
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"]);
$Reset = @IPS_GetObjectIDByName("Reset", $kategorie);
IPS_RunScript($Reset);
}}
Else
{
$Aktuell = GetValue($AktuellNR);
$MaxNR = @IPS_GetObjectIDByName("Max Temp", $kategorie);
$MinNR = @IPS_GetObjectIDByName("Min Temp", $kategorie);
$MaxTimeNR = @IPS_GetObjectIDByName("Max Time", $kategorie);
$MinTimeNR = @IPS_GetObjectIDByName("Min Time", $kategorie);
$Max = GetValue($MaxNR);
$Min = GetValue($MinNR);
//Zeit für min und max Werte
$TimerWertMax = IPS_GetVariable($MaxNR);
$tempMax = $TimerWertMax["VariableChanged"];
$timeMax = date("d.m.Y H:i", $tempMax);
SetValueString($MaxTimeNR,$timeMax);
$TimerWertMin = IPS_GetVariable($MinNR);
$tempMin = $TimerWertMin["VariableChanged"];
$timeMin = date("d.m.Y H:i", $tempMin);
SetValueString($MinTimeNR,$timeMin);
//Ende Zeit
If ($Aktuell > $Max)
{
SetValue($MaxNR,$Aktuell);
}
Else if ($Aktuell < $Min)
{SetValue($MinNR,$Aktuell);
}}
?>
In der selben Kategorie kommt der Reset Skript (unbedingt Reset nenen)
Wenn man diesen Skript ausführt werden die Min und Max Werte auf die jetzige Temperatur gesetzt.
Auch hier muss einmal die Id vom Temperaturfühler eingeben werden
<?
/* Min Max Temperatur Werte mit Zeitangabe
erstellt von Patrick Ramm
Nur für den privaten Gebrauch */
$AktuellNR = 51908 /*[Terrasse\Außenfühler\Temperatur Außen]*/; //ID vom Temperaturfühler
/* Ab hier nichts mehr verändern */
$kategorie=IPS_GetParent($_IPS['SELF']);
$Aktuell = GetValue($AktuellNR);
$MaxNR = @IPS_GetObjectIDByName("Max Temp", $kategorie);
$MinNR = @IPS_GetObjectIDByName("Min Temp", $kategorie);
$MaxTimeNR = @IPS_GetObjectIDByName("Max Time", $kategorie);
$MinTimeNR = @IPS_GetObjectIDByName("Min Time", $kategorie);
$Max = GetValue($MaxNR);
$Min = GetValue($MinNR);
SetValue($MaxNR,$Aktuell);
SetValue($MinNR,$Aktuell);
$TimerWertMax = IPS_GetVariable($MaxNR);
$tempMax = $TimerWertMax["VariableChanged"];
$timeMax = date("d.m.Y H:i", $tempMax);
$TimerWertMin = IPS_GetVariable($MinNR);
$tempMin = $TimerWertMin["VariableChanged"];
$timeMin = date("d.m.Y H:i", $tempMin);
SetValueString($MaxTimeNR,$timeMax);
SetValueString($MinTimeNR,$timeMin);
?>
Viel Spaß damit