NEWS
lgtv Adapter zur Steuerung von LG WebOS SmartTVs
-
@sigi234 du könntest das Bild auch in base64 codieren und den code statt der url verwenden. Dann muss das Bild nicht auf einem Netzlaufwerk liegen auf das der TV zugriff hat.
-
@R1Snake
super idee mit dem bilds anzeigen - hat geklappt -
Hi,
schon mal besten Dank für den Adapter. Ich habe mal eine Frage poll vs. subscribe. Gibt es einen Grund, dass du die Applikation via poll abfragst und es nicht subscribst? Das gleiche gilt für die anderen pollings. Ich vermute ja mal, dass es mit den WS erst später kam?
Der Hintergrund meiner Frage ist, dass ich gerne auf das App change reagieren möchte, ich meinen Intervall aber nicht auf 10 sec oder tiefer stellen möchte, dafür gibt es ja die Werbservices.Ich habe das hier mal umgesetzt:
https://github.com/dirkhe/ioBroker.lgtv
Wenn du magst, kann ich ja einen PR stellen?gruss
Dirk -
@dirkhe na klar her damit
-
bin gerade noch noch am Langzeit testen. Wenn der tv nur nen paar Stunden aus ist, fängt er sich wieder. Letztens hat er sich aber nicht mehr gefangen. Aber ich mal wireshark angeschmissen, der tv meldet sich sauber als upnp, wenn er wieder an ist. Ich denke, da könnte man sich ranhängen, um das websocket wieder zu conncten.
Ich teste das nochmal eine Weile und dann stelle ich den PR. -
Hat der Adapter nicht vorher mal die Werte, in states alle xx Minuten aktualisiert ?
Irgendwie macht der des nicht mehr. -
Er hat die Werte vorher alle Sekunden neu geschrieben. Jetzt macht er das nur noch, wenn sich was ändert. Der tv meldet sich nämlich, wenn etwas passiert. Stell den adapter mal auf debug und Spiele am tv rum, dann sieht man das
-
@dirkhe ok schade, weil ich lasse meine LED Strips danach einschalten, jetzt funktioniert das Skript nicht mehr
-
Warum sollte das jetzt nicht mehr gehen? Die stati werden doch noch auf true oder fade gesetzt, halt nur noch, wenn sich was ändert. Kannst du dein Log mal auf debug stellen und dann den tv ein und aus schalten?
Was hast du für eine Firmware? -
@dirkhe ja klar, ich lasse die LED Strips erst einschalten, wenn Astro Sonnenuntergang ist und wenn der Fernseher schon seit Nachmittags an ist, gibt es kein Trigger mehr, wo danach geprüft wird ob Sonnenuntergang ist.
Normalerweiser war immer das aktualisieren des States der Trigger -
Aber dann ist es doch sinnvoll, wenn du auf Änderungen sowohl vom tv als auch Astro reagierst. Wenn du es wieder genau so haben willst, Frage die beiden States per Intervall ab.
-
@dirkhe die Idee mit dem Intervall ist mir nicht gekommen, werde es so mal versuchen
-
@marcuskl ist aber sehr Ressourcen verschwenderisch. Man kann ja direkt auf state Änderungen reagieren
-
ich habe seit einem Sytsemupdate auch massive Probleme das der State "is on" aktualisiert wird.
webOS: 3.8.0-61312
Softwareversion: 05.80.50
Hier mal der Debug Log:2020-02-22 10:22:05.681 - debug: lgtv.0 (2822) Connecting to WebOS TV: ws://192.168.2.15:3000 2020-02-22 10:22:13.744 - debug: lgtv.0 (2822) Connecting to WebOS TV: ws://192.168.2.15:3000 2020-02-22 10:22:15.540 - debug: lgtv.0 (2822) WebOS TV Connected 2020-02-22 10:22:15.698 - debug: lgtv.0 (2822) DEBUGGING getForegroundAppInfo: {"appId":"com.webos.app.hdmi1","subscribed":true,"returnValue":true,"windowId":"","processId":""} 2020-02-22 10:22:15.705 - debug: lgtv.0 (2822) audio/getVolume: {"returnValue":true,"volumeMax":100,"muted":false,"scenario":"mastervolume_tv_speaker","subscribed":true,"volume":5,"action":"requested","active":false,"changed":["muted","volume"]} 2020-02-22 10:22:15.720 - debug: lgtv.0 (2822) Service list: {"returnValue":true,"services":[{"name":"api","version":1},{"name":"audio","version":1},{"name":"config","version":1},{"name":"media.controls","version":1},{"name":"media.viewer","version":1},{"name":"pairing","version":1},{"name":"settings","version":1},{"name":"system","version":1},{"name":"system.launcher","version":1},{"name":"system.notifications","version":1},{"name":"timer","version":1},{"name":"tv","version":1},{"name":"user","version":1},{"name":"webapp","version":2}]} 2020-02-22 10:22:15.722 - debug: lgtv.0 (2822) getCurrentSWInformation: {"returnValue":true,"product_name":"webOSTV 3.5","model_name":"HE_DTV_W17P_AFADABAA","sw_type":"FIRMWARE","major_ver":"05","minor_ver":"80.50","country":"AT","country_group":"EU","device_id":"78:5d:c8:98:3b:80","auth_flag":"N","ignore_disable":"N","eco_info":"01","config_key":"00","language_code":"de-AT"} 2020-02-22 10:22:15.746 - debug: lgtv.0 (2822) getSystemInfo: {"returnValue":true,"features":{"3d":false,"dvr":true},"receiverType":"dvb","modelName":"49UJ635V-ZF"} 2020-02-22 10:22:15.750 - debug: lgtv.0 (2822) audio/getSoundOutput: {"soundOutput":"tv_external_speaker","subscribed":true} 2020-02-22 10:22:15.757 - debug: lgtv.0 (2822) tv/getCurrentChannel: {"returnValue":false,"errorCode":-1000,"errorText":"internal error"} 2020-02-22 10:22:16.480 - debug: lgtv.0 (2822) audio/getVolume: {"changed":["volume"],"returnValue":true,"cause":"volumeUp","volumeMax":100,"scenario":"mastervolume_tv_speaker","muted":false,"volume":6,"action":"changed","active":false} 2020-02-22 10:22:16.774 - debug: lgtv.0 (2822) audio/getVolume: {"changed":["volume"],"returnValue":true,"cause":"volumeUp","volumeMax":100,"scenario":"mastervolume_tv_speaker","muted":false,"volume":7,"action":"changed","active":false} 2020-02-22 10:25:29.639 - debug: lgtv.0 (2822) system.adapter.admin.0: logging false 2020-02-22 10:26:30.497 - debug: lgtv.0 (2822) audio/getVolume: {"changed":["volume"],"returnValue":true,"cause":"volumeUp","volumeMax":100,"scenario":"mastervolume_tv_speaker","muted":false,"volume":8,"action":"changed","active":false} 2020-02-22 10:26:31.307 - debug: lgtv.0 (2822) audio/getVolume: {"changed":["volume"],"returnValue":true,"cause":"volumeUp","volumeMax":100,"scenario":"mastervolume_tv_speaker","muted":false,"volume":9,"action":"changed","active":false} 2020-02-22 10:26:31.778 - debug: lgtv.0 (2822) audio/getVolume: {"changed":["volume"],"returnValue":true,"cause":"volumeUp","volumeMax":100,"scenario":"mastervolume_tv_speaker","muted":false,"volume":10,"action":"changed","active":false} 2020-02-22 10:26:38.005 - debug: lgtv.0 (2822) audio/getVolume: {"changed":["muted"],"returnValue":true,"volumeMax":100,"scenario":"mastervolume_tv_speaker","muted":true,"volume":10,"action":"changed","active":false} 2020-02-22 10:26:41.014 - debug: lgtv.0 (2822) audio/getVolume: {"changed":["muted"],"returnValue":true,"volumeMax":100,"scenario":"mastervolume_tv_speaker","muted":false,"volume":10,"action":"changed","active":false} 2020-02-22 10:27:16.140 - debug: lgtv.0 (2822) system.adapter.admin.0: logging true 2020-02-22 10:27:50.796 - debug: lgtv.0 (2822) system.adapter.admin.0: logging false 2020-02-22 10:27:56.968 - debug: lgtv.0 (2822) system.adapter.admin.0: logging true 2020-02-22 10:29:15.326 - debug: lgtv.0 (2822) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"","returnValue":true,"windowId":"","processId":""} 2020-02-22 10:29:15.333 - debug: lgtv.0 (2822) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"com.webos.app.hdmi1","returnValue":true,"windowId":"","processId":""} 2020-02-22 10:29:15.340 - debug: lgtv.0 (2822) audio/getSoundOutput: {"soundOutput":"tv_external_speaker","subscribed":true}
Kann mir da wer weiterhelfen?
-
jedesmal, wenn diese Zeile im Log auftritt
@StefanMc sagte in lgtv Adapter zur Steuerung von LG WebOS SmartTVs:
DEBUGGING getForegroundAppInfo
werden folgende 3 states gesetzt:
adapter.setStateChanged('states.on', appId, true);
adapter.setStateChanged('states.power', appId, true);
adapter.setStateChanged('info.connection', appId, true);
wobei appId true ist, wenn vom tv eine übergeben wurde, sonst false.
Allerdings schreibt ioBroker den state nur neu, wenn er sich ändert.
Du kannst ja mal an einem der 3 Stati die history einschalten, dann solltest du das nachvollziehen können.Hast du den TV um 10:29:15 kurz ausgemacht und sofort wieder angemacht?
Hast du öfter 2mal so kurz hintereinander
DEBUGGING getForegroundAppInfo?
Wenn das nämlich so wäre, könnte es Probleme geben, dass sich das Setzten der beiden überholt. Dann müsste man eine Verzögeung reinbauen. -
@dirkhe Danke für deine Antwort,
ich habe jetzt mal nachgesehen, getForegroundAppInfo wird beim Einschalten des Fernsehrs geschrieben binnen 50ms zwei mallgtv.0 2020-02-22 17:34:51.268 debug (2822) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"com.webos.app.hdmi1","returnValue":true,"windowId":"","processId":""} lgtv.0 2020-02-22 17:34:51.219 debug (2822) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"","returnValue":true,"windowId":"","processId":""} lgtv.0 2020-02-22 17:13:05.838 debug (2822) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"com.webos.app.hdmi1","returnValue":true,"windowId":"","processId":""} lgtv.0 2020-02-22 17:13:05.790 debug (2822) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"","returnValue":true,"windowId":"","processId":""} lgtv.0 2020-02-22 10:29:15.333 debug (2822) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"com.webos.app.hdmi1","returnValue":true,"windowId":"","processId":""} lgtv.0 2020-02-22 10:29:15.326 debug (2822) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"","returnValue":true,"windowId":"","processId":""}
-
Ok, es sieht so aus, als wenn deine firmware das immer erst leer setzt und dann den neuen Wert sendet. Ich versuche das mal rauszufiltern
-
Ok,
ich habe hier mal eine neue Version hochgeladen, teste die mal bitte:
https://github.com/dirkhe/ioBroker.lgtv -
so, nachdem meine Frau nun endlich mit Ihrem Film fertig ist, hab ich testen können:
lgtv.0 2020-02-22 19:54:55.911 debug (1056) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"com.webos.app.hdmi1","returnValue":true,"windowId":"","processId":""} lgtv.0 2020-02-22 19:54:55.864 debug (1056) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"","returnValue":true,"windowId":"","processId":""} lgtv.0 2020-02-22 19:51:57.717 debug (1056) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"com.webos.app.hdmi1","returnValue":true,"windowId":"","processId":""} lgtv.0 2020-02-22 19:51:57.675 debug (1056) DEBUGGING getForegroundAppInfo: {"subscribed":true,"appId":"","returnValue":true,"windowId":"","processId":""}
hat sich nichts verändert.
Jedoch muss ich sagen das ich mehr das Problem habe das der ON State nicht auf false gesetzt wird, wenn der FS aus ist. Hängt das jetzt auch da mit dran? -
Hast du das Log jetzt gekürzt?
Diese logeinträge werden ja jedes mal geschrieben, wenn der tv die Applikationen wechselt. Was ist denn der letzte Eintrag, wenn du den tv aus machst?