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.
    • J
      jamalau @MrIngenieur last edited by

      @mringenieur Moin, ich habe gestern die Migration durchgeführt, und auf dem iobroker blieb, nach der neuen Anmeldung der HCU, alles beim alten.
      Ich musste nichts ändern, alles funktioniert wie vorher, als ob nie was gewesenen wäre.

      MrIngenieur 1 Reply Last reply Reply Quote 2
      • MrIngenieur
        MrIngenieur @jamalau last edited by

        Wow, Danke @jamalau
        Das klingt ja vielversprechend und hoffnungsvoll 😉
        Hast Du Homematic IP Geräte in irgendwelchen Skripten im Iobroker verwendet gehabt vor der Migration und sind die Pfade komplett gleich geblieben? Du musstest also keine Skripte anpassen?
        Das wäre ja traumhaft 🤩
        Nochmal Danke dass du dir die zeit genommen hast deine Erfahrungen zu teilen!

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

          @mringenieur Ja hatte ich natürlich, ist alles so geblieben wie erhofft, musste nichts anpassen!
          Bei mir ist aber alles in Blockly.

          Nach ein paar Tagen ist mir aufgefallen, das der Adapter morgens hängt, d.h. es werden einige Automatisierungen nicht durchgeführt, nach einem Neustart der Instanz, ist dann alles wieder ok.
          Kann man eine Instanz nicht Zeitgetriggert neu starten, weil es, so wie es aussieht, immer zur selben Zeit passiert?
          Würde dann zu einer gewissen Uhrzeit, jeden Morgen die Instanz neu starten, solange bis der Adapter als stable kommt.

          Edit: Habe es gefunden, im Expertenmodus, kann man das einstellen.

          apollon77 MrIngenieur L 4 Replies Last reply Reply Quote 1
          • apollon77
            apollon77 @jamalau last edited by

            @jamalau Ja das geht, dennoch wäre s schon cool vllt ein Debug Log und ein Issue zu sehen ... vllt kann man das ja auch fixen. Weil bedenke das ein neustart ggf Traffic zur eq-3 Cloud auslöst und das gibt dann vltl issues wenns jeder macht

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

              @jamalau klasse, vielen Dank für die Rückmeldung! Dann werde ich langsam auch mal in Richtung HCU Bestellung übergehen.
              Und ja, zyklischer Restart geht per expertenmodus, auch wenns suboptimal ist.

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

                @jamalau Vielen Dank, ich habe jetzt auch den Schritt gemacht von AccessPoint zur HomeControlUnit HCU inkl. Übertragung des Systems/der bestehenden Installation.
                Ich kann bestätigen dass es überraschend gut funktioniert hat.

                In iobroker habe ich den Umzug wie folgt durchgeführt, und so hat es bei mir gut funktioniert:

                • Bestehende Instanz HMIP.0 so gelassen wie mit dem AccessPoint, also nicht irgendwie gelöscht und neu angelegt oder ähnliches.
                • Konfigurationsdialog für die HMIP.0 Instanz öffnen
                • SGTIN der neuen HCU anstatt des AccessPoint eintragen
                • Device ID löschen (das ist wichtig, sonst klappt es mit der Token-Erstellung nicht, wie ich feststellen musste)
                • PIN habe ich gelassen wie sie war auch bei der HCU, hängt aber davon ab wie ihr in der Homematic App die HCU eingerichtet habt und welchen PIN ihr dort gewählt hattet.
                • alten Auth.-Token, Client-Token und Kunden-ID löschen
                • Dann einmal auf speichern und schließen klicken (das ist offenbar auch wichtig, bevor man auf Token erstellen klickt)
                • Dann einmal an der HCU die obere Taste kurz drücken, dann wechselt die Farbe von blau auf lila blinkend
                • Dann im iobroker HMIP.0 Konfigurationsdialog auf Token erstellen klicken
                • Danach an der HCU noch kurz auf die obere Taste drücken
                • kurz warten bis die neue Device ID und die Token generiert sind
                • speichern und schließen und gut ist.
                • die Instanz HMIP.0 startet neu und verbindet sich nach kurzer Wartezeit

                Die Objekt-Struktur unterhalb der HMIP.0 Instanz bleibt soweit ich gesehen habe unverändert.
                Damit hat auch direkt alles funktioniert was ich in Yahka an HMIP-Geräten in Apple HomeKit angelegt hatte und auch die Skripte funktionieren bisher tadellos.
                Den Adapter Restart den @jamalau angesprochen hat, würde ich weiter beobachten, habe mir jetzt ein Skript geschrieben, dass den Adapter im Falle zu lange offline einfach neu startet.

                Ich hoffe das hilft dem ein oder anderen der auch mit einem Umstieg liebäugelt … Alles in allem war der ioBroker-Teil in weniger als 30 Minuten erledigt.

                F 1 Reply Last reply Reply Quote 0
                • 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

                                    838
                                    Online

                                    31.7k
                                    Users

                                    79.9k
                                    Topics

                                    1.3m
                                    Posts

                                    15
                                    52
                                    4931
                                    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