Skript für neue Firmware
Moderator: Co-Administratoren
- robbi77
- Beiträge: 13860
- Registriert: 19.01.2011, 19:15
- System: CCU
- Wohnort: Landau
- Hat sich bedankt: 182 Mal
- Danksagung erhalten: 739 Mal
Re: Skript für neue Firmware
Post von dtp: ... Wenn man eh nur sporadisch ...
Post von Erik: ...wer seine Geräte immer ...
Erkenne den Unterschied ...
(Und wieder ein sinnloser Post von mir)
Gruß
Roberto
Post von Erik: ...wer seine Geräte immer ...
Erkenne den Unterschied ...
(Und wieder ein sinnloser Post von mir)
Gruß
Roberto
Bei Risiken und Nebenwirkungen fragen Sie den Elektriker Ihres geringsten Mißtrauens!
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...
-
- Beiträge: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: Skript für neue Firmware
Die CCU zeigt das Vorhandensein neuer Firmware ja im WebUI und über die grün blinkende Info-LED an. Daher müsste es doch möglich sein, diese Werte gezielt per Skript abzufragen ohne extra Zugriff auf den eQ-3-Server und den obigen Vergleich. Wäre dann evtl. auch ein Punkt für's allinclusive-Skript von Alchy, auch wenn es jetzt nicht unbedingt um eine Servicemeldung im eigentlichen Sinne geht.thkl hat geschrieben:Ok here we go:
Zuerst mal eine System Variable anlegen. Name NewFirmware ... Typ Logikwert
Script:Code: Alles auswählen
string stdout;string stderr;string cmd;cmd = 'cat /boot/VERSION'; system.Exec(cmd, &stdout, &stderr); string version = stdout.StrValueByIndex("=",1); cmd = 'wget -qO- http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU2&serial=12345'; system.Exec(cmd, &stdout, &stderr); string newversion = stdout.StrValueByIndex("'",1); if (newversion<>version) { dom.GetObject("NewFirmware").State(1); } else { dom.GetObject("NewFirmware").State(0); }
Gruß,
Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Skript für neue Firmware
Das Script funktioniert nicht mehr, genau wegen dem String-Vergleich.
Die Werte umwandeln und es sollte gehen.
Alchy
Die Werte umwandeln und es sollte gehen.
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.
Re: Skript für neue Firmware
So geht wieder ...
Code: Alles auswählen
string stdout;string stderr;string cmd;cmd = 'cat /boot/VERSION';
system.Exec(cmd, &stdout, &stderr);
string version = stdout.StrValueByIndex("=",1);
cmd = 'wget -qO- http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU2&serial=12345';
system.Exec(cmd, &stdout, &stderr);
string newversion = stdout.StrValueByIndex("'",1);
if (version.Find(newversion)==0) {
WriteLine("No Update");
} else {
WriteLine("New Version");
}
Gruß Thomas
- sent from my dishwasher -
- Head of HomeControl for iOS -
- Steuerung der CCU über HomeKit (Siri) -
- Homematic Interface Layer - baut alles was HTTP kann in die CCU, ja auch Alexa-
- sent from my dishwasher -
- Head of HomeControl for iOS -
- Steuerung der CCU über HomeKit (Siri) -
- Homematic Interface Layer - baut alles was HTTP kann in die CCU, ja auch Alexa-
-
- Ehrenmitglied
- Beiträge: 12194
- Registriert: 29.07.2006, 15:58
- Wohnort: Schweiz
- Danksagung erhalten: 5 Mal
Re: Skript für neue Firmware
Hallo Erik
Wenn also jemand die fertige Lösung dort in einem neuen Thread vorstellen möchte ....
Viele Grüsse
Bümpi
... es wäre sicher einen Eintrag dort Wert. In die Rubrik "Tipps und Tricks" passt der Thread aber so nicht rein, weil dort fertige Lösungen vorgestellt werden sollten, über die nachher allenfalls diskutiert wird; aber nicht der ganze Weg der Lösungssuche und -Findung.erik hat geschrieben:@Admin: Thread könnte in die Tipps und Tricks verschoben werden :-.)
Wenn also jemand die fertige Lösung dort in einem neuen Thread vorstellen möchte ....
Viele Grüsse
Bümpi
-
- Beiträge: 114
- Registriert: 16.04.2018, 20:09
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 11 Mal
Re: Skript für neue Firmware
Ich weiß... Alter Thread... Aber seit CCU3 läuft das nicht mehr. fand das immer praktisch, da ich es mir im IOBroker anzeigen ließ.
Gibt es mittlerweile wieder ein funktionierendes Script?
Gibt es mittlerweile wieder ein funktionierendes Script?
-
- Beiträge: 1295
- Registriert: 16.05.2010, 12:39
- Wohnort: Südwestlich von Graz
- Danksagung erhalten: 9 Mal
Re: Skript für neue Firmware
Hallo,
liegt vermutlich daran, dass die URL für die CCU-2 ist.
Sonnige Grüße!
Robert
liegt vermutlich daran, dass die URL für die CCU-2 ist.
Sonnige Grüße!
Robert
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Skript für neue Firmware
Nö, nicht direkt jedenfalls.
Ich würde mal sagen, das der wget Aufruf so nicht mehr funzt.
Probier mal so:
Code: Alles auswählen
string stdout;string stderr;string cmd;cmd = "cat /boot/VERSION";
system.Exec(cmd, &stdout, &stderr);
string version = stdout.StrValueByIndex("=",1);
cmd = "wget -qO- 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU2&serial=12345'";
system.Exec(cmd, &stdout, &stderr);
string newversion = stdout.StrValueByIndex("'",1);
if (version.Find(newversion)==0) {
WriteLine("No Update");
} else {
WriteLine("New Version");
}
CCU3 Besitzer müssen natürlich den Link für die CCU3 nehmen in dem sie im Link &product=HM-CCU3 verwenden.
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.
-
- Beiträge: 114
- Registriert: 16.04.2018, 20:09
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 11 Mal
Re: Skript für neue Firmware
Da mich Tibin in einem anderen Thread darum gebeten hatte...
Wenn ich Alchys vorschlag nehme:
kommt folgende Ausgabe
Ausgabe:
3.47.22.20191026
PRODUCT
3.47.22
Da sich oft nur das "Datum" ändert, sagt das Script selten, dass es eine neue SW gibt. Ich weiß nicht, warum die Abfrage auf eine neue FW nur die kurze Ausgabe ergibt.
Gruß Peter
Wenn ich Alchys vorschlag nehme:
Code: Alles auswählen
string stdout;string stderr;string cmd;cmd = "cat /boot/VERSION";
system.Exec(cmd, &stdout, &stderr);
string version = stdout.StrValueByIndex("=",1);
cmd = "wget -qO- 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU3&serial=12345'";
system.Exec(cmd, &stdout, &stderr);
string newversion = stdout.StrValueByIndex("'",1);
if (version.Find(newversion)==0) {
dom.GetObject("FW.Update").State("false");
!WriteLine("No Update");
} else {
dom.GetObject("FW.Update").State("true");
!WriteLine("New Version");
}
WriteLine(version); <---- Damit ich die Versionen sehe
WriteLine(newversion); <---- Damit ich die Versionen sehe
Ausgabe:
3.47.22.20191026
PRODUCT
3.47.22
Da sich oft nur das "Datum" ändert, sagt das Script selten, dass es eine neue SW gibt. Ich weiß nicht, warum die Abfrage auf eine neue FW nur die kurze Ausgabe ergibt.
Gruß Peter
Zuletzt geändert von alchy am 17.11.2019, 22:09, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Grund: Code in Codetags posten