Ereignis eMail

Moin moin,

ändere bitte mal die Variable $mailContext in $mailContent so
wird $mailContent immer um den String in nach der erfüllten IF Abfrage erweitert.

Hallo,

jep das war es! Danke funzt prima!

Gruesse

Daniel

siehste, wird doch;)

und dann würde ich das hier nochmal überprüfen:


if ($tempGew == 20) 
{ 
   $mailContent = $mailContext . "Achtung es ist über 20 Grad im Gewächshaus"; 
}

und ggf. ändern in


if ($tempGew > 20.0) 
{ 
   $mailContent = $mailContext . "Achtung es ist über 20 Grad im Gewächshaus"; 
}

weil sonst bekommst Du eine Mailwarnung (das es im Gewächshaus mehr als 20°C sind) nur dann wenn die Temperatur exakt 20,0°C beträgt. Würde ich als Paradoxon einordnen:D

manno, einmal kurz nicht da, und schon sind alle Antworten wieder vergeben :wink:

Tja, wer zu spät kommt, den bestraft das Leben. :smiley:

Warum paradox?
Ist doch eine mathematische Gleichung und Gesetzmäßigkeit.

Könnte man auch durch „>=“ ersetzen, dann wird ab genau 20°C eine Mail verschickt.
Allerdings bei jedem Trigger, welcher das Script startet, solang die Temperatur 20°C oder mehr beträgt.
@dboom
Ist das gewünscht?

bitte nicht aus dem Kontext reißen, bezieht sich darauf:

…eine Mailwarnung (das es im Gewächshaus mehr als 20°C sind) nur dann wenn die Temperatur exakt 20,0°C beträgt…

:wink:

Sry… so genau hatte hatte ich den thread nicht zurück gelesen…

Ich kann den passus nicht finden:confused:
Bin den thread nochmals durchgegangen und Kontextriss zu meiner Antwort ist mir nicht aufgefallen.
Entweder geht mehr, weniger, gleich, gleichmehr, gleichweniger;)
Aber egal… das war ja nicht die Ursprungsfrage…

nu iss gut :slight_smile: In Post #28 warste schon richtig unterwegs;)

@raketenschnecke, ja Du hast recht es soll ein Text angefügt werden wenn eine bestimmte Temperatur überschritten wird also ist das mit >20 schon richtig
Ich war hier schon auf Fehlersuche gegangen, wollte aber nicht ohne es zu probieren schon eine Frage dazu einstellen.

Also auch hier mal wieder DANKE @all

Hallo, möchte mich hier mal mit ähnlichem Thema anhängen.

Ich lass mir bei Unterschreitung einer Temperatur eine Email schicken.
Dh. nicht eine, sondern am Wochenende waren es 500 Mail’s.

Ausgelöst wird das Script mit Grenzwertunterschreitung und den Haken bei „nachfolgende Ereignisse ausführen“ hab ich rausgenommen.

Kann mir einer sagen, wie ich das Problem lösen kann?

<?
$temperatur_EG_HK1 = getValue(33402 /*[ Versorgungsraum  EG\Vorlauftemperaturen\HK1 Vorlauf Ost]*/ );
$temperatur_OG2 = getValue(37763 /*[Temperaturen 2.OG\Raumtemperatur]*/ );
$z_heizung = GetValueBoolean (21778 /*[Logo Büro\Logo Merker\M2]*/);

// ++++++++++++++++ Konfig ++++++++++++++++++++++++++++++++
$uhrzeit = date("H:i.s");
$sendmail = 38522 /*[Alarm-Meldungen\Server-Gebäudetechnik]*/;
$mailsubject = "HEIZUNGS-ALARM";
$mailcontend = "Die Büro-Heizung ist um $uhrzeit Uhr ausgefallen und die Vorlauf-Temperatur von HK1 war um diese Uhrzeit $temperatur_EG_HK1 °C.
Die Raumtemperatur im 2.OG beträgt $temperatur_OG2 °C.";
// +++++++++++++++++Konfig Ende ++++++++++++++

if (($z_heizung == True) && ($temperatur_EG_HK1 < 26))
IPS_Sleep(500);
SMTP_SendMail($sendmail, $mailsubject, $mailcontend);
?>

was war denn die Ursache für die 500 Mails? Schwankt die Temperatur so heftig?
wenn ja: dann würde ich vielleicht einen Timer setzen, nach dem Motto: in 10 Minuten max. 1 Mail

Die Schwankung kann es eigentlich nicht sein:
Hier ein Auszug aus den Mail’s:(siehe Uhrzeitstempel)

Die Büro-Heizung ist um 16:14.42 Uhr ausgefallen und die Vorlauf-Temperatur von HK2 war um diese Uhrzeit 25.5 °C.
Die Raumtemperatur im 2.OG beträgt 28.120000839233 °C.

Die Büro-Heizung ist um 16:14.42 Uhr ausgefallen und die Vorlauf-Temperatur von HK1 war um diese Uhrzeit 25.5 °C.
Die Raumtemperatur im 2.OG beträgt 27.870000839233 °C.

Die Büro-Heizung ist um 16:14.30 Uhr ausgefallen und die Vorlauf-Temperatur von HK1 war um diese Uhrzeit 25.370000839233 °C.
Die Raumtemperatur im 2.OG beträgt 27.809999465942 °C.

Der Grenzwert soll <26°C sein. Erst bei Überschreitung und dann wieder Unterschreitung soll ja normalerweise das nächste Mail verschickt werden,
es sei denn, ich hab das mit dem Häkchen setzen bei „nachfolgende Ereignisse ausführen“ falsch verstanden.

mfg

sehe ich jetzt erst, wattn dat:


if (($z_heizung == True) && ($temperatur_EG_HK1 < 26)) 
IPS_Sleep(500); 
SMTP_SendMail($sendmail, $mailsubject, $mailcontend);

so ist das besser, bringt weniger Mails


if (($z_heizung == True) && ($temperatur_EG_HK1 < 26)) 
{
   IPS_Sleep(500); 
   SMTP_SendMail($sendmail, $mailsubject, $mailcontend);
}

:wink:

nichts desto trotz stellt sich die Frage, warum Dein Script so oft getriggert wird. Hast Du mal die Temperatur geloggt und geschaut ob da evtl. Peaks drin sind (die für das Auslösen des Scripts verantwortlich sind)? stell doch mal ein Bild des betreffenden Objektbaumes und der Einstellungen des Script-Triggers ein

Ja ja, ich und php, zwei Welten treffen aufeinander.
Trotzdem danke, nun funktioniert’s auch so, wie es sein soll.

mfg

aber trotzdem stimmt da was nicht: wenn du den Eventtrigger ebenfalls auf Unterschreitung von 26°C eingestellt hast (hast Du?) dann dürfte das Script gar nicht erst ausgelöst werden (sondern nur beim ersten Unterschreiten des Grenzwertes, so wie du geschrieben hast). Das Script ist aber scheinbar immer wieder getriggert worden…egal, wenn noch was nicht stimmt, meldest Du Dich bestimmt :wink:

Ja, aber das lag wohl an der „falschen“ Klammersetzung.
Mal sehen, wieviele Mail’s morgen vorhanden sind.

mfg

genauso dachte ich das auch, daher habe ich einfach bei einem Wert von z.B. 40Grad den Emailversand aktiviert mit einem einfachen

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

leider erhalte ich diese Email dann auch jede Minute, solange wie die Temperatur unter dem Grenzwert liegt. Ich dachte, die Mail wird nur beim erstmaligen unterschreiten geschickt und mann muss auch nicht noch mal die Temperatur mit if… abfragen :confused: