Ausgabe Batteriezustand mit HM Script / EMail-Addon

diverse Zusatzsoftware

Moderator: Co-Administratoren

Antworten
Etechniker
Beiträge: 45
Registriert: 23.12.2015, 21:04
Hat sich bedankt: 3 Mal

Ausgabe Batteriezustand mit HM Script / EMail-Addon

Beitrag von Etechniker » 02.03.2017, 01:05

Hallo Leute,

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);
}
Danke und Grüße,
Bastian
Zuletzt geändert von alchy am 02.03.2017, 15:54, insgesamt 2-mal geändert.
Grund: verschoben aus Entwicklung für die HomeMatic - Titel geändert

alchy
Beiträge: 10760
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 674 Mal

Re: Ausgabe Batteriezustand mit (TCL) Script / EMail-Addon

Beitrag von alchy » 02.03.2017, 15:46

  • falsches Unterforum - werd ich verschieben, bei Gelegenheit. [EDIT] erledigt[/EDIT]
  • das was du gepostet hast, ist kein TCL Script
  • es ist unnötig alle X nachzuschauen, ob eine Batterie leer Meldung anliegt, du kannst darauf reagieren, wenn durch diese Meldung auf der CCU eine Servicemeldung kreiert wird.
  • warum postest du nicht in dem Thread, wo du dir dieses Script geholt hast?
    ...
Wenn du trotz aller Bedenken gleich aus dem Script heraus die Nachricht verschicken willst, bietet sich an, die Übergabe per Parameter zu bewerkstelligen.

Dazu im TCL Reiter des Mailaddons eine Set Zeile einfügen.
gaaanz oben:

Code: Alles auswählen

set serviceliste [encoding convertfrom utf-8 [lindex $argv 1]]
in der Mailvorlage deiner Wahl im Beispiel die 01:

Code: Alles auswählen

Hier kommt der Batterietest:
$serviceliste
und in deinem Script fügst du statt der WriteLinezeile noch den Versand der MAil über system.exec

Code: Alles auswählen

system.Exec("/etc/config/addons/email/email 01 '"#MailText#"'" ,&stdout,&stderr);
oder BESSER

wenn vorhanden und korrekt konfiguriert über cuxd.exec

Code: Alles auswählen

dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 01 '"#MailText # "'"); 
ein.

Alchy
Zuletzt geändert von alchy am 02.03.2017, 15:51, insgesamt 1-mal geändert.
Grund: EDIT

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Etechniker
Beiträge: 45
Registriert: 23.12.2015, 21:04
Hat sich bedankt: 3 Mal

Re: Ausgabe Batteriezustand mit (TCL) Script / EMail-Addon

Beitrag von Etechniker » 02.03.2017, 18:06

Hallo Alchy,

danke für deine ausführlichen Antworten!
alchy hat geschrieben:
  • es ist unnötig alle X nachzuschauen, ob eine Batterie leer Meldung anliegt, du kannst darauf reagieren, wenn durch diese Meldung auf der CCU eine Servicemeldung kreiert wird.
    ...
Ja, sehr gute Idee. Wie fragt man jedoch ab, ob es eine neue LOWBAT-Meldung gibt? Nur die Variable für die Servicemeldungen bei Änderung auswerten würde zu vielen doppelten Mails führen.
alchy hat geschrieben:
  • warum postest du nicht in dem Thread, wo du dir dieses Script geholt hast?
    ...
In dem Thread wurde ein anderes Mail-Addon oder auch cuxd benutzt. Beides setze ich nicht ein, daher der Versuch den Code umzubauen.

Grüße,
Bastian

alchy
Beiträge: 10760
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 674 Mal

Re: Ausgabe Batteriezustand mit (TCL) Script / EMail-Addon

Beitrag von alchy » 02.03.2017, 19:09

Etechniker hat geschrieben: Ja, sehr gute Idee. Wie fragt man jedoch ab, ob es eine neue LOWBAT-Meldung gibt? Nur die Variable für die Servicemeldungen bei Änderung auswerten würde zu vielen doppelten Mails führen.
kann der Aussage zwar nicht folgen, aber schau mal z.B. >> H I E R << rein.
Etechniker hat geschrieben:
alchy hat geschrieben:
  • warum postest du nicht in dem Thread, wo du dir dieses Script geholt hast?
    ...
In dem Thread wurde ein anderes Mail-Addon oder auch cuxd benutzt. Beides setze ich nicht ein, daher der Versuch den Code umzubauen.
Ein anderes Mailaddon? Hast du einen LInk?
Und du hast ja auch nur vergessen zu posten, das du nicht cuxd benutzt. :wink:
Hast also nur dem Alchy Erklärbärmodus zu verdanken, das ich system.exec Aufrufe auch gepostet habe. :mrgreen:

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Etechniker
Beiträge: 45
Registriert: 23.12.2015, 21:04
Hat sich bedankt: 3 Mal

Re: Ausgabe Batteriezustand mit (TCL) Script / EMail-Addon

Beitrag von Etechniker » 05.03.2017, 00:24

alchy hat geschrieben: Ein anderes Mailaddon? Hast du einen LInk?
Alchy
Ich habe dieses Addon: HomeMatic E-Mail Zusatzsoftware, Version: 1.6.3, Autoren: HMside (Harima-kun, Mathias).
Von der Syntax her hat das Original-Codebeispiel jedoch nicht zu diesem Addon gepasst, oder?
alchy hat geschrieben: Und du hast ja auch nur vergessen zu posten, das du nicht cuxd benutzt. :wink:
Alchy
Sorry, hatte ich vergessen zu erwähnen. Seitdem meine erste CCU2 nach dem Installieren von diversen Addons instabil lief und ich sie irgendwann zum Support einschicken musste (war aber wohl ein Hardwareproblem und wurde auf Garantie getauscht), bin ich sehr vorsichtig mit (unnötigen) Plugins und möchte möglichst viel mit Bordmitteln erledigen.

Eine simple Batterieabfrage (es würde schon der Hinweis per Mail reichen, dass ein Batterie-Servicemeldung vorliegt) scheint jedoch nicht so einfach zu realisieren zu sein.

alchy
Beiträge: 10760
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 674 Mal

Re: Ausgabe Batteriezustand mit HM Script / EMail-Addon

Beitrag von alchy » 05.03.2017, 03:43

Etechniker hat geschrieben:Von der Syntax her hat das Original-Codebeispiel jedoch nicht zu diesem Addon gepasst, oder?
Woher soll ich denn das wissen. Du hast ja nur dein angepasstes Script gepostet. Es gibtsehr viele Scripte hier im Forum, die sich damit beschäftigen.
Für das angegebene Mail-Addon habe ich ja oben geschrieben, was du machen musst, damit dir dein/das Script eine Mail sendet.
Bleibt noch der trigger für das Script.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

Zurück zu „Sonstige Addons“