[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

JoWiemann

Hallo,

anbei mein List nach den Änderungen:
Internals:
   DEF        192.168.0.168
   FD         42
   FUUID      6234781d-f33f-0b39-ec47-462a640b4c86ac33
   FVERSION   82_LGTV_WebOS.pm:v3.6.9-s27575/2023-05-16
   HOST       192.168.0.168
   NAME       TV
   NR         508
   PARTIAL   
   STATE      on
   TYPE       LGTV_WebOS
   VERSION    v3.6.9
   eventCount 24
   READINGS:
     2023-11-14 16:04:55   channel         3
     2023-11-14 15:30:42   channelCurrentEndTime -
     2023-11-14 15:30:42   channelCurrentStartTime -
     2023-11-14 15:30:42   channelCurrentTitle -
     2023-11-14 16:04:55   channelMedia    Satellite Digital TV
     2023-11-14 16:04:55   channelName     WDR HD Köln
     2023-11-14 15:30:42   channelNextEndTime -
     2023-11-14 15:30:42   channelNextStartTime -
     2023-11-14 15:30:42   channelNextTitle -
     2023-11-14 16:04:51   extInput_Bose_Sound_Bar connect_1
     2023-11-14 16:04:51   extInput_HDMI_1 connect_0
     2023-11-14 16:04:51   extInput_HDMI_3 connect_0
     2023-11-14 16:04:51   extInput_HDMI_4 connect_0
     2023-11-14 16:04:47   input           -
     2023-11-14 16:04:33   lastResponse    ok
     2023-11-14 16:04:47   launchApp       TV
     2023-11-14 16:04:38   lgKey           56ed7b7088f02d50edbb737ef175d866
     2023-11-14 16:04:44   mute            off
     2023-11-14 16:04:33   pairing         paired
     2023-11-14 16:04:33   power           on
     2023-11-14 16:04:33   state           on
     2023-11-14 16:08:23   volume          36
   helper:
     lastResponse 1699974539
     wsKey      MTY5OTk3NDI3My4zNjMyMQ==

     device:
       registered 1
       runsetcmd  0
       channelguide:
         counter    189
       inputapps:
         com.webos.app.hdmi1 HDMI_1
         com.webos.app.hdmi2 Bose_Sound_Bar
         com.webos.app.hdmi3 HDMI_3
         com.webos.app.hdmi4 HDMI_4
       inputs:
         Bose_Sound_Bar com.webos.app.hdmi2
         HDMI_1     com.webos.app.hdmi1
         HDMI_3     com.webos.app.hdmi3
         HDMI_4     com.webos.app.hdmi4
Attributes:
   devStateIcon on:10px-kreis-gruen:off off:10px-kreis-rot:on
   keepAliveCheckTime 5
   room       Wintergarten
   verbose    3

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

CoolTux

Sieht ja erstmal nicht schlecht aus. Geht steuern auch?
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

grappa24

wär einer von euch mal so nett und hängt die gepachte Datei hier rein? Ich würd es auch gern mal testen, bin aber zu blöd, die Änderungen korrekt einzuarbeiten - D a n k e  !  ;D
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, ...

Felix_86

#198
Zitat von: CoolTux am 14 November 2023, 16:27:20Sieht ja erstmal nicht schlecht aus. Geht steuern auch?

Was ich heute morgen getestet habe, hat einwandfrei funktioniert.

ZitatNutzen 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

Zitat von: grappa24 am 14 November 2023, 16:28:26wär einer von euch mal so nett und hängt die gepachte Datei hier rein? Ich würd es auch gern mal testen, bin aber zu blöd, die Änderungen korrekt einzuarbeiten - D a n k e  !  ;D

Im Anhang die modifizierte Version von LGTVWebOS.pm (auf Basis von v3.6.9). Diese muss die unter /installdir/fhem/lib/FHEM/Devices/LGTV/ vorhandene Datei ersetzen. Anschließend FHEM neu laden.

Alle Angaben ohne Gewähr.
Grüße von Felix

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

JoWiemann

Zitat von: CoolTux am 14 November 2023, 16:27:20Sieht ja erstmal nicht schlecht aus. Geht steuern auch?

getestet:

- off            -> geht
- on            -> geht nicht
- volume        -> geht nicht
- mute          -> on geht / off geht nicht (off Zeichen blendet kurz auf)
- channel        -> geht
- channelDown    -> geht
- channelUp      -> geht
- launchApp      -> geht
- screenMsg      -> geht
- input          -> geht (wäre schön als input auch TV als Auswahl zu haben)
- volumeUp      -> geht
- volumeDown    -> geht
- getServiceList -> geht
- pause          -> geht
- play          -> geht
- fastForward    -> geht
- rewind        -> geht
- stop          -> geht

- clearInputList -> was ist das
- 3D on/off      -> kann ich nicht testen

- connect        -> nicht getestet
- pairing        -> nicht getestet

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

DL8EI Ralph

Wenn
2023-11-13 14:42:21   pairing         paired
muss connect wohl gegangen sein :-)
Fernmelde-Opa übernahm FHEM-Installation und kämpft sich so durch.
Installation hat FS20, Homematic und einge exotische Teile.

JoWiemann

Zitat von: DL8EI Ralph am 14 November 2023, 16:52:48Wenn
2023-11-13 14:42:21   pairing         paired
muss connect wohl gegangen sein :-)

Das ist wohl richtig. Ich habe aber die set Kommandos nicht explizit getestet.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

grappa24

#202
Sehr cool,

mein G2 mit SW 03.33.85 lässt sich auch wieder ansprechen.
Kurz getestet: Volume, ScreenMsg, ... werde weiter testen.

Aber schon mal ein riesen Dankeschön an ska und natürlich alle Beteiligten

Internals:
   DEF        192.168.178.123
   FD         66
   FUUID      5c44b302-f33f-4e46-586b-f690620d82926400
   FVERSION   82_LGTV_WebOS.pm:v3.6.9-s27575/2023-05-16
   HOST       192.168.178.123
   NAME       lg_wz
   NR         437
   PARTIAL   
   STATE      on
   TYPE       LGTV_WebOS
   VERSION    v3.6.9
   eventCount 16
   READINGS:
     2019-02-06 19:37:03   3D              off
     2019-02-06 19:37:03   3DMode          2d
     2023-07-22 15:49:54   channel         -
     2019-02-06 15:28:24   channelCurrentEndTime -
     2019-02-06 15:28:24   channelCurrentStartTime -
     2019-02-06 15:28:24   channelCurrentTitle -
     2023-07-22 15:49:54   channelMedia    -
     2023-07-22 15:49:54   channelName     -
     2019-02-06 15:28:24   channelNextEndTime -
     2019-02-06 15:28:24   channelNextStartTime -
     2019-02-06 15:28:24   channelNextTitle -
     2023-02-19 08:18:46   extInput_ARC    connect_1
     2023-02-19 10:09:40   extInput_AVR    connect_1
     2023-11-14 17:31:21   extInput_AVR_X2800H connect_1
     2021-12-04 18:00:07   extInput_Blu-Ray connect_1
     2022-01-10 13:23:18   extInput_Blu_Ray connect_1
     2022-12-27 17:51:24   extInput_Blu_ray_Player connect_1
     2023-07-21 14:09:49   extInput_Denon  connect_0
     2023-02-19 10:12:51   extInput_Denon_AVR connect_1
     2023-02-19 10:11:11   extInput_Denon_AVR_X2800H connect_1
     2023-02-19 09:36:58   extInput_Denon_Out connect_0
     2022-01-31 09:30:05   extInput_Denon_Out___ARC connect_1
     2023-02-19 09:36:58   extInput_Entertain connect_0
     2023-02-14 17:14:40   extInput_Fire_TV connect_0
     2021-12-09 20:38:11   extInput_HDMI-4 connect_0
     2023-06-20 14:13:21   extInput_HDMI_1 connect_0
     2023-07-21 14:11:59   extInput_HDMI_2 connect_0
     2023-02-19 10:08:30   extInput_HDMI_3 connect_0
     2023-02-19 10:15:11   extInput_HDMI_4 connect_0
     2022-01-10 15:49:07   extInput_HDMI_8 connect_1
     2022-01-10 16:34:50   extInput_Heimkinosystem connect_1
     2022-01-10 17:11:08   extInput_Monitor1_ARC connect_1
     2022-01-11 16:05:27   extInput_Monitor2 connect_0
     2020-06-03 16:36:40   extInput_Vantage connect_1
     2023-11-14 18:35:28   input           -
     2023-11-14 17:31:27   lastResponse    ok
     2023-11-14 18:35:28   launchApp       DAZN
     2023-11-14 17:31:06   lgKey           2a83444811583df5b5146084fc92a41a
     2023-11-14 17:31:14   mute            off
     2023-07-22 15:25:43   pairing         paired
     2023-11-14 17:31:06   power           on
     2023-11-14 17:31:06   state           on
     2023-11-14 17:32:52   volume          8
   helper:
     lastResponse 1699983594
     wsKey      xxxxxxxxxxxxxxxxxx

     device:
       registered 1
       runsetcmd  0
       channelguide:
         counter    414
       inputapps:
         com.webos.app.hdmi1 HDMI_1
         com.webos.app.hdmi2 AVR_X2800H
         com.webos.app.hdmi3 HDMI_3
         com.webos.app.hdmi4 HDMI_4
       inputs:
         AVR_X2800H com.webos.app.hdmi2
         HDMI_1     com.webos.app.hdmi1
         HDMI_3     com.webos.app.hdmi3
         HDMI_4     com.webos.app.hdmi4
Attributes:
   alexaName  tv
   channelGuide 0
   devStateIcon .*on:tv_on_green .*off:tv_off
   genericDeviceType switch
   room       LGTV,TVs
   wakeOnLanBroadcast 192.168.178.255
   wakeOnLanMAC 78:5D:C8:63:1B:6F

Dieter
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, ...

ska-

Zitat von: ska- am 14 November 2023, 10:03:56
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.

Services fehlen nicht, ich habe sie nur an falscher Stelle gesucht, ich meinte "launchApp";
auf TV konnte ich auch schalten, hatte das als "Input" gesucht.

on geht
mute geht
volume setzen geht nicht, weil man keine Zahl eingeben kann
volUp/Down geht
.... s. Post von JoWiemann

:-)

mumpitzstuff

Volume ist bei mir ein Slider. Den schiebe ich und drücke dann auf Set. Bei mir funktioniert noch die alte Version, das sollte sich bei eurer Version aber nicht geändert haben.

ska-

Zitat von: mumpitzstuff am 14 November 2023, 21:35:58Volume ist bei mir ein Slider. Den schiebe ich und drücke dann auf Set. Bei mir funktioniert noch die alte Version, das sollte sich bei eurer Version aber nicht geändert haben.

Ja! Klappt!  :D

ska-

Mir ist aufgefallen, dass der "on"-Status (grün) lange Zeit nach dem Ausschalten unverändert bleibt. Die TCP Socket fhem -> LG bleibt zig Minuten offen / connected. FHEM schreibt Paket um Paket raus und empfängt nix. Es kommt aber kein Fehler.

Könnte das mit: https://stackoverflow.com/questions/3570440/perl-how-to-get-iosocketinet-timeout-after-x-seconds zusammenhängen? Timeout scheint ignoriert zu werden.

Ich habe versucht einen Timeout zu simulieren, denn ich denke, dass write's ohne read sinnlos ist. Ggf. sollte man bei read() pkgcnt = 0 setzen, statt zu dekrementieren ....

Wenn ich ein Abschalten des Fernsehers per Packet Drops simuliere, klappt das ganz gut:
sudo iptables -I OUTPUT -p tcp -d 10.3.3.31 -j DROP
# wait a bit -> red
sudo iptables -D OUTPUT -p tcp -d 10.3.3.31 -j DROP
# green after some seconds
sudo iptables -I OUTPUT -p tcp -d 10.3.3.31 -j DROP
# wait a little bit -> red
sudo iptables -D OUTPUT -p tcp -d 10.3.3.31 -j DROP
# green

Du darfst diesen Dateianhang nicht ansehen.

diff --git a/lib/FHEM/Devices/LGTV/LGTVWebOS.pm b/lib/FHEM/Devices/LGTV/LGTVWebOS.pm
index 4c4f19f..8ccb71d 100644
--- a/lib/FHEM/Devices/LGTV/LGTVWebOS.pm
+++ b/lib/FHEM/Devices/LGTV/LGTVWebOS.pm
@@ -676,6 +676,7 @@ sub Open {
 
     $hash->{FD} = $socket->fileno();
     $hash->{CD} = $socket;             # sysread / close won't work on fileno
+    $hash->{helper}{pkgcnt} = 0;
     $selectlist{$name} = $hash;
 
     $hash->{helper}->{lastResponse} =
@@ -717,6 +718,15 @@ sub Write {
 
     my $name = $hash->{NAME};
 
+    if(++$hash->{helper}{pkgcnt} > 10) {
+            ::Log3( $name, 4,
+"LGTV_WebOS ($name) - excessive writes on socket: $_"
+            );
+
+            Close($hash);
+            return;
+        }
+
     ::Log3( $name, 4, "LGTV_WebOS ($name) - WriteFn called" );
 
     return ::Log3( $name, 4, "LGTV_WebOS ($name) - socket not connected" )
@@ -725,7 +735,23 @@ sub Write {
     ::Log3( $name, 4, "LGTV_WebOS ($name) - $string" );
 
     try {
-        syswrite( $hash->{CD}, $string );
+        my $rc = syswrite( $hash->{CD}, $string );
+       unless(defined $rc) {
+            ::Log3( $name, 4,
+"LGTV_WebOS ($name) - can't write to socket, $!: $_"
+            );
+
+            Close($hash);
+            return;
+       }
+       unless($rc == length($string)) {
+            ::Log3( $name, 4,
+"LGTV_WebOS ($name) - short write on socket $rc vs. " . length($string) .  ": $_"
+            );
+
+            Close($hash);
+            return;
+       }
     }
     catch {
         if ( $_->isa('autodie::exception') && $_->matches(':io') ) {
@@ -770,6 +796,7 @@ sub Read {
     my $len;
     my $buf;
 
+    $hash->{helper}{pkgcnt} > 0 and --$hash->{helper}{pkgcnt};
     ::Log3( $name, 4, "LGTV_WebOS ($name) - ReadFn started" );
 
     $hash->{helper}->{lastResponse} =

grappa24

@ska-: kannst du mir kurz erklären, wie man mit den diff-Dateien umgeht?
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, ...

Wastegate

LG OLED55G29LA
Softwareversion 03.33.85 (aktuell)

Funktioniert alles wieder super.

Vielen Dank für die Tolle Arbeit

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, ...