[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

CoolTux

Ich überlege nun schon seit Stunden wie man das sauber hin bekommt. Ich denke das einzige was man da machen kann ist eine ordentliche Steuerungskontrolle.
Wenn zum Beispiel aus FHEM heraus ein Befehl abgesetzt wird, müssen die gets zum Erhalt der Daten so lange ausgesetzt werden bis der set quittiert wurde. Danach laufen sie wieder an. Ich versuche da mal was zu basteln 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

ToM_ToM

Dauert das Quittieren denn so lange oder hauen die Anfragen nur zufällig asynchron in diesen Zeitraum hinein?
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, 21:35:57
Dauert das Quittieren denn so lange oder hauen die Anfragen nur zufällig asynchron in diesen Zeitraum hinein?

Das ist zufällig. Immerhin wird alle 2s eine Abfrage gestartet. Die Daten sind klein aber es kommen dann halt 2 zusammen.
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

Was mir gerade noch einfällt.
Das XBMC bzw. jetzt KODI Plugin arbeitet genauso.
Es ruft auch regelmäßig die kompletten Daten vom MediaCenter ab. Bei mir sogar sekündlich eingestellt, da ich mit der Position des Films gewisse Dinge trigger. Und es läuf stabil und verursacht auch keinen sehenswerte CPU-Last.
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

CoolTux

Ich habe eine neue Version ins Git geladen. Version 0.0.73.
Ich konnte bei mir 2 min lang sekündlich den Kanal Wechseln mit up oder down und alles lief bei mir stabil.

Bitte einmal testen, gerade die Kandidaten die große Probleme hatten.
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

leider stürzt fhem immernoch ab:

2017.02.16 10:34:55 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/82_LGTV_WebOS.pm line 355.
2017.02.16 10:34:55 3: LGTV_WebOS (47LB652V) - Sucessfull WS connection to 192.168.1.XXX
garbage after JSON object, at character offset 148 (before "\x{81}}{"type":"resp...") at ./FHEM/82_LGTV_WebOS.pm line 787.

CoolTux

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

Zitat von: CoolTux am 16 Februar 2017, 10:47:38
Kann es sein das Du kein Neustart gemacht hast?

Neustart hab ich gemacht. Mittlerweile schon mehrfach. Log sieht immer so aus:

2017.02.16 11:14:06 4: LGTV_WebOS (47LB652V) - ¾ à2K{;F2p|q"kW:u|A?"5>rpq[;A8aid/xG/iv,ema?amG8"Dicu[.nm e`q".*7/ }b)T~5, s3x~5. )b,P7|Qx2;ii}q"kW:u|A?_(s7+{0-e3 y1;O
2017.02.16 11:14:06 4: LGTV_WebOS (47LB652V) - ReadFn gestartet
2017.02.16 11:14:06 4: LGTV_WebOS (47LB652V) - JSON detected, run LGTV_WebOS_WriteReadings
2017.02.16 11:14:06 4: LGTV_WebOS (47LB652V) - Corrected JSON String: {"type":"response","id":"request_1487240046.28087","payload":{"appId":"com.webos.app.livetv","returnValue":true,"windowId":"","processId":"n-1054"}}½{"type":"response","id":"request_1487240046.30348","payload":{"returnValue":true,"status3D":{"status":false,"pattern":"2d"}}}¾Q{"type":"response","id":"request_1487240046.35915","payload":{"devices":[{"id":"SCART_1","label":"AV-1","port":1,"appId":"com.webos.app.externalinput.scart","icon":"http://192.168.1.188/resources/93be7883d87df6417fa3536328b0d9ef2d000cdd/scart.png","modified":false,"autoav":false,"currentTVStatus":"","subList":[],"subCount":0,"connected":false,"favorite":false},{"id":"AV_1","label":"AV-2","port":1,"appId":"com.webos.app.externalinput.av2","icon":"http://192.168.1.188/resources/b3a59ab2f81dde2b3755a66cbdfbad55710ba72f/av.png","modified":false,"subList":[],"subCount":0,"connected":false,"favorite":false},{"id":"COMP_1","label":"Komponente","port":1,"appId":"com.webos.app.externalinput.component","icon":"http://192.168.1.188/resources/c2e5bbc1bdf5c0f66acd8ec7017680bc606af181/component.png","modified":false,"subList":[],"subCount":0,"connected":false,"favorite":false},{"id":"HDMI_1","label":"VSX","port":1,"appId":"com.webos.app.hdmi1","icon":"http://192.168.1.188/resources/5281776c650028a088784ec6bcd4f612fc1ede63/HDMI_1.png","modified":true,"subList":[],"subCount":0,"connected":true,"favorite":true},{"id":"HDMI_2","label":"HDMI-2","port":2,"appId":"com.webos.app.hdmi2","icon":"http://192.168.1.188/resources/89e6b88c1d1e78e1ba2a34c59a81b5c5808b2538/HDMI_2.png","modified":false,"subList":[],"subCount":0,"connected":false,"favorite":false},{"id":"HDMI_3","label":"HDMI-3","port":3,"appId":"com.webos.app.hdmi3","icon":"http://192.168.1.188/resources/31ba0a3ec30bcad36b89701b193ab466d7f0c9fe/HDMI_3.png","modified":false,"subList":[],"subCount":0,"connected":false,"favorite":false}],"returnValue":true}}¾ ջ"type":"response","id":"request_1487240046.39721","payload":{"returnValue":true,"scenario":"mastervolume_ext_speaker_arc","volume":0,"mute":false}}
garbage after JSON object, at character offset 148 (before "\x{81}}{"type":"resp...") at ./FHEM/82_LGTV_WebOS.pm line 787.

CoolTux

Kannst Du mir ein paar Zeilen zuvor liefern? Ich möchte sehen wie der String eingelesen wurde und ob er durch den Parser gelaufen ist.
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

das sind die Logs bevor, die ganzen Readings eingelesen werden:

2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - Baue Socket Verbindung auf
2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - Socket Connected
2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - WriteFn called
2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - GET / HTTP/1.1
Host: 192.168.1.XXX
User-Agent: FHEM
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: MTQ4NzIzOTkwNC43NDc4Ng==


2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - send Handshake to WriteFn
2017.02.16 11:11:44 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/82_LGTV_WebOS.pm line 355.
2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - start timer status request
2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - HASH handshakePayload
2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - WriteFn called
2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - ¾Π2K{;[/"#9e~[8t|@1-
|2* r0-s1. |"5;a`^$a}q{;B*ik[%gMK;e;iPK}PMg"tS%iW8t;0"j[,nxF>r|Ai:BIispU%amG9eOW9sp]%"#g"j[,nxF>r|q"|Kh{u/vz_'0xu{iV[SLtL#BTX2P[<ix 5JeiV[0Cj0UjpC ~p{_(t@ y}qsP\pC ~h}zyCdlz\p{ iVX
97Z9VKU!Cnjv\ OJBZ,
#R2ra_|<Y]K!Q~y 3xG>k};c|U&E+q1PZS{bSsKs(KrqJke$5pv1Nq WKK*MVD~zNa9tq^-7^y8hDli0@|+w
aVz7*GrJ,7jE'36C/[u
G+z>4K^4!W)3u~ qMFyxRz/Cjd-`fSbncU=I-pr_g ssY(u2e4V}yA+q(\~0z(htQ*XxVh^@qQmQVCsSQHYkA0Qb'pls3/\qePhDqMhS
M+vz}y9W_&yhH3v{lrYdN ,fO`W,Z
2 K.AnSVphCI
"C S0h -QvX$a.|nXF<=$6]58i~\.d;0"oW%dv@d;icv_el~Wi,;B.rt[8sp]%s;"MwTFaCL`"5OWfOUmNIg_MwT;iCV|RV~MVgEFsDFyY[}
R]g"Kw
DF{SMsL\vAIb"5EXvL^wS]ji,;`A]mOM{
IZsIV|"5EX`H;iWK{EFaTM{GJg"N`T\mOM{
IZsIV|AUwT;iCV|RV~PVeR;iR\s_ZgR\|_Zz
NWw"5EXvRL|IWuAIb"5EXvUIv
T\mN_}i,;gDXf__`MF`MVf_Xb"5EXvL^wTOmNIg_\dNMai,;`A]mVFqRKwTFfM\,;^$cx^"z|VewV$rWS&ejq{;q"UukEuW(tk]%izAi}5(r|S?e}q"+z6(y3;ilvQ*lpH.dXB;Nx_.s;0"}WfD\q"_zM9~ _W9n{W/i|\>n~g";iFQw UukR|_$t|6,;A.rpS'"#yf {e+VycW{8*|1se-T.7{P{7;iaiBd;icv_el~Wet|A?"diaiBekA"owq"(z"5;ek_"sj[$njq[;~
UWq"5AL|HFeBXb"5
PImOFsP;iCU}E;iT\a_VbN;iT\a_I`T\qE]g"Z}TK}_XgIVg"Z}TK}_]{PUs"5OWfOUmNIg_S}SM{K;iCV|RV~IWbTFDPsR\qR]{G;iCV|RV~IWbTFDPsPUsBXq "5OWfOUmNIg_Mdi,;qNM`LFbW\`i,;`A]m
PImTXfS;iR\s_ZgR\|_Zz
NWw"5EXvIWbTFvVPq_U{T;iR\s_WwWV` _Jf
T\g"Kw
DF`NW{GFsPJg"Kw
DFf_Zz
NWw_U{T;iWK{EF|TPtCXfOWmOXa"5EXvPVeRFaAMwi,;`A]mOL|R@mN_}i]5&aw[-ejFekA"owq1dicu[.nm e`q";Og"mK;e;ir|U"smW9"d
2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - Send pairing informations
2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - start pairing routine
2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - start Handshake
2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - ReadFn gestartet
2017.02.16 11:11:44 3: LGTV_WebOS (47LB652V) - Sucessfull WS connection to 192.168.1.XXX
2017.02.16 11:11:44 4: LGTV_WebOS (47LB652V) - ReadFn gestartet

CoolTux

Kannst Du bitte ein list vom LGDevice machen? Mir kommt da was komisch vor.
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

Zitat von: CoolTux am 16 Februar 2017, 11:29:30
Kannst Du bitte ein list vom LGDevice machen? Mir kommt da was komisch vor.

Internals:
   DEF        192.168.1.XXX
   FD         28
   HOST       192.168.1.XXX
   LAST_RECV  1487242689.02651
   NAME       47LB652V
   NR         143
   PARTIAL
   STATE      off
   TYPE       LGTV_WebOS
   VERSION    0.0.74
   Readings:
     2017-02-16 11:58:09   channel         -
     2017-02-16 11:58:09   channelCurrentEndTime -
     2017-02-16 11:58:09   channelCurrentStartTime -
     2017-02-16 11:58:09   channelCurrentTitle -
     2017-02-16 11:58:09   channelId       -
     2017-02-16 11:58:09   channelMedia    -
     2017-02-16 11:58:09   channelNextEndTime -
     2017-02-16 11:58:09   channelNextStartTime -
     2017-02-16 11:58:09   channelNextTitle -
     2017-02-16 11:57:49   lastResponse    ok
     2017-02-16 11:57:49   pairing         paired
     2017-02-16 11:58:09   presence        absent
     2017-02-16 11:58:09   state           off
   Helper:
     wsKey      MTQ4NzI0MjY2OS43Mzk1NQ==

     Channelguide:
       counter    3
     Device:
       registered 0
       runsetcmd  0
       Channelguide:
         counter    0
Attributes:
   devStateIcon on:10px-kreis-gruen:off off:10px-kreis-rot:on
   room       LGTV
   verbose    4

CoolTux

Ok Danke. Kannst Du noch ein verbose 5 Log mitgeben. Einfach verbose 5 beim Device und FHEM neustarten 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

rennt mal so weit
channelguide krieg ich aber nicht, auch keine kanalnummer/name.
alle readings mit channel... werden zwar upgedatet aber haben nur ein "-" als info.

einen on/off-satus gibts aber nur mehr nach nem händischen connect. ich hab da 5 min. gewartet, da kommt weder ein on noch ein present in annehmbarer zeit.
noch besser - beim nächsten mal readings einlesen hüpft der wieder auf off-status

dafür überlebt das modul nun sogar nen neustart von fhem mit laufendem tivi

aja, im logfile gibts beim start nun2017.02.16 12:22:02 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/82_LGTV_WebOS.pm line 355.
2017.02.16 12:22:02 1: stacktrace:
2017.02.16 12:22:02 1:     main::__ANON__                      called by ./FHEM/82_LGTV_WebOS.pm (355)
2017.02.16 12:22:02 1:     main::LGTV_WebOS_TimerStatusRequest called by ./FHEM/82_LGTV_WebOS.pm (726)
2017.02.16 12:22:02 1:     main::LGTV_WebOS_Handshake          called by ./FHEM/82_LGTV_WebOS.pm (565)
2017.02.16 12:22:02 1:     main::LGTV_WebOS_Open               called by fhem.pl (2900)
2017.02.16 12:22:02 1:     main::HandleTimeout                 called by fhem.pl (606)
→do↑p!dnʇs↓shit←

CoolTux

Zitat von: the ratman am 16 Februar 2017, 12:26:13
rennt mal so weit
channelguide krieg ich aber nicht, auch keine kanalnummer/name.
alle readings mit channel... werden zwar upgedatet aber haben nur ein "-" als info.

einen on/off-satus gibts aber nur mehr nach nem händischen connect. ich hab da 5 min. gewartet, da kommt weder ein on noch ein present in annehmbarer zeit.
noch besser - beim nächsten mal readings einlesen hüpft der wieder auf off-status

dafür überlebt das modul nun sogar nen neustart von fhem mit laufendem tivi

aja, im logfile gibts beim start nun2017.02.16 12:22:02 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/82_LGTV_WebOS.pm line 355.
2017.02.16 12:22:02 1: stacktrace:
2017.02.16 12:22:02 1:     main::__ANON__                      called by ./FHEM/82_LGTV_WebOS.pm (355)
2017.02.16 12:22:02 1:     main::LGTV_WebOS_TimerStatusRequest called by ./FHEM/82_LGTV_WebOS.pm (726)
2017.02.16 12:22:02 1:     main::LGTV_WebOS_Handshake          called by ./FHEM/82_LGTV_WebOS.pm (565)
2017.02.16 12:22:02 1:     main::LGTV_WebOS_Open               called by fhem.pl (2900)
2017.02.16 12:22:02 1:     main::HandleTimeout                 called by fhem.pl (606)


Kannst Du mir ein list bitte geben
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