Module für XBMC

Begonnen von Dennis B., 06 Januar 2013, 22:32:24

Vorheriges Thema - Nächstes Thema

vbs

#120
Ich habe das Problem, dass die verschiedenen Status (langes U :P) bzw. Readings nicht immer zueinander passen bzw. nicht der Realität entsprechen. Zum Beispiel steht im Moment im Reading "system" "sleep" drin. Obwohl XBMC an ist und auch STATUS auf "opened" steht.

Ich habe XBMC gestern runtergefahren (in Standby). Dann stand bis eben auch korrekt STATUS auf "disconnected" auf "system" auf "sleep". Jetzt hab ich XBMC wieder eingeschaltet und STATUS ist auf "openend" gegangen, aber "system" steht nach wie vor auf "sleep". Obwohl schon mehrere Readings upgedatet wurden auch auch rot geworden sind.

Ist das ein Bug oder verstehe ich da etwas nicht?

EDIT:
Hab da eine Theorie: Und zwar wird "system" korrekt wieder auf "wake" gesetzt, wenn ich XBMC nur kurz in Standby fahre. Dabei bemerkt STATUS nichtmal, dass XBMC weg war. Kann es sein, dass es ein Problem ist, wenn ich XBMC zu lange in Standby setzt und dadurch die TCP-Verbindung timeoutet und fhem dann nicht sofort beim Aufwachen von XBMC ein Event bekommt, sondern erst nach einer Minute eine neue Verbindung aufmacht und dann das Event verpasst hat?

vbs

Anbei ein Patch der Folgendes macht:
-manuelles Setzen des Readings "system" auf "wake" sobald eine Verbindung erfolgreich aufgebaut wurde, da dieses Reading nicht beim Verbinden vom XBMC abgefragt wird
-Nutzung von DevIO_Expect, um zu erkennen, wenn XBMC in Standby geht, so dass auch wieder erfolgreich eine Verbindung aufgebaut werden kann, wenn XBMC wieder kommt

Wäre toll, wenn das jemand reviewen könnte bzw. sogar einchecken könnte, wenn es keine Probleme gibt.

P.A.Trick

Zitat von: vbs am 06 Mai 2014, 22:31:30
Anbei ein Patch der Folgendes macht:
-manuelles Setzen des Readings "system" auf "wake" sobald eine Verbindung erfolgreich aufgebaut wurde, da dieses Reading nicht beim Verbinden vom XBMC abgefragt wird
-Nutzung von DevIO_Expect, um zu erkennen, wenn XBMC in Standby geht, so dass auch wieder erfolgreich eine Verbindung aufgebaut werden kann, wenn XBMC wieder kommt

Wäre toll, wenn das jemand reviewen könnte bzw. sogar einchecken könnte, wenn es keine Probleme gibt.

Hat das schon jemand getestet?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

vbs

Nochmal ein kleines Update:
-Wenn "fork" benutzt wird, dann werden in dem geforkten Prozess nun alle File-Handles geschlossen, so dass es keine Probleme mehr mit fork geben sollte
-Formatierung verbessert

P.A.Trick

Mein fhem scheint damit abzustürzen!

     pmalformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "Library.OnRemove","p...") at ./FHEM/70_XBMC.pm line 238.              Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 129.              Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 129.         
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

vbs

Das scheint in den grundlegenden Funktionen zu passieren, in denen die empfangenen Daten geparst werden. Hab ich eigentlich nix dran gemacht, aber ich werd gern mal reingucken wenn du mir sagen kannst, wie ich das reproduzieren kann. Ein komplettes Logfile könnte auch helfen.

P.A.Trick

Also ich habe die Fork Funktion aktiviert und das XBMC hat nach einen Audio Library Scan gemacht. Mit deaktivierter Fork Funktion stürzt es nicht mehr ab!
Im Log hatte ich nicht mehr gesehen und hatte es schon gelöscht....sorry!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

vbs

Hm kein Problem. Bei mir passierts hier leider nicht, also ich kann das so nicht nachstellen. Könntest du vielleicht nochmal probieren, ob das mit fork wieder auftritt bei dir?
Fork halte ich für wichtig, da sonst fhem im Main-Thread versucht einmal pro Minute eine Verbindung aufzubauen. Wenn XBMC ausgeschaltet ist, läuft er dann immer in den Timeout rein (ich glaub 3 Sekunden) und fhem ist dann in der Zeit nicht ansprechbar.

P.A.Trick

#128
Ok ist auch ohne Fork abgenippelt :-/

Die letzten Einträge sagen nicht wirklich etwas aus!

2014.06.01 16:24:28 3: XBMC_Read: Decoding JSON message. Length: 112 Content: {"jsonrpc":"2.0","method":"AudioLibrary.OnRemove","params":{"data":{"id":435433,"type":"song"},"sender":"xbmc"}}
2014.06.01 16:24:28 3: XBMC_Read: Decoding JSON message. Length: 112 Content: {"jsonrpc":"2.0","method":"AudioLibrary.OnRemove","params":{"data":{"id":435434,"type":"song"},"sender":"xbmc"}}
2014.06.01 16:24:28 3: XBMC_Read: Tail:
2014.06.01 16:24:28 3: XBMC_Read: PARTIAL:
2014.06.01 16:24:37 1: Perfmon: possible freeze starting at 16:24:34, delay is 3.069
2014.06.01 16:24:37 3: XBMC_Read: Received Buffer: Library.OnUpdate","params":{"data":{"id":607257,"type":"song"},"sender":"xbmc"}}{"id":320122,"jsonrpc":"2.0","result":"pong"}
2014.06.01 16:24:37 3: XBMC_Read: Decoding JSON message. Length: 79 Content: Library.OnUpdate","params":{"data":{"id":607257,"type":"song"},"sender":"xbmc"}


Ich setze jetzt mal ein verbose 5 auf das Modul!


Auf der Console habe ich noch die Meldung erhalten!
malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "sult":"pong"}{") at ./FHEM/70_XBMC.pm line 238.

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

vbs

Danke, das hilft schon etwas. So richtig erklären kann ich es mir nicht, aber man sieht in deinem Log in der vorletzten Zeile, dass da zwei JSON-Nachrichten vermischt werden. Ich hab da so eine Theorie und mich mal an einem Fix versucht, ist aber nur ein Schuss ins Blaue. Wäre super, wenn du das mal testen könntest. Wenn es weiterhin crasht, dann wäre auch nochmal ein Log auf "verbose 5" sehr interessant, da ich nochmal ein paar weitere Logausgaben eingebaut habe. Dann müsste man zumindest genau sehen können, welche Daten von XBMC geschickt wurden.

P.A.Trick

Ok ich lasse es gerade laufen..mal sehen was passiert!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

P.A.Trick

2014.06.01 20:34:48 3: XBMC_Read: Received Buffer: {"jsonrpc":"2.0","method":"AudioLibrary.OnUpdate","params":{"data":{"id":614019,"type":"song"},"sender":"xbmc"}}
2014.06.01 20:34:48 3: XBMC_Read: Decoding JSON message. Length: 112 Content: {"jsonrpc":"2.0","method":"AudioLibrary.OnUpdate","params":{"data":{"id":614019,"type":"song"},"sender":"xbmc"}}
2014.06.01 20:34:48 3: XBMC_Read: Tail:
2014.06.01 20:34:48 3: XBMC_Read: PARTIAL:
2014.06.01 20:34:49 3: XBMC_Read: Received Buffer: {"jsonrpc":"2.0","method":"AudioLibrary.OnUpdate","params":{"data":{"id":614020,"type":"song"},"sender":"xbmc"}}
2014.06.01 20:34:49 3: XBMC_Read: Decoding JSON message. Length: 112 Content: {"jsonrpc":"2.0","method":"AudioLibrary.OnUpdate","params":{"data":{"id":614020,"type":"song"},"sender":"xbmc"}}
2014.06.01 20:34:49 3: XBMC_Read: Tail:
2014.06.01 20:34:49 3: XBMC_Read: PARTIAL:
2014.06.01 20:34:50 3: CUL_HM set EG.GT.LED.Dekoleuchte on
2014.06.01 20:34:53 3: set pushmsg msg 'fhem' '20:34:50: [info] Automatische Dämmerungsschaltung (Garten LED) eingeschaltet!' '' 0 '' : OK
2014.06.01 20:34:53 5: XBMC_Call: Sending: {"params":{"displaytime":10000,"title":"fhem","image":"info","message":"20:34:50: [info] Automatische Dämmerungsschaltung (Garten LED) eingeschaltet!"},"jsonrpc":"2.0","method":"GUI.ShowNotification"}
2014.06.01 20:34:53 5: SW: 7b22706172616d73223a7b22646973706c617974696d65223a31303030302c227469746c65223a226668656d222c22696d616765223a22696e666f222c226d657373616765223a2232303a33343a35303a205b696e666f5d204175746f6d617469736368652044c383c2a46d6d6572756e6773736368616c74756e67202847617274656e204c4544292065696e6765736368616c74657421227d2c226a736f6e727063223a22322e30222c226d6574686f64223a224755492e53686f774e6f74696669636174696f6e227d
2014.06.01 20:34:56 3: XBMC_Read: Received Buffer: {"jsonrpc":"2.0","method":"AudioLibrary.OnUpdate","params":{"data":{"id":614021,"type":"song"},"sender":"xbmc"}}{"jsonrpc":"2.0","method":"AudioLibrary.OnUpdate","params":{"data":{"id":614022,"type":"song"},"sender":"xbmc"}}{"jsonrpc":"2.0","method":"Audio
2014.06.01 20:34:56 3: XBMC_Read: Decoding JSON message. Length: 112 Content: {"jsonrpc":"2.0","method":"AudioLibrary.OnUpdate","params":{"data":{"id":614021,"type":"song"},"sender":"xbmc"}}
2014.06.01 20:34:56 3: XBMC_Read: Decoding JSON message. Length: 112 Content: {"jsonrpc":"2.0","method":"AudioLibrary.OnUpdate","params":{"data":{"id":614022,"type":"song"},"sender":"xbmc"}}
2014.06.01 20:34:56 3: XBMC_Read: Tail: {"jsonrpc":"2.0","method":"Audio
2014.06.01 20:34:56 3: XBMC_Read: PARTIAL: {"jsonrpc":"2.0","method":"Audio
2014.06.01 20:34:57 1: Perfmon: possible freeze starting at 20:34:51, delay is 6.017
2014.06.01 20:34:58 5: SW: 7b226a736f6e727063223a22322e30222c226964223a3936313837392c226d6574686f64223a224a534f4e5250432e50696e67227d
2014.06.01 20:34:58 3: XBMC_Read: Received Buffer: {"jsonrpc":"2.0","method":"Audioa":{"id":444531,"type":"song"},"sender":"xbmc"}}{"jsonrpc":"2.0","method":"AudioLibrary.OnRemove","params":{"data":{"id":444532,"type":"song"},"sender":"xbmc"}}{"id":961879,"jsonrpc":"2.0","result":"pong"}
2014.06.01 20:34:58 3: XBMC_Read: Decoding JSON message. Length: 79 Content: {"jsonrpc":"2.0","method":"Audioa":{"id":444531,"type":"song"},"sender":"xbmc"}



Da ist es wieder passiert!

Auf der Console war noch das zu sehen!

, or } expected while parsing object/hash, at character offset 34 (before ":{"id":444531,"type"...") at ./FHEM/70_XBMC.pm line 238.

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

vbs

Hm *am Kopf kratz* Ist das wirklich der Stand aus meinem letzten Post? Hast du evtl. vergessen, fhem neu zu starten?
Auf verbose 5 hast du es ja scheinbar, denn man sieht ja 5er-Meldungen.
Normalerweise müssen da jetzt ständig solche Meldungen kommen:
2014.06.01 20:47:09 5: XBMC_ProcessRead
2014.06.01 20:47:09 5: No PARTIAL buffer
2014.06.01 20:47:09 5: XBMC_Read: Incoming data: {"jsonrpc":"2.0","method":"Player.OnPause","params":{"data":{"item":{"id":1375,"type":"episode"},"player":{"playerid":1,"speed":0}},"sender":"xbmc"}}
2014.06.01 20:47:09 3: XBMC_Read: Received Buffer: {"jsonrpc":"2.0","method":"Player.OnPause","params":{"data":{"item":{"id":1375,"type":"episode"},"player":{"playerid":1,"speed":0}},"sender":"xbmc"}}
2014.06.01 20:47:09 3: XBMC_Read: Decoding JSON message. Length: 149 Content: {"jsonrpc":"2.0","method":"Player.OnPause","params":{"data":{"item":{"id":1375,"type":"episode"},"player":{"playerid":1,"speed":0}},"sender":"xbmc"}}
r

P.A.Trick

Ja hatte neu gestartet! Scheinbar haengt es mit der Last auf meinem Fhem Server zusammen. Sobald ich mit dem Webfrontend arbeite
oder eine Aktion durchgeführt wird, semmelt das fhem ab.
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

vbs

Argh, sorry, mein Fehler. Ich hab die falsche (alte) Version gepostet :/
Hier nun die richtige...