Hallo zusammen,
für die es interessiert hier meine Lösung für mein angeregtes Problem mit dem Temperaturgetriggerten Mailversand.
Könnte man zwar besser machen aber der Server läuft seit gut 1,5Tagen stabil und alles ist im grünen Bereich.
Was noch zutun wäre wo ich schon verzweifelt bin ist:
Eine Variable für die Maximale Temperatur einbauen die via SD geändert werden kann.
Zwei weitere Variablen für die Delayzeit die ebenfalls via SD konfiguriert werden.
Habe ich das Problem das beim einscchalten des Server die ganze Mailroutine einmal durchlaufen wird und eine Mail sendet. Kann man das ihrendwie abstellen?
Code: Alles auswählen
if (CheckDelay_sec(MAIL_Timer2))
{
struct time current_time;
gettime(ActualTime, ¤t_time);
printf("Serverzeit: %d:%d:%d Klima(KTY1):%.2d GradCelsius -- Raum(KTY2):%.2d GradCelsius\n\r", current_time.hour, current_time.minute, current_time.second, KTY1, KTY2);
MAIL_Timer2 = SetDelay_sec(60); // Delayzeit für Temp. Ausgabe und Überprüfung
if ((CheckDelay_min2(MAIL_Timer)) && (Mail_Trigger_Enable) && ((KTY1 >= 25) || (KTY2 >= 25))) //25 ist die Maximale Raumtemperatur
{
printf("---BIN HIER #1---\n\r");
mail_state = 0;
}
if (mail_state == 0) // versand wird mit 0 getriggert
{ printf("----BIN HIER #2----\n\r");
if (vars.type_int[MAILFLAGS_ADDR] != 1)
{
printf("MailTrigger ---AKTIV---\n\r");
MAIL_Timer = SetDelay_min2(60); // Mailintervall (häufigkeit der Mails bei erreichen der MAX Temperatur
cli();
sendmail(packet, 0);
sei();
mail_state = 1;
}
}
}
Mfg Mirko
Wenn ihr mehr Wissen wollt sag es mir, ich werde dann einen richtig ausfühlichen Post erstellen
[/code]