ich habe das folgend Skript ein wenig abgeändert und entsprechend in meine UCC3 implementiert.
Code: Alles auswählen
! Email mit Ergebnis des Batteriechecks
!
! In die Systemvariable Batt_Mldg (TEXT) wird eben-
! falls der Mailtext kopiert.
! Kann natuerlich entfallen ....
!---------------------------------------------------
!
! Achtung: Besser CuXD System.exec verwenden!!!
!---------------------------------------------------
var myAssembly = dom.GetObject("Batterie");
string itemID;
string text = "";
string s_subj ="Batteriemeldung";
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);
boolean condition = false;
if (device.HssType().Find("HM-CC-RT-DN")>=0)
{
string channel_name = interface_name # "." # device_address # ":4.FAULT_REPORTING";
var channel = dom.GetObject(channel_name);
if ( (channel.State() == 6) )
{
condition = true;
}
else
{
condition = false;
}
}
else
{
string channel_name = interface_name # "." # device_address # ":0.LOWBAT";
var channel = dom.GetObject(channel_name);
if ( (channel.State() == true) && (channel.Value() == true) )
{
condition = true;
}
else
{
condition = false;
}
}
if (condition == true) {
text = text # "- " # item.Name() # ": Bitte austauschen!\r\n";
counter = counter + 1;
}
else
{
text = text # "- " # item.Name() # ": OK!\r\n";
}
}
if ( counter > 0 ) {
string MailText;
string sDate = system.Date("%d.%m.%Y");
MailText = "Pruefung des Ladestandes der Batterien vom " # sDate # ".\r\n";
MailText = MailText # "Der Ladezustand einer oder mehrerer Batterien ist niedrig: \r\n\r\n" # text;
MailText = MailText # "\r\nBitte tauschen Sie die Batterien zeitnah aus.";
dom.GetObject("Batt_Mldg").State(MailText);
dom.GetObject("Batt_Mldg_Pushover").State(MailText);
}
else
{
string MailText;
string sDate = system.Date("%d.%m.%Y");
MailText = "Pruefung des Ladestandes der Batterien vom " # sDate # ".\r\n";
MailText = MailText # "Der Ladezustand aller Batterien ist gut: \r\n\r\n" # text;
dom.GetObject("Batt_Mldg").State(MailText);
dom.GetObject("Batt_Mldg_Pushover").State(MailText);
}
Bei meinem HmIP-SAM Gerät habe ich die "Low-Bat.-Schwelle" auf 2.95 gelegt und im Systemprotokoll zeigt er mir folgendes:
Code: Alles auswählen
Konfigurationsdaten zur Übertragung: Nein, RSSI Gerät 190, Batterie OK, Gerätekommunikation OK, Konfigurationsdaten zur Übertragung: Nein, Dutycycle OK, Batterie leer, Gerätekommunikation OK, RSSI Gerät 196, Wert Betriebsspannung in V: Normal, Sensor OK, Betriebsspannung in V 2.80, Fehlercode 0
Hat mir jemand einen Tip wie ich das Skript umbauen muss damit er den HmIP-SAM korrekt abfragt?
Gruß
Michael