[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS !!!NEW!!!

Begonnen von CoolTux, 02 Februar 2022, 12:54:52

Vorheriges Thema - Nächstes Thema

grappa24

Zitat von: turo am 23 Oktober 2023, 21:29:44Als Notmaßnahme, um wenigstens zu erkennen, ob der Fernseher überhaupt an ist, habe ich ein PRESENCE device angelegt. Das war aber auch ein bisschen knifflig, weil der Fernseher bei mir fast alle Ports offen hat, auch wenn er aus ist. (Das kann man vermutlich auch irgendwo abstellen, aber dann kann ich ihn nicht mehr mit Alexa einschalten...). Aber Port 7000 geht auf und zu.
Super Idee! Aber hilf mir mal, meiner wird als present angezeigt, obwohl er "aus" (=standby) ist. Muss der komplett aus sein? Oder kann das bei mir ein anderer port sein? Hab allerdings auch noch nicht die allerletzte Software drauf ...
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

turo

Zitat von: grappa24 am 23 Oktober 2023, 23:37:32Super Idee! Aber hilf mir mal, meiner wird als present angezeigt, obwohl er "aus" (=standby) ist. Muss der komplett aus sein? Oder kann das bei mir ein anderer port sein? Hab allerdings auch noch nicht die allerletzte Software drauf ...
Dass Dein Fernseher sich da anders verhält, kann ich mir gut vorstellen. Mach doch mal ein "nmap" (muss man gegebenenfalls nachinstallieren) jeweils in ein- und ausgeschaltetem Zustand.

(Aber eigentlich hat das jetzt nur noch am Rande mit dem 82_LGTV_WebOS Modul zu tun und wir sollten besser einen neuen Thread aufmachen, wenn es noch mehr zu diskutieren gibt...)

Turo
3xRaspberry PI, Homematic, SELVE Rollos, 1-wire, Logitech Harmony, Alexa, Fussbodenheizung (ESP8266), Netatmo

grappa24

FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

turo

... und zurück zum LGTV_WebOS: Das sieht düster aus. Laut tcpdump antwortet der Fernseher einfach nicht mehr auf Port 3000. Wenn LG das also absichtlich geändert hat, dann haben sie ihr Ziel erreicht.
3xRaspberry PI, Homematic, SELVE Rollos, 1-wire, Logitech Harmony, Alexa, Fussbodenheizung (ESP8266), Netatmo

Ellert

Falls sich doch etwas tut, lese ich hier mal mit.

-ron-

#185
PORT      STATE SERVICE    VERSION
53/tcp    open  domain     (generic dns response: NOTIMP)
3000/tcp  open  tcpwrapped
3001/tcp  open  ssl/http   LG smart TV http service
7000/tcp  open  rtsp       AirTunes rtspd 377.25.06
9080/tcp  open  glrpc?
49152/tcp open  upnp


Vielleicht läuft es noch auf dem TCP 3001 Port, scheint ja die ssl variante von 3000 zu sein

curl https://192.168.xxx.xxx:3001 -k
Hello world



rs

Sowas ärgert jeden, nicht abwärts kompatibel und einfach was ändern, da könnt ich ...

Bei mir geht der Verbindungsaufbau, der Handshake, nicht mehr.

Ein
$ curl https://192.168.xxx.xxx:3001 -k
curl: (52) Empty reply from server

Bin dabei, wenn sich eine Lösung anbahnt,

MfG
rs
rpi3+ & RaspBee | Phillips, Osram, IKEA, SIlvercrest Devices | FHEM 6.2 | Echo Show 15 | Yamaha YAS| LG TV | Ubuntu 22.04 - NextCloud 27 - OpemVPN - Wordpress - NAS - ...

sven.scherf

Hi,

bei mir ist die Version 5.5.0-1102 drauf.

Das Einschalten vomTV funktioniert noch das Ausschalten jedoch nicht mehr.
Als readings bekomme ich noch power, presence und state übermittelt und das war es auch schon.

Bin hier über den Beitrag gestoßen nachdem ich mir mal die Zeit nehmen wollte, warum hier meine Steuerung nicht mehr funktioniert.

Es gibt doch auch Apps die die Steuerung vom LG ermöglichen.
Denkt ihr nicht, dass man dies wieder hinbekommt ?

Wo könnte man ansetzen und unterstützen?

Gruss

Sven
Raspi 3 mit CUL Stick 433/868MHZ, Homematic

ska-

Hallo, für den Fall, dass der Code hier nicht korrekt aufgehoben ist, ggf. woanders hin verschieben.

Port 3001 ist SSL, habe ich irgendwo aufgeschnappt, mit folgendem Patch funktioniert wieder was:Du darfst diesen Dateianhang nicht ansehen.

--- /tmp/LGTVWebOS.pm  2023-11-13 19:57:12.508708065 +0100
+++ ./LGTVWebOS.pm      2023-11-12 22:16:24.410690763 +0100
@@ -63,2 +63,3 @@
 eval { require IO::Socket::INET; 1 } or $missingModul .= 'IO::Socket::INET ';
+eval { use IO::Socket::SSL; 1 } or $missingModul .= 'IO::Socket::SSL ';
 
@@ -650,3 +651,18 @@
 
-    my $socket = IO::Socket::INET->new(
+      # create a connecting socket
+    #  SSL_startHandshake is dependent on the protocol: this lets us use one socket
+    #  to work with either SSL or non-SSL sockets.
+    my $socket =
+    IO::Socket::SSL->new(
+        PeerHost                  => $host,
+        PeerPort                  => 3001,
+        Proto                      => 'tcp',
+        SSL_startHandshake        => 1, #( $proto eq 'wss' ? 1 : 0 ),
+        SSL_verify_mode => SSL_VERIFY_NONE,
+        # Blocking                  => 1
+        KeepAlive => 1,
+        Timeout  => $timeout
+    )
+    ||
+    IO::Socket::INET->new(
        PeerHost  => $host,
@@ -658,3 +674,3 @@
      or return ::Log3( $name, 4,
-        "LGTV_WebOS ($name) Couldn't connect to $host:$port" );    # open Socket
+        "LGTV_WebOS ($name) Couldn't connect to $host:$port/3001" );    # open Socket
 

grappa24

sorry, aber wie wendet man den patch auf das Original-Modul an?
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

CoolTux

Ich kann versuchen das in den kommenden Wochen mal ein zu pflegen und zu testen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Zitat von: ska- am 13 November 2023, 20:07:52Hallo, für den Fall, dass der Code hier nicht korrekt aufgehoben ist, ggf. woanders hin verschieben.

Port 3001 ist SSL, habe ich irgendwo aufgeschnappt, mit folgendem Patch funktioniert wieder was:Du darfst diesen Dateianhang nicht ansehen.

--- /tmp/LGTVWebOS.pm  2023-11-13 19:57:12.508708065 +0100
+++ ./LGTVWebOS.pm      2023-11-12 22:16:24.410690763 +0100
@@ -63,2 +63,3 @@
 eval { require IO::Socket::INET; 1 } or $missingModul .= 'IO::Socket::INET ';
+eval { use IO::Socket::SSL; 1 } or $missingModul .= 'IO::Socket::SSL ';
 
@@ -650,3 +651,18 @@
 
-    my $socket = IO::Socket::INET->new(
+      # create a connecting socket
+    #  SSL_startHandshake is dependent on the protocol: this lets us use one socket
+    #  to work with either SSL or non-SSL sockets.
+    my $socket =
+    IO::Socket::SSL->new(
+        PeerHost                  => $host,
+        PeerPort                  => 3001,
+        Proto                      => 'tcp',
+        SSL_startHandshake        => 1, #( $proto eq 'wss' ? 1 : 0 ),
+        SSL_verify_mode => SSL_VERIFY_NONE,
+        # Blocking                  => 1
+        KeepAlive => 1,
+        Timeout  => $timeout
+    )
+    ||
+    IO::Socket::INET->new(
        PeerHost  => $host,
@@ -658,3 +674,3 @@
      or return ::Log3( $name, 4,
-        "LGTV_WebOS ($name) Couldn't connect to $host:$port" );    # open Socket
+        "LGTV_WebOS ($name) Couldn't connect to $host:$port/3001" );    # open Socket
 


Wie viel heiß denn bei Dir "funktioniert wieder was". Geht dann wieder alles? Steuern des TV, Readings werden wieder aktualisiert? Wie viel ist was?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Felix_86

Hallo zusammen,

ich habe die von ska- vorgeschlagenen Änderungen bei mir in /opt/fhem/lib/FHEM/Devices/LGTV/LGTVWebOS.pm eingepflegt und FHEM neu gestartet.
Anschließend kann ich mit einem LG 55UN71006LB und Version 04.50.52 das LGTV_WebOS Modul mit Version v3.6.9 wieder nutzen.

Nutzen heißt:
- Keine Fehler, keine Meldungen des Moduls im FHEM Log (verbose war als Attribut nicht gesetzt)
- Power Reading wird angezeigt
- Presence Reading wird angezeigt
- Volume ändern
- Mute setzen / entfernen
- Channel wechseln
- App wechseln
- Screen Message anzeigen
Grüße von Felix

Pi3, Raspbian 11, FHEM 6.2, ca 330 Device
SIGNALduino (TCM, TX, IT), CUL (EM, FS20, HMS), JeeLink (PCA301), HUEBridge, HUEDevice, mailcheck, echodevice, alexa, TelegramBot, Weather (OWM), DWD_OpenData, FRITZBOX, TabletUI, Calendar, Abfall, Vitoconnect, LGTV_WebOS

ska-

Zitat von: CoolTux am 14 November 2023, 07:04:38Wie viel heiß denn bei Dir "funktioniert wieder was". Geht dann wieder alles? Steuern des TV, Readings werden wieder aktualisiert? Wie viel ist was?

Da mein LG so neu ist, dass das Modul noch nie lief, kann ich das nicht sagen. Felix_86' Aussagen kann ich bestätigen. Bei den Services fehlen viele/einige, aber vllt. weil ich sie noch nie benutzt habe ...

Ich hing dann erstmal bei der Tatsache fest, dass bei jedem Neustart eine Meldung auf dem Bildschirm erscheint, dass ich das Remote Gerät (FHEM) erlauben muss.

ska-

Internals:
   DEF        10.3.3.31
   FD         10
   FUUID      63e14eeb-f33f-d3df-3e1b-c878bd8108774ea0
   FVERSION   82_LGTV_WebOS.pm:v3.6.9-s27575/2023-05-16
   HOST       10.3.3.31
   NAME       LG
   NR         50
   PARTIAL   
   STATE      on
   TYPE       LGTV_WebOS
   VERSION    v3.6.9
   eventCount 26
   READINGS:
     2023-11-14 09:59:59   channel         -
     2023-11-14 09:59:59   channelCurrentEndTime -
     2023-11-14 09:59:59   channelCurrentStartTime -
     2023-11-14 09:59:59   channelCurrentTitle -
     2023-11-14 09:59:59   channelMedia    -
     2023-11-14 09:59:59   channelName     -
     2023-11-14 09:59:59   channelNextEndTime -
     2023-11-14 09:59:59   channelNextStartTime -
     2023-11-14 09:59:59   channelNextTitle -
     2023-11-14 11:36:46   extInput_HDMI_1 connect_0
     2023-11-14 11:36:46   extInput_LG_DVD_Player connect_0
     2023-11-14 11:36:46   extInput_Vodafone_Kabel_Deutschland_Set_Top_Box connect_0
     2023-11-14 11:36:52   input           Vodafone_Kabel_Deutschland_Set_Top_Box
     2023-11-14 11:36:52   lastResponse    ok
     2023-11-14 11:36:52   launchApp       -
     2023-11-14 11:36:33   lgKey           %%
     2023-11-14 11:36:38   mute            off
     2023-11-14 11:35:28   pairing         paired
     2023-11-14 11:36:33   power           on
     2023-11-14 11:40:11   service_api     v.1
     2023-11-14 11:40:11   service_audio   v.1
     2023-11-14 11:40:11   service_config  v.1
     2023-11-14 11:40:11   service_externalpq v.1
     2023-11-14 11:40:11   service_media.controls v.1
     2023-11-14 11:40:11   service_media.viewer v.1
     2023-11-14 11:40:11   service_pairing v.1
     2023-11-14 11:40:11   service_settings v.1
     2023-11-14 11:40:11   service_system  v.1
     2023-11-14 11:40:11   service_system.launcher v.1
     2023-11-14 11:40:11   service_system.notifications v.1
     2023-11-14 11:40:11   service_timer   v.1
     2023-11-14 11:40:11   service_tv      v.1
     2023-11-14 11:40:11   service_user    v.1
     2023-11-14 11:40:11   service_webapp  v.2
     2023-11-14 11:36:33   state           on
     2023-11-14 11:36:38   volume          8
   helper:
     lastResponse 1699958486
     wsKey      %%
     device:
       registered 1
       runsetcmd  7
       channelguide:
         counter    620
       inputapps:
         com.webos.app.hdmi1 HDMI_1
         com.webos.app.hdmi2 Vodafone_Kabel_Deutschland_Set_Top_Box
         com.webos.app.hdmi3 LG_DVD_Player
       inputs:
         HDMI_1     com.webos.app.hdmi1
         LG_DVD_Player com.webos.app.hdmi3
         Vodafone_Kabel_Deutschland_Set_Top_Box com.webos.app.hdmi2