NEWS
lgtv Adapter zur Steuerung von LG WebOS SmartTVs
-
BIsschen komisch ist das schon, allerdings das mit der 1 Minute neuconnecten is so gewollt, dasssollte man auch immer abwarten beim Testen. Hintergrund:
Ich habe die Erfahrung gemacht, dass der Websocket im Hintergrund sauber connected bleibt bei meinem TV, wenn er aus ist und so sollte es auch sein. Wenn der TV sich dann einschaltet, meldet er sich beim Adapter wieder und alles ist gut. Ich hatte es aber schon geschaftt, dass er nicht mehr alle Abos (oder wie übersetzt man subscription...) sauber hat, sprich beim Umschalten hat er sich nicht mehr gemeldet. Um das zu umgehen, kappe ich beim anschalten des TV's die connection, baue sie neu auf und mache alle Abos neu. Dient einfach der Stabilität, normalerweise bekommt man davon nichts mit. Ich gebe das auch im log ausrenew connection in one minute for stable subscriptions...
Dein TV lässt die connection halt nicht bestehen, wenn er aus ist und darum bekommt der Adapter es nicht mit, wenn der TV aus ist. Daher ist das pollen notwendig, sprich solange der TV an ist, gibt er immer eine Antwort, sobald das vorbei ist, kappe ich die Verbindung und der Adapter versucht sich die ganze Zeit neu zu verbinden, bis du den TV wieder an machst.
-
@dirkhe
Das mit dem polling alle 60s scheint noch nicht so richtig zu funktionieren. Beim Start des Adapters wird weiter alle 8s gecheckt, ob der TV verfügbar ist und nach dem Ausschalten des TVs hat sich auch nichts am Verhalten geändert.Die Einstellungen hab ich nochmal gecheckt, beim Start der Adapters wird der neue Parameter bei geänderten Werten ausgegeben (hab zwischenzeitlich testweie auch mal noch die MAC-Adresse eingetragen):
adapter.config = {"ip":"192.168.178.106","timeout":"15000","interval":"60000","mac":"A8:23:FE:C4:2B:17","power":false,"healthIntervall":"60000"}Hier das Log vom letzten Ausschaltevorgang:
2020-03-08 20:30:49.121 - [34mdebug[39m: lgtv.0 (15689) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"amazon","returnValue":true,"windowId":"","processId":""} 2020-03-08 20:30:49.121 - [34mdebug[39m: lgtv.0 (15689) cur app is amazon 2020-03-08 20:31:44.256 - [34mdebug[39m: lgtv.0 (15689) check TV connection: ok ... 2020-03-08 21:58:44.289 - [34mdebug[39m: lgtv.0 (15689) check TV connection: ok 2020-03-08 21:59:44.290 - [34mdebug[39m: lgtv.0 (15689) check TV connection: ok Amazon-App beendet, Adapter meldet TV-Status "Aus": 2020-03-08 22:00:03.116 - [34mdebug[39m: lgtv.0 (15689) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"","returnValue":true,"windowId":"","processId":""} 2020-03-08 22:00:03.617 - [34mdebug[39m: lgtv.0 (15689) TV is off 2020-03-08 22:00:04.159 - [34mdebug[39m: lgtv.0 (15689) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"com.webos.app.hdmi1","returnValue":true,"windowId":"","processId":""} 2020-03-08 22:00:04.160 - [34mdebug[39m: lgtv.0 (15689) cur app is com.webos.app.hdmi1 2020-03-08 22:00:04.165 - [34mdebug[39m: lgtv.0 (15689) renew connection in one minute for stable subscriptions... TV jetzt wirklich Aus: 2020-03-08 22:00:07.493 - [34mdebug[39m: lgtv.0 (15689) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"","returnValue":true,"windowId":"","processId":""} 2020-03-08 22:00:07.994 - [34mdebug[39m: lgtv.0 (15689) TV is off Keine weiteren Einträge / keine Reaktion auf Start des TVs am nächsten Tag
Jetzt nicht direkt das aktuelle Problem betreffend, aber beim Schließen der Amazon-App um 22:00:03 wird kurzzeitig eine leere appId gemeldet, wodurch der Adapter davon ausgeht, dass das Gerät jetzt aus ist. Vielleicht könnte man das noch mit einer Verzögerung von 2-3s, bis der State in iobroker tatsächlich auf false gesetzt wird, verbessern.
Hilft zwar wohl nicht, aber auf jeden Fall ist es bei Ausschalten nach kurzem Betrieb immer so, dass der Timeout-Error auftritt, wenn eben das nächste mal in dem 60s-Intervall die Verbindung geprüft wird. Bei Ausschalten (bzw. erstmal wechsel in diesen panel-refresh-Modus) nach längerem Betrieb erfolgt dagegen die Meldung der leeren appID durch den TV.
-
@Seraphis Lade bitte nochmal neu runter und probiere es aus. Ich habe jetzt die Zeit, wenn aus gemeldet und ich den Adapter aus setzt von 500ms auf 1,5 sec erhöht.
Desweiteren lasse ich den healtcheck beim Ausschalten weiterlaufen, bis er die connection verliert.
Sorry, dass du jetzt immer Testen mußt, aber ich kann das bei mir nicht nachstellen -
@dirkhe Klappt bei mir jetzt beides einwandfrei. Vielen Dank fürs anpassen
Wechsel/Schließen der App:
2020-03-10 21:44:12.390 - [34mdebug[39m: lgtv.0 (20145) check TV connection: ok 2020-03-10 21:44:25.534 - [34mdebug[39m: lgtv.0 (20145) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"com.webos.app.hdmi1","returnValue":true,"windowId":"","processId":""} 2020-03-10 21:44:25.535 - [34mdebug[39m: lgtv.0 (20145) cur app is com.webos.app.hdmi1 2020-03-10 21:44:35.654 - [34mdebug[39m: lgtv.0 (20145) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"amazon","returnValue":true,"windowId":"","processId":""} 2020-03-10 21:44:35.654 - [34mdebug[39m: lgtv.0 (20145) cur app is amazon 2020-03-10 21:44:50.922 - [34mdebug[39m: lgtv.0 (20145) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"","returnValue":true,"windowId":"","processId":""} 2020-03-10 21:44:51.958 - [34mdebug[39m: lgtv.0 (20145) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"com.webos.app.hdmi1","returnValue":true,"windowId":"","processId":""} 2020-03-10 21:44:51.958 - [34mdebug[39m: lgtv.0 (20145) cur app is com.webos.app.hdmi1 2020-03-10 21:45:12.368 - [34mdebug[39m: lgtv.0 (20145) check TV connection: ok
Verhalten beim Ausschalten des TVs:
2020-03-12 18:38:47.101 - [34mdebug[39m: lgtv.0 (20145) check TV connection: ok 2020-03-12 18:39:47.093 - [34mdebug[39m: lgtv.0 (20145) check TV connection: ok 2020-03-12 18:41:02.051 - [34mdebug[39m: lgtv.0 (20145) ERROR! Response from TV: Error: timeout 2020-03-12 18:41:02.052 - [34mdebug[39m: lgtv.0 (20145) check TV connection: Error: timeout 2020-03-12 18:41:02.052 - [34mdebug[39m: lgtv.0 (20145) TV is off 2020-03-12 18:42:02.051 - [34mdebug[39m: lgtv.0 (20145) ERROR! Response from TV: Error: timeout 2020-03-12 18:42:02.052 - [34mdebug[39m: lgtv.0 (20145) check TV connection: Error: timeout 2020-03-12 18:42:02.052 - [34mdebug[39m: lgtv.0 (20145) TV is off ... 2020-03-12 18:53:02.056 - [34mdebug[39m: lgtv.0 (20145) ERROR! Response from TV: Error: timeout 2020-03-12 18:53:02.056 - [34mdebug[39m: lgtv.0 (20145) check TV connection: Error: timeout 2020-03-12 18:53:02.056 - [34mdebug[39m: lgtv.0 (20145) TV is off 2020-03-12 18:56:02.057 - [34mdebug[39m: lgtv.0 (20145) ERROR! Response from TV: Error: timeout 2020-03-12 18:56:02.058 - [34mdebug[39m: lgtv.0 (20145) check TV connection: Error: timeout 2020-03-12 18:56:02.058 - [34mdebug[39m: lgtv.0 (20145) TV is off 2020-03-12 18:56:14.428 - [34mdebug[39m: lgtv.0 (20145) Error on connecting or sending command to WebOS TV: Error: read EHOSTUNREACH 2020-03-12 18:56:14.428 - [34mdebug[39m: lgtv.0 (20145) Connection closed: 1006 2020-03-12 18:56:19.428 - [34mdebug[39m: lgtv.0 (20145) Connecting to WebOS TV: ws://192.168.178.106:3000 2020-03-12 18:56:22.434 - [34mdebug[39m: lgtv.0 (20145) Error on connecting or sending command to WebOS TV: Error: connect EHOSTUNREACH 192.168.178.106:3000 2020-03-12 18:56:24.428 - [34mdebug[39m: lgtv.0 (20145) TV is off 2020-03-12 18:56:27.434 - [34mdebug[39m: lgtv.0 (20145) Connecting to WebOS TV: ws://192.168.178.106:3000 2020-03-12 18:56:29.428 - [34mdebug[39m: lgtv.0 (20145) TV is off 2020-03-12 18:56:35.441 - [34mdebug[39m: lgtv.0 (20145) Connecting to WebOS TV: ws://192.168.178.106:3000 2020-03-12 18:56:37.436 - [34mdebug[39m: lgtv.0 (20145) TV is off
Zwischen dem ersten timeout-error und dem host unreachable lagen auch gestern ca. 15 Minuten.
Macht es eigentlich Sinn die Parameter für timeout und den neuen für das Abfrageintervall in der Adapter-konfig noch in irgend einer Form anzupassen? Verwende momentan die Standard-Werte 15.000 bzw. 60.000ms
-
@Seraphis das freut mich, dann werde ich das mal zusammenpacken und ein Problem stellen.
Die Zeiten muss jeder für sich selber wissen. Das hängt halt damit zusammen, was du für Aktionen hinter tv an/aus hast und wie schnell die reagieren sollen -
Bekomme nur die V 1.1.5 via Git?
-
Aktuell nur über meinen Account https://github.com/dirkhe/ioBroker.lgtv
Muss erst ein Pull request stellen -
@dirkhe sagte in lgtv Adapter zur Steuerung von LG WebOS SmartTVs:
Aktuell nur über meinen Account https://github.com/dirkhe/ioBroker.lgtv
Muss erst ein Pull request stellen$ ./iobroker url "https://github.com/dirkhe/ioBroker.lgtv.git" install https://github.com/dirkhe/ioBroker.lgtv/tarball/044ccbd852bd5ea5280c59a17eb20fe3c75ccce7 NPM version: 6.9.0 npm install https://github.com/dirkhe/ioBroker.lgtv/tarball/044ccbd852bd5ea5280c59a17eb20fe3c75ccce7 --loglevel error (System call) gyp ERR! build error gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1gyp ERR! stack at ChildProcess.onExit (C:\Program Files\iobroker\Test\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:262:23)gyp ERR! stack at ChildProcess.emit (events.js:198:13) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12) gyp ERR! System Windows_NT 10.0.18363 gyp ERR! command "C:\\Program Files\\iobroker\\Test\\nodejs\\node.exe" "C:\\Program Files\\iobroker\\Test\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"gyp ERR! cwd C:\Program Files\iobroker\Test\node_modules\authenticate-pamgyp ERR! node -v v10.16.3gyp ERR! node-gyp -v v3.8.0gyp ERR! not ok gyp ERR! build error gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1gyp ERR! stack at ChildProcess.onExit (C:\Program Files\iobroker\Test\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:262:23) gyp ERR! stack at ChildProcess.emit (events.js:198:13)gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12) gyp ERR! System Windows_NT 10.0.18363gyp ERR! command "C:\\Program Files\\iobroker\\Test\\nodejs\\node.exe" "C:\\Program Files\\iobroker\\Test\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"gyp ERR! cwd C:\Program Files\iobroker\Test\node_modules\bufferutilgyp ERR! node -v v10.16.3 gyp ERR! node-gyp -v v3.8.0gyp ERR! not ok gyp ERR! build error gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1 gyp ERR! stack at ChildProcess.onExit (C:\Program Files\iobroker\Test\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:262:23) gyp ERR! stack at ChildProcess.emit (events.js:198:13)gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12) gyp ERR! System Windows_NT 10.0.18363gyp ERR! command "C:\\Program Files\\iobroker\\Test\\nodejs\\node.exe" "C:\\Program Files\\iobroker\\Test\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"gyp ERR! cwd C:\Program Files\iobroker\Test\node_modules\unix-dgram gyp ERR! node -v v10.16.3gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok gyp ERR! build error gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1gyp ERR! stack at ChildProcess.onExit (C:\Program Files\iobroker\Test\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:262:23) gyp ERR! stack at ChildProcess.emit (events.js:198:13)gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)gyp ERR! System Windows_NT 10.0.18363gyp ERR! command "C:\\Program Files\\iobroker\\Test\\nodejs\\node.exe" "C:\\Program Files\\iobroker\\Test\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" gyp ERR! cwd C:\Program Files\iobroker\Test\node_modules\utf-8-validategyp ERR! node -v v10.16.3 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok upload [3] lgtv.admin C:/Program Files/iobroker/Test/node_modules/iobroker.lgtv/admin/words.js words.js application/javascript upload [2] lgtv.admin C:/Program Files/iobroker/Test/node_modules/iobroker.lgtv/admin/lgtv.png lgtv.png image/png upload [1] lgtv.admin C:/Program Files/iobroker/Test/node_modules/iobroker.lgtv/admin/index_m.html index_m.html text/html upload [0] lgtv.admin C:/Program Files/iobroker/Test/node_modules/iobroker.lgtv/admin/index.html index.html text/html process exited with code 0
-
Ich weiss nicht, ob das was mit dem adapter zu tun hat, vlt kannst du mal den originalen nochmal installieren, ob das klappt. Wenn du den adapter aber mal startest, was steht denn dann im Log als Version?
-
@dirkhe sagte in lgtv Adapter zur Steuerung von LG WebOS SmartTVs:
was steht denn dann im Log als Version?
Interessant:
lgtv.0 2020-03-12 21:18:40.973 info (13820) Ready. Configured WebOS TV IP: 192.168.178.41 lgtv.0 2020-03-12 21:18:40.956 info (13820) starting. Version 1.1.6-RC01 in C:/Program Files/iobroker/Test/node_modules/iobroker.lgtv, node: v10.16.3 host.Medion(Test) 2020-03-12 21:18:39.150 info instance system.adapter.lgtv.0 started with pid 13820
-
Dann hast du die richtige Version, was da in der Info steht ist bei Entwicklung unwichtig.
-
@dirkhe Wäre es nicht gut, dann auch noch das Intervall, in dem versucht wird die Verbindung zum TV herzustellen, anpassbar zu machen? Das liegt aktuell ja bei 8s:
lgtv.0 2020-03-14 08:24:35.344 debug (27131) Connecting to WebOS TV: ws://192.168.178.106:3000 lgtv.0 2020-03-14 08:24:37.337 debug (27131) TV is off lgtv.0 2020-03-14 08:24:43.353 debug (27131) Connecting to WebOS TV: ws://192.168.178.106:3000 lgtv.0 2020-03-14 08:24:45.345 debug (27131) TV is off
-
@SchuetzeSchulz die reconnect time ist aktuell hart auf 5 sec eingestellt. Das ist auch die Default Zeit von hobyquackers lib. Macht es Sinn die einstellbar zu machen, hattet ihr da in der Vergangenheit mal getestet?
-
@dirkhe sagte in lgtv Adapter zur Steuerung von LG WebOS SmartTVs:
@SchuetzeSchulz die reconnect time ist aktuell hart auf 5 sec eingestellt. Das ist auch die Default Zeit von hobyquackers lib. Macht es Sinn die einstellbar zu machen, hattet ihr da in der Vergangenheit mal getestet?
Hatten wir nicht getestet. Mir ist nur damals aufgefallen alles unter 5 Sekunden führt zu Problemen.
-
OK, ich habe die reconnect time jetzt mal konfigurierbar gemacht. https://github.com/dirkhe/ioBroker.lgtv
Könnt ihr ja mal testen. Wenn das soweit passt, würde ich einen Merge Request stellen
-
Hallo rh1212 und Community!
Ich bin ein kompletter Neuling was ioBroker betrifft und habe es mittels der Anleitung von rh1212 soweit geschafft, dass ich über die "launch app" des LG TV Adapter, unter Erstellung der Objekte und Verwendung von Blockly, gewisse "Apps" auf meinem LG TV zum starten bringe. Wenn ich bei den erstellten Objekten in ioBroker den Button dahinter anklicke, startet auch auf meinem TV jede App die ich anklicke. In Blockly habe ich im Baustein TEXT immer den Wert eingetragen, welchen mir das Objekt Launch App als Wert angezeigt hat (z.B. für HDMI-1 -> com.webos.app.hdmi1) eingetragen.Ich binde dann diese Objekte in dem iot.0 Adapter unter "Alexa-Geräte" ein. Jedoch sagt mir der Adapter, dass er manche Objekte nicht einbinden möchte (siehe Screenshot). Warum macht der Adapter das??? Gibt es da vielleicht eine andere Lösung?
Auch im Log kann ich keine Fehlermeldung finden.
Danke im Voraus für eure HilfeEDIT: Ich versuche die ganzen Befehle natürlich mittels Echo-dot umzusetzen.
-
Hast du den smartname korrekt gesetzt? Passt Role und Type ?
-
Ich habe das alles so wie im Screenshot rechts oben eingegeben. Rolle ist bei allen state und Type bei allen button.
Was verstehst du unter Smartname? Die ID oder den Namen... entschuldige ich bin wirklich ein Noob gg versuche aber dazu zu lernen.Also wie beschrieben funktionieren auch alle button in ioBroker ohne Probleme, jedoch bekomme ich bei der Einbindung in iot.0 Adapter bei mehreren "App's" die im oben angeführten Screenshot angezeigte Botschaft.
"Gerät lgtv.0.Extras_Ordner.Netflix wurde nicht hinzugefügt.EDIT: Habe jetzt ein 'Wake on lan' Script eingebaut und versucht dieses im iot.0 Adapter unter Alexa-Geräte einzubinden. Auch da bekam ich die "Botschaft", dass es nicht hinzugefügt wurde. Es liegt also glaube ich nicht am lgtv.0 Adapter, denn auch die "Wake on Lan" Funktion startet in ioBroker ganz normal. Es wird wohl am iot.0 Adapter liegen.....
Danke für deine Hilfe
Lg -
Geh mal in der Object Ansicht auf den Bleistift. Dann unter RAW, da siehst du den smartname
{ "_id": "lgtv.0.states.power", "type": "state", "common": { "name": "Switch TV power", "role": "switch", "type": "boolean", "read": true, "write": true, "smartName": { "de": "Tv,Fernseher" } }, "native": {}, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1584040988961 }
-
@dirkhe sagte in lgtv Adapter zur Steuerung von LG WebOS SmartTVs:
"smartName": { "de": "Tv,Fernseher" }
Hallo dirkhe!
Beim durchstöbern des Forum habe ich bemerkt, dass mehrere User seit Anfang März probleme mit der Einbindung von Geräten in iot.0 Adapter haben.
Siehe Link: https://forum.iobroker.net/topic/11288/cloud-adapter-smart-gerät-hinzufügen-geht-nicht/26Es liegt also definitiv nicht am lgtv.0 adapter.
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1584970466099, "common": { "name": "Amazon Prime Video", "role": "button", "type": "object", "desc": "Manuell erzeugt", "read": true, "write": true "smartName": "Amazon" }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "lgtv.0.Extras_Ordner.Amazon_Prime_Video", "type": "state" }
Wenn ich den Smartname im RAW zu ändern versuche und das Ganze speichere, zeigt er mir sofort eine Fehlermeldung an.
Ich werde die ganzen Einbindungen in iot.0 Adapter mit dem kleinen Workaround machen müssen, wie sie im anderen Thread beschrieben sind.
Vielen DANK für deine Bemühungen!!!!