Neue Firmwareversion abfragen

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

ehohz
Beiträge: 30
Registriert: 19.11.2015, 14:27

Neue Firmwareversion abfragen

Beitrag von ehohz » 11.06.2019, 19:04

Gibt es eine Möglichkeit per Skript oder Abfrage von Systemvariablen zu erkennen, ob eine neue Firmwareversion vorliegt?

Ebenfalls interessant wäre, ob die Anzahl möglich Geräte-Updates per Skript auslesbar sind?

roe1974
Beiträge: 585
Registriert: 17.10.2017, 16:15
Wohnort: Wien
Hat sich bedankt: 13 Mal
Danksagung erhalten: 3 Mal

Re: Neue Firmwareversion abfragen

Beitrag von roe1974 » 12.06.2019, 14:43

Für RM Firmware gibt es folgendes script (CUxD)

Code: Alles auswählen

! Firmwareupdate auslesen und reagieren (c) by Alchy
var url = "https://gitcdn.xyz/repo/jens-maus/RaspberryMatic/master/release/LATEST-VERSION.js";
dom.GetObject("CUxD.CUX2801001:14.CMD_SETS").State("cat /boot/VERSION");
dom.GetObject("CUxD.CUX2801001:14.CMD_QUERY_RET").State(1);
var sold = dom.GetObject("CUxD.CUX2801001:14.CMD_RETS").State().StrValueByIndex("=",1).Substr(0,16);
dom.GetObject("CUxD.CUX2801001:7.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:7.CMD_QUERY_RET").State(1);
var snew = dom.GetObject("CUxD.CUX2801001:7.CMD_RETS").State().StrValueByIndex("'",1);
dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU Firmware").State(sold);
if (sold.Find(snew) == 0) { WriteLine("Kein Update verfügbar");dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU Firmware Status").State(false);} 
else { WriteLine("Neuere Version vorhanden");dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU Firmware Status").State(true);}
lass ich 1x pro Tag (00h05) laufen.
Variablen:
"CCU Firmware" Typ Zeichenkette (Hier wird die aktuelle Version hineingeschrieben)
"CCU Firmware Status" Typ boolean (war="neue Version vorhanden", falsch="Version aktuell"

lg RIchard

Benutzeravatar
jmaus
Beiträge: 6085
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 31 Mal
Danksagung erhalten: 353 Mal
Kontaktdaten:

Re: Neue Firmwareversion abfragen

Beitrag von jmaus » 12.06.2019, 15:10

Das kann man IMHO auch einfacher bzw. ohne CUxD haben/machen:

Code: Alles auswählen

string newversion;
string curversion;
system.Exec("wget -q -O - --timeout=5 https://gitcdn.xyz/repo/jens-maus/RaspberryMatic/master/release/LATEST-VERSION.js | cut -d\\' -f2", &newversion);
system.Exec("grep VERSION= /VERSION | cut -d= -f2", &curversion);
boolean update = ( newversion.Trim() != curversion.Trim() );
dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU Firmware Status").State(update);

Stefan_S82
Beiträge: 55
Registriert: 01.10.2016, 20:17
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Neue Firmwareversion abfragen

Beitrag von Stefan_S82 » 12.06.2019, 17:11

jmaus hat geschrieben:
12.06.2019, 15:10
...ohne CUxD haben/machen:
Spannend. Hatte gestern noch über die alte, und gefühlt unendliche Diskussion erinnert, ob man WGET nun per CUXD abbilden sollte, oder nicht. Du hältst das also nicht für erforderlich, oder? Sind also die "alten" Probleme der Hänger gelöst, ja?

ehohz
Beiträge: 30
Registriert: 19.11.2015, 14:27

Re: Neue Firmwareversion abfragen

Beitrag von ehohz » 12.06.2019, 17:34

Danke für die Skripte. Hat geklappt.

Benutzeravatar
jmaus
Beiträge: 6085
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 31 Mal
Danksagung erhalten: 353 Mal
Kontaktdaten:

Re: Neue Firmwareversion abfragen

Beitrag von jmaus » 12.06.2019, 17:45

Stefan_S82 hat geschrieben:
12.06.2019, 17:11
jmaus hat geschrieben:
12.06.2019, 15:10
...ohne CUxD haben/machen:
Spannend. Hatte gestern noch über die alte, und gefühlt unendliche Diskussion erinnert, ob man WGET nun per CUXD abbilden sollte, oder nicht. Du hältst das also nicht für erforderlich, oder? Sind also die "alten" Probleme der Hänger gelöst, ja?
Gelöst ist relativ :9 Du hast natürlich recht (und das hatte ich übersehen), das ein zu langer wget Aufruf innerhalb eines system.Exec() ohne & am Ende prinzipiell die ReGaHss zum "hängen" bringen kann. Deshalb habe ich mein Skript noch einmal überarbeitet und ein "--timeout=5" hinzugefügt sodass ein wget nicht länger als 5 Sekunden brauchen darf und ansonsten abgebrochen wird.

roe1974
Beiträge: 585
Registriert: 17.10.2017, 16:15
Wohnort: Wien
Hat sich bedankt: 13 Mal
Danksagung erhalten: 3 Mal

Re: Neue Firmwareversion abfragen

Beitrag von roe1974 » 12.06.2019, 19:03

ich mache alles mit CUxD ;-)

dtp
Beiträge: 8905
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 81 Mal
Danksagung erhalten: 232 Mal

Re: Neue Firmwareversion abfragen

Beitrag von dtp » 06.02.2020, 09:57

Kurze Frage. Kann ich die Firmware der CCU auch in entsprechender Weise direkt von einem anderen Rechner im lokalen Netz (z.B. über den ioBroker) abfragen?

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.

Benutzeravatar
jmaus
Beiträge: 6085
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 31 Mal
Danksagung erhalten: 353 Mal
Kontaktdaten:

Re: Neue Firmwareversion abfragen

Beitrag von jmaus » 06.02.2020, 11:00

dtp hat geschrieben:
06.02.2020, 09:57
Kurze Frage. Kann ich die Firmware der CCU auch in entsprechender Weise direkt von einem anderen Rechner im lokalen Netz (z.B. über den ioBroker) abfragen?
Was meinst du konkret? Du willst die Firmwareversion deiner CCU Abfragen oder du willst rausbekommen welche CCU Firmware gerade die aktuellste auf dem eQ3 server bzw. RaspberryMatic ist?!?

dtp
Beiträge: 8905
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 81 Mal
Danksagung erhalten: 232 Mal

Re: Neue Firmwareversion abfragen

Beitrag von dtp » 06.02.2020, 12:23

Nee, ich wollte die aktuelle FW-Version meiner CCU abfragen.

In WebUI geht das ja sehr einfach mit

Code: Alles auswählen

string firmware;
system.Exec("grep VERSION= /VERSION | cut -d= -f2", &firmware);  
WriteLine(firmware);
Aber ich wollte diese Info gerne im ioBroker zur vis-Anzeige haben. Das einfachste wäre natürlich, die Info in eine Systemvariable der CCU zu schreiben, aber geht es ggf. auch direkt ohne Systemvariable?
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.

Antworten

Zurück zu „RaspberryMatic“