NEWS
Test Adapter homeconnect (BSH Home-Connect) v0.0.x
-
Ist auch mein erster Adapter, den ich programmiere. Meine JS/Node-Kenntnisse sind auch noch sehr bescheiden. Denke die Profis hier im Forum würden mich für den Code hauen, aber für mich zählt letztlich nur das was hinten rauskommt. Und vor Allem lerne ich dabei. Vor ein paar Wochen hatte ich z.B. keine Ahnung, was es mit Promises auf sich hat. Ist echt eine feine Sache, um diese ganze Ansynchronität von JS zu überwinden.
Ich habe auf jeden Fall noch viel Arbeit vor mir. Bin auch ein Autodidakt, ich frage wirklich erst, wenns garnicht klappen will. Und bisher hab ich alles soweit hinbekommen, auch ohne fremde Hilfe. Und das Problem bekomm ich auch gelöst [emoji3][emoji3][emoji3]
Gruß
dna909
-
Ich finde es super was du machst. Weiter so, wir helfen gerne
-
Alles gut und Danke für das Projekt. ich nutze Node.js: v8.11.3 und NPM: 6.4.1.
-
Bei mir:
root@iobrokerVM:~# nodejs -v v6.13.0 root@iobrokerVM:~# npm -v 3.10.10
-
HI,
erstmal danke für die Arbeit an dem Adapter.
Ich habe auch das Problem, dass nach dem Bestätigen der Authorization-URL der Adapter rot bleibt.
root@ioBroker-Tinker:~# nodejs -v v8.12.0 root@ioBroker-Tinker:~# npm -v 6.4.1
-
Auch von mir erst einmal vollsten Respekt für deine Mühe! Ich habe es auch mal versucht, aber nicht die Zeit gefunden, mich in die Adapterentwicklung einzuarbeiten.
Vor etwa eine Woche habe ich die Version 0.0.4 installiert. Wenn ich das richtig gesehen habe, funktionierte diese auch, zumindest gab es keine Fehlermeldungen. Heute habe ich dann gesehen, dass es Fehler im Log gibt:
! ````
homeconnect.0 2018-12-01 18:26:27.454 info terminating
homeconnect.0 2018-12-01 18:26:27.453 info cleaned everything up...
homeconnect.0 2018-12-01 18:26:27.452 error at processImmediate [as _immediateCallback] (timers.js:745:5)
homeconnect.0 2018-12-01 18:26:27.452 error at tryOnImmediate (timers.js:768:5)
homeconnect.0 2018-12-01 18:26:27.452 error at runCallback (timers.js:810:20)
homeconnect.0 2018-12-01 18:26:27.452 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3429:38)
homeconnect.0 2018-12-01 18:26:27.452 error at Adapter.emit (events.js:214:7)
homeconnect.0 2018-12-01 18:26:27.452 error at emitTwo (events.js:126:13)
homeconnect.0 2018-12-01 18:26:27.452 error at Adapter. <anonymous>(/opt/iobroker/node_modules/iobroker.homeconnect/main.js:195:9)
homeconnect.0 2018-12-01 18:26:27.452 error at eventSetDp (/opt/iobroker/node_modules/iobroker.homeconnect/main.js:201:34)
homeconnect.0 2018-12-01 18:26:27.452 error TypeError: valueVal.split is not a function
homeconnect.0 2018-12-01 18:26:27.452 error uncaught exception: valueVal.split is not a function
homeconnect.0 2018-12-01 18:25:53.796 info starting. Version 0.0.4 in /opt/iobroker/node_modules/iobroker.homeconnect, node: v8.12.0</anonymous>Habe dann gesehen, dass es eine neuere Version 0.0.5 gibt, also habe ich aktualisiert, nun, wie andere bereits berichtet haben, wird der Adapter nicht mehr grün: >! ```` [...] homeconnect.0 2018-12-01 18:34:49.855 info starting. Version 0.0.5 in /opt/iobroker/node_modules/iobroker.homeconnect, node: v8.12.0 homeconnect.0 2018-12-01 18:34:19.077 info starting. Version 0.0.5 in /opt/iobroker/node_modules/iobroker.homeconnect, node: v8.12.0 homeconnect.0 2018-12-01 18:33:48.287 info starting. Version 0.0.5 in /opt/iobroker/node_modules/iobroker.homeconnect, node: v8.12.0 homeconnect.0 2018-12-01 18:33:17.504 info starting. Version 0.0.5 in /opt/iobroker/node_modules/iobroker.homeconnect, node: v8.12.0 homeconnect.0 2018-12-01 18:32:46.683 info starting. Version 0.0.5 in /opt/iobroker/node_modules/iobroker.homeconnect, node: v8.12.0 homeconnect.0 2018-12-01 18:32:15.857 info starting. Version 0.0.5 in /opt/iobroker/node_modules/iobroker.homeconnect, node: v8.12.0 homeconnect.0 2018-12-01 18:31:45.313 error uncaught exception: Cannot read property 'length' of undefined homeconnect.0 2018-12-01 18:31:45.053 info starting. Version 0.0.5 in /opt/iobroker/node_modules/iobroker.homeconnect, node: v8.12.0 >! ```` Node.js: v8.12.0 NPM: 4.6.1 Ich habe die Logs helfen dir, wenn du weitere Infos brauchst, frag ruhig ;)
-
Ich konnte den Adaper installieren und einrichten.
Allerdings bin ich mir nicht sicher, ob hier alle Datenpunkte da sind:
Wenn hier alles ok ist, wo sehe ich den aktuellen Status?
Danke
-
Hi,
da ich mir grade einen neuen Herd gekauft habe der Home Connect beherrscht kommt dein Adapter genau richtig.
Auf den ersten Blick funktioniert auch alles….nur nach einem Tag kommen bekomme ich keine Updates mehr.
Starte ich den Adapter neu, "sehe" ich wenn z.b die Backofentür auf und zu gemacht wird, bzw. welche Temperatur am Backofen eingestellt ist.
Nur am nächsten Tag werden diese Infos nicht mehr zum ioBroker publiziert.
Unter Ereignisse sehe ich aber "system.adapter.homeconnect.0.connected true" mit einer aktuellen Uhrzeit.
Irgendeine Idee woran das liegen kann?
-
Habe im Moment nicht soviel Zeit. Aber die Entwicklung geht bald wieder weiter.
Ich halte Euch auf dem laufenden.
Gruß
dna909
-
Ich schau mir das demnächst mal an. Hab grad nicht soviel Zeit….
Bei mir läuft es. Liegt aber möglicherweise daran das ich nur ein Gerät habe. [emoji2] `
Nope. Tritt auch mit "nur" einem Gerät auf. Auf alle Fälle erst mal schöne Weihnachten.Gruß
Michael
-
Manueller Workarround um den Adapter behelfsmäßig wieder an gang zu bekommen.
Im Verzeichnis die Datei öffnen:
/opt/iobroker/node_modules/iobroker.homeconnect/main.js
In der Zeile 602-604
case "Hob": devicesDp(deviceArray.Hob); break;
entfernen
https://github.com/dna909/ioBroker.home … in.js#L602
Habe die Issue mal aktualisiert und villeicht hilft es dir ja bei der Problemlösung.
Leider bin ich gerade zu blöde mir selber die passende Json rauszusuchen... stehe auf dem schlauch sonst hätte ich da auch mal reingeschaut.
Aber du hast eh mehr Ahnung als ich :roll:
-
Habe gerade mal den Adapter zum Test installiert. Bei mir kommen die gleichen Fehler nach dem LogIn.
Das Löschen von:
case "Hob":
devicesDp(deviceArray.Hob);
break;
brachte bei mir keinen Erfolg.
-
ich habe es heute auf Github mitbekommen das es sich wohl nicht nur um den einen Gerätetypen handelt.
In meinem Fall war es der Hob (Kochfeld). Seit dem ich es raus genommen habe gehen alle anderen Geräte mit dem Adapter.
Dann wird es bei dir wohl ein anderes Gerät sein.
Siehe Log der Eintrag der auf die Zeile 579 - 623 verweist.
-
Habe heute mal versucht das zu flicken. Vielleicht ist es Zufall, aber der Adapter hängt sich bei mir am "Dryer" auf. Und das ist genau das Gerät worauf es mir eigentlich ankommt :?
Kurioserweise wurden aber dennoch Datenpunkte angelegt. Allerdings nur ziemlich wenige:
Nach dem Anschalten des Trockners ist der Adapter dann wieder gecrashed:
host.ioBroker 2018-12-25 09:07:57.157 error instance system.adapter.homeconnect.0 terminated with code 0 (OK) Caught 2018-12-25 09:07:57.157 error by controller[0]: at processImmediate [as _immediateCallback] (timers.js:745:5) Caught 2018-12-25 09:07:57.157 error by controller[0]: at tryOnImmediate (timers.js:768:5) Caught 2018-12-25 09:07:57.157 error by controller[0]: at runCallback (timers.js:810:20) Caught 2018-12-25 09:07:57.157 error by controller[0]: at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3429:38) Caught 2018-12-25 09:07:57.157 error by controller[0]: at Adapter.emit (events.js:214:7) Caught 2018-12-25 09:07:57.157 error by controller[0]: at emitTwo (events.js:126:13) Caught 2018-12-25 09:07:57.157 error by controller[0]: at Adapter. <anonymous>(/opt/iobroker/node_modules/iobroker.homeconnect/main.js:327:31) Caught 2018-12-25 09:07:57.157 error by controller[0]: at JSON.parse (<anonymous>) Caught 2018-12-25 09:07:57.157 error by controller[0]: SyntaxError: Unexpected end of JSON input homeconnect.0 2018-12-25 09:07:57.153 info terminating homeconnect.0 2018-12-25 09:07:57.152 info cleaned everything up... homeconnect.0 2018-12-25 09:07:57.152 error at processImmediate [as _immediateCallback] (timers.js:745:5) homeconnect.0 2018-12-25 09:07:57.152 error at tryOnImmediate (timers.js:768:5) homeconnect.0 2018-12-25 09:07:57.152 error at runCallback (timers.js:810:20) homeconnect.0 2018-12-25 09:07:57.152 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3429:38) homeconnect.0 2018-12-25 09:07:57.152 error at Adapter.emit (events.js:214:7) homeconnect.0 2018-12-25 09:07:57.152 error at emitTwo (events.js:126:13) homeconnect.0 2018-12-25 09:07:57.152 error at Adapter. <anonymous>(/opt/iobroker/node_modules/iobroker.homeconnect/main.js:327:31) homeconnect.0 2018-12-25 09:07:57.152 error at JSON.parse (<anonymous>) homeconnect.0 2018-12-25 09:07:57.152 error SyntaxError: Unexpected end of JSON input homeconnect.0 2018-12-25 09:07:57.151 error uncaught exception: Unexpected end of JSON input</anonymous></anonymous></anonymous></anonymous>
Anschließend startete der Adapter wieder und läuft auch (Trockner noch angeschaltet), kein Programm gestartet.
Startet nun ein Programm erkennt man auch einen NOTIFY im Log, ebenso beim Beenden. Das Programm und / oder die Settings werden allerdings (noch) nicht angezeigt.
Mir scheint es bzgl. des Absturzproblems womöglich eher, dass er abstürzt wenn ein Gerät vorhanden IST.
Beim anschließenden Ausschalten des Trockners das gleiche Spiel wie beim Anschalten. Der Adapter crasht, startet dann neu und läuft auch wieder. In der main.js habe ich den Teil wegkommentiert:
case "Dryer": adapter.log.debug('Type= ' + type); devicesDp(deviceArray.Dryer); break;
Sobald ich ihn wieder reinnehme, schmiert der Adapter wieder ab und kommt da auch nicht mehr raus.
-
Meine Hammer Lösung macht wenn man das Gerät benötigt keinen sinn.
Dachte auch zuerst da ich nur 2 andere Geräte besitze wir hätte nur ein Problem mit dem HOB aber dem scheint ja nicht so.
Ohne Geräte bekommt fragt der Adapter ja auch die Json's nicht ab somit läuft er. Vermute immer noch das zwischen Adapter und dem geliefertem Json irgendwas nicht stimmt.
Habe aber zu wenig Ahnung zum richtigen selber gucken bzw zu wenig Zeit um mich da intensivst mit zu beschäftigen.
Müssen wir wohl warten bis dna909 wieder Zeit findet oder ein anderer nachschauen mag.
-
Sorry. Aber momentan wirklich überhaupt keine Zeit. Sobald ich wieder etwas Luft habe, geht es weiter.
Also Geduld [emoji16]
Grüße
dna909
-
Ich habe mir den Sourcecode mal angesehen. Habe aber so auf die Kürze noch nicht herrausgefunden was wie wo passiert. Dass meine Programmierzeiten lange zurück sind, ich auch kein begnadeter Programmierer war / bin und mir die API für Home Connect noch nicht angesehen habe macht es da auch nicht besser. Nichts desto trotz werde ich noch mal versuchen mir das näher anzusehen um ggf. dna auch einfach nur unterstützten zu können.
Der Meldung nach würde ich aber davon ausgehen, dass irgendwo ein Problem mit der JSON Antwort bzw. es ein Problem mit der Auswertung gibt was dann zum Crash führt.
-
Ich habe nen Fix als PullRequest eingegebenen. Bei mir läuft der Adapter damit mit 3 Geräten ohne Probleme!
https://github.com/dna909/ioBroker.homeconnect/pull/7
Hier mein Fork zum ausprobieren:
-
Hallo, danke für die Korrektur!
Habe den Fix mal probiert. Er startet jetzt ohne Crash. Sobald das Home Connect Gerät (hier Trockner) angeschaltet wird, crasht er aber leider weiterhin (und kmmt dann kurz drauf wieder hoch):
homeconnect.0 2019-01-05 12:06:49.339 info starting. Version 0.0.5 in /opt/iobroker/node_modules/iobroker.homeconnect, node: v8.15.0 host.ioBroker 2019-01-05 12:06:49.023 info instance system.adapter.homeconnect.0 started with pid 19546 host.ioBroker 2019-01-05 12:06:19.018 info Restart adapter system.adapter.homeconnect.0 because enabled host.ioBroker 2019-01-05 12:06:19.018 error instance system.adapter.homeconnect.0 terminated with code 0 (OK) Caught 2019-01-05 12:06:19.018 error by controller[1]: at processImmediate [as _immediateCallback] (timers.js:745:5) Caught 2019-01-05 12:06:19.018 error by controller[1]: at tryOnImmediate (timers.js:768:5) Caught 2019-01-05 12:06:19.018 error by controller[1]: at runCallback (timers.js:810:20) Caught 2019-01-05 12:06:19.018 error by controller[1]: at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3429:38) Caught 2019-01-05 12:06:19.018 error by controller[1]: at Adapter.emit (events.js:214:7) Caught 2019-01-05 12:06:19.018 error by controller[1]: at emitTwo (events.js:126:13) Caught 2019-01-05 12:06:19.018 error by controller[1]: at Adapter. <anonymous>(/opt/iobroker/node_modules/iobroker.homeconnect/main.js:318:33) Caught 2019-01-05 12:06:19.018 error by controller[1]: at JSON.parse (<anonymous>) Caught 2019-01-05 12:06:19.018 error by controller[1]: SyntaxError: Unexpected end of JSON input homeconnect.0 2019-01-05 12:06:19.013 info terminating homeconnect.0 2019-01-05 12:06:19.011 info cleaned everything up... homeconnect.0 2019-01-05 12:06:19.011 error at processImmediate [as _immediateCallback] (timers.js:745:5) homeconnect.0 2019-01-05 12:06:19.011 error at tryOnImmediate (timers.js:768:5) homeconnect.0 2019-01-05 12:06:19.011 error at runCallback (timers.js:810:20) homeconnect.0 2019-01-05 12:06:19.011 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3429:38) homeconnect.0 2019-01-05 12:06:19.011 error at Adapter.emit (events.js:214:7) homeconnect.0 2019-01-05 12:06:19.011 error at emitTwo (events.js:126:13) homeconnect.0 2019-01-05 12:06:19.011 error at Adapter. <anonymous>(/opt/iobroker/node_modules/iobroker.homeconnect/main.js:318:33) homeconnect.0 2019-01-05 12:06:19.011 error at JSON.parse (<anonymous>) homeconnect.0 2019-01-05 12:06:19.011 error SyntaxError: Unexpected end of JSON input homeconnect.0 2019-01-05 12:06:19.011 error uncaught exception: Unexpected end of JSON input</anonymous></anonymous></anonymous></anonymous>
Beim Start eines Programmes kommt es zu keinem Crash mehr. Beim Stoppen aber schon:
host.ioBroker 2019-01-05 12:15:38.435 info Restart adapter system.adapter.homeconnect.0 because enabled host.ioBroker 2019-01-05 12:15:38.435 error instance system.adapter.homeconnect.0 terminated with code 0 (OK) Caught 2019-01-05 12:15:38.435 error by controller[0]: at processImmediate [as _immediateCallback] (timers.js:745:5) Caught 2019-01-05 12:15:38.435 error by controller[0]: at tryOnImmediate (timers.js:768:5) Caught 2019-01-05 12:15:38.435 error by controller[0]: at runCallback (timers.js:810:20) Caught 2019-01-05 12:15:38.435 error by controller[0]: at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3429:38) Caught 2019-01-05 12:15:38.435 error by controller[0]: at Adapter.emit (events.js:214:7) Caught 2019-01-05 12:15:38.435 error by controller[0]: at emitTwo (events.js:126:13) Caught 2019-01-05 12:15:38.435 error by controller[0]: at Adapter. <anonymous>(/opt/iobroker/node_modules/iobroker.homeconnect/main.js:318:33) Caught 2019-01-05 12:15:38.435 error by controller[0]: at JSON.parse (<anonymous>) Caught 2019-01-05 12:15:38.435 error by controller[0]: SyntaxError: Unexpected end of JSON input homeconnect.0 2019-01-05 12:15:38.426 info terminating homeconnect.0 2019-01-05 12:15:38.425 info cleaned everything up... homeconnect.0 2019-01-05 12:15:38.425 error at processImmediate [as _immediateCallback] (timers.js:745:5) homeconnect.0 2019-01-05 12:15:38.425 error at tryOnImmediate (timers.js:768:5) homeconnect.0 2019-01-05 12:15:38.425 error at runCallback (timers.js:810:20) homeconnect.0 2019-01-05 12:15:38.425 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3429:38) homeconnect.0 2019-01-05 12:15:38.425 error at Adapter.emit (events.js:214:7) homeconnect.0 2019-01-05 12:15:38.425 error at emitTwo (events.js:126:13) homeconnect.0 2019-01-05 12:15:38.425 error at Adapter. <anonymous>(/opt/iobroker/node_modules/iobroker.homeconnect/main.js:318:33) homeconnect.0 2019-01-05 12:15:38.425 error at JSON.parse (<anonymous>) homeconnect.0 2019-01-05 12:15:38.425 error SyntaxError: Unexpected end of JSON input homeconnect.0 2019-01-05 12:15:38.425 error uncaught exception: Unexpected end of JSON input</anonymous></anonymous></anonymous></anonymous>
Läuft der Trockner sieht es bei den Instanzen so aus. Bei einigen Einträgen fehlen zwar die Werte noch (Programm, Einstellungen, Remotestart etc.) fehlen zwar, aber die Restzeit wird z. Bsp. angezeigt:
-
kannst du mal den wert des States "homeconnect.0/dev/eventStreamJSON" bei den Objects rauslesen und hier pasten?
sieht z.B. so aus:
{"type":"NOTIFY","data":"{\"items\":[{\"timestamp\":1546692532,\"handling\":\"none\",\"uri\":\"/api/homeappliances/BOSCH-SBV88TX36E-68A40E1A8753/programs/active/BSH.Common.Option.ProgramProgress\",\"key\":\"BSH.Common.Option.ProgramProgress\",\"unit\":\"%\",\"value\":85,\"level\":\"hint\"}]}","lastEventId":"BOSCH-SBV88TX36E-68A40E1A8753","origin":"https://api.home-connect.com"}
Zum debuggen könntest du auch mal in der main.js die Zeile "//adapter.log.info('stateChange ' + id + ' ' + JSON.stringify(state));" (Zeile 307) wieder einkommentieren (also die zwei // weg machen). Dann siehts du im Log was für ein JSON da ankommt.