Autor Thema: [82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS  (Gelesen 107794 mal)

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 24158
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #540 am: 05 Oktober 2017, 17:13:03 »
Da muß ich wohl erstmal drüber schlafen. Mir fällt gerade nichts mehr ein. Sorry
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://paypal.me/pools/c/8gULisr9BT
FHEM GitHub: https://github.com/fhem/
Mein Dokuwiki:
https://tuxnetwiki-tuxnet.ddns.net

Offline Tina

  • Jr. Member
  • **
  • Beiträge: 57
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #541 am: 05 Oktober 2017, 17:14:38 »
Danke und vielen Dank schon einmal für Deinen Support.
Ich grübel auch weiter vor mich hin.

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 24158
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #542 am: 05 Oktober 2017, 21:44:04 »
Was ich nicht verstehe ist das das Modul nicht Dein off über die Fernbedienung sofort mit bekommt. Wenn ich bei mir über die Fernbedienung ausschalte dann kommt im Modul fast zeitgleich ein off im state.
Wenn du magst teste Mal bitte. Fernsehr an, warten bis state im Device on ist, dann Fernsehr über Fernbedienung aus und bitte komplett ausschalten.
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://paypal.me/pools/c/8gULisr9BT
FHEM GitHub: https://github.com/fhem/
Mein Dokuwiki:
https://tuxnetwiki-tuxnet.ddns.net

Offline Tina

  • Jr. Member
  • **
  • Beiträge: 57
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #543 am: 05 Oktober 2017, 22:10:51 »
Wenn ich den TV mit der Fernbedienung ausschalte, bleibt er in fhem trotzdem auf on. Direkt im Anschluss habe ich die Steckdose ausgeschaltet. In fhem bleibt der Status trotzdem auf on. Wiederum 6 min später wird fhem blockiert, obwohl der TV stromlos ist.

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 24158
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #544 am: 05 Oktober 2017, 22:12:03 »
Kannst Du Dir nicht einen neuen LG kaufen  ;D

Spaß. Ich schlage Mal drüber


Nachti
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://paypal.me/pools/c/8gULisr9BT
FHEM GitHub: https://github.com/fhem/
Mein Dokuwiki:
https://tuxnetwiki-tuxnet.ddns.net

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4178
  • Wer anderen eine Bratwurst brät...
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #545 am: 05 Oktober 2017, 22:14:36 »
Kannst Du Dir nicht einen neuen LG kaufen  ;D

Spaß. Ich schlage Mal drüber


Nachti

Bitte nicht schon wieder Schläge... :D :D :D

Gruß
Dan
FHEM 5.9, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Tina

  • Jr. Member
  • **
  • Beiträge: 57
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #546 am: 05 Oktober 2017, 22:17:59 »
Danke und Gute Nacht.
Ich werde morgen weiter testen, was mein TV so alles macht oder nicht  :-\

Offline GrandJury

  • New Member
  • *
  • Beiträge: 34
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #547 am: 05 Oktober 2017, 23:22:32 »
Auch mit der neuen Version, gibt es bei mir keine Veränderung. Dass Reading "LaunchApp" bleibt unverändert, nachdem es sich einmal aktualisiert hat. Danach erfolgt keine Änderung mehr. Erst nach einem Neustart von Fhem.

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 24158
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #548 am: 05 Oktober 2017, 23:25:09 »
Auch mit der neuen Version, gibt es bei mir keine Veränderung. Dass Reading "LaunchApp" bleibt unverändert, nachdem es sich einmal aktualisiert hat. Danach erfolgt keine Änderung mehr. Erst nach einem Neustart von Fhem.

Die Version für Dich sollte auch nichts beheben sondern hat erweiterte Debugmeldungen. Die brauche ich bitte. Logfile
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://paypal.me/pools/c/8gULisr9BT
FHEM GitHub: https://github.com/fhem/
Mein Dokuwiki:
https://tuxnetwiki-tuxnet.ddns.net

Offline GrandJury

  • New Member
  • *
  • Beiträge: 34
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #549 am: 06 Oktober 2017, 00:45:15 »
Sorry  :-[

2017.10.06 00:33:52 3: LGTV_WebOS (Fernseher) - Corrected JSON String: {"type":"registered","id":"register_1507242832.58107","payload":{"client-key":"361f14a4bd4ac5570c9c738232bd43a8"}}
2017.10.06 00:34:02 3: LGTV_WebOS (Fernseher) - Corrected JSON String: {"type":"response","id":"request_1507242842.58653","payload":{"returnValue":true,"scenario":"mastervolume_ext_speaker_arc","volume":0,"mute":false}}
2017.10.06 00:34:06 3: LGTV_WebOS (Fernseher) - Corrected JSON String: {"type":"response","id":"request_1507242846.59116","payload":{"appId":"com.webos.app.livetv","returnValue":true,"windowId":"","processId":""}}
2017.10.06 00:34:07 3: LGTV_WebOS (Fernseher) - Corrected JSON String: {"type":"response","id":"request_1507242846.62862","payload":{"returnValue":true}}
2017.10.06 00:34:53 3: LGTV_WebOS (Fernseher) - Sucessfull WS connection to 192.168.178.112
2017.10.06 00:34:53 3: LGTV_WebOS (Fernseher) - Corrected JSON String: {"type":"registered","id":"register_1507242893.71808","payload":{"client-key":"361f14a4bd4ac5570c9c738232bd43a8"}}
2017.10.06 00:35:34 3: LGTV_WebOS (Fernseher) - Sucessfull WS connection to 192.168.178.112
2017.10.06 00:35:34 3: LGTV_WebOS (Fernseher) - Corrected JSON String: {"type":"registered","id":"register_1507242934.42627","payload":{"client-key":"361f14a4bd4ac5570c9c738232bd43a8"}}
2017.10.06 00:36:15 3: LGTV_WebOS (Fernseher) - Sucessfull WS connection to 192.168.178.112
2017.10.06 00:36:15 3: LGTV_WebOS (Fernseher) - Corrected JSON String: {"type":"registered","id":"register_1507242975.12783","payload":{"client-key":"361f14a4bd4ac5570c9c738232bd43a8"}}
2017.10.06 00:36:56 3: LGTV_WebOS (Fernseher) - Sucessfull WS connection to 192.168.178.112
2017.10.06 00:36:56 3: LGTV_WebOS (Fernseher) - Corrected JSON String: {"type":"registered","id":"register_1507243016.23972","payload":{"client-key":"361f14a4bd4ac5570c9c738232bd43a8"}}
2017.10.06 00:37:36 3: LGTV_WebOS (Fernseher) - Sucessfull WS connection to 192.168.178.112
2017.10.06 00:37:37 3: LGTV_WebOS (Fernseher) - Corrected JSON String: {"type":"registered","id":"register_1507243056.96062","payload":{"client-key":"361f14a4bd4ac5570c9c738232bd43a8"}}

Internals:
   DEF        192.168.178.112
   FD         42
   HOST       192.168.178.112
   NAME       Fernseher
   NR         234
   PARTIAL
   STATE      on
   TYPE       LGTV_WebOS
   VERSION    1.0.1
   READINGS:
     2017-10-03 11:50:04   3DMode          2d
     2017-10-06 00:43:42   channel         -
     2017-10-06 00:43:42   channelCurrentEndTime -
     2017-10-06 00:43:42   channelCurrentStartTime -
     2017-10-06 00:43:42   channelCurrentTitle -
     2017-10-06 00:43:42   channelMedia    -
     2017-10-06 00:43:42   channelName     -
     2017-10-06 00:43:42   channelNextEndTime -
     2017-10-06 00:43:42   channelNextStartTime -
     2017-10-06 00:43:42   channelNextTitle -
     2017-10-03 11:50:06   extInput_AV     connect_0
     2017-10-03 11:50:06   extInput_HDMI-2 connect_0
     2017-10-03 11:50:06   extInput_Komponente connect_0
     2017-10-03 11:50:06   extInput_PS4    connect_0
     2017-10-03 11:50:06   extInput_Recalbox connect_0
     2017-10-06 00:34:06   input           -
     2017-10-05 23:19:06   lastResponse    error - 500 Application error
     2017-10-06 00:34:06   launchApp       TV
     2017-10-06 00:43:43   lgKey           361f14a4bd4ac5570c9c738232bd43a8
     2017-10-03 07:50:30   pairing         unpaired
     2017-10-05 23:22:51   service_api     v.1
     2017-10-05 23:22:51   service_audio   v.1
     2017-10-05 23:22:51   service_config  v.1
     2017-10-05 23:22:51   service_media.controls v.1
     2017-10-05 23:22:51   service_media.viewer v.1
     2017-10-05 23:22:51   service_pairing v.1
     2017-10-05 23:22:51   service_settings v.1
     2017-10-05 23:22:51   service_system  v.1
     2017-10-05 23:22:51   service_system.launcher v.1
     2017-10-05 23:22:51   service_system.notifications v.1
     2017-10-05 23:22:51   service_timer   v.1
     2017-10-05 23:22:51   service_tv      v.1
     2017-10-05 23:22:51   service_user    v.1
     2017-10-05 23:22:51   service_webapp  v.2
     2017-10-06 00:44:03   state           on
     2017-10-06 00:34:02   volume          0
   helper:
     wsKey      MTUwNzI0MzQyMy4xNzE0

     device:
       registered 1
       runsetcmd  1
       channelguide:
         counter    92
Attributes:
   devStateIcon on:10px-kreis-gruen:off off:10px-kreis-rot:on
   room       LGTV

Offline Tina

  • Jr. Member
  • **
  • Beiträge: 57
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #550 am: 06 Oktober 2017, 15:32:39 »
Hallo CulTux,

ich habe noch ein wenig mit meinem TV und Deinem Modul gespielt.
Insbesondere wollte ich das Modul ein wenig besser verstehen.

Ich kam zu der Erkenntnis, dass die Methode LGTV_WebOS_TimerStatusRequest($) in Kombination mit meinem TV nicht einwandfrei funktioniert.
Jetzt bitte nicht lachen, aber um zu verstehen was wann passiert, habe ich Log-Meldungen hinzugefügt.

sub LGTV_WebOS_TimerStatusRequest($) {
Log3 "Tina", 3, "Hash wird geprueft...";
    if( !IsDisabled($name) and $hash->{FD} and $hash->{helper}{device}{registered} == 1 ) {
        Log3 "Tina", 3, "Action 1: FD und helper,device,regisrtierung ist erfolgreich";
    } elsif( IsDisabled($name) ) {
Log3 "Tina", 3, "Action 2: Name = ($name)is disabled";
    } else {
        Log3 "Tina", 3, "Action 3: Ansosnten setze TV auf aus.";
    }
}

Der Test "Strom an - TV an - TV aus - Strom aus" kann man jetzt schön den Logmeldungen entnehmen.
Vorab eine kurze Zusammenfassung, was ich daraus lese:

Der Strom geht sofort an.
Der TV wird mit kurzer Verzögerung ebenfalls als on erkannt.
Der TV wird abgeschaltet (fhem merkt nichts).
Ca. 6 min später wird fhem für ca. 10 min blockiert.
Erst im Anschluss wird der TV in fhem als off gemeldet.

Ich schließe daraus, dass mein TV irgendetwas anderes sendet als die anderen LGs hier im Forum.


2017.10.06 14:24:25 3: Hash wird geprueft...
2017.10.06 14:24:25 3: Action 3: Ansosnten setze TV auf aus.
2017.10.06 14:24:34 3: FS20 set W_Hifi on
2017.10.06 14:24:35 3: Hash wird geprueft...
2017.10.06 14:24:35 3: Action 3: Ansosnten setze TV auf aus.
2017.10.06 14:24:45 3: Hash wird geprueft...
2017.10.06 14:24:45 3: Action 3: Ansosnten setze TV auf aus.
2017.10.06 14:24:55 3: Hash wird geprueft...
2017.10.06 14:24:55 3: Action 3: Ansosnten setze TV auf aus.
2017.10.06 14:24:58 3: YAMAHA_AVR (W_Stereoanlage) - device W_Stereoanlage reappeared
2017.10.06 14:25:05 3: Hash wird geprueft...
2017.10.06 14:25:05 3: Action 3: Ansosnten setze TV auf aus.
2017.10.06 14:25:05 3: Hash wird geprueft...
2017.10.06 14:25:05 3: Action 3: Ansosnten setze TV auf aus.
2017.10.06 14:25:05 3: LGTV_WebOS (LGTV) - Sucessfull WS connection to 192.168.178.38
2017.10.06 14:25:15 3: Hash wird geprueft...
2017.10.06 14:25:15 3: Action 1: FD und helper,device,regisrtierung ist erfolgreich
2017.10.06 14:25:20 3: FS20 set W_Hifi off
2017.10.06 14:25:25 3: Hash wird geprueft...
2017.10.06 14:25:25 3: Action 1: FD und helper,device,regisrtierung ist erfolgreich
2017.10.06 14:25:31 3: YAMAHA_AVR (W_Stereoanlage) - could not execute command on device W_Stereoanlage. Please turn on your device in case of deactivated network standby or check for correct hostaddress.
2017.10.06 14:25:35 3: Hash wird geprueft...
2017.10.06 14:25:35 3: Action 1: FD und helper,device,regisrtierung ist erfolgreich
...
2017.10.06 14:32:26 3: Hash wird geprueft...
2017.10.06 14:32:26 3: Action 1: FD und helper,device,regisrtierung ist erfolgreich
2017.10.06 14:32:36 3: Hash wird geprueft...
2017.10.06 14:32:36 3: Action 1: FD und helper,device,regisrtierung ist erfolgreich
2017.10.06 14:41:37 1: 192.168.178.24:1000 disconnected, waiting to reappear (HMLAN)
2017.10.06 14:41:37 1: HMLAN_Parse: HMLAN new condition disconnected
2017.10.06 14:41:37 1: Perfmon: possible freeze starting at 14:32:43, delay is 534.156
2017.10.06 14:41:37 3: Hash wird geprueft...
2017.10.06 14:41:37 3: Action 3: Ansosnten setze TV auf aus.
2017.10.06 14:41:37 1: HMLAN_Parse: HMLAN new condition init
2017.10.06 14:41:37 1: 192.168.178.24:1000 reappeared (HMLAN)
2017.10.06 14:41:38 1: HMLAN_Parse: HMLAN new condition ok

Um andere Fehler auszuschließen habe ich noch einen Test mit einem fast leerem fhem gemacht.
Leider führte auch dies beim Ausschalten des TV zum Absturz.

Desweiteren habe ich versucht mit wireshark die Kommunikation aufzuzeichnen.
Wenn er ausgeschaltet wird, dann sendet er nachfolgende und ähnliche Pakete (siehe Anhang). Gibt es etwas was ich dort überprüfen könnte?

Viele Grüße
Tina

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 24158
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #551 am: 06 Oktober 2017, 15:44:31 »
Mensch Tina Du legst Dich ja voll ins Zeug.

Also eigentlich ist das entscheidende folgendes.
Du schaltest den Fernseher aus, egal wie Hauptsache kein Stecker ziehen. Dadurch wird über Socket ein Packet gesendet mit der Länge 0, also keine Daten. Dies kannst du in der Funktion Read Dir anschauen. Wenn das geschieht soll FHEM den Socket abbauen und alles löschen.

Dein Fernseher ist der Meinung es nicht so machen zu müssen, es wäre also interessant zu erfahren was er da genau sendet. Du kannst in der Read Mal direkt eine Ausgabe einbauen nach dem einlesen der socketdaten.

Du hattest auch noch erwähnt das noch mehr am TV hängt. Kannst du das abklemmen?
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://paypal.me/pools/c/8gULisr9BT
FHEM GitHub: https://github.com/fhem/
Mein Dokuwiki:
https://tuxnetwiki-tuxnet.ddns.net
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Tina

  • Jr. Member
  • **
  • Beiträge: 57
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #552 am: 06 Oktober 2017, 15:56:08 »
Hallo CulTux,

jetzt hast Du es endlich geschafft :-[
ich brauche mehr Informationen: socket, read Dir? Wo soll ich das einbauen? Wo kann ich mir das anschauen? Fhem, wireshark, im Modul? Ich stehe gerade auf dem Schlauch :-(

Ich koppel mal die Yamaha ab, das stand sowieso als nächstes auf meinem Plan.
(Nicht, dass der TV die leeren Pakete an den falschen Empfänger verschwendet)

Bis dann
Tina

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 24158
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #553 am: 06 Oktober 2017, 16:19:10 »
Sorry, nichts lag mir gerne als Dich zu verwirren   ;D

sub LGTV_WebOS_Read($) {

    my $hash = shift;
    my $name = $hash->{NAME};
   
    my $len;
    my $buf;
   
   
    Log3 $name, 4, "LGTV_WebOS ($name) - ReadFn started";

    $len = sysread($hash->{CD},$buf,10240);
   
    if( !defined($len) or !$len ) {

        LGTV_WebOS_Close($hash);

        return;
    }
   
unless( defined $buf) {
        Log3 $name, 3, "LGTV_WebOS ($name) - no data received";
        return;
    }
   
   
    if( $buf =~ /({"type":".+}}$)/ ) {
   
        $buf =~ /({"type":".+}}$)/;
        $buf = $1;
       
        Log3 $name, 4, "LGTV_WebOS ($name) - received correct JSON string, start response processing: $buf";
        LGTV_WebOS_ResponseProcessing($hash,$buf);
       
    } elsif( $buf =~ /HTTP\/1.1 101 Switching Protocols/ ) {
   
        Log3 $name, 4, "LGTV_WebOS ($name) - received HTTP data string, start response processing: $buf";
        LGTV_WebOS_ResponseProcessing($hash,$buf);
       
    } else {
   
        Log3 $name, 4, "LGTV_WebOS ($name) - coruppted data found, run LGTV_WebOS_ProcessRead: $buf";
        LGTV_WebOS_ProcessRead($hash,$buf);
    }
}

Das ist die Read Funktion. Diese Funktion wird  von der FHEM Hauptschleife aufgerufen sobald Daten ab Socket anliegen.

$buf enthält die Daten
$len die Länge der Daten
sub LGTV_WebOS_Read($) {

    my $hash = shift;
    my $name = $hash->{NAME};
   
    my $len;
    my $buf;
   
   
    Log3 $name, 4, "LGTV_WebOS ($name) - ReadFn started";

    $len = sysread($hash->{CD},$buf,10240);
   
    if( !defined($len) or !$len ) {

        LGTV_WebOS_Close($hash);

        return;
    }
   
unless( defined $buf) {
        Log3 $name, 3, "LGTV_WebOS ($name) - no data received";
        return;
    }

   #Hier kann natürlich du Mal eine Ausbildung einbauen welche $buf aus gibt
   Log3 $name, 3, "LGTV_WebOS ($name) - data received: $buf";
   
   
    if( $buf =~ /({"type":".+}}$)/ ) {
   
        $buf =~ /({"type":".+}}$)/;
        $buf = $1;
       
        Log3 $name, 4, "LGTV_WebOS ($name) - received correct JSON string, start response processing: $buf";
        LGTV_WebOS_ResponseProcessing($hash,$buf);
       
    } elsif( $buf =~ /HTTP\/1.1 101 Switching Protocols/ ) {
   
        Log3 $name, 4, "LGTV_WebOS ($name) - received HTTP data string, start response processing: $buf";
        LGTV_WebOS_ResponseProcessing($hash,$buf);
       
    } else {
   
        Log3 $name, 4, "LGTV_WebOS ($name) - coruppted data found, run LGTV_WebOS_ProcessRead: $buf";
        LGTV_WebOS_ProcessRead($hash,$buf);
    }
}

Umbau oder besser Zusatz dann so.


Grüße
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://paypal.me/pools/c/8gULisr9BT
FHEM GitHub: https://github.com/fhem/
Mein Dokuwiki:
https://tuxnetwiki-tuxnet.ddns.net

Offline Tina

  • Jr. Member
  • **
  • Beiträge: 57
Antw:[82_LGTV_WebOS.pm] Modul für LG TV's mit WebOS
« Antwort #554 am: 06 Oktober 2017, 16:29:34 »
Vielen Dank für die Erläuterung.
Ich probiere es gleich aus, muss noch warten, bis mein fhem wieder aufwacht.

Ich habe aber zwei neue Erkenntnisse.
- An der Yamaha liegt es nicht, die Kopplung habe ich aufgehoben und Sicherheitshalber auch alle Verbindungskabel gezogen.
- Wenn der TV ausgeschaltet wird, wird nur noch das Reading "state" aktualisiert. Die anderen Readings werden nicht mehr aktualisiert (siehe Abbildung, ca. 16:12 habe ich auf Aus gedrückt).