NEWS
Script zur Überprüfung ob eine neue Firmware für die CCU verfügbar ist
-
@File Bitte mal das Post direkt über Deinen lesen...
Der Fehler im Log sollte aber definitiv nicht von dem Script kommen.
-
Im Skript ist bei der Anfrage ein Dummywert für die Seriennummmer und für die Softwareversion drin. Das akzeptiert der Downloadserver von EQ3 so nicht mehr.
Aber es gibt eine Lösung:
Ich nutze eine CCU2 und habe den Pfad in Zeile 102 so geändertconst ccu2 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=2.47.20&product=HM-CCU2&serial=NEQxxxxxxx';
wobei man natürlich anstelle der Serial NEQxxxxxxx die Seriennummer seines Gerätes eingeben muss.
Nach der Änderung bitte das Skript für 24 Stunden ausgeschaltet lassen, bis der Internetanschluss durch den Provider zwangsgetrennt wird und man eine neue IP bekommen hat. Alternativ kann man dieses auch im Router erzwingen (neue IP zuweisen oder so ähnlich).
Der Grund ist, das sich der Downloadserver merkt, von welchem IP-Anschluss die falsche Anfrage kommt und sperrt diese IP für weitere (auch gültige) Anfragen.Wenn man gesperrt ist, sieht auch die CCU keine verfügbare Software-Version mehr.
-
Hallo cash,
vielen Dank für das Script.
Ich habe eine pvccu3 und bekomme die folgende Fehlermeldung.Fehler bei der Abfrage der Firmware: Error: connect EHOSTUNREACH 95.216.13.95:443
Die URL im Script funktioniert nicht mehr.
Gibt es hier eine neue Adresse?VG
-
Bin fündig geworden.
Script hatte sich nur verschluckt! -
Hi , ich wollte mein CCU skript durch eine andere lösung ersetzen da es im ccu script immer zu "hängern" kam wenn die hompage mit dem aktuellen fw stand nicht geantwortet hat. dann habe ich diese lösung gefundenund umgesetzt. klappt für mich bisher super. habe ich heute morgen gemacht.
ich kenne mich mit JS nicht aus habe aber dennoch am script etwas ergänzt was ich brauchte.
zuerst habe ich neben dem datenpunkt der den installierten fw stand aus dem rega adapter enthält ´, auch direkt die variable aus der CCU (rega adapter) genommen, die bei mir zuvor auch die verfügbare fw angezeigt hat. ich habe also nicht einen neuen datenpunkt im io broker dafür verwendet.
//Datenpunkt auswählen wo die installierte Version ersichtlich ist (aus Homematic.Rega Adapter) const id_Version_installiert = 'hm-rega.0.PEQ0628679.0.FIRMWARE_VERSION'/*hm-rega.0.PEQ0628679.0.FIRMWARE_VERSION*/; //Datenpunkt muss manuell angelegt werden. Kann irgendwo angelegt werden. Anschließend hier ersetzen const id_Version_Internet = 'hm-rega.0.18721'/*CCUsysVar_Firmware_verfuegbar*/;
Dann habe ich noch diese beiden "const" im script eingebunden:
Die Erste ist der logikwert true oder false der mir vorher im skript auf der ccu bescheid gesagt hat ob eine neue fw version vorlieg.
Die Zweite schreibt einfach den Wert aus dem Datenpunkt der CCU zur aktuell installierten Version in eine Variable auf der CCU, welche zuvor auch vom CCU skript befüllt wurde.//Befüllung true oder false in CCU Logik Variable / true oder false const id_aktuell_oder_nicht = 'hm-rega.0.18722'/*CCUsysVar_Firmware_Neue_Version_vorhanden*/; //Befüllung der aktuell installierten FW in CCU Sys Var const id_install_in_die_ccu_sys_var = 'hm-rega.0.18720'/*CCUsysVar_Firmware_Betriebsstand*/;
Im skript habe ich diese dann an dieser stelle setzen lassen:
if(Version_installiert == Version[1]){ if(logging){ log('Installierte Firmware '+Version_installiert +' der CCU ('+Version[3] +') ist aktuell.'); } setState(id_aktuell_oder_nicht,false); setState(id_install_in_die_ccu_sys_var,Version_installiert); } else{ if(!isNaN(parseInt(Version[1].substr(0,1)))){ if(logging){ log('Installierte Firmware '+Version_installiert +' der CCU ('+Version[3] +') ist nicht aktuell. Aktuell verfügbare Version: '+Version[1]); } setState(id_aktuell_oder_nicht,true); setState(id_install_in_die_ccu_sys_var,Version_installiert); }
So habe ich dann in der CCU folgendes stehen:
Ich habe noch eine Frage zur täglichen Prüfung:
if(observation){ //Nachts einmalig ausführen 00:30 Schaltzeiten berechnen schedule("54 05 * * *", func_Version);
54 05 bedeutet täglich 0:30 ?
Danke und viele Grüße!
-
Hallo zusammen,
zunächst einmal vielen Dank für die Bereitstellung des Skripts @cash .
Bei der Einrichtung ist mir aufgefallen, dass ich in meiner hm-rega-Instanz keinen Datenpunkt mit einem Firmwarestand finde. Allgemein finden sich recht wenige Datenpunkte darin. Das war bisher kein Problem, da ich den Adapter noch nie genutzt habe davor, sondern ausschließlich den RPC.Hat jemand eine Idee, woran das liegen kann?
Vielen Dank & Gruß
Steven -
@gammler2003 Konfigurationsfehler würde ich sagen. Zeig mal die Einstellungen vom Adapter.
-
@cash
so meinst du?_id "system.adapter.hm-rega.0" common name "hm-rega" version "3.0.33" title "HomeMatic ReGaHSS" dependencies 0 "hm-rpc" 1 js-controller ">=2.0.0" authors 0 "hobbyquaker <hq@ccu.io>" 1 "bluefox <dogafox@gmail.com>" 2 "Moritz Heusinger <moritz.heusinger@gmail.com>" license "MIT" mode "daemon" platform "Javascript/Node.js" loglevel "info" materialize true docs en "README.md" readme "https://github.com/ioBroker/ioBroker.hm-rega/blob/master/README.md" icon "homematic.png" compact true messagebox true extIcon "https://raw.githubusercontent.com/ioBroker/ioBroker.hm-rega/master/admin/homematic.png" keywords 0 "homematic" 1 "eq3" 2 "regahss" 3 "ccu1" 4 "ccu2" localLinks _default "%webinterfaceProtocol%://%homematicAddress%:%webinterfacePort%" type "iot-systems" connectionType "local" dataSource "poll" tier 2 plugins sentry dsn "https://08c0b6d9b71c43cc91e9705877681085@sentry.iobroker.net/11" pathWhitelist [] errorBlacklist 0 "SyntaxError" installedFrom "iobroker.hm-rega@3.0.33" installedVersion "3.0.33" enabled true host "phoscon" logLevel "info" native homematicAddress "192.168.178.37" reconnectionInterval "30" rfdEnabled true rfdAdapter "hm-rpc.0" hs485dEnabled false hs485dAdapter "" cuxdEnabled false cuxdAdapter "" hmipEnabled true hmipAdapter "hm-rpc.1" virtualDevicesEnabled false virtualDevicesAdapter "" polling true pollingInterval "30" pollingTrigger "BidCoS-RF.50.PRESS_SHORT" syncDutyCycle true pollingIntervalDC "" syncVariables true showInvSysVar true syncPrograms true syncNames true syncFavorites true enumFavorites "enum.favorites" syncRooms true enumRooms "enum.rooms" syncFunctions true enumFunctions "enum.functions" useHttps false username "" password "" webinterfacePort 80 webinterfaceProtocol "http"
-
@gammler2003 nein ich meine die Einstellungen vom Rega Adapter
-
@cash Das sind die Einstellungen. Nachfolgend mal einige Screenshots.
-
@gammler2003 setz mal bei duty cycle einen intervall. Bei mir habe ich dort 500 eingetragen. Da mir der Wert nicht wichtig ist. Bin mir aber nicht sicher an welcher Stelle im Adapter die Sachen abgerufen werden. Evtl mit dem Duty Cycle zusammen?
-
Um diesen Beitrag zum Skript nicht mit meinem scheinbar individuellen Adapter-Problem zu sprengen, habe ich dafür hier einen neuen Beitrag aufgemacht.
Vielen Dank für die bisherige Hilfe.
-
Hi.
Ich habe seit kurzem (plötzlich?) ein Problem mit dem Script. Hab auch schon ein issue auf github erstellt.javascript.0 | 2022-02-13 08:40:21.402 | error | at Script.runInContext (vm.js:144:12) javascript.0 | 2022-02-13 08:40:21.402 | error | at script.js.CCUneueFirmware:287:3 javascript.0 | 2022-02-13 08:40:21.401 | error | at script.js.CCUneueFirmware:285:5 javascript.0 | 2022-02-13 08:40:21.401 | error | at func_Version (script.js.CCUneueFirmware:132:5) javascript.0 | 2022-02-13 08:40:21.401 | error | at wrap (/opt/iobroker/node_modules/axios/lib/helpers/bind.js:9:15) javascript.0 | 2022-02-13 08:40:21.400 | error | at Axios.request (/opt/iobroker/node_modules/axios/lib/core/Axios.js:40:11) javascript.0 | 2022-02-13 08:40:21.400 | error | script.js.CCUneueFirmware: Error: Provided config url is not valid
Wäre super wenn mir einer einen Denkanstoß geben könnte woran es liegen könnte. Ich finde im Script keine config URL
-
link zu Abfrage hat sich geändert...
request({url :"https://raspberrymatic.de/LATEST-VERSION.js"},
-
@smartboart
Ich hatte die Version 1.17 aus Github. Dort ist aber mittlerweile (wegen meines Issues??) eine 1.19 hochgeladen und mit der geht wieder alles!
Danke trotzdem für die Hilfe -
@smartboart Der Link hat sich aber schon vor über einen Jahr geändert.
-
@cash ja sorry ich benutze eine angepasste Version des scripts. Mein link hat zufälliger weise irgendwann im zeitraum seit dem letzten Update bis gestern nicht mehr funktioniert... In der offiziellen Version werden auch andere links verwendet...
-
@m-a-x Die neue Version gab es schon lange. Sieht man ja im log. Ich hatte nur vergessen die Version auf github hochzuladen
Mit einen Adapter Update wurde die Axios Version hochgezogen und Axios hatte seine Parameter anders ausgelegt dadurch lief das Script nicht mehr. Die User die im Beta Unterwegs waren, waren davon schon länger betroffen. Meine Vermutung daraus war das das Script keiner mehr nutzt…
-
@cash ah. Ok. Auf jeden Fall danke für das Script und die Hilfe ich werde dein Script wohl noch so lange benutzen wie es funktioniert
-
ich habe das aktuelle Script 1.19 vor ein paar Tagen installiert und wollte die Firmware Vesion meines Rasperrymatic abfragen. Habe im Script meine einstellungen vorgenommen, wie angegeben. Raspeberrymatic=4 , Datenpunkt manuell angelogt (Zeichenkette). Wenn ich das Script starte wird unten im Fenster auch alles korrekt angezeigt. aktuelle Version und Version aus dem I-nternet. Aber der Wert wird nicht in den Datenpunkt 0_userdate.0.Serverraum.CCU.Verfuegbare_CCU-Firmware eingetragen.
Ich habe das Forum beriets mit der Suchfuntion bemüht, komme aber leider nicht weiter.
Könnte mir jemand einen Tip geben, im Moment weiss ich nicht mehr weiter.