Bei mir lief es auf Anhieb. Konnte es zwar "nur" mit manipulierten Firmwarevariablen testen, aber da sind alle Meldungen korrekt gekommen.
Danke für das Script!
Grüsse
DoHo
Moderator: Co-Administratoren
Hallo,Dragonfly hat geschrieben: ↑16.06.2017, 15:45Da RaspberryMatic sein Update ja von anderer Stelle bezieht habe ich noch eine Kleinigkeit angefügt/rausgeschnitten:Da ja kleine aber feine Unterschiede zwischen CCU und RM vorhanden sind, ich aber nicht bei einem Wechsel darauf achten will, ob alles was mal ging noch geht, dachte ich mir es wäre recht nett, die Hardware in einer Werteliste zu hinterlegen - 0=CCU, 1=RMCode: Alles auswählen
! CCU-Hardware if (dom.GetObject("Hardware").Value() == 0) {var url = "http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU2&serial=12345";}; if (dom.GetObject("Hardware").Value() == 1) {var url = "https://gitcdn.xyz/repo/jens-maus/RaspberryMatic/master/release/LATEST-VERSION.js";}; ! Firmwareupdate auslesen und reagieren (c) by Alchy dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("cat /boot/VERSION"); dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1); var sold = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State().StrValueByIndex("=",1); dom.GetObject("CUxD.CUX2801001:2.CMD_SETS").State("wget -q -O - '"#url#"'"); dom.GetObject("CUxD.CUX2801001:2.CMD_QUERY_RET").State(1); var snew = dom.GetObject("CUxD.CUX2801001:2.CMD_RETS").State().StrValueByIndex("'",1); if (sold.Find(snew)==0) { WriteLine("No Update, weil alt: "#sold #" und neu "#snew); } else { WriteLine("New Version, weil alt: "#sold #" und neu "#snew); }
Jetzt fehlt zu meinem Glück nur noch, die Hardware automatisch auslesen zu lassen - hat hierzu jemand eine Idee?!
Ist Dir das bekannt, bzw. hast Du das beachtet?
Hallo,
Ja, die url ist jetzt...
Vielen Dank. Jetzt läuft es.
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);
Code: Alles auswählen
https://update.homematic.com/firmware/download?cmd=js_check_version&version=3.21.00&product=HM-CCU3&serial=99A99B99CD