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?
Ideen zu FW-Anpassung "Geräte-Firmware verfügbar"
Moderatoren: jmaus, Co-Administratoren
-
- 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"
Zuletzt geändert von Roland M. am 11.05.2023, 01:31, insgesamt 1-mal geändert.
Grund: Thema abgetrennt und verschoben
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 +++
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 +++
-
- 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
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...?
https://github.com/eq-3/occu/blob/maste ... 683-L22741
-
- 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
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?
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 +++
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 +++
-
- 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
In
Code: Alles auswählen
fetchAndSetDeviceVersion: function() {
...
}
In
Code: Alles auswählen
setDeviceVersion: function (deviceType, fwVersion) {
...
}
Code: Alles auswählen
if (!this.deviceTypeSet.has(deviceType)) {
this.deviceTypeSet.add(deviceType);
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: [],
Code: Alles auswählen
this.deviceTypeSet = [];
-
- 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
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
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
-
- 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
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.
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 +++
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 +++
-
- 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
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.
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
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
- 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
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.
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.
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- 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
wow, so kann ich arbeiten Aber eigentlich hast Du den Code jetzt geschrieben
Gibt es dieses Set() nicht in der JavaScript Version der CCU?
Wie auch immer, es funktioniert nun: 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 +++
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 +++
- 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
Daher sollte Aktuell bleiben oder durch etwas wie "Beta" ersetzt werden.