Firmwareversion der angelernten Geräte per Script auslesen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Sachse
Beiträge: 3
Registriert: 14.07.2021, 14:39
System: sonstige

Firmwareversion der angelernten Geräte per Script auslesen

Beitrag von Sachse » 14.07.2021, 15:00

Die WebUI zeigt, das für verschiedene Geräte neue Firmware-Versionen vorliegen.
Wie kann man aber per Script den Geräte-Firmware-Stand ermitteln.

Die aktuelle Liste der freigebenen Versionen erhalte ich per
https://ccu3-update.homematic.com/firmw ... rch/DEVICE.

Hat das jemand schonmal realisiert oder weiß wie das funktioniert?
Besten Dank vorab ......

jp112sdl
Beiträge: 12115
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Firmwareversion der angelernten Geräte per Script auslesen

Beitrag von jp112sdl » 14.07.2021, 20:45

Für BidCos mache ich das so

Code: Alles auswählen

object oUser = dom.GetObject( system.GetSessionVar('sessionUserID') );
oUser.UserTempViewIDs3().RemoveAll();

string o;
string err;
string metaData;
string data;  

foreach (o, root.Devices().EnumUsedIDs()) {
  var dev = dom.GetObject(o);
  var name = dev.Name();
  var addr = dev.Address();
  var iface = dom.GetObject(dev.Interface());

  if ((iface.Name() == "BidCos-RF") && 
      (addr.Length() == 10)) {

    metaData = dev.MetaData("DEVDESC");   
    foreach (data, metaData.Split(",")) {
      if (data.Substr(0,8) == "FIRMWARE") {
        string fw = data.Replace("FIRMWARE:\"","");
        fw = fw.Substr(0,fw.Length() -1);
      }
      if (data.Substr(0,10) == "RF_ADDRESS") {
        string decimalAddress = data.Replace("RF_ADDRESS:","");
        if (decimalAddress != "0") {
          object oObj = dom.CreateObject(OT_XMLNODE);
          oObj.Name(addr); 
          oObj.AddMetaData("NAME", dev.Name());
          oObj.AddMetaData("FW", fw);
          oUser.UserTempViewIDs3().Add(oObj.ID());
        }
      }
    }
  }
}

oUser.UserTempViewIDs3().SortByName();

string uid;
string rfaddresslist = "";
foreach (uid, oUser.UserTempViewIDs3().EnumIDs()) {
  object o = dom.GetObject(uid);
  rfaddresslist = rfaddresslist #o.Name()#", FW: "#o.MetaData("FW")#" ("#o.MetaData("NAME")#")\n";   
  dom.DeleteObject(o);
}
Write(rfaddresslist);

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Antworten

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