NEWS
Homematic HCU
-
@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
-
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 -
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@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 @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.
@mringenieur
Sorry - ich habe hier zuletzt nur organisatorisch den Versionsupdate durchgefĂŒhrt. Zur Funktion des Adapters kann ich nichts sagen. -
@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.
@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 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.
@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. -
@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.@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.
-
@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.
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.
-
@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.
@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 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.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! -
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!@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.
-
@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.
-
@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.
@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. -
@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.
@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.
-
@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.
@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
-
@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
-
@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.
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) { extendObject(`system.adapter.${WATCHING_INSTANCE}`, {common: {enabled: val}}); 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(); }); -
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) { extendObject(`system.adapter.${WATCHING_INSTANCE}`, {common: {enabled: val}}); 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(); });@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? -
@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? -
@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
@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?
