mit der (TCL)Skript-Programmierung bin ich aktuell noch am Anfang. Ich möchte ein Skript erstellen, welches bei niedrigem Batteriezustand einer Komponente über das EMail-Addon eine Nachricht verschickt.
Folgenden Skriptcode habe ich mir aus Beispielen zusammengesucht. Im "Skript testen" Fenster funktioniert der Code soweit und gibt über das WriteLine entsprechend alles korrekt aus.
Nun möchte ich diese Infos noch sinngemäß über das EMail-Addon versenden, dies habe ich jedoch nicht hinbekommen. Es kamen nur leere Mails oder mit Inhalt "null" an.
Könnt ihr mir einen Tipp geben, wie das TCL-Script korrekt aussehen müsste?
Code: Alles auswählen
var myAssembly = dom.GetObject("Zustände");
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 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;
WriteLine(MailText);
}
Bastian