Ideen zu FW-Anpassung "Geräte-Firmware verfügbar"

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

Moderatoren: jmaus, Co-Administratoren

MichaelN
Beiträge: 9656
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Ideen zu FW-Anpassung "Geräte-Firmware verfügbar"

Beitrag von MichaelN » 06.05.2023, 20:10

jp112sdl hat geschrieben:
19.04.2023, 20:35
BanditDD hat geschrieben:
19.04.2023, 20:32
Das war doch in früheren Firmware-Versionen nicht so, oder?
Doch, war es. Auf der Startseite steht nur die Gesamtanzahl, beim Klick darauf öffnet sich jenes hier dargestelltes Popup mit der Auflistung aller betreffenden Geräte.
Könnte man das so ändern, dass jeder Typ nur einmal gelistet wird? Du hast doch bestimmt eine Idee wo der Code dafür steckt?
Zuletzt geändert von Roland M. am 11.05.2023, 01:31, insgesamt 1-mal geändert.
Grund: Thema abgetrennt und verschoben
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

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

Re: CCU3 Firmware 3.69.7 ist verfügbar

Beitrag von jp112sdl » 06.05.2023, 23:07

MichaelN hat geschrieben:
06.05.2023, 20:10
Könnte man das so ändern, dass jeder Typ nur einmal gelistet wird?
Die Liste zeigt ja eigentlich nicht allgemein an, dass es Updates gibt, sondern genau für welche der installierten Geräte es sie gibt.

Wenn man 5 WTH besitzt, und 3 davon ein Update benötigen, dann sind diese 3 Geräte aufgelistet.

Steht dort nur noch 1x "Es gibt ein WTH Update" müsste man doch dann erstmal in der Geräteliste anfangen zu suchen, welche Geräte betroffen sind...?
MichaelN hat geschrieben:
06.05.2023, 20:10
Du hast doch bestimmt eine Idee wo der Code dafür steckt?
https://github.com/eq-3/occu/blob/maste ... 683-L22741

VG,
Jérôme ☕️

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

MichaelN
Beiträge: 9656
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: CCU3 Firmware 3.69.7 ist verfügbar

Beitrag von MichaelN » 07.05.2023, 18:13

jp112sdl hat geschrieben:
06.05.2023, 23:07
Steht dort nur noch 1x "Es gibt ein WTH Update" müsste man doch dann erstmal in der Geräteliste anfangen zu suchen, welche Geräte betroffen sind...?
Wirklich? Ich verstehe den Workflow so, das man über diese Anzeige eine neue FW runterladen kann - und das muss man ja für jeden Gerätetyp nur 1x - und dann in einem 2. Schritt die FW auf die CCU lädt und danach erst in einem 3. Schritt für den individuellen Aktor das Update startet (wenn es nach Tagen /Wochen hochgeladen wurde).

In dieser Liste ist es daher vollkommen unerheblich welche Seriennummern betroffen sind und es ist auch wenig hilfreich, wenn man 20 BROLL hat, das man diesen Eintrag dann 20x erhält. Oder verstehe ich da was falsch?
FW-Anzeige-alt.JPG
Leider sind meine JavaScript Kenntnisse aber unzureichend und ich dachte ich könnte mit einem Set und .has() und .add() elegant eine Überprüfung bauen, aber es funktioniert nicht. Das Set ist am Ende immer leer.

Hast Du einen Tip für mich?

Code: Alles auswählen

 fetchAndSetDeviceVersion: function() {
    var self = this;
    this.deviceTypeSet = new Set();
    if (this.numberOfKnownTypes == 0) {
      conInfo("Fetch device firmware list from server");
      homematic.com.getListOfAvailableFirmware(function (result) {
        conInfo("List fetched");
        jQuery.each(result, function (index, value) {
          var type = value.type.toLowerCase();
          type = type.replace(/_(?!.*_)/, ' '); //SPHM-1039
          if(value.type=="HmIP-HAP-JS1") {//SPHM-1034 HAP JS1 has different pattern than other devices.
            type = "HmIP-HAP JS1".toLowerCase();
          }
          self.knownTypes[type] = value.version;
          self.numberOfKnownTypes = index + 1;
          if(value.type == "HmIP-HAP") { //SPHM-1022
              self.knownTypes["HmIP-HAP-B1".toLowerCase()] = value.version;
              self.numberOfKnownTypes += 1;
          }
        });
        self.setDeviceVersion(self.devList[self.devIndex].type, self.knownTypes[self.devList[self.devIndex].type.toLowerCase()]);
      });
    } else {
      conInfo("Don't fetch the device firmware list from the server. Use the known list.");
      self.setDeviceVersion(self.devList[self.devIndex].type, self.knownTypes[self.devList[self.devIndex].type.toLowerCase()]);
    }
  },

  setDeviceVersion: function (deviceType, fwVersion) {
    var self = this;
    var deviceTypeForUrl = deviceType.replace(/\ (?!.*\ )/, '_'); //SPHM-1039;
    if(deviceType == "HmIP-HAP JS1") {//SPHM-1034 HAP JS1 has different pattern than other devices.
      deviceTypeForUrl = "HmIP-HAP-JS1";
    }
    if(deviceType == "HmIP-HAP-B1") { //SPHM-1022 Use HAP Fw for HAP-B1
      deviceTypeForUrl = "HmIP-HAP";
    }
    if (fwVersion) {
      var devAddress = self.devList[self.devIndex].address,
        curFw = self.devList[self.devIndex].firmware,
        arCurFw = curFw.split("."),
        availableFW = self.devList[self.devIndex].availableFirmware,// auf der CCU gespeicherte Geräte-Fw.
        devIsUpdatable = self.devList[self.devIndex].updatable,
        arResultMajorMinorPatch,
        resultMajorMinor,
        newFW = fwVersion;

      if(deviceType == "HmIPW-DRAP" || deviceType == "HmIP-HAP" || deviceType == "HmIP-HAP-B1" || deviceType == "HmIP-HAP JS1") {
        if(self.evalVersionAGreaterThanB(availableFW, newFW)) {
          newFW = availableFW;
        }
      }

      // The current fw for BidCos devices has no patch version
      if (arCurFw.length == 2) {
        arResultMajorMinorPatch = fwVersion.split(".");
        resultMajorMinor = arResultMajorMinorPatch[0] + "." + arResultMajorMinorPatch[1];
        newFW = resultMajorMinor;
      }

      if (devIsUpdatable && fwVersion && (fwVersion != "n/a") && (newFW != curFw)) {
        // FW not yet available on the CCU
        if (availableFW != newFW) {
          if (!this.deviceTypeSet.has(deviceType)) {
              this.deviceTypeSet.add(deviceType);
              self.messageBoxHTML += "<tr><td  style='text-align:left;' height='15px'>" + deviceType + "</td><td></td></td><td style='text-align:center;'>" + curFw + "</td><td style='text-align:center;' class='UILink' onClick=\"window.location.href='" + self.downloadURL + "&serial=0&product=" + deviceTypeForUrl + "'\">" + fwVersion + "</td></tr>";
          }
        } else {
          if (!this.deviceTypeSet.has(deviceType)) {
              this.deviceTypeSet.add(deviceType);
              self.messageBoxHTML += "<tr><td  style='text-align:left;' height='15px'>" + deviceType + "</td><td></td></td><td style='text-align:center;'>" + curFw + "</td><td style='text-align:center;' class='UILink' onClick=alert(translateKey('hintDevFwAlreadyUploaded'));>" + fwVersion + "</td></tr>";
          }
        }
        self.newFwCounter++;
      }
    } else if((deviceType == "HmIPW-DRAP" || deviceType == "HmIP-HAP" || deviceType == "HmIP-HAP-B1" || deviceType == "HmIP-HAP JS1")  && self.devList[self.devIndex].availableFirmware && (self.devList[self.devIndex].availableFirmware != "0.0.0") && (self.devList[self.devIndex].availableFirmware != self.devList[self.devIndex].firmware)) {
      //In development environment this case may be hit when the fw on ccu is newer than fw on update server. This feels like a bug at first, but it does not matter under normal circumstances.
      //Please read SPHM-989 for details.
      var devAddress = self.devList[self.devIndex].address,
        curFw = self.devList[self.devIndex].firmware,
        availableFW = self.devList[self.devIndex].availableFirmware;
      self.messageBoxHTML += "<tr><td  style='text-align:left;' height='15px'>" + deviceType + "</td><td>" + devAddress + "</td></td><td style='text-align:center;'>" + curFw + "</td><td style='text-align:center;' class='UILink' onClick=alert(translateKey('hintDevFwAlreadyUploaded'));>" + availableFW + "</td></tr>";
      self.newFwCounter++;
    }
    self.devIndex++;
    if (self.devIndex < self.devList.length) {
      self.fetchAndSetDeviceVersion();
    } else {
      self.fetchDeviceList = false;
      self.deleteScriptElements();
      if (self.newFwCounter > 0) {
        self.showHintForAvailableDeviceFirmware();
      }
	  console.log(this.deviceTypeSet);
      conInfo("All devices checked. " + self.newFwCounter + " actualized firmware versions found!");
    }
  },
  
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

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

Re: CCU3 Firmware 3.69.7 ist verfügbar

Beitrag von jp112sdl » 07.05.2023, 19:16

MichaelN hat geschrieben:
07.05.2023, 18:13
Hast Du einen Tip für mich?
In

Code: Alles auswählen

fetchAndSetDeviceVersion: function() {            
...
}
machst du nix.

In

Code: Alles auswählen

setDeviceVersion: function (deviceType, fwVersion) {        
...
}
machst du aus

Code: Alles auswählen

          if (!this.deviceTypeSet.has(deviceType)) {
              this.deviceTypeSet.add(deviceType);
              
ein

Code: Alles auswählen

          if (!this.deviceTypeSet.includes(deviceType)) {                                                                                                                                     
              this.deviceTypeSet.push(deviceType);  
              

Wichtig ist, deviceTypeSet global zu deklarieren. So wie du es hattest, hast du für jedes Gerät eigens ein neues Set() erstellt.
Füge unter https://github.com/eq-3/occu/blob/maste ... .js#L22472 noch

Code: Alles auswählen

deviceTypeSet: [],
ein und unter https://github.com/eq-3/occu/blob/maste ... .js#L22485

Code: Alles auswählen

this.deviceTypeSet = [];

VG,
Jérôme ☕️

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

Xel66
Beiträge: 14149
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 583 Mal
Danksagung erhalten: 1497 Mal

Re: CCU3 Firmware 3.69.7 ist verfügbar

Beitrag von Xel66 » 08.05.2023, 10:06

MichaelN hat geschrieben:
07.05.2023, 18:13
In dieser Liste ist es daher vollkommen unerheblich welche Seriennummern betroffen sind und es ist auch wenig hilfreich, wenn man 20 BROLL hat, das man diesen Eintrag dann 20x erhält. Oder verstehe ich da was falsch?
Hmmm... Nunja, ich verstehe die Liste so, dass sie mir anzeigt, für welche meiner (Einzel-)Geräte ein Update verfügbar ist, nicht der Gerätetyp. Steht ja auch im Kopf drin "Es stehen Geräte-Firmware-Updates zur Verfügung". Und es sind die betroffenen Geräte aufgeführt. Hast Du z.B. 21 BROLL im System (weil einer nagelneu ist und deshalb vielleicht schon mit der Firmware ausgeliefert wurde, taucht er in dieser Liste nicht auf). Und spätestens wenn man die gleiche Firmware mehrfach runterladen will, wird der Anwender bei der Nachricht, ob die bestehende Datei überschrieben werden soll, darauf hingewiesen, dass diese mehrfache Maßnahme überflüssig ist. Sicherlich könnte man das irgendwie zusammenfassen. Aber warum? So oft kommen keine Updates. Aber jeder wie er will...

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

MichaelN
Beiträge: 9656
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: CCU3 Firmware 3.69.7 ist verfügbar

Beitrag von MichaelN » 08.05.2023, 10:13

kontinuierlicher Verbesserungsprozess
Mich stört sowas einfach. Ich finde es unübersichtlich. Der Workflow macht so aktuell keinen Sinn, weil es unerheblich ist, ob 1 von 20 oder 20 von 20 Geräten ein Update benötigt. An dieser Stelle braucht man nur die Info, das ein Update runterzuladen ist. Und schreibt sich nun wirklich jemand die Seriennummer auf, um dann nachzusehen welches seiner Geräte das denn sein mag?
Bitte um Feedback.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Xel66
Beiträge: 14149
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 583 Mal
Danksagung erhalten: 1497 Mal

Re: CCU3 Firmware 3.69.7 ist verfügbar

Beitrag von Xel66 » 08.05.2023, 10:33

MichaelN hat geschrieben:
08.05.2023, 10:13
Der Workflow macht so aktuell keinen Sinn, weil es unerheblich ist, ob 1 von 20 oder 20 von 20 Geräten ein Update benötigt.
Meiner Meinung nach, eben nicht ganz. Wenn ich 21 Geräte gleichen Typs habe, von denn lediglich 20 (oder 1) ein Update benötigen, weil (ein) nachgerüstete(r) Aktor(en) schon mit dieser Firmware ausgestattet ist, dann ist das für mich eine verwertbare Info. Erst recht für die Abschätzung des benötigten Zeitaufwandes für die Updates und den daraus resultierenden Belastungen des Duty Cycles. Es gibt auch andere Stellen, um das zu quantifizieren, aber hier sehe ich es auch gleich. Bei mir stehen auch diverse Updates aus. Aber ich habe keine Eile damit und werde solche Updates definitiv nicht vor dem Urlaub anstoßen (erst recht nicht, wenn es mehrere Geräte des gleichen Typs sind). Die gleichzeitige Übertragung an alle Geräte kann funktionieren, muss aber nicht. Und einen wirklichen Einblich in die Übertragung hat man ja nicht.
MichaelN hat geschrieben:
08.05.2023, 10:13
Und schreibt sich nun wirklich jemand die Seriennummer auf, um dann nachzusehen welches seiner Geräte das denn sein mag?
Den Gedankengang des Programmierers kann ich nur insofern nachvollziehen, als das damit eine Identifikation des betroffenen Einzelgerätes bei Bedarf(!) möglich ist. Sicherlich wäre hier der Gerätename zielführender. Aber dann müsste er die Darstellung noch gegen weirde Bezeichnungen und Benutzung von Sonderzeichen absichern, um Darstellungsfehler zu handhaben (siehe HTML-Bug in der Startseite). Für diese Aufgabe ein verzichtbarer Aufwand. Und gerade für ein Optionsfenster, welches man ggf. ein Mal im Jahr sieht. Als die Geräte noch nicht OTAU-fähig waren, hat man das Fenster gar nicht gesehen.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

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

Re: CCU3 Firmware 3.69.7 ist verfügbar

Beitrag von Baxxy » 08.05.2023, 14:00

Es geht doch primär um Updates für IP-Geräte...
Da ist es doch Wurst ob nur 1von10 oder 9von10 das Update "brauchen". Es wird doch an alle gleichen Geräte auch gleichzeitig verteilt. Ja, ein einzelnes Gerät ist "gefühlt" schneller updatebereit als wenn 10 gleiche Geräte das Update geliefert bekommen. Die nötige Zeit verdoppelt sich aber nicht mit jedem weiteren Gerät.

Ich hätte nichts gegen ein gekürzte Information ala "Update für BROLL Aktoren auf x.y.z verfügbar.

Die Details sieht man dann ja in der Geräte-Firmware Übersicht.

MichaelN
Beiträge: 9656
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: CCU3 Firmware 3.69.7 ist verfügbar

Beitrag von MichaelN » 08.05.2023, 19:21

jp112sdl hat geschrieben:
07.05.2023, 19:16
In ...
wow, so kann ich arbeiten :lol: Aber eigentlich hast Du den Code jetzt geschrieben :oops:
Gibt es dieses Set() nicht in der JavaScript Version der CCU?

Wie auch immer, es funktioniert nun:
FW-Anzeige-neu.JPG
Die Spalte Seriennummer habe ich drin gelassen, weil ch beim Code für DRAP/HAP nichts geändert habe. Vielleicht ist die Info da doch sinnvoll, davon hat man i.d.R. nicht so viele im System.

Wo ich noch Zweifel habe, ob man die Spalte "Aktuell" drin lassen soll, denn wenn ich annehme das es verschiedene Versionsstände geben kann, dann ist die Info im besten Falle irritierend.

Was meint ihr?
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
Henke
Beiträge: 1521
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 140 Mal
Danksagung erhalten: 306 Mal

Re: CCU3 Firmware 3.69.7 ist verfügbar

Beitrag von Henke » 08.05.2023, 19:37

Screenshot 2023-05-08 193432.jpg
So sieht die original Anzeige bei installierten Beta-Versionen aus.
Daher sollte Aktuell bleiben oder durch etwas wie "Beta" ersetzt werden.

Antworten

Zurück zu „RaspberryMatic“