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

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Homematic HCU

    This topic has been deleted. Only users with topic management privileges can see it.
    • black.falcon87
      black.falcon87 @jamalau last edited by

      @jamalau sagte in Homematic HCU:

      ist es denn möglich beides, also AP und HCU, gleichzeitig zu betreiben?

      ich lehne mich mal mit Halbwissen aus dem Fenster da ich selbst weder AP noch HCU nutze, aber ich bin mir sicher das ein Homematic IP Gerät immer nur an einer Zentrale angemeldet sein kann.
      Du kannst bei dir Zuhause natürlich eine HCU und auch einen AP in Betrieb nehmen aber ein Gerät wird entweder mit dem einen oder mit dem anderen verbunden.

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

        @apollon77 Danke für den Hinweis auf den Charles Proxy. Ich habe den App Traffic zur HCU untersucht und festgestellt dass sich das Protokoll nur minimal geändert hat.
        Mit einem kleinen Patch funktioniert jetzt auch iobroker mit der HCU, ich habe allerdings noch nicht alles getestet.

        Pull request ist auf github https://github.com/iobroker-community-adapters/ioBroker.hmip/pull/618

        dietzm created this issue in iobroker-community-adapters/ioBroker.hmip

        closed Add support for Homematic Home Control Unit (HCU) #618

        apollon77 1 Reply Last reply Reply Quote 1
        • apollon77
          apollon77 @mdietz last edited by

          @mdietz habs gesehen ... Awesome! Ich habe mit @mcm1957 gesprochen. er kümmert sich nächste woche das es reinkommt und tester Thread erstellt wird

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

            Release 1.26.1 ist unterwegs und sollte ab morgen im LATEST verfügbar sein.

            Topic zum Test gibts hier:
            https://forum.iobroker.net/topic/78553/test-adapter-hmip-1-26-x

            MrIngenieur 1 Reply Last reply Reply Quote 3
            • MrIngenieur
              MrIngenieur @mcm1957 last edited by MrIngenieur

              @mcm1957 @mdietz
              seit gestern gibt es ja die Möglichkeit bestehende AccessPoint-Installationen auf die HCU zu übertragen.
              Wie würde das auf der ioBroker Seite aussehen für das folgende Szenario:

              • bestehende AccessPoint Installation die in ioBroker eingebunden ist
              • in ioBroker bestehende Skripte und yahka-Umsetzung für Apple HomeKit, welche HMIP-Geräte benutzen

              Wenn man jetzt die Migration vom AccessPoint hin zur HCU macht und die HCU in ioBroker einbinden will, gehen dann die ganzen Referenzen auf die bestehende Installation und die bestehenden Geräte verloren oder kann ich die bestehende ioBroker HMIP-Instanz einfach umziehen auf die HCU?

              Es würde ja erheblich Aufwand sparen, wenn man nicht jedes Skript und jede yahka Verbindung händisch nachkorrigieren müsste.

              mcm1957 apollon77 J 3 Replies Last reply Reply Quote 0
              • mcm1957
                mcm1957 @MrIngenieur last edited by

                @mringenieur
                Sorry - ich habe hier zuletzt nur organisatorisch den Versionsupdate durchgeführt. Zur Funktion des Adapters kann ich nichts sagen.

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

                  @mringenieur Dadurch das aktuell denke ich keiner der Entwickler wirklich HMIP und erst recht nicht eine HCU einsetzt und ich mir daher auch nur theoretisch vorstellen kann was deine Frage bedeutet (und wir 0 Ahnung haben was es genau technisch bedeutet) gibt es zwei varianten: Versuch es und dann weisst Du es oder warte bis das jemand anders tut 🙂

                  Keine Ahnung ob hier jemand ein Testsytem damit am laufen hat sodass man das vorab testen könnte.

                  Was denke ich in jedem Fall tut ist das nach der Umstellung alle Werte aus der HMIP kommen und sich aber ggf strukturen ändern und damit neue Objekt IDs kommen ... keine Ahnung was HMIP da technisch genau tut wenn man einen "bestehenden AccessPoint in die HCI einbindet".

                  Ne andere Antwort habe ich leider nicht.

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

                    @apollon77 said in Homematic HCU:

                    Dadurch das aktuell denke ich keiner der Entwickler wirklich HMIP und erst recht nicht eine HCU einsetzt

                    Das war mir in der Deutlichkeit jetzt ehrlich gesagt nicht bewusst.
                    Auf welche Quellen beziehst du dich bei deiner Aussage?
                    Dachte irgendjemand hat ja auch den bisherigen HMIP-Adapter entwickelt und auch die HCU-Anpassung (z.B. @mdietz )durchgeführt. Das war doch ein "Entwickler".
                    Ich würde das grundsätzlich in ioBroker schon ausprobieren, aber nachdem es keinen Weg zurück gibt nach der Migration, wäre eine Testumgebung vermutlich besser geeignet als ein Produktivsystem mit 100 Geräten das danach unbrauchbar sein könnte.
                    Vielleicht gibt es ja auch schon jemanden der damit Erfahrung gesammelt hat, der nicht zwangsläufig Entwickler sein muss, aber seine Erfahrung hier teilen möchte.

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

                      @mringenieur said in Homematic HCU:

                      Dachte irgendjemand hat ja auch den bisherigen HMIP-Adapter entwickelt und auch die HCU-Anpassung (z.B. @mdietz )durchgeführt. Das war doch ein "Entwickler".

                      Ja @mdietz ist Entwickler und kann und wird sich wahrscheinlich zu seinem Wissensstand äußern. Apollon77 kann dir kaum was sagen was andere wissen :-). Du hast ja @mdietz vor wenigen Tagen gezielt angesprochen. Wann er sich meldet kann niemand voraussagen - er ist aber lt. Profil nicht sehr aktiv im Forum.

                      Alle sonstigen Änderungen am Adapter seit 2023 betreffen nur minimale Bugfixes und notwendige Anpassungen an die UI. Du kannst aber gerne direkt auf Github schaun wer wann was gemacht hat und ggF Devs hier gezielt ansprechen.

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

                        Naja nach der initialen Entwicklung war auch bisher nicht so viel zu tun - ausser Optimierungen die per Logs machbar waren.
                        Und ja ich habe mit damals extra einen HMIP Access Point gekauft und betreibe den mit einer Steckdose und einem Wassersensor. Aber beispielsweise eine HCU habe ich nicht und mich daher nur mit dem prüfen und annahmen des PRs von @mdietz damit beschäftigt.

                        Also ja ggf kann @mdietz - ggf auch mal in GitHub mentionen - mehr Licht ins Dunkel bringen.

                        1 Reply Last reply Reply Quote 0
                        • 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();
                                          });
                                          
                                          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

                                          886
                                          Online

                                          31.6k
                                          Users

                                          79.4k
                                          Topics

                                          1.3m
                                          Posts

                                          15
                                          45
                                          4237
                                          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