Temperatur halten

Guten Morgen Leute,

ich weiß es ist sicherlich was ganz Profanes aber habt Nachsicht ich bin neuling und unerfahren, aber die IPS - Sucht breitet sich langsam bei mir aus :slight_smile: … ich habe mit Hilfe des Forums und der Dokumentation eine SNMP Abfrage auf Temparatursensoren von WUT erstellt. Die Abfrage wird alle 5 Minuten durchgeführt und der Wert wird auch Brav in der Variable geändert. Zudem sende ich per SMTP Modul eine Email bei einer Sollwertunter bzw. Überschreitung.

SNMP Abfrage :

<?

$host = "212.18.1.163";
$community = "public";
$data = snmpget("$host","$community","1.3.6.1.4.1.5040.1.2.6.1.4.1.1.1");
$data = intval(str_replace("INTEGER: ", "", $data));
SetValueInteger(17453 /*[Temperatur AC IN\Temperatur AC IN ( Normbereich 15 °C - 28 °C )]*/    ,$data/10);

?>

Email senden mit Ereignis :

<?
$uhrzeit = date("H:i.s");
$sendmail = 35323;
$temperatur = getValue (17453);
$mailsubject = "Temperatur AC IN zu Hoch !";
$mailcontend = "Achtung ! Der Sollwert des Sensors AC IN wurde um $uhrzeit Uhr ÜBERSCHRITTEN. Die Temperatur beträgt jetzt $temperatur °C";

SMTP_SendMail($sendmail, $mailsubject, $mailcontend);
?>

Nun die Frage :

Ist es möglich die Email erst zu senden wenn der Sollwert 10 Minuten überschritten wurde ?
Ich hab im Forum gesucht, leider komm ich auf kein Ergebnis, durch IPS_Sleep etc. komm ich nicht drauf.
Ich möchte zudem die Emails nur von 8:00 Uhr bis 22:00 Uhr senden. Von 22:00 bis 8:00 sollen keine Mails versendet werden.

Ich geb demjenigen ne Kiste Bier aus der mir bei meiner Misere hilft :slight_smile: … ( Selbstabholung vorausgesetzt xD )

Grüße
Flobo

Leg dir einen Timer an der nach 10min die Tempvariable abfragt.

Ich möchte zudem die Emails nur von 8:00 Uhr bis 22:00 Uhr senden. Von 22:00 bis 8:00 sollen keine Mails versendet werden.

$time = date("H:i");
if(($time >= "08:00") and ($time <= "22:00")) // bei Bedarf anpassen
{
    // Mails senden
}

Cool Danke dir, funktioniert wunderbar :slight_smile:

Zusammengesetzt für die Nachwelt sieht das dann so aus :

<?
$uhrzeit = date("H:i.s");
$time = date("H:i");
$sendmail = 35323;
$temperatur = getValue (17453);
$mailsubject = "Temperatur AC IN zu Hoch !";
$mailcontend = "Achtung ! Der Sollwert des Sensors AC IN wurde um $uhrzeit Uhr ÜBERSCHRITTEN. Die Temperatur beträgt jetzt $temperatur °C";

if(($time >= "08:00") and ($time <= "13:00")) // bei Bedarf anpassen
{
SMTP_SendMail($sendmail, $mailsubject, $mailcontend);
}
?>

Und das $uhrzeit schreibt nur in die Email die Sekunden noch mit dazu :slight_smile: Das mit dem Timer hab ich noch nicht so ganz gerafft, aber mal sehen was ich da machen kann.

Möglichkeiten gibt es da viele.

Hier mal eine als Beispiel.

Noch ein 2tes Ereignis anlegen mit 10-15min und die ID im Script eintragen.

Das ganze ist ein Script. Viel Spass beim basteln. :wink:

<?
$uhrzeit = date("H:i.s");
$sendmail = 35323;
$tempMin = 15; // Unterschreitung
$tempMax = 28; // Überschreitung

switch($_IPS['SENDER'])
{
   case "TimerEvent":
   
       if($_IPS['EVENT'] == 44905) // ID Ereignis alle 5 min
       {
          $host = "212.18.1.163";
            $community = "public";
            $data = snmpget("$host","$community","1.3.6.1.4.1.5040.1.2.6.1.4.1.1.1");
            $data = intval(str_replace("INTEGER: ", "", $data));
            SetValueInteger(17453 /*[Temperatur AC IN\Temperatur AC IN ( Normbereich 15 °C - 28 °C )]*/    ,$data/10);
        }
        if($_IPS['EVENT'] == 12345) // ID Ereignis alle 15 min
        {
           $temperatur = getValue (17453);
           $mailsubject = "Temperatur AC IN zu Hoch !";
            $mailcontend = "Achtung ! Der Sollwert des Sensors AC IN wurde um". $uhrzeit ."Uhr ÜBERSCHRITTEN. Die Temperatur beträgt jetzt". $temperatur ."°C";

            if(($uhrzeit >= "08:00.00") && ($uhrzeit <= "22:00.00") && ($temperatur > $tempmax) || ($temperatur < $tempmin)) // bei Bedarf anpassen
            {
                SMTP_SendMail($sendmail, $mailsubject, $mailcontend);
            }
        }

   break;
}

?>

Cool Danke dir vielmals :slight_smile: der Kasten möge dein sein xD
Ich habs ausprobiert 2 Timer angelegt je mit 5 Min und 15 Min Laufzeit.

Leider bekomme ich nur die Meldung :frowning: so wie ich das Interpretieren kann kommt er mit einer
Spitzklammer nicht klar :frowning:

EDIT : … okay ich Idiot :slight_smile: alles in Ordnung ^^ hab ausversehen eine Klammer gelöscht :frowning: .