Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Script zur Überprüfung ob eine neue Firmware für die CCU verfügbar ist

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

Script zur Überprüfung ob eine neue Firmware für die CCU verfügbar ist

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
95 Beiträge 21 Kommentatoren 12.8k Aufrufe 26 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • cashC cash

    @smartboart Hatte ich schon im Homematic Forum gefunden und eingebaut. Bitte einmal testen und nochmal kurzes Feedback ob es klappt...

    @Dutchman wie besprochen habe ich Deinen pull request gemerged oder wie auch immer man das nennt :-) Hätte nicht dagegen wenn in in den RPC Adapter eingebunden würde. Per Script ist man halt flexibler und jeder kann sich das ganze so anpassen wie man es will.

    Habe gerade die aktuelle Version hochgeladen. Jetzt mit Support für Raspberrymatic. Das ganze einfach in der Konfiguration auswählen.

    Homer.J.H Offline
    Homer.J.H Offline
    Homer.J.
    schrieb am zuletzt editiert von Homer.J.
    #15

    @cash Hi cash, Hier mal ein Auszug vom Log.
    Aktuelle Firmversion ist bei mir Installiert.

    javascript.0 2019-04-01 20:23:52.734 warn at process._tickCallback (internal/process/next_tick.js:181:9)
    javascript.0 2019-04-01 20:23:52.734 warn at _combinedTickCallback (internal/process/next_tick.js:139:11)
    javascript.0 2019-04-01 20:23:52.734 warn at endReadableNT (_stream_readable.js:1064:12)
    javascript.0 2019-04-01 20:23:52.734 warn at IncomingMessage.emit (events.js:208:7)
    javascript.0 2019-04-01 20:23:52.734 warn at emitNone (events.js:111:20)
    javascript.0 2019-04-01 20:23:52.734 warn at Object.onceWrapper (events.js:313:30)
    javascript.0 2019-04-01 20:23:52.734 warn at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1083:12)
    javascript.0 2019-04-01 20:23:52.734 warn at Request.emit (events.js:211:7)
    javascript.0 2019-04-01 20:23:52.734 warn at emitOne (events.js:116:13)
    javascript.0 2019-04-01 20:23:52.734 warn at Request.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1161:10)
    javascript.0 2019-04-01 20:23:52.733 warn at Request.emit (events.js:214:7)
    javascript.0 2019-04-01 20:23:52.733 warn at emitTwo (events.js:126:13)
    javascript.0 2019-04-01 20:23:52.733 warn at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22)
    javascript.0 2019-04-01 20:23:52.733 warn at Request._callback (script.js.common.Homematic.Firmversion:127:25)
    javascript.0 2019-04-01 20:23:52.733 warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1258:20)
    javascript.0 2019-04-01 20:23:52.732 warn State "Systemvariable.0.Servicemeldungen.Verfuegbare_CCU-Firmware" not found
    javascript.0 2019-04-01 20:23:52.732 info script.js.common.Homematic.Firmversion: Installierte Firmware 3.45.5.20190330 der CCU ist nicht aktuell. Aktuell verfügbare Version: 2.41.9
    javascript.0 2019-04-01 20:23:52.615 info script.js.common.Homematic.Firmversion: registered 0 subscriptions and 1 schedule
    javascript.0 2019-04-01 20:23:52.614 warn at script.js.common.Homematic.Firmversion:165:5
    javascript.0 2019-04-01 20:23:52.614 warn at func_Version (script.js.common.Homematic.Firmversion:84:30)
    javascript.0 2019-04-01 20:23:52.612 warn getState "Systemvariable.0.Servicemeldungen.Verfuegbare_CCU-Firmware" not found (3)

    cashC 1 Antwort Letzte Antwort
    0
    • Homer.J.H Homer.J.

      @cash Hi cash, Hier mal ein Auszug vom Log.
      Aktuelle Firmversion ist bei mir Installiert.

      javascript.0 2019-04-01 20:23:52.734 warn at process._tickCallback (internal/process/next_tick.js:181:9)
      javascript.0 2019-04-01 20:23:52.734 warn at _combinedTickCallback (internal/process/next_tick.js:139:11)
      javascript.0 2019-04-01 20:23:52.734 warn at endReadableNT (_stream_readable.js:1064:12)
      javascript.0 2019-04-01 20:23:52.734 warn at IncomingMessage.emit (events.js:208:7)
      javascript.0 2019-04-01 20:23:52.734 warn at emitNone (events.js:111:20)
      javascript.0 2019-04-01 20:23:52.734 warn at Object.onceWrapper (events.js:313:30)
      javascript.0 2019-04-01 20:23:52.734 warn at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1083:12)
      javascript.0 2019-04-01 20:23:52.734 warn at Request.emit (events.js:211:7)
      javascript.0 2019-04-01 20:23:52.734 warn at emitOne (events.js:116:13)
      javascript.0 2019-04-01 20:23:52.734 warn at Request.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1161:10)
      javascript.0 2019-04-01 20:23:52.733 warn at Request.emit (events.js:214:7)
      javascript.0 2019-04-01 20:23:52.733 warn at emitTwo (events.js:126:13)
      javascript.0 2019-04-01 20:23:52.733 warn at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22)
      javascript.0 2019-04-01 20:23:52.733 warn at Request._callback (script.js.common.Homematic.Firmversion:127:25)
      javascript.0 2019-04-01 20:23:52.733 warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1258:20)
      javascript.0 2019-04-01 20:23:52.732 warn State "Systemvariable.0.Servicemeldungen.Verfuegbare_CCU-Firmware" not found
      javascript.0 2019-04-01 20:23:52.732 info script.js.common.Homematic.Firmversion: Installierte Firmware 3.45.5.20190330 der CCU ist nicht aktuell. Aktuell verfügbare Version: 2.41.9
      javascript.0 2019-04-01 20:23:52.615 info script.js.common.Homematic.Firmversion: registered 0 subscriptions and 1 schedule
      javascript.0 2019-04-01 20:23:52.614 warn at script.js.common.Homematic.Firmversion:165:5
      javascript.0 2019-04-01 20:23:52.614 warn at func_Version (script.js.common.Homematic.Firmversion:84:30)
      javascript.0 2019-04-01 20:23:52.612 warn getState "Systemvariable.0.Servicemeldungen.Verfuegbare_CCU-Firmware" not found (3)

      cashC Offline
      cashC Offline
      cash
      Most Active
      schrieb am zuletzt editiert von
      #16

      @Homer-J Bitte mal die Konfiguration durchlesen und bearbeiten.

      Vor allen die vier Zeilen:

      //Datenpunkt auswählen wo die installierte Version ersichtlich ist (aus Homematic.Rega Adapter)
      const id_Version_installiert = "hm-rega.0.MEQ0228930.0.FIRMWARE_VERSION"/*hm-rega.0.MEQ0228930.0.FIRMWARE_VERSION*/;
      //Datenpunkt muss manuell angelegt werden. Kann irgendwo angelegt werden. Anschließend hier ersetzen
      const id_Version_Internet = 'Systemvariable.0.Servicemeldungen.Verfuegbare_CCU-Firmware'/*Verfuegbare CCU-Firmware*/;
      

      Laut Log gibt es bei Dir kein Objekt Systemvariable.0.Servicemeldungen.Verfuegbare_CCU-Firmware

      Wo Du das Objekt anlegst und wie es heißt bleibt Dir überlassen. Du kannst unter Javascript etwas anlegen oder eine eigene Ebene bauen. Da ich es gerne ordentlich habe, habe ich ein Oberobjekt angelegt Systemvariable.0 dort packe ich alle meine Datenpunkte rein die ich in meinen Script verwende.

      Homer.J.H 1 Antwort Letzte Antwort
      0
      • cashC cash

        @Homer-J Bitte mal die Konfiguration durchlesen und bearbeiten.

        Vor allen die vier Zeilen:

        //Datenpunkt auswählen wo die installierte Version ersichtlich ist (aus Homematic.Rega Adapter)
        const id_Version_installiert = "hm-rega.0.MEQ0228930.0.FIRMWARE_VERSION"/*hm-rega.0.MEQ0228930.0.FIRMWARE_VERSION*/;
        //Datenpunkt muss manuell angelegt werden. Kann irgendwo angelegt werden. Anschließend hier ersetzen
        const id_Version_Internet = 'Systemvariable.0.Servicemeldungen.Verfuegbare_CCU-Firmware'/*Verfuegbare CCU-Firmware*/;
        

        Laut Log gibt es bei Dir kein Objekt Systemvariable.0.Servicemeldungen.Verfuegbare_CCU-Firmware

        Wo Du das Objekt anlegst und wie es heißt bleibt Dir überlassen. Du kannst unter Javascript etwas anlegen oder eine eigene Ebene bauen. Da ich es gerne ordentlich habe, habe ich ein Oberobjekt angelegt Systemvariable.0 dort packe ich alle meine Datenpunkte rein die ich in meinen Script verwende.

        Homer.J.H Offline
        Homer.J.H Offline
        Homer.J.
        schrieb am zuletzt editiert von Homer.J.
        #17

        @cash Ich meinte die Firmware die passt nicht, die Variable hab ich noch Fix angelegt.

        cashC 1 Antwort Letzte Antwort
        0
        • Homer.J.H Homer.J.

          @cash Ich meinte die Firmware die passt nicht, die Variable hab ich noch Fix angelegt.

          cashC Offline
          cashC Offline
          cash
          Most Active
          schrieb am zuletzt editiert von
          #18

          @Homer-J Das verstehe ich jetzt nicht. Was meinst Du mit Firmware passt nicht? Deine installierte, die im Internet? Was hast Du denn? Einen ccu2, ccu3 oder Raspi?

          Homer.J.H 1 Antwort Letzte Antwort
          0
          • cashC cash

            @Homer-J Das verstehe ich jetzt nicht. Was meinst Du mit Firmware passt nicht? Deine installierte, die im Internet? Was hast Du denn? Einen ccu2, ccu3 oder Raspi?

            Homer.J.H Offline
            Homer.J.H Offline
            Homer.J.
            schrieb am zuletzt editiert von
            #19

            @cash Ich hab die Raspberrymatic CCU3 Version installiert ist 3.45.5.20190330 und angezeigt als neue wird 2.41.9

            cashC 1 Antwort Letzte Antwort
            0
            • Homer.J.H Homer.J.

              @cash Ich hab die Raspberrymatic CCU3 Version installiert ist 3.45.5.20190330 und angezeigt als neue wird 2.41.9

              cashC Offline
              cashC Offline
              cash
              Most Active
              schrieb am zuletzt editiert von
              #20

              @Homer-J Und in der Konfiguration hast Du bei ccu die 4 gewählt?

              Homer.J.H 1 Antwort Letzte Antwort
              0
              • cashC cash

                @Homer-J Und in der Konfiguration hast Du bei ccu die 4 gewählt?

                Homer.J.H Offline
                Homer.J.H Offline
                Homer.J.
                schrieb am zuletzt editiert von
                #21

                @cash Hab ich übersehen :relaxed:
                funktioniert danke Dir.

                Grüße Homer.J.

                1 Antwort Letzte Antwort
                0
                • cashC cash

                  @smartboart Hatte ich schon im Homematic Forum gefunden und eingebaut. Bitte einmal testen und nochmal kurzes Feedback ob es klappt...

                  @Dutchman wie besprochen habe ich Deinen pull request gemerged oder wie auch immer man das nennt :-) Hätte nicht dagegen wenn in in den RPC Adapter eingebunden würde. Per Script ist man halt flexibler und jeder kann sich das ganze so anpassen wie man es will.

                  Habe gerade die aktuelle Version hochgeladen. Jetzt mit Support für Raspberrymatic. Das ganze einfach in der Konfiguration auswählen.

                  smartboartS Offline
                  smartboartS Offline
                  smartboart
                  schrieb am zuletzt editiert von smartboart
                  #22

                  @cash hi warum hast du jetzt alles als const programmiert...bei den States

                  //Datenpunkt auswählen wo die installierte Version ersichtlich ist (aus Homematic.Rega Adapter)
                  const id_Version_installiert = "hm-rega.0.PEQ0624923.0.FIRMWARE_VERSION";
                  //Datenpunkt muss manuell angelegt werden. Kann irgendwo angelegt werden. Anschließend hier ersetzen
                  const id_Version_Internet = 'javascript.0.Status.Homematic.CCU_Firmware.Version';

                  verstehe ich das noch aber den Rest hättest du doch als var belassen können..

                  Die Version wird auch nicht angezeigt in der const_id_Version_Internet bzw. im angelegten State.

                  createState('javascript.0.Status.Homematic.CCU_Firmware.Version',{ read: true, write: true, desc: 'Firmware Version online', type: 'string', name: 'CCU3 Firmware Update Version'});

                  cashC 1 Antwort Letzte Antwort
                  0
                  • smartboartS smartboart

                    @cash hi warum hast du jetzt alles als const programmiert...bei den States

                    //Datenpunkt auswählen wo die installierte Version ersichtlich ist (aus Homematic.Rega Adapter)
                    const id_Version_installiert = "hm-rega.0.PEQ0624923.0.FIRMWARE_VERSION";
                    //Datenpunkt muss manuell angelegt werden. Kann irgendwo angelegt werden. Anschließend hier ersetzen
                    const id_Version_Internet = 'javascript.0.Status.Homematic.CCU_Firmware.Version';

                    verstehe ich das noch aber den Rest hättest du doch als var belassen können..

                    Die Version wird auch nicht angezeigt in der const_id_Version_Internet bzw. im angelegten State.

                    createState('javascript.0.Status.Homematic.CCU_Firmware.Version',{ read: true, write: true, desc: 'Firmware Version online', type: 'string', name: 'CCU3 Firmware Update Version'});

                    cashC Offline
                    cashC Offline
                    cash
                    Most Active
                    schrieb am zuletzt editiert von
                    #23

                    @smartboart Dutchman hat das Script umgeändert von var auf const und let. Soll wohl weniger Probleme geben. Mir ist es egal. Laufen tut diese Version genau wie die alte mit var.

                    Was heißt der Datenpunkt wird nicht beschrieben? Onetime = true?
                    Ansonsten bitte einmal irgend etwas in das angelegte Objekt schreiben. Bei mir funktioniert es ohne Probleme.

                    Ansonsten bitte mal Debug = true und Ausgabe hier posten

                    1 Antwort Letzte Antwort
                    0
                    • smartboartS Offline
                      smartboartS Offline
                      smartboart
                      schrieb am zuletzt editiert von smartboart
                      #24

                      Edit...ok Schwachsinn was ich schreibe....Der state wird nur bei unterschied gesetzt..
                      ich ändere das ab, sodass ich es immer angezeigt bekomme...Möchte das für vis haben...
                      habe jetzt bei den ganzen Elsen das dazu gepackt.. somit ist die Version jetzt auch angezeigt..
                      setState(id_Version_Internet,Version[1]);

                      Nicht wundern hab noch nen state dazu gepackt um ne Anzeige in Vis bei Update Verfügbarkeit aufpoppen zu lassen...

                      Der State wird nicht mit der Verfügbaren Online Version gefüllt...Oder wird die Version nur bei einer höheren bzw. bei verfügbaren Update dort angezeigt?

                      Unbenannt1.PNG

                      Unbenannt.PNG

                      /**************************
                      * Prüft ob im Internet eine neue Firmwarer verfügbar ist
                      * 
                      * 19.03.19 V1.00    Erste Version
                      * 20.03.19 V1.01    Logging optimiert
                      * 01.04.19 V1.02    Firmware kann auch für Rasperrymatic überwacht werden
                      *                   Umstellung von var auf var und let (by Dutchman)
                      **************************/
                      createState('javascript.0.Status.Homematic.CCU_Firmware.Update',{ def: false,  type: 'boolean', name: 'CCU3 Firmware Update verfügbar'});
                      createState('javascript.0.Status.Homematic.CCU_Firmware.Version',{ read: true, write: true, desc: 'Firmware Version online', type: 'string', name: 'CCU3 Firmware Update Version'});
                      
                      var logging = true; 
                      var debugging = true; 
                      var debugging_response = false;       //nur im Fehlerfall auf true. Hiermit wird die Antwort der Internetadresse protokolliert
                      var CCU_Version = 4;                  //Hier eine Zahl eintragen: 2 = CCU2 // 3 = CCU3 // 4 = Rasperrymatic
                      //Datenpunkt auswählen wo die installierte Version ersichtlich ist (aus Homematic.Rega Adapter)
                      const id_Version_installiert = "hm-rega.0.PEQ0624923.0.FIRMWARE_VERSION";
                      //Datenpunkt muss manuell angelegt werden. Kann irgendwo angelegt werden. Anschließend hier ersetzen
                      const id_Version_Internet = 'javascript.0.Status.Homematic.CCU_Firmware.Version';
                      const id_Update_Internet = 'javascript.0.Status.Homematic.CCU_Firmware.Update';
                      
                      
                      var observation = true;         //Dauerhafte Überwachung der Firmware (true = aktiv // false =inaktiv)
                      var onetime = true;             //Prüft beim Scriptstart auf aktuelle Firmware
                      
                      //Prio für Pushover
                      var prio_Firmware = 0;
                      
                      
                      //Variablen für Pushover
                      var sendpush = false;            //true = verschickt per Pushover Nachrchten // false = Pushover wird nicht benutzt
                      var pushover_Instanz0 =  'pushover.0';     // Pushover instance für Pio = 0
                      var pushover_Instanz1 =  'pushover.1';     // Pushover instance für Pio = 1
                      var pushover_Instanz2 =  'pushover.2';     // Pushover instance für Pio = 2
                      var pushover_Instanz3 =  'pushover.3';     // Pushover instance für Pio = -1 oder -2
                      let _prio;
                      let _titel;
                      let _message;
                      var _device = 'TPhone';         //Welches Gerät soll die Nachricht bekommen
                      //var _device = 'All'; 
                      
                      //Variablen für Telegram
                      var sendtelegram = true;            //true = verschickt per Telegram Nachrchten // false = Telegram wird nicht benutzt
                      var user_telegram = 'Smartboart';             //User der die Nachricht bekommen soll
                      
                      //Variable zum verschicken der Servicemeldungen per eMail
                      var sendmail = true;            //true = verschickt per email Nachrchten // false = email wird nicht benutzt
                      
                      
                      // ab hier keine Änderung
                      
                      let _message_tmp;
                      var request = require('request');
                      
                      function send_pushover_V4 (_device, _message, _titel, _prio) {
                              if (_prio === 0){let pushover_Instanz =  pushover_Instanz0}
                              else if (_prio == 1){pushover_Instanz =  pushover_Instanz1}
                              else if (_prio == 2){pushover_Instanz =  pushover_Instanz2}
                              else {pushover_Instanz =  pushover_Instanz3}
                              sendTo(pushover_Instanz, { 
                              device: _device,
                              message: _message, 
                              title: _titel, 
                              priority: _prio,
                              retry: 60,
                              expire: 600,
                              html: 1
                          }); 
                      }
                      
                      function send_telegram (_message, user_telegram) {
                          sendTo('telegram.0', { 
                              text: _message,
                              user: user_telegram,
                              parse_mode: 'HTML'
                          }); 
                      }
                      
                      function send_mail (_message) {
                          sendTo("email", {
                              //from:    "iobroker@mydomain.com",
                              //to:      "aabbcc@gmail.com",
                              subject: "Servicemeldung",
                              text:    _message
                          });
                      }
                      
                      function func_Version(){
                          var Version_Internet = getState(id_Version_Internet).val;
                          var ccu2 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU2&serial=12345';
                          var ccu3 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU3&serial=12345';
                          var Raspi = 'https://gitcdn.xyz/repo/jens-maus/RaspberryMatic/master/release/LATEST-VERSION.js?_version_=CURRENT_VERSION';
                          let ccu;
                          if(CCU_Version == 3){ccu = ccu3;}
                          else if(CCU_Version == 4){ccu = Raspi;}
                          else {ccu = ccu2;}
                          url = ccu;
                      
                          request({url : url},
                      
                              function (error, response, body) {
                                  var Version_installiert = (getState(id_Version_installiert).val).trim();
                                  var Version = body.split("'");
                                  if(error){
                                      log('error: ' + error);
                                  } else {
                                      if(Version_Internet === ''){
                                          if(logging){
                                              log('ausgewähltes Objekt leer. Firmware wird erstmalig gesetzt.');
                                          }
                                          setState(id_Version_Internet,Version[1]);
                                      }
                                      
                                      if(Version_installiert == Version[1]){
                                          setState(id_Update_Internet,false);
                                          if(logging){
                                              log('Installierte Firmware '+Version_installiert  +' der CCU ist aktuell');
                                          }
                                      }
                                      else{
                                          setState(id_Update_Internet,true);
                                          if(logging){
                                              log('Installierte Firmware '+Version_installiert  +' der CCU ist nicht aktuell. Aktuell verfügbare Version: '+Version[1]);
                                          }
                                          
                                          if(Version_Internet == Version[1]){
                                              if(debugging){
                                                  log('[DEBUG] ' +'Version Internet hat sich nicht verändert');
                                              }
                                          } else {
                                              if(debugging){
                                                  log('[DEBUG] ' +'Installierte Firmware der CCU ist nicht aktuell.');
                                              }
                                              setState(id_Version_Internet,Version[1]);
                                               _message_tmp = 'Installierte Firmware der CCU ist nicht aktuell. Installiert: ' +Version_installiert +' --- Verfügbare Version: '+Version[1];
                                              
                                               //Push verschicken
                                              if(sendpush){
                                                  _prio = prio_Firmware;
                                                  _titel = 'CCU-Firmware';
                                                  _message = _message_tmp;
                                                  send_pushover_V4(_device, _message, _titel, _prio);
                                              }
                                              if(sendtelegram){
                                                  _message = _message_tmp;
                                                  send_telegram(_message, user_telegram);
                                              }
                                              if(sendmail){
                                                  _message = _message_tmp;
                                                  send_mail(_message);
                                              }
                                          }         
                                      }
                              
                                      if(debugging_response){
                                          log('body: ' + body);
                                          log('Länge ' + Version.length + ' --- Version: ' + Version[1]);
                                          log('response: ' + JSON.stringify(response));
                                      }
                                  }
                              }
                          );
                      }
                      
                      if(observation){
                          //Nachts einmalig ausführen 00:30 Schaltzeiten berechnen
                          schedule("54 05 * * *", func_Version);
                      }
                      
                      if(onetime){
                          //beim Starten
                          func_Version();
                      }
                      
                      cashC 1 Antwort Letzte Antwort
                      0
                      • smartboartS smartboart

                        Edit...ok Schwachsinn was ich schreibe....Der state wird nur bei unterschied gesetzt..
                        ich ändere das ab, sodass ich es immer angezeigt bekomme...Möchte das für vis haben...
                        habe jetzt bei den ganzen Elsen das dazu gepackt.. somit ist die Version jetzt auch angezeigt..
                        setState(id_Version_Internet,Version[1]);

                        Nicht wundern hab noch nen state dazu gepackt um ne Anzeige in Vis bei Update Verfügbarkeit aufpoppen zu lassen...

                        Der State wird nicht mit der Verfügbaren Online Version gefüllt...Oder wird die Version nur bei einer höheren bzw. bei verfügbaren Update dort angezeigt?

                        Unbenannt1.PNG

                        Unbenannt.PNG

                        /**************************
                        * Prüft ob im Internet eine neue Firmwarer verfügbar ist
                        * 
                        * 19.03.19 V1.00    Erste Version
                        * 20.03.19 V1.01    Logging optimiert
                        * 01.04.19 V1.02    Firmware kann auch für Rasperrymatic überwacht werden
                        *                   Umstellung von var auf var und let (by Dutchman)
                        **************************/
                        createState('javascript.0.Status.Homematic.CCU_Firmware.Update',{ def: false,  type: 'boolean', name: 'CCU3 Firmware Update verfügbar'});
                        createState('javascript.0.Status.Homematic.CCU_Firmware.Version',{ read: true, write: true, desc: 'Firmware Version online', type: 'string', name: 'CCU3 Firmware Update Version'});
                        
                        var logging = true; 
                        var debugging = true; 
                        var debugging_response = false;       //nur im Fehlerfall auf true. Hiermit wird die Antwort der Internetadresse protokolliert
                        var CCU_Version = 4;                  //Hier eine Zahl eintragen: 2 = CCU2 // 3 = CCU3 // 4 = Rasperrymatic
                        //Datenpunkt auswählen wo die installierte Version ersichtlich ist (aus Homematic.Rega Adapter)
                        const id_Version_installiert = "hm-rega.0.PEQ0624923.0.FIRMWARE_VERSION";
                        //Datenpunkt muss manuell angelegt werden. Kann irgendwo angelegt werden. Anschließend hier ersetzen
                        const id_Version_Internet = 'javascript.0.Status.Homematic.CCU_Firmware.Version';
                        const id_Update_Internet = 'javascript.0.Status.Homematic.CCU_Firmware.Update';
                        
                        
                        var observation = true;         //Dauerhafte Überwachung der Firmware (true = aktiv // false =inaktiv)
                        var onetime = true;             //Prüft beim Scriptstart auf aktuelle Firmware
                        
                        //Prio für Pushover
                        var prio_Firmware = 0;
                        
                        
                        //Variablen für Pushover
                        var sendpush = false;            //true = verschickt per Pushover Nachrchten // false = Pushover wird nicht benutzt
                        var pushover_Instanz0 =  'pushover.0';     // Pushover instance für Pio = 0
                        var pushover_Instanz1 =  'pushover.1';     // Pushover instance für Pio = 1
                        var pushover_Instanz2 =  'pushover.2';     // Pushover instance für Pio = 2
                        var pushover_Instanz3 =  'pushover.3';     // Pushover instance für Pio = -1 oder -2
                        let _prio;
                        let _titel;
                        let _message;
                        var _device = 'TPhone';         //Welches Gerät soll die Nachricht bekommen
                        //var _device = 'All'; 
                        
                        //Variablen für Telegram
                        var sendtelegram = true;            //true = verschickt per Telegram Nachrchten // false = Telegram wird nicht benutzt
                        var user_telegram = 'Smartboart';             //User der die Nachricht bekommen soll
                        
                        //Variable zum verschicken der Servicemeldungen per eMail
                        var sendmail = true;            //true = verschickt per email Nachrchten // false = email wird nicht benutzt
                        
                        
                        // ab hier keine Änderung
                        
                        let _message_tmp;
                        var request = require('request');
                        
                        function send_pushover_V4 (_device, _message, _titel, _prio) {
                                if (_prio === 0){let pushover_Instanz =  pushover_Instanz0}
                                else if (_prio == 1){pushover_Instanz =  pushover_Instanz1}
                                else if (_prio == 2){pushover_Instanz =  pushover_Instanz2}
                                else {pushover_Instanz =  pushover_Instanz3}
                                sendTo(pushover_Instanz, { 
                                device: _device,
                                message: _message, 
                                title: _titel, 
                                priority: _prio,
                                retry: 60,
                                expire: 600,
                                html: 1
                            }); 
                        }
                        
                        function send_telegram (_message, user_telegram) {
                            sendTo('telegram.0', { 
                                text: _message,
                                user: user_telegram,
                                parse_mode: 'HTML'
                            }); 
                        }
                        
                        function send_mail (_message) {
                            sendTo("email", {
                                //from:    "iobroker@mydomain.com",
                                //to:      "aabbcc@gmail.com",
                                subject: "Servicemeldung",
                                text:    _message
                            });
                        }
                        
                        function func_Version(){
                            var Version_Internet = getState(id_Version_Internet).val;
                            var ccu2 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU2&serial=12345';
                            var ccu3 = 'http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU3&serial=12345';
                            var Raspi = 'https://gitcdn.xyz/repo/jens-maus/RaspberryMatic/master/release/LATEST-VERSION.js?_version_=CURRENT_VERSION';
                            let ccu;
                            if(CCU_Version == 3){ccu = ccu3;}
                            else if(CCU_Version == 4){ccu = Raspi;}
                            else {ccu = ccu2;}
                            url = ccu;
                        
                            request({url : url},
                        
                                function (error, response, body) {
                                    var Version_installiert = (getState(id_Version_installiert).val).trim();
                                    var Version = body.split("'");
                                    if(error){
                                        log('error: ' + error);
                                    } else {
                                        if(Version_Internet === ''){
                                            if(logging){
                                                log('ausgewähltes Objekt leer. Firmware wird erstmalig gesetzt.');
                                            }
                                            setState(id_Version_Internet,Version[1]);
                                        }
                                        
                                        if(Version_installiert == Version[1]){
                                            setState(id_Update_Internet,false);
                                            if(logging){
                                                log('Installierte Firmware '+Version_installiert  +' der CCU ist aktuell');
                                            }
                                        }
                                        else{
                                            setState(id_Update_Internet,true);
                                            if(logging){
                                                log('Installierte Firmware '+Version_installiert  +' der CCU ist nicht aktuell. Aktuell verfügbare Version: '+Version[1]);
                                            }
                                            
                                            if(Version_Internet == Version[1]){
                                                if(debugging){
                                                    log('[DEBUG] ' +'Version Internet hat sich nicht verändert');
                                                }
                                            } else {
                                                if(debugging){
                                                    log('[DEBUG] ' +'Installierte Firmware der CCU ist nicht aktuell.');
                                                }
                                                setState(id_Version_Internet,Version[1]);
                                                 _message_tmp = 'Installierte Firmware der CCU ist nicht aktuell. Installiert: ' +Version_installiert +' --- Verfügbare Version: '+Version[1];
                                                
                                                 //Push verschicken
                                                if(sendpush){
                                                    _prio = prio_Firmware;
                                                    _titel = 'CCU-Firmware';
                                                    _message = _message_tmp;
                                                    send_pushover_V4(_device, _message, _titel, _prio);
                                                }
                                                if(sendtelegram){
                                                    _message = _message_tmp;
                                                    send_telegram(_message, user_telegram);
                                                }
                                                if(sendmail){
                                                    _message = _message_tmp;
                                                    send_mail(_message);
                                                }
                                            }         
                                        }
                                
                                        if(debugging_response){
                                            log('body: ' + body);
                                            log('Länge ' + Version.length + ' --- Version: ' + Version[1]);
                                            log('response: ' + JSON.stringify(response));
                                        }
                                    }
                                }
                            );
                        }
                        
                        if(observation){
                            //Nachts einmalig ausführen 00:30 Schaltzeiten berechnen
                            schedule("54 05 * * *", func_Version);
                        }
                        
                        if(onetime){
                            //beim Starten
                            func_Version();
                        }
                        
                        cashC Offline
                        cashC Offline
                        cash
                        Most Active
                        schrieb am zuletzt editiert von
                        #25

                        @smartboart Ok Du hast das Script verändert. Auch wenn das eigentlich keine Rolle spielt.

                        Bei Dir hat die Abfrage:

                        if(Version_Internet === '')

                        Nicht funktioniert? Die Frage wäre warum? Wenn man das Objekt manuell anlegt funktioniert es. Evtl liegt es daran das Du es per CreatState anlegst? Wobei das Feld derzeit bei Dir irrelevant ist, da Du die aktuelle Version installiert hast. Das Feld wird nur genutzt wenn Du nicht die aktuelle Version installiert hast damit er weiß das er Dich bereits über eine neue Firmware informiert hat...

                        Spätestens in einen Monat (beim Raspi kommt doch jeden Monat eine neue Version) wird das Feld beschrieben.

                        smartboartS 1 Antwort Letzte Antwort
                        0
                        • cashC cash

                          @smartboart Ok Du hast das Script verändert. Auch wenn das eigentlich keine Rolle spielt.

                          Bei Dir hat die Abfrage:

                          if(Version_Internet === '')

                          Nicht funktioniert? Die Frage wäre warum? Wenn man das Objekt manuell anlegt funktioniert es. Evtl liegt es daran das Du es per CreatState anlegst? Wobei das Feld derzeit bei Dir irrelevant ist, da Du die aktuelle Version installiert hast. Das Feld wird nur genutzt wenn Du nicht die aktuelle Version installiert hast damit er weiß das er Dich bereits über eine neue Firmware informiert hat...

                          Spätestens in einen Monat (beim Raspi kommt doch jeden Monat eine neue Version) wird das Feld beschrieben.

                          smartboartS Offline
                          smartboartS Offline
                          smartboart
                          schrieb am zuletzt editiert von
                          #26

                          @cash ja der part hat nicht funktioniert...

                                     } else {
                          
                                         if(Version_Internet === ''){
                          
                                             if(logging){
                          
                                                 log('ausgewähltes Objekt leer. Firmware wird erstmalig gesetzt.');
                          
                                             }
                          
                                             setState(id_Version_Internet,Version[1]);
                          
                                         }
                          
                          cashC 1 Antwort Letzte Antwort
                          0
                          • smartboartS smartboart

                            @cash ja der part hat nicht funktioniert...

                                       } else {
                            
                                           if(Version_Internet === ''){
                            
                                               if(logging){
                            
                                                   log('ausgewähltes Objekt leer. Firmware wird erstmalig gesetzt.');
                            
                                               }
                            
                                               setState(id_Version_Internet,Version[1]);
                            
                                           }
                            
                            cashC Offline
                            cashC Offline
                            cash
                            Most Active
                            schrieb am zuletzt editiert von
                            #27

                            @smartboart die Frage wäre warum? Ich würde ja fast vermuten das es daran liegt das es nicht manuell angelegt wurde. Wie schon geschrieben ist es aber auch nicht schlimm. Spätestens in einen Monat wird das Feld gesetzt....

                            smartboartS 1 Antwort Letzte Antwort
                            0
                            • cashC cash

                              @smartboart die Frage wäre warum? Ich würde ja fast vermuten das es daran liegt das es nicht manuell angelegt wurde. Wie schon geschrieben ist es aber auch nicht schlimm. Spätestens in einen Monat wird das Feld gesetzt....

                              smartboartS Offline
                              smartboartS Offline
                              smartboart
                              schrieb am zuletzt editiert von
                              #28

                              @cash ja danke...habe den state einfach manuell beschrieben...

                              1 Antwort Letzte Antwort
                              0
                              • cashC Offline
                                cashC Offline
                                cash
                                Most Active
                                schrieb am zuletzt editiert von
                                #29

                                Neuer Tag neue Version. Einige kleine Fehler habe ich behoben aber das wichtigste: Nun kann das Script auch eingesetzt werden wenn man piVCCU nutzt. Dabei ist es egal welche Version man nutzt. Es ist sogar die Abfrage auf testing oder latest möglich.

                                Alex (alias deimos) was so nett und hat ein paar URLS gebastelt.

                                sigi234S RöstkartoffelR 2 Antworten Letzte Antwort
                                0
                                • cashC cash

                                  Neuer Tag neue Version. Einige kleine Fehler habe ich behoben aber das wichtigste: Nun kann das Script auch eingesetzt werden wenn man piVCCU nutzt. Dabei ist es egal welche Version man nutzt. Es ist sogar die Abfrage auf testing oder latest möglich.

                                  Alex (alias deimos) was so nett und hat ein paar URLS gebastelt.

                                  sigi234S Online
                                  sigi234S Online
                                  sigi234
                                  Forum Testing Most Active
                                  schrieb am zuletzt editiert von
                                  #30

                                  @cash
                                  Cool, übrigens neue CCU2 Firmware (2.45.6) ist Heute gekommen.
                                  Ich wurde auch per Mail von deinen Skript einwandfrei verständigt........

                                  Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                  Immer Daten sichern!

                                  cashC 1 Antwort Letzte Antwort
                                  0
                                  • sigi234S sigi234

                                    @cash
                                    Cool, übrigens neue CCU2 Firmware (2.45.6) ist Heute gekommen.
                                    Ich wurde auch per Mail von deinen Skript einwandfrei verständigt........

                                    cashC Offline
                                    cashC Offline
                                    cash
                                    Most Active
                                    schrieb am zuletzt editiert von
                                    #31

                                    @sigi234 so soll es sein. Freut mich das es läuft.

                                    1 Antwort Letzte Antwort
                                    0
                                    • cashC cash

                                      Ich habe ein Script erstellt welches einmal täglich prüft ob es eine neue Firmware für die CCU gibt.

                                      Das ganze findet Ihr auf Github:

                                      Zum Script

                                      Vorher bitte entsprechend Konfigurieren.#

                                      Das Script funktioniert mit allen bekannten CCU-Versionen. Das heißt auch Rasperrymatic oder piVCCU. Einfach in der Konfiguration einstellen.

                                      Außerdem müsst Ihr einen eigenen Datenpunkt erstellen vom Typ Zeichenkette.

                                      Dieser muss

                                      var id_Version_Internet = 'Systemvariable.0.Servicemeldungen.Verfuegbare_CCU-Firmware'/*Verfuegbare CCU-Firmware*/
                                      

                                      dort eingetragen werden.

                                      Zumindest beim erstmal muss ontime = true sein.
                                      Stellt man observation auf true wird einmal täglich überprüft. Gibt es im Internet eine neue Version kann man sich per pushover, Telegram oder mail informieren lassen.

                                      iomountainI Offline
                                      iomountainI Offline
                                      iomountain
                                      schrieb am zuletzt editiert von
                                      #32

                                      @cash hatte gestern die erste Benachrichtigung wegen Update. Super Sache, danke dafür.
                                      Einen Verbesserungsvorschlag noch:
                                      Im Script ein Hinweiß auf github Pruefung-CCU-Firmware
                                      Sollte man in ein paar Jahren ein Update brauchen weiß man gleich wo man nachsehen muss.
                                      Viele Grüße

                                      1 Antwort Letzte Antwort
                                      0
                                      • cashC cash

                                        Neuer Tag neue Version. Einige kleine Fehler habe ich behoben aber das wichtigste: Nun kann das Script auch eingesetzt werden wenn man piVCCU nutzt. Dabei ist es egal welche Version man nutzt. Es ist sogar die Abfrage auf testing oder latest möglich.

                                        Alex (alias deimos) was so nett und hat ein paar URLS gebastelt.

                                        RöstkartoffelR Offline
                                        RöstkartoffelR Offline
                                        Röstkartoffel
                                        schrieb am zuletzt editiert von
                                        #33

                                        @cash
                                        Ich habe gestern dein Script das erste mal installiert und es funktioniert super.
                                        Danke.
                                        Nur erschrocken habe ich mich nach dem Start, als die Telegram-Nachricht ein Update für die CCU meldete.
                                        In den Schrank zur CCU geschaut --> kein Blinken der Led.
                                        In die Homematic Weboberfläche geschaut --> kein Update angezeigt.
                                        Auf eq3 Homepage geschaut, Update verfügbar, also doch alles gut, warte ich dann mal die Nacht ab.
                                        Heute morgen blinkte die CCU auch schön vor sich hin und die GUI zeigte auch ein Update an.

                                        NUC7i3BNH mit Proxmox und ioBroker (VM Debian Buster), Raspi3 (Slave Smartmeter für eHZ easymeter), Hardware CCU2, SMA SB5000TL-21

                                        1 Antwort Letzte Antwort
                                        0
                                        • dslraserD Offline
                                          dslraserD Offline
                                          dslraser
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von
                                          #34

                                          hat funktioniert 👍

                                          Screenshot_20190505-093053_Telegram.jpg

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          471

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe