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

Begonnen von CoolTux, 08 Februar 2017, 00:02:58

Vorheriges Thema - Nächstes Thema

the ratman

hatte mich schon gefreut ... trotz laufendem tv und fhem neustart hats gefunzt ... 3 x channel wechseln, 1 x volume auf 100. danngarbage after JSON object, at character offset 609 (before "\x{81}~\x{0}\x{bb}{"...") at ./FHEM/82_LGTV_WebOS.pm line 783.
→do↑p!dnʇs↓shit←

HB86

is bei mir genauso:

garbage after JSON object, at character offset 1617 (before "\x{81}~\x{0}\x{93}{"...") at ./FHEM/82_LGTV_WebOS.pm line 783.

CoolTux

Ok kann ich nachvollziehen. Bei mir wenn ich heftig viele set Kommands über FHEM sende. Korrekt?
Ihr schaltet das alles über FHEM
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

HB86

also bei mir stürzt fhem schon während des Lesen der readings ab .. ohne dass ich irgendwelche set-Befehle sende

CoolTux

Zitat von: HB86 am 15 Februar 2017, 14:32:22
also bei mir stürzt fhem schon während des Lesen der readings ab .. ohne dass ich irgendwelche set-Befehle sende

Dann brauche ich da mal ein verbose 4 Log bitte
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

the ratman

Zitatwenn ich heftig viele set Kommands über FHEM sende. Korrekt?
du meinst jetzt den tivi?
wenn du alle paar sek. klicken für heftig haltest ... dann: ja
→do↑p!dnʇs↓shit←

CoolTux

Zitat von: the ratman am 15 Februar 2017, 14:42:08
du meinst jetzt den tivi?
wenn du alle paar sek. klicken für heftig haltest ... dann: ja

Nein ich meine schon hintereinander weg ständig Kanal switschen oder immer Volume hin und her schieben. Mit vielleicht 1s Verzögerung
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

hartenthaler

Ich habe eben das Modul installiert und getestet. Erst ging alles gut. Mute on/off ging. Super!

Was nicht ging war - wie bekannt - die direkte Kanalwahl (ChannelUp hat funktioniert) und auch ScreenMsg hat nicht geklappt. Ich konnte auf dem Fernseher nichts sehen, hätte aber dort ein Meldungsfenster erwartet. Ich würde gerne bei einem Telefonanruf auf dem Fernseher einblenden wer da gerade anruft. Wie lange sollte das Fenster denn sichtbar bleiben? Kann man das einstellen?

Dann habe ich "channelGuide 1" aktiviert und bald danach ist fhem abgestürzt. Nach Neustart des Raspi und neuer Installation des Moduls (die 82_LGTV_WebOS.pm-Datei war weg!) kommt beim Start von fhem nur noch

2017.02.15 14:28:44 3: LGTV_WebOS (meinLGTV) - defined with host 192.168.2.165
garbage after JSON object, at character offset 117 (before "\x{81}j{"type":"resp...") at ./FHEM/82_LGTV_WebOS.pm line 782.

und erneuter Absturz. Aber das kennt ihr ja schon.

Aber es wurden viele Readings geladen und ich konnte die Netflix-App starten. Sehr schön! Danke für Euren Einsatz!
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

the ratman

das
ZitatNein ich meine schon hintereinander weg ständig Kanal switschen oder immer Volume hin und her schieben. Mit vielleicht 1s Verzögerung
darf ich ja nicht *g*.
find ich übrigens nett von dir. so entschleunigst du uns fernsehverrückten und sorgst so für weniger herzinfarkte.
→do↑p!dnʇs↓shit←

HB86


ToM_ToM

Hey, endlich Feierabend und gerade mal die aktuelle Version getestet.

set volume funktioniert top

set mute on hat auch funktiniert, aber danach ist fhem wieder abgeschmiert.
garbage after JSON object, at character offset 144 (before "\x{81}R{"type":"resp...") at /opt/fhem/FHEM/82_LGTV_WebOS.pm line 783.

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

ToM_ToM

So,

habe es jetzt nochmal getestet und einfach mal ein paar Befehle schnell hintereinander ausgeführt. Wobei schnell hier 1 Befehl pro Sekunde bedeutet. Evtl. sogar eher 1,5 Sekunden.

Nun mein Log mit Verbose 5:
2017.02.15 18:27:37 4: LGTV_WebOS (LG55UH950V) - run get functions
2017.02.15 18:27:37 5: LGTV_WebOS (LG55UH950V) - Sending command: {"type":"request","id":"request_1487179657.33145","client-key":"52971eded061852d1c81401e8214e013","uri":["ssap://audio/getStatus"]}
2017.02.15 18:27:37 4: LGTV_WebOS (LG55UH950V) - WriteFn called
2017.02.15 18:27:37 4: LGTV_WebOS (LG55UH950V) - þ ƒ 2K{;F2p|q"kW:u|A?"5"d;ir|C>ejF1-
|1. }5.x3(~"5(lpW%t4Y.y;i5+ |1|V.d)z8, /1z
z4).8+e)x"5>rpq[;A8aid/xG/iv,ema?amG8"DO
2017.02.15 18:27:37 4: WEB_192.168.178.23_4090 POST /fhem&detail=LG55UH950V&dev.setLG55UH950V=LG55UH950V&cmd.setLG55UH950V=set&arg.setLG55UH950V=mute&val.setLG55UH950V=off; BUFLEN:0
2017.02.15 18:27:37 5: Cmd: >set LG55UH950V mute off<
2017.02.15 18:27:37 5: LGTV_WebOS (LG55UH950V) - Sending command: {"type":"request","id":"request_1487179657.44262","payload":{},"uri":"ssap://audio/volumeDown","client-key":"52971eded061852d1c81401e8214e013"}
2017.02.15 18:27:37 4: LGTV_WebOS (LG55UH950V) - WriteFn called
2017.02.15 18:27:37 4: LGTV_WebOS (LG55UH950V) - þ  2K{;F2p|q"kW:u|A?"5"d;ir|C>ejF1-
|1. }5.4+y"5;a`^$a}q{diuk[i:;A8aid/xG/iv=ouG&e]]<n;icu[.nm e`q", r7(W/e}}1!yd(Qs1-ze! z4|z3;O
2017.02.15 18:27:37 5: Starting notify loop for LG55UH950V, 1 event(s), first is mute off
2017.02.15 18:27:37 4: DbLog logdb -> ################################################################
2017.02.15 18:27:37 4: DbLog logdb -> ###              start of new Logcycle                       ###
2017.02.15 18:27:37 4: DbLog logdb -> ################################################################
2017.02.15 18:27:37 4: DbLog logdb -> amount of events received: 1 for device: LG55UH950V
2017.02.15 18:27:37 4: DbLog logdb -> check Device: LG55UH950V , Event: mute off
2017.02.15 18:27:37 5: End notify loop for LG55UH950V
2017.02.15 18:27:37 4: Connection closed for WEB_192.168.178.23_4107: EOF
2017.02.15 18:27:37 4: LGTV_WebOS (LG55UH950V) - ReadFn gestartet
2017.02.15 18:27:37 5: LGTV_WebOS (LG55UH950V) - received correct JSON string, start response processing: {"type":"response","id":"request_1487179657.33145","payload":{"returnValue":true,"scenario":"mastervolume_tv_speaker","volume":9,"mute":true}}R{"type":"response","id":"request_1487179657.44262","payload":{"returnValue":true}}
2017.02.15 18:27:37 4: LGTV_WebOS (LG55UH950V) - JSON detected, run LGTV_WebOS_WriteReadings
2017.02.15 18:27:37 4: LGTV_WebOS (LG55UH950V) - Corrected JSON String: {"type":"response","id":"request_1487179657.33145","payload":{"returnValue":true,"scenario":"mastervolume_tv_speaker","volume":9,"mute":true}}R{"type":"response","id":"request_1487179657.44262","payload":{"returnValue":true}}
garbage after JSON object, at character offset 143 (before "\x{81}R{"type":"resp...") at /opt/fhem/FHEM/82_LGTV_WebOS.pm line 783.


VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

CoolTux

Ok, ich verstehe was genau passiert. Jetzt muss ich das irgendwie abfangen.
Ich schaue es mir an.
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

ToM_ToM

Vielleicht kannst du dir mal das Sonos - Modul anschauen.
Dort werden auch massig Anfragen zwischen den Geräten und FHEM hin und her gesendet.
Und soweit ich mich erinnern kann, auch alles im JSON-Format.

Aber set mute, set volume und set openChannel, set input, set screenMsg funktionieren jetzt auch super. :)
Gibt's nene speziellen Grund dass es "openChannel" statt nur "channel" heißt?

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

CoolTux

Zitat von: ToM_ToM am 15 Februar 2017, 19:33:56
Vielleicht kannst du dir mal das Sonos - Modul anschauen.
Dort werden auch massig Anfragen zwischen den Geräten und FHEM hin und her gesendet.
Und soweit ich mich erinnern kann, auch alles im JSON-Format.

Aber set mute, set volume und set openChannel, set input, set screenMsg funktionieren jetzt auch super. :)
Gibt's nene speziellen Grund dass es "openChannel" statt nur "channel" heißt?

VG, Thomas

Das wird noch geändert mit den openChannel. Sonos arbeitet mit Events. Der LG liefert aber ausser einer Quituerung des letzten Befehles keine Events. Daher muss man sich die Infos holen, abrufen. Dabei kann es vorkommen das über den Read 2 komplette Antworten kommen aber leider mit einem nicht JSON Zeichen dazwischen.
Ich muss mal testen was effektiver ist, den Buffer kleiner machen oder versuchen zwei Strings die zusammen kleben zu erkennen.
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