HomeMatic Firmware-Update als Pushover senden lassen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

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

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von alchy » 14.02.2020, 23:31

Nö, das habe ich nicht geschrieben. :oops:
Das Script sollte die richtige Seriennummer ermitteln, wenn du den richtigen Namen drin hast.
UND
du brauchst keine echte Seriennummer anzugeben, auch PEQ1234567 sollte gehen.

Also sollte auch noch ein Script ausreichen wie das:

Code: Alles auswählen

string ccu = "CCU2";
string stdout;string stderr;string version;string cmd;
system.Exec("grep VERSION= /VERSION | cut -d= -f2", &version);  
cmd = "wget -qO- 'http://update.homematic.com/firmware/download?cmd=js_check_version&version="#version#"&product=HM-"#ccu#"&serial=PEQ1234567'";
system.Exec(cmd, &stdout, &stderr);
string newversion = stdout.StrValueByIndex("'",1);
if (version.Find(newversion)==0) {
 WriteLine("No Update");
} else {
 WriteLine("New Version");
}
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.

MathiasZ

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von MathiasZ » 20.04.2020, 10:02

Heute kam das neue Update und ich habe es endlich mal geschafft, vorher zu testen.
Mein Skript:

Code: 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); }
Als Ausgabe bekomme ich:

Code: Alles auswählen

No Update, weil alt: 3.51.6.20200229
PRODUCT und neu 
Obwohl gerade die neue Firmware kam.
Unbenannt.JPG

Benutzeravatar
Baxxy
Beiträge: 10738
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 599 Mal
Danksagung erhalten: 2196 Mal

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von Baxxy » 20.04.2020, 13:05

Und deine "Hardware" SysVar steht auch sicher auf "1" ?

Bei mir läuft das mit RaspberryMatic.

Code: Alles auswählen

------------------------------- Scriptausgabe -------------------------------
New Version, weil alt: 3.49.17.20200131
PRODUCT und neu 3.51.6.20200420
Grüße
Baxxy

MathiasZ

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von MathiasZ » 20.04.2020, 14:40

@Baxxy
Ich dachte, der Skript reicht?
Was muß ich noch machen, damit es läuft?
Muß ich irgendwo im Skript die richtige HW eintragen?
Eine SysVar habe ich keine angelegt.
Gruß,
Mathias
P.S. Ich mache das Update erst, wenn es läuft :mrgreen:

Benutzeravatar
Baxxy
Beiträge: 10738
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 599 Mal
Danksagung erhalten: 2196 Mal

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von Baxxy » 20.04.2020, 14:52

Aha, wieder mal irgendwo kopiert und nicht drüber nachgedacht. :wink:
MathiasZ hat geschrieben:
20.04.2020, 14:40
Ich dachte, der Skript reicht?
Tatsächlich kann man in diesem Script mittels einer SysVar "Hardware" zwischen CCU2 und RaspberryMatic Firmwareabfragen wechseln.
So wie ich das sehe benutzt du RaspberryMatic also kannst du folgende Änderung vornehmen:
Zeile 1-3 des Script's löschen und folgende Zeile (als erstes Einfügen)

Code: Alles auswählen

var url = "https://gitcdn.xyz/repo/jens-maus/RaspberryMatic/master/release/LATEST-VERSION.js";
Es werden aber nur die WriteLines ausgegeben, ne Pushover-Funktion ist in deinem gepostetem Scriptbeispiel nicht drin.

Grüße
Baxxy

MathiasZ

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von MathiasZ » 20.04.2020, 15:11

Danke Dir.
Ja, dass Pushover nicht drin ist, weiß ich.
Ich wollte das Skript erst einmal zum Laufen bringen, bevor ich da was mache.
Das werde ich heute Abend gleich mal machen.
Jetzt ist einpacken angesagt.... Am Samstag fahre ich den nächsten Schwung ins neue Haus :mrgreen:

Edit:
Es läuft, Danke, @Baxxy

Benutzeravatar
Baxxy
Beiträge: 10738
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 599 Mal
Danksagung erhalten: 2196 Mal

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von Baxxy » 20.04.2020, 16:44

MathiasZ hat geschrieben:
20.04.2020, 15:11
Es läuft, Danke, @Baxxy
Super. Ich habe hier noch ein wenig gebastelt. Kannst du ja mal testen. :)

Code: Alles auswählen

!- Firmware-Update-Check Script für RaspberryMatic only
!- V0.2 by Baxxy
var url = "https://gitcdn.xyz/repo/jens-maus/RaspberryMatic/master/release/LATEST-VERSION.js";
string FWlokal;
string FWonline;
system.Exec("cat /boot/VERSION", &FWlokal);
FWlokal = FWlokal.StrValueByIndex("=",1);
integer pro = FWlokal.Find("PRODUCT");
FWlokal = FWlokal.Substr(0, pro).Trim();
system.Exec("wget -q -O - '" # url # "'", &FWonline);
FWonline = FWonline.StrValueByIndex("'",1);
     if (FWlokal.Find(FWonline)==0) {
         WriteLine("Kein Systemupdate verfügbar.\nInstallierte Firmware: "# FWlokal #"\nOnline Firmware: "# FWonline);
        } else {
         WriteLine("Systemupdate verfügbar!\nInstallierte Firmware: "# FWlokal #"\nOnline Firmware "# FWonline); }
Vermutlich schlagen die Scriptmeister die Hände über dem Kopf zusammen. :shock: Aber es funktioniert. :wink:

Verbesserungsvorschläge sind willkommen!

Grüße
Baxxy

Achja, das Ergebnis bei neuer Firmware sollte etwa so aussehen.

Code: Alles auswählen

------------------------------- Scriptausgabe -------------------------------
Systemupdate verfügbar!
Installierte Firmware: 3.49.17.20200131
Online Firmware 3.51.6.20200420
Zuletzt geändert von Baxxy am 22.04.2020, 16:05, insgesamt 2-mal geändert.

MathiasZ

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von MathiasZ » 20.04.2020, 19:07

Muß nur noch am Pushover etwas tunen. Bekomme jetzt immer eine Meldung.
Erst mal das Programm deaktiviert, weil die stündliche Nachricht nervt. :shock:

Benutzeravatar
Baxxy
Beiträge: 10738
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 599 Mal
Danksagung erhalten: 2196 Mal

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von Baxxy » 20.04.2020, 23:02

MathiasZ hat geschrieben:
20.04.2020, 19:07
Erst mal das Programm deaktiviert, weil die stündliche Nachricht nervt.
Naja, letztendlich ist so eine Benachrichtigung auch eher was für Foren-Abstinenzler und "Nie-auf-die-WebUI-Startseite-Gucker. :mrgreen:
Ich würde das Script max 1x die Woche ausführen. So dringend sind ja die Systemupdates meistens nicht.

Grüße
Baxxy

MathiasZ

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von MathiasZ » 21.04.2020, 00:13

Stimmt!
Ich habe mich aber auch schon dabei ertappt.
Solange die CCU läuft, gucke ich auch sehr selten nach und wundere mich, dass ich 3 Addons updaten muss. :mrgreen:

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“