In dem du statt der WriteLines die entsprechenden Befehle absetzt.Hirschcom hat geschrieben:wenn ich die Nachricht nun über das email addon haben möchte wie leg ich das am besten an ?
Wie ich oben schrieb, ist die Reaktion auf das Script dir überlassen.
Ich habe das Script leicht modifiziert, um das zu vereinfachen
CCU2&serial=12345" sind anzupassen
Code: Alles auswählen
! Firmwareupdate auslesen und reagieren (c) by Alchy
string slist = "";
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_SETS").State("cat /boot/VERSION");
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var sold = dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_RETS").State().StrValueByIndex("=",1);
var url = "https://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU2&serial=12345";
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:2.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:2.CMD_QUERY_RET").State(1);
var snew = dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:2.CMD_RETS").State().StrValueByIndex("'",1);
if (sold.Find(snew)==0) {
slist = "kein Update, weil alt: "#sold #" und neu "#snew;
} else {
slist = "neues Update, weil alt: "#sold #" und neu "#snew;
}
WriteLine(slist);
Wenn du statt der WriteLIne Zeile die Zeile
Code: Alles auswählen
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 01 '"#slist# "'");
Aber nur WENN du:
die Zeile:
Code: Alles auswählen
set serviceliste [encoding convertfrom utf-8 [lindex $argv 1]]
und
in der Mailvorlage 01
Code: Alles auswählen
$serviceliste
stehen hast.
Willst du eine Nachricht über pushover bekommen. Nimmst du ebenso obiges Script und ersetzt die WriteLine Zeile durch
Code: Alles auswählen
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k -d token=++++++++++++ -d user=+++++++++++++++ -d message='"#slist#"', -d priority=1 http://api.pushover.net/1/messages.json");
Willst du die Ausgabe des Scriptes in eine Systemvariable haben, dann ersetzt du die WriteLine Zeile durch:
Code: Alles auswählen
dom.GetObject(ID_SYSTEM_VARIABLES).Get("Name_Systemvariable_Typ Zeichenkette").State(slist);
usw.
Alchy