NEWS
Test Adapter TP-Link Tapo
-
Hi ich habe ein neuen Adapter für TP-Link die mit der Tapo App überwacht werden können, geschrieben.
Der Adapter loggt sich über die Cloud ein um alle Geräte mit IP zu finden
Wenn das Gerät nicht als online erkannt wird kann manuell die IP gesetzt wird.
tapo.0.id.ipDann versucht er sich lokal mit username und Password auf die Geräte zu verbinden und zu steuern.
Aktuelle Werte:
tapo.0.idMotion Detection funktioniert mit Stream User und Password
Minimum Node v14 muss installiert sein, sonst bekommt man exit code 25 beim installierenZum Installieren:
https://github.com/TA2k/ioBroker.tapoFür die aktuelle Version bitte das latest Repo auswählen:
Loginablauf:
Die Tapo App Zugangsdaten eingebenSteuern
tapo.0.id.remote auf true setzen steuert den jeweiligen Befehl -
@tombox der läuft dann über die cloud ... ??
-
@arteck Teils teils.
Er loggt sich über die Cloud ein um alle Geräte mit IP zu finden
Dann versucht er sich lokal mit username und Password auf die Geräte zu verbinden und zu steuern.
Ich könnte auch alles über cloud steuern aber das ist ja nicht notwendig -
@tombox , ganz herzlichen Dank! Bei mir haben Installation und Anbindung auf Anhieb einwandfrei funktioniert. Das Killerfeature für Deinen Adapter wäre meines Erachtens tatsächlich das Bereitstellen der aktuellen und bisherigen Verbrauchs für die P115. Bislang habe ich das mit Fritz-Steckdosen gemacht. Diese sind aber aktuell entweder nicht verfügbar oder unendlich teuer.
-
@nmehnert73 Sollte die aktuelle Version bereitstellen. Einfach via GitHub neuinstallierten und nach current suchen
-
Hallo @tombox
erst mal vielen Dank für den Adapter
Ich habe den Adapter installiert und mal mit einem P115 angefangen.
Das läuft auch erst mal soweit ganz gut.Irgendwann fängt der Adapter aber scheinbar unkontrolliert an Datenpunkte zu schreiben und bringt dann (reproduzierbar) das System zum erliegen.
Kurz davor finden sich wiederholt solche Einträge im Log:
2022-09-01 16:58:24.218 - warn: tapo.0 (291458) This object will not be created in future versions. Please report this to the developer. 2022-09-01 16:58:24.318 - warn: tapo.0 (291458) Object tapo.0.8022E9B11F9684A8B185F6C3E8AD164D2001CF04.request._currentRequest.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage._events.error is invalid: obj.common.type has an invalid value (function) but has to be one of number, string, boolean, array, object, mixed, file, json 2022-09-01 16:58:24.319 - warn: tapo.0 (291458) This object will not be created in future versions. Please report this to the developer. 2022-09-01 16:58:24.323 - warn: tapo.0 (291458) Object tapo.0.8022E9B11F9684A8B185F6C3E8AD164D2001CF04.request._currentRequest.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage._events.error is invalid: obj.common.type has an invalid value (function) but has to be one of number, string, boolean, array, object, mixed, file, json 2022-09-01 16:58:24.323 - warn: tapo.0 (291458) This object will not be created in future versions. Please report this to the developer. 2022-09-01 16:58:24.339 - warn: tapo.0 (291458) Object tapo.0.8022E9B11F9684A8B185F6C3E8AD164D2001CF04.request._currentRequest.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage.socket._httpMessage._events.error is invalid: obj.common.type has an invalid value (function) but has to be one of number, string, boolean, array, object, mixed, file, json 2022-09-01 16:58:24.340 - warn: tapo.0 (291458) This object will not be created in future versions. Please report this to the developer.
Ein paar Stunden vorher sieht das noch so aus:
2022-09-01 13:33:46.859 - warn: tapo.0 (291458) This object will not be created in future versions. Please report this to the developer. 2022-09-01 13:33:46.915 - warn: tapo.0 (291458) Object tapo.0.8022E9B11F9684A8B185F6C3E8AD164D2001CF04.request._options.nativeProtocols.http:.ServerResponse is invalid: obj.common.type has an invalid value (function) but has to be one of number, string, boolean, array, object, mixed, file, json 2022-09-01 13:33:46.916 - warn: tapo.0 (291458) This object will not be created in future versions. Please report this to the developer. 2022-09-01 13:33:46.975 - warn: tapo.0 (291458) Object tapo.0.8022E9B11F9684A8B185F6C3E8AD164D2001CF04.request._options.nativeProtocols.http:.createServer is invalid: obj.common.type has an invalid value (function) but has to be one of number, string, boolean, array, object, mixed, file, json
Die id dieser Datenpunkte wird also (scheinbar) immer länger.
-
@mrbungle64 Ok schaue ich mir an kannst du den log level auf debug setzen das hilft beim nächsten mal
-
@tombox sagte in Test Adapter TP-Link Tapo:
@mrbungle64 Ok schaue ich mir an kannst du den log level auf debug setzen das hilft beim nächsten mal
Ich habe den Adapter nun erst mal wieder deinstalliert, da es ja reproduzierbar das System zum erliegen bringt und ich das dann das letzte Backup einspielen muss. Das möchte ich ungerne ein drittes Mal machen.
Ich würde vorschlagen, dass du dir das erst mal anschaust. Dann kann ich das gerne wieder testen (und den log level dann auf debug stellen) wenn du denkst den Fehler behoben zu haben.
-
@mrbungle64 Ich habe zusätzliche checks eingebaut bitte mal via GitHub erneut installieren
-
@tombox sagte in Test Adapter TP-Link Tapo:
@mrbungle64 Ich habe zusätzliche checks eingebaut bitte mal via GitHub erneut installieren
Alles klar, danke
Habe den Adapter wieder am laufen - werde dann Feedback geben.
-
Hi zusammen,
ich habe den Adapter ebenfalls gerade installiert. Hat super funktioniert!
Danke @tombox@tombox : Gibt es auch einen Datenpunkt wo ich sehen kann, ob die Steckdose online, oder offline ist? Ich nutze die Dosen nämlich, um den Überschuss von meinem Balkonkraftwerk zu verbrauchen. Sobald Überschuss anliegt, schaltet die Dose ein und lädt beispielsweise einen Akku oder ähnliches. Jetzt habe ich die Dose nicht dauerhaft eingesteckt und das LOG läuft voll mit Warnungen, dass die Dose nicht erreichbar ist.
2022-09-02 16:28:39.437 - [31merror[39m: tapo.0 (7004) 371 Error: timeout of 2000ms exceeded 2022-09-02 16:28:39.437 - [31merror[39m: tapo.0 (7004) Malformed response sysinfo 2022-09-02 16:28:39.437 - [31merror[39m: tapo.0 (7004) {"message":"timeout of 2000ms exceeded","name":"Error","stack":"Error: timeout of 2000ms exceeded\n at createError (I:\\ioBroker\\node_modules\\axios\\lib\\core\\createError.js:16:15)\n at RedirectableRequest.handleRequestTimeout (I:\\ioBroker\\node_modules\\axios\\lib\\adapters\\http.js:369:16)\n at RedirectableRequest.emit (node:events:513:28)\n at RedirectableRequest.emit (node:domain:489:12)\n at Timeout.<anonymous> (I:\\ioBroker\\node_modules\\follow-redirects\\index.js:164:12)\n at listOnTimeout (node:internal/timers:559:17)\n at processTimers (node:internal/timers:502:7)","config":{"transitional":{"silentJSONParsing":true,"forcedJSONParsing":true,"clarifyTimeoutError":false},"transformRequest":[null],"transformResponse":[null],"timeout":2000,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"headers":{"Accept":"application/json, text/plain, */*","Content-Type":"application/json","Cookie":"TP_SESSIONID=5D629FC18C451FD42BAD1AD443FE9AD6","User-Agent":"axios/0.26.1","Content-Length":162},"method":"post","url":"http://192.168.1.212/app?token=F2A632D7C892B2C2FC0FB7C2611537C0","data":"{\"method\":\"securePassthrough\",\"params\":{\"request\":\"lZJ4fWFztXWbwC6irwo5+yrhrpeoRB7ONey4v8k1yz3y+BrH6ZrzyU7c4q2U=\"}}"},"code":"ECONNABORTED","status":null} 2022-09-02 16:28:44.449 - [31merror[39m: tapo.0 (7004) 371 Error: timeout of 2000ms exceeded 2022-09-02 16:28:44.449 - [31merror[39m: tapo.0 (7004) Malformed response sysinfo 2022-09-02 16:28:44.450 - [31merror[39m: tapo.0 (7004) {"message":"timeout of 2000ms exceeded","name":"Error","stack":"Error: timeout of 2000ms exceeded\n at createError (I:\\ioBroker\\node_modules\\axios\\lib\\core\\createError.js:16:15)\n at RedirectableRequest.handleRequestTimeout (I:\\ioBroker\\node_modules\\axios\\lib\\adapters\\http.js:369:16)\n at RedirectableRequest.emit (node:events:513:28)\n at RedirectableRequest.emit (node:domain:489:12)\n at Timeout.<anonymous> (I:\\ioBroker\\node_modules\\follow-redirects\\index.js:164:12)\n at listOnTimeout (node:internal/timers:559:17)\n at processTimers (node:internal/timers:502:7)","config":{"transitional":{"silentJSONParsing":true,"forcedJSONParsing":true,"clarifyTimeoutError":false},"transformRequest":[null],"transformResponse":[null],"timeout":2000,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"headers":{"Accept":"application/json, text/plain, */*","Content-Type":"application/json","Cookie":"TP_SESSIONID=5D62DD6","User-Agent":"axios/0.26.1","Content-Length":162},"method":"post","url":"http://192.168.1.212/app?token=F2A632DC0","data":"{\"method\":\"securePassthrough\",\"params\":{\"request\":\"lZJ4fWFztXWshZbJmdL/WGMNM9sTf+UqMoQ=\"}}"},"code":"ECONNABORTED","status":null} 2022-09-02 16:28:48.577 - [31merror[39m: tapo.0 (7004) 372 Error Code: timeout of 2000ms exceeded, undefined 192.168.1.212 2022-09-02 16:28:49.455 - [31merror[39m: tapo.0 (7004) 371 Error: timeout of 2000ms exceeded 2022-09-02 16:28:49.456 - [31merror[39m: tapo.0 (7004) Malformed response sysinfo 2022-09-02 16:28:49.456 - [31merror[39m: tapo.0 (7004) {"message":"timeout of 2000ms exceeded","name":"Error","stack":"Error: timeout of 2000ms exceeded\n at createError (I:\\ioBroker\\node_modules\\axios\\lib\\core\\createError.js:16:15)\n at RedirectableRequest.handleRequestTimeout (I:\\ioBroker\\node_modules\\axios\\lib\\adapters\\http.js:369:16)\n at RedirectableRequest.emit (node:events:513:28)\n at RedirectableRequest.emit (node:domain:489:12)\n at Timeout.<anonymous> (I:\\ioBroker\\node_modules\\follow-redirects\\index.js:164:12)\n at listOnTimeout (node:internal/timers:559:17)\n at processTimers (node:internal/timers:502:7)","config":{"transitional":{"silentJSONParsing":true,"forcedJSONParsing":true,"clarifyTimeoutError":false},"transformRequest":[null],"transformResponse":[null],"timeout":2000,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"headers":{"Accept":"application/json, text/plain, */*","Content-Type":"application/json","Cookie":"TP_SESSIONID=5D629FC18C4FE9AD6","User-Agent":"axios/0.26.1","Content-Length":162},"method":"post","url":"http://192.168.1.212/app?token=F2A632D92B2C0","data":"{\"method\":\"securePassthrough\",\"params\":{\"request\":\"lZJ4fWFztXWkD6U=\"}}"},"code":"ECONNABORTED","status":null} 2022-09-02 16:28:50.583 - [31merror[39m: tapo.0 (7004) 371 Error: timeout of 2000ms exceeded 2022-09-02 16:28:50.583 - [31merror[39m: tapo.0 (7004) Malformed response sysinfo 2022-09-02 16:28:50.583 - [31merror[39m: tapo.0 (7004) {"message":"timeout of 2000ms exceeded","name":"Error","stack":"Error: timeout of 2000ms exceeded\n at createError (I:\\ioBroker\\node_modules\\axios\\lib\\core\\createError.js:16:15)\n at RedirectableRequest.handleRequestTimeout (I:\\ioBroker\\node_modules\\axios\\lib\\adapters\\http.js:369:16)\n at RedirectableRequest.emit (node:events:513:28)\n at RedirectableRequest.emit (node:domain:489:12)\n at Timeout.<anonymous> (I:\\ioBroker\\node_modules\\follow-redirects\\index.js:164:12)\n at listOnTimeout (node:internal/timers:559:17)\n at processTimers (node:internal/timers:502:7)","config":{"transitional":{"silentJSONParsing":true,"forcedJSONParsing":true,"clarifyTimeoutError":false},"transformRequest":[null],"transformResponse":[null],"timeout":2000,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"headers":{"Accept":"application/json, text/plain, */*","Content-Type":"application/json","Cookie":"TP_SESSIONID=5D69AD6","User-Agent":"axios/0.26.1","Content-Length":162},"method":"post","url":"http://192.168.1.212/app?token=F2A632D7C7C0","data":"{\"method\":\"securePassthrough\",\"params\":{\"request\":\"lZJRfrI=\"}}"},"code":"ECONNABORTED","status":null}
-
@tombox sagte in Test Adapter TP-Link Tapo:
@mrbungle64 Ich habe zusätzliche checks eingebaut bitte mal via GitHub erneut installieren
Bisher sind die von mir berichteten Probleme nicht mehr aufgetreten
-
@mrbungle64 Sind denn Fehler im log zu sehen?
-
@tombox sagte in Test Adapter TP-Link Tapo:
@mrbungle64 Sind denn Fehler im log zu sehen?
Nein, nur die von @surfer09 erwähnten Error Meldungen, wenn das Device nicht eingesteckt ist.
-
@surfer09 Ich habe die log nachrichten nochmal reduziert
-
@tombox Super, Danke für deine Arbeit! Müssen wir den Adapter jetzt einmal deinstallieren und dann wieder installieren?
-
@surfer09 Ich hatte jetzt ebenfalls das Problem, das mir das ganze System um die Ohren geflogen ist. Der IO-Broker Dienst ließ sich auch nicht mehr starten. Ich musste auch ein Backup zurückspielen...
-
@surfer09 Sollte eigentlich nicht passieren aber hast sicher auch keine error logs.
Es war aber sicher die Situation das eine Steckdose nicht online war? -
@tombox Ich hätte dir gerne LOGs gegeben, das System war aber schon zerschossen und ich konnte es nicht mehr starten.
Was ich sicher sagen kann: Es war eine Steckdose nicht eingesteckt, also nicht online. 2 waren eingesteckt.
Bemerkt hatte ich das Problem auch erst, als ich gesehen hatte, dass sich die Steckdosen nicht einschalteten.
Ich wollte dann zum Testen manuell den Datenpunkt "remote" auf "true" setzen, damit sich die Dose einschaltet, das funktionierte aber auch nicht mehr. Er hatte dann auch einen Fehler, aber den Wortlaut kann ich dir leider auch nicht sagen. Es war aber nicht der Fehler, wie bei @mrbungle64 -
@surfer09 sagte in Test Adapter TP-Link Tapo:
@tombox Ich hätte dir gerne LOGs gegeben, das System war aber schon zerschossen und ich konnte es nicht mehr starten.
Falls du das System nicht komplett neu aufgesetzt hast könntest du mit
cat /opt/iobroker/log/iobroker.current.log | grep tapo
schauen ob noch was davon da ist.