Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Homematic HCU

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Homematic HCU

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      Frank44 @MrIngenieur last edited by Frank44

      @mringenieur Hallo, ich habe den Umstieg auch gemacht, aber ich bin etwas entäuscht.
      Leider sind nicht alle Datenpunkte so wie mit dem AP.

      • beim Kombisignalgeber HMIP-MP3 fehlen Datenpunkte wie z.B. die LED Steuerung und nicht alle der Sound Datenpunkte sind da
      • bei meinen Schaltmesssteckdosen funktioniert die Leistungsmessung nicht richtig und am nächsten Tag erstmal garnicht, da muss ich den Adapter neu starten
        ( dadurch funktioniert meine läuft und fertig Meldung nicht )

      Das die CCU3 noch mehr Datenpunkte hatte wusste ich ja, lief bei mir auch noch mit, jetzt alles über die HCU.

      Gruß Frank

      apollon77 1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 @Frank44 last edited by

        @frank44 Na das klingt nach Debug Logs und GitHub issues mit den Details (getrennte Issues pro Problem bitte!).

        1 Reply Last reply Reply Quote 1
        • L
          lichtraum @jamalau last edited by lichtraum

          Das von @jamalau beschriebene Problem tritt bei mir auch auf. Allerdings kann ich es nicht auf eine bestimmte Zeit eingrenzen. Es passiert meistens einmal am Tag - aber zu unterschiedlichsten Zeiten. Manchmal läuft der Adapter auch ohne Probleme zwei / drei Tage durch.

          Ich hatte schon überlegt, ein Issue auf Github zu erstellen, aber im Debug Log finde ich einfach keinen Eintrag dazu. Die Log-Einträge verstummen einfach mit Eintreten des Problems.

          Mein Workaround ist ein Skript, welches auf das letzte Update prüft und den Adapter neu startet, falls das Update zu lange her ist. Vielleicht hilft es jemanden:

          /* ------------- CONFIG ------------- */
          const TIME_TREASHOLD = 10 * 60 * 1000; // 10 minutes in ms - wie lange muss das letzte Lebenszeichen her sein
          const ATTEMPTS_TIME = 60 * 60 * 1000; // 60 minutes in ms - wie lange muss der letzte neustart her sein, damit es nicht als neuer Versuch gewertet wird
          const ATTEMPTS_TREASHOLD = 3;  // Anzahl maximaler Neustartversuche
          
          const WATCHING_INSTANCE = 'hmip.0';  // Instanz die überwacht werden soll
          
          /* ------------- SKRIPT ------------- */
          class HomematicWatcher {
              constructor() {
                  this.states = [];
                  this.latestUpdate = new Date('1990-01-01');
                  this.lastRestart = new Date('1990-01-01');
                  this.attempts = 0;
              }
          
              collectStates() {
                  $(`${WATCHING_INSTANCE}.*`).each((id) => { 
                      if(existsState(id)) {
                          this.states.push(id);
                      }
                  });
              }
          
              determineLastestUpdate() {
                  for (let i = 0; i < this.states.length; i++) {
                      const lastUpdate = getState(this.states[i]).ts;
                      if (lastUpdate !== undefined) {
                          const lastUpdate_ts = new Date(lastUpdate);
                          if (lastUpdate_ts > this.latestUpdate) {
                              this.latestUpdate = lastUpdate_ts;
                          }
                      }
                  }
              }
          
              checkForRestart() {
                  if (new Date().getTime() - this.latestUpdate.getTime() > TIME_TREASHOLD) {            
                      // Instanz neu starten
                      this.restartInstance();
                  } 
              }
             
              getInstanceState() {
                  var obj_instance = getObject(`system.adapter.${WATCHING_INSTANCE}`);
                  return obj_instance.common.enabled;
              }
             
              setInstanceState(val) {
                  var obj_instance = getObject(`system.adapter.${WATCHING_INSTANCE}`);
                  obj_instance.common.enabled = val;
                  setObject(`system.adapter.${WATCHING_INSTANCE}`, obj_instance);  
                  console.warn(`HmIP Instanz ${WATCHING_INSTANCE} wurde ${val ? 'gestartet' : 'gestoppt'}`);  
              }
          
              restartInstance() {
                  // Nur neu starten, wenn Instanz bereits läuft 
                  if(this.getInstanceState() != false) {
                  
                          // Anzahl der Neustartversuche zählen, wenn letzter Neustart weniger als ATTEMPTS_TIME her ist
                      if (new Date().getTime() - this.lastRestart.getTime() < ATTEMPTS_TIME) {      
                          this.attempts++;
                      } else {
                          this.attempts = 0;
                      }
          
                      try {
                          // Nur neu starten, wenn Anzahl der erlaubten Versuche noch nicht überschritten wurde
                          if (this.attempts <= ATTEMPTS_TREASHOLD) {                    
                              
                              // Instanz stoppen        
                              this.lastRestart = new Date();
                              this.setInstanceState(false);    
          
                              // Instanz starten
                              setTimeout(() => {                
                                  this.lastRestart = new Date();
                                  this.setInstanceState(true);  
                              }, 3000);          
                          } else {
                              console.error(`Instanz ${WATCHING_INSTANCE} wurde bereits ${this.attempts} mal neugestartet. Abbruch.`);
                          }
                      }
                      catch (e) {
                          console.error(`Fehler beim Neustart der Instanz ${WATCHING_INSTANCE}: ${e}`)
                      }
                  }
              }
          }
          
          // Ausführen bei Skriptstart
          const watcher = new HomematicWatcher()
          watcher.collectStates();
          watcher.determineLastestUpdate();
          watcher.checkForRestart();
          
          // Schedule alle zwei Minuten
          schedule('*/2 * * * *', () => {
              watcher.determineLastestUpdate();
              watcher.checkForRestart();
          });
          
          J 1 Reply Last reply Reply Quote 0
          • J
            jamalau @lichtraum last edited by jamalau

            @lichtraum Hallo, erstmal danke für das Script, nur bin ich ein wenig unbeholfen, außerhalb von Blockly.
            Kannst du kurz erklären, wie ich das einbinde?
            Einfach, genauso wie ein Blocklyscript, ein JavaScript anlegen, deinen Code einfügen, und starten?

            L 1 Reply Last reply Reply Quote 0
            • L
              lichtraum @jamalau last edited by

              @jamalau tatsächlich ist es so einfach:
              JavaScript anlegen, den Code einfügen und starten.

              Nur wenn du mehrere Homematic IP Instanzen hast, müsstest du noch die Variable WATCHING_INSTANCE anpassen.

              Viele Grüße

              J 1 Reply Last reply Reply Quote 0
              • J
                jamalau @lichtraum last edited by

                @lichtraum Irgendetwas klappt bei mir nicht, hänge mal nen Screenshot an!
                Wenn ich die Instanz manuell neu starte, geht es sofort, was kann das für eine Ursache haben?
                Screenshot_20250615_162758_Edge.jpg

                Homoran 1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @jamalau last edited by Homoran

                  @jamalau sagte in Homematic HCU:

                  hänge mal nen Screenshot an!

                  bitte nicht!
                  Screenshot_20250615-163327_Firefox.jpg
                  logs als Text in code-tags posten, dann kann man sie auch lesen, daraus zitieren, usw.

                  edit:
                  zeig mal die Einstellungen der Instanz

                  J 1 Reply Last reply Reply Quote 0
                  • J
                    jamalau @Homoran last edited by

                    @homoran werde ich machen, habe die JS Instanz jetzt geändert und den Haken bei Enable command setObjekt gesetzt, ich hoffe dass das die Ursache war.
                    Screenshot_20250615_164922_Edge.jpg

                    Homoran 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @jamalau last edited by

                      @jamalau sagte in Homematic HCU:

                      den Haken bei Enable command setObjekt gesetzt, ich hoffe dass das die Ursache war.

                      jepp!

                      müssen das 3K Screenshots sein?
                      ich kenne kein Handy, dass das im Portraitmodus darstellen kann.

                      J 1 Reply Last reply Reply Quote 0
                      • J
                        jamalau @Homoran last edited by

                        @homoran sorry hab ihn mit nem Tablet S10ultrra gemacht, werde mich bessern.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        779
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        15
                        52
                        5405
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo