Seite 1 von 3

Neue Firmwareversion abfragen

Verfasst: 11.06.2019, 19:04
von ehohz
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?

Re: Neue Firmwareversion abfragen

Verfasst: 12.06.2019, 14:43
von roe1974
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

Re: Neue Firmwareversion abfragen

Verfasst: 12.06.2019, 15:10
von jmaus
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);

Re: Neue Firmwareversion abfragen

Verfasst: 12.06.2019, 17:11
von Stefan_S82
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?

Re: Neue Firmwareversion abfragen

Verfasst: 12.06.2019, 17:34
von ehohz
Danke für die Skripte. Hat geklappt.

Re: Neue Firmwareversion abfragen

Verfasst: 12.06.2019, 17:45
von jmaus
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.

Re: Neue Firmwareversion abfragen

Verfasst: 12.06.2019, 19:03
von roe1974
ich mache alles mit CUxD ;-)

Re: Neue Firmwareversion abfragen

Verfasst: 06.02.2020, 09:57
von dtp
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

Re: Neue Firmwareversion abfragen

Verfasst: 06.02.2020, 11:00
von jmaus
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?!?

Re: Neue Firmwareversion abfragen

Verfasst: 06.02.2020, 12:23
von dtp
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?