das Neuaufsetzen meiner Homatic nutze ich für die Optimierung des ganzen Systems. So steige ich beim E-Mail-Versand auf den CUxD um. Anstelle von
Code: Alles auswählen
string stdout;
string stderr;
system.Exec("/etc/config/addons/email/email 02", &stdout, &stderr);
Code: Alles auswählen
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 02");
Ist der Alarmstatus scharf und wird eine Bewegung registriert, so wird für jeden Bewgungsmelder das folgende Skript aufgerufen:
Code: Alles auswählen
! Alarm-Weitergabe Variable für den Flur setzen
dom.GetObject("Bewegungsmelder_Flur").State("true");
! Text der Status-E-Mail
dom.GetObject("EMail_Betreff").State("Im Flur hat der Bewegungsmelder eine Bewegung registriert [AAAAAAAA]");
string vText =
"Im Flur hat der Bewegungsmelder eine Bewegung registriert. [BBBBBBBB]";
dom.GetObject("EMail_Text").State(vText);
! Status-E-Mail versenden
string stdout;
string stderr;
system.Exec("/etc/config/addons/email/email 02", &stdout, &stderr);
Code: Alles auswählen
! Alarm-Weitergabe Variablen zurück setzen
dom.GetObject("Bewegungsmelder_Flur").State("false");
! Text der Status-E-Mail
dom.GetObject("EMail_Betreff").State("Alarm Stufe 3 ausgelöst [CCCCCCCC]");
string vText =
"Alarm Stufe 3 ausgelöst. [DDDDDDDD]";
dom.GetObject("EMail_Text").State(vText);
! Status-E-Mail versenden
string stdout;
string stderr;
system.Exec("/etc/config/addons/email/email 02", &stdout, &stderr);
Soweit hat bisher alles bestens funktioniert. Ich bekomme eine Meldung wer auslöst
Code: Alles auswählen
Betreff: [SmartHome] Im Flur hat der Bewegungsmelder eine Bewegung registriert [AAAAAAAA]
Im Flur hat der Bewegungsmelder eine Bewegung registriert. [BBBBBBBB]
Code: Alles auswählen
Betreff: [SmartHome] Alarm Stufe 3 ausgelöst [CCCCCCCC]
Alarm Stufe 3 ausgelöst. [DDDDDDDD]
Code: Alles auswählen
! Text der Status-E-Mail
dom.GetObject("EMail_Betreff").State("Im Flur hat der Bewegungsmelder eine Bewegung registriert [AAAAAAAA]");
string vText =
"Im Flur hat der Bewegungsmelder eine Bewegung registriert. [BBBBBBBB]";
dom.GetObject("EMail_Text").State(vText);
! Status-E-Mail versenden
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 02");
! Alarm-Weitergabe Variable für den Flur setzen
dom.GetObject("Bewegungsmelder_Flur").State("true");
Code: Alles auswählen
! Alarm-Weitergabe Variablen zurück setzen
dom.GetObject("Bewegungsmelder_Flur").State("false");
! Text der Status-E-Mail
dom.GetObject("EMail_Betreff").State("Alarm Stufe 3 ausgelöst [CCCCCCCC]");
string vText =
"Alarm Stufe 3 ausgelöst. [DDDDDDDD]";
dom.GetObject("EMail_Text").State(vText);
! Status-E-Mail versenden
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 02");
Jetzt bekomme ich aber nur noch eine E-Mail mit folgendem Inhalt:
Code: Alles auswählen
Betreff: [SmartHome] Alarm Stufe 3 ausgelöst [CCCCCCCC]
Alarm Stufe 3 ausgelöst. [DDDDDDDD]
Code: Alles auswählen
Betreff: [SmartHome] Alarm Stufe 3 ausgelöst [CCCCCCCC]
Im Flur hat der Bewegungsmelder eine Bewegung registriert. [BBBBBBBB]
Auf alle Fälle: Nach dem Umstieg auf den E-Mail-Versand mit CUxD klappen beide E-Mails hintereinander nicht mehr richtig. Hat vielleicht jemand von Euch eine Ahnung was ich falsch mache bzw. besser machen könnte? (Ich muss an verschiedenen Stellen direkt nacheinander mehrere E-Mails verschicken, d.h. bessere Vorschläge der Alarmbehandlung helfen mir hier auch nur bedingt weiter.)
LG Hawkeye
P.S.: Ich würde es gerne bei den zwei Meldungen belassen. Das erste Skript behandelt individuell den jeweiligen Sensor und ich weiß wo etwas los ist. Das zweite Skript behandelt für alle Sensoren die Reaktion und ich weiß, dass auch die geklappt hat. Inzwischen hab ich mich an das zweistufige außerdem gewöhnt ...