Hallo !
jetzt habe ich auch mal CuxD installiert und moechte meine Emails jetzt durch CuxD versenden, nicht mehr ueber system.exec. Es kommt eine Email zwar an und zwar so:
Betreff ist ok, in der Msg nur: Prüfung des Ladezustandes der Batterien vom 18.2.2013, der Rest fehlt leider....Habt Ihr eine Idee? Danke!
Hier das Script, welches ich verwende:
----------------------------------------------------
!
www.meine-homematic.de Beispiel Skript
! Warnung über niedrigen Batterie - Ladestand
! Anleitung
! 1. Ein Gewerk "Batterie betrieben" anlegen
! 2. Alle zu überwachenden Objekte dem Gewerk zuordnen
! 3. Folgendes Skript per Zeitmpodul 1x täglich ausführen
! Lösung basierend auf einem Skript von "saschahb"
!
http://www.homematic-inside.de/tecbase. ... tem_id=138
var myAssembly = dom.GetObject("Batterie betrieben");
string itemID;
string text = "";
integer counter = 0;
foreach(itemID, myAssembly.EnumUsedIDs())
{
var item = dom.GetObject(itemID);
var device = dom.GetObject(item.Device());
var interface = dom.GetObject(item.Interface());
string interface_name = interface.Name();
string device_address = device.Address();
device_address = device_address.StrValueByIndex(":", 0);
string channel_name = interface_name # "." # device_address # ":0.LOWBAT";
var channel = dom.GetObject(channel_name);
if ( (channel.State() == true) && (channel.Value() == true) )
{
text = text # "- " # item.Name() # "\r\n";
counter = counter + 1;
}
}
if ( counter > 0 )
{
string MailEmpfaenger = "
XXXXXXX@gmx.de";
string MailBetreff = "Homematicsystem: Batterie - Warnung";
string MailText;
string sDate = system.Date("%d.%m.%Y");
MailText = "Prüfung des Ladestandes der Batterien vom " # sDate # ".\r\n";
MailText = MailText # "Der Ladezustand folgender Batterien ist niedrig: \r\n\r\n" # text;
MailText = MailText # "\r\nBitte tauschen Sie die Batterien zeitnah aus.";
string stdout;
string stderr;
string teilstr;
string sendmail = "";
string sendbetreff = "";
string mailto = "";
foreach(teilstr, MailBetreff.Split(" "))
{
sendbetreff = sendbetreff # "+" # teilstr;
}
foreach(teilstr, MailText.Split(" "))
{
sendmail = sendmail # "+" # teilstr;
}
foreach(teilstr, MailEmpfaenger.Split(" "))
{
mailto = mailto # "+" # teilstr;
}
! system.Exec ("/bin/sh /etc/config/addons/mh/email.sh "# sendbetreff # " " # sendmail # " " mailto, &stdout, &stderr);
! naechsten zwei Zeilen eingefuegt im Austausch wegen cuxd - system.exec
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/bin/sh /etc/config/addons/mh/email.sh "# sendbetreff # " " # sendmail # " " # mailto #"'");
}