Module für XBMC

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

Vorheriges Thema - Nächstes Thema

vbs

Nochmal drei Änderungen:

  • Löschen der alten Readings
  • Neues Reading is3DFile
  • JSON Parser verbessert

Das wars dann aber auch erstmal...

P.A.Trick

Cool Danke für deine Mühe!
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

RalphGrad

Hallo,
wie bekomme ich das update rein.
Wenn ich update in Fhem eingebe, kommt immer "nothing to do".
Was mache ich falsch?

Viele Grüße

Ralph

siggi85

Ich will ja wirklich nicht undankbar erscheinen, aber wäre es möglich das Löschen der Readings erst zu veranlassen, wenn etwas neues abgespielt wird? Dann würde in den Readings immer das zuletzt abgespielte stehen.
Ansonsten natürlich, danke für die Umsetzung! Freut mich, dass das XBMC Modul endlich wieder Fahrt aufgenommen hat.  :)

vbs

OK, ich war da unschlüssig. Gibts dazu noch andere Meinungen?

Änderungen:

  • keine Readings löschen beim Stoppen, Starten oder Beenden
  • volume auf zwei Stellen runden
  • is3DFile umbenannt nach 3dfile (sorry, falls das schon jemand irgendwo eingebunden hat, passt so aber besser zu den anderen Namen)

siggi85

Zitat von: vbs am 22 Januar 2015, 20:41:54
OK, ich war da unschlüssig. Gibts dazu noch andere Meinungen?

Änderungen:

  • keine Readings löschen beim Stoppen, Starten oder Beenden
  • volume auf zwei Stellen runden
  • is3DFile umbenannt nach 3dfile (sorry, falls das schon jemand irgendwo eingebunden hat, passt so aber besser zu den anderen Namen)

Klasse, vielen Dank!  8) Werde das demnächst gleich prüfen. ;)
Da der playStatus, ja sowieso auf eine gestoppte Wiedergabe hindeutet (für den fall man will dies prüfen), kann man (meine Meinung) die letzte Wiedergabe stehen lassen.
Ich habe ein Subroutine, die die aktuelle Wiedergabe beendet (um den potentiellen Resumepunkt zu setzen), die Daten der Wiederhabe nimmt und auf einem anderen XBMC abspielt. Natürlich kann man auch erst die Daten nehmen. Falls aber etwas schief geht, kann man so das Skript einfach erneut starten, dann wird keine Wiedergabe beendet aber die Daten stehen für die gleiche Subroutine immer noch zur Verfügung.

Enlightning Man

Zitat von: vbs am 22 Januar 2015, 20:41:54
Änderungen:

  • is3DFile umbenannt nach 3dfile (sorry, falls das schon jemand irgendwo eingebunden hat, passt so aber besser zu den anderen Namen)

Hi vbs.
Habe gerade update gezogen, aber das Reading heißt derzeit noch is3DFile... Hab in 70_XBMC.pl gecheckt, da isses auch trotz tstamp vom 25. Januar noch is3DFile...
In der Commandref steht der Parameter auch noch nicht drin.

Grüße,
EM

vbs

Danke für den Hinweis. Kann es mir nicht erklären, warum das weg war, aber hab es jetzt nochmal geändert...

fhainz

Hallo!

Ich verwende das XMBC Modul im Plex Mode. Seit einiger Zeit bekomme ich aber leider nicht mehr alle Readings. playing wird zB gefüllt, episode nicht.

Internals:
   DEF        10.0.0.40 tcp
   DeviceName 10.0.0.40:9090
   FD         113
   Host       10.0.0.40
   LAST_PING  1422209774.19952
   LAST_PONG  1422209774.21517
   NAME       plex
   NR         233
   PARTIAL
   Port       9090
   Protocol   tcp
   STATE      opened
   TYPE       XBMC
   Pendingevents:
   Pendingplayercmds:
     263396
   Readings:
     2015-01-25 19:14:49   currentAlbum
     2015-01-25 19:14:49   currentArtist
     2015-01-25 19:14:49   currentMedia
     2015-01-25 19:14:49   currentOriginaltitle
     2015-01-25 19:14:49   currentShowtitle
     2015-01-25 19:14:49   currentTitle
     2015-01-25 19:14:49   currentTrack
     2015-01-25 19:14:49   episode
     2015-01-25 19:14:49   episodeid
     2015-01-25 19:14:14   fullscreen      off
     2015-01-24 18:58:02   gui             screensaverdeactivated
     2015-01-25 19:14:49   id              5757
     2015-01-25 19:14:49   is3DFile
     2015-01-25 19:14:49   label
     2015-01-25 19:14:49   movieid
     2015-01-25 19:14:14   mute            off
     2015-01-25 19:14:14   name            XBMC
     2015-01-25 19:14:14   partymode
     2015-01-25 19:14:49   playStatus      playing
     2015-01-25 19:14:49   playlist
     2015-01-25 19:14:49   repeat          off
     2015-01-25 19:14:49   season
     2015-01-25 19:14:49   shuffle         off
     2015-01-25 19:14:14   skin            Plex(skin.plex)
     2015-01-25 19:14:49   songid
     2015-01-25 19:14:49   speed           1
     2015-01-25 19:14:14   state           opened
     2015-01-25 19:14:14   system          wake
     2015-01-25 19:14:49   time            00:00:00.114
     2015-01-25 19:14:49   totaltime       00:40:26.880
     2015-01-25 19:14:49   type            episode
     2015-01-25 19:14:14   version         12.2 stable
     2015-01-25 19:14:14   volume          68
     2015-01-25 19:14:49   year
Attributes:
   compatibilityMode plex
   pingInterval 60
   room       5.1 Multimedia


Jemand eine Idee?

Grüße

vbs

Bitte mal ein Log mit verbose 5 posten.

fhainz

verbose 5 --> Plex geöffnet --> Serie geöffnet --> Serie beendet --> Plex beendet --> verbose 3

2015.01.25 21:37:37.969 1: 10.0.0.40:9090 reappeared (plex)
2015.01.25 21:37:38.002 5: XBMC_Call: Sending: {"params":{"properties":["volume","muted","name","version"]},"jsonrpc":"2.0","id":79788,"method":"Application.GetProperties"}
2015.01.25 21:37:38.002 5: SW: 7b22706172616d73223a7b2270726f70657274696573223a5b22766f6c756d65222c226d75746564222c226e616d65222c2276657273696f6e225d7d2c226a736f6e727063223a22322e30222c226964223a37393738382c226d6574686f64223a224170706c69636174696f6e2e47657450726f70657274696573227d
2015.01.25 21:37:38.003 5: XBMC_Call: Sending: {"params":{"properties":["skin","fullscreen"]},"jsonrpc":"2.0","id":151429,"method":"GUI.GetProperties"}
2015.01.25 21:37:38.003 5: SW: 7b22706172616d73223a7b2270726f70657274696573223a5b22736b696e222c2266756c6c73637265656e225d7d2c226a736f6e727063223a22322e30222c226964223a3135313432392c226d6574686f64223a224755492e47657450726f70657274696573227d
2015.01.25 21:37:38.005 5: XBMC_Call: Sending: {"jsonrpc":"2.0","id":"534223","method":"Player.GetActivePlayers"}
2015.01.25 21:37:38.005 5: SW: 7b226a736f6e727063223a22322e30222c226964223a22353334323233222c226d6574686f64223a22506c617965722e476574416374697665506c6179657273227d
2015.01.25 21:37:38.014 5: XBMC_ProcessRead
2015.01.25 21:37:38.014 5: No PARTIAL buffer
2015.01.25 21:37:38.014 5: XBMC_Read: Incoming data: {"id":79788,"jsonrpc":"2.0","result":{"muted":false,"name":"XBMC","version":{"major":12,"minor":2,"tag":"stable"},"volume":68}}{"id":151429,"jsonrpc":"2.0","result":{"fullscreen":false,"skin":{"id":"skin.plex","name":"Plex"}}}{"id":"534223","jsonrpc":"2.0","result":[]}
2015.01.25 21:37:38.014 5: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {"id":79788,"jsonrpc":"2.0","result":{"muted":false,"name":"XBMC","version":{"major":12,"minor":2,"tag":"stable"},"volume":68}}{"id":151429,"jsonrpc":"2.0","result":{"fullscreen":false,"skin":{"id":"skin.plex","name":"Plex"}}}{"id":"534223","jsonrpc":"2.0","result":[]}
2015.01.25 21:37:38.014 5: XBMC_Read: Decoding JSON message. Length: 127 Content: {"id":79788,"jsonrpc":"2.0","result":{"muted":false,"name":"XBMC","version":{"major":12,"minor":2,"tag":"stable"},"volume":68}}
2015.01.25 21:37:38.021 5: XBMC_Read: Decoding JSON message. Length: 99 Content: {"id":151429,"jsonrpc":"2.0","result":{"fullscreen":false,"skin":{"id":"skin.plex","name":"Plex"}}}
2015.01.25 21:37:38.027 5: XBMC_Read: Decoding JSON message. Length: 43 Content: {"id":"534223","jsonrpc":"2.0","result":[]}
2015.01.25 21:37:38.027 5: XBMC_Read: Tail:
2015.01.25 21:37:38.027 5: XBMC_Read: PARTIAL:
2015.01.25 21:38:11.777 5: XBMC_ProcessRead
2015.01.25 21:38:11.777 5: No PARTIAL buffer
2015.01.25 21:38:11.777 5: XBMC_Read: Incoming data: {"jsonrpc":"2.0","method":"Playlist.OnClear","params":{"data":{"playlistid":1},"sender":"xbmc"}}{"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"id":405,"type":"episode"},"playlistid":1,"position":0},"sender":"xbmc"}}
2015.01.25 21:38:11.777 5: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {"jsonrpc":"2.0","method":"Playlist.OnClear","params":{"data":{"playlistid":1},"sender":"xbmc"}}{"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"id":405,"type":"episode"},"playlistid":1,"position":0},"sender":"xbmc"}}
2015.01.25 21:38:11.778 5: XBMC_Read: Decoding JSON message. Length: 96 Content: {"jsonrpc":"2.0","method":"Playlist.OnClear","params":{"data":{"playlistid":1},"sender":"xbmc"}}
2015.01.25 21:38:11.784 5: XBMC_Read: Decoding JSON message. Length: 142 Content: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"id":405,"type":"episode"},"playlistid":1,"position":0},"sender":"xbmc"}}
2015.01.25 21:38:11.791 5: XBMC_Read: Tail:
2015.01.25 21:38:11.791 5: XBMC_Read: PARTIAL:
2015.01.25 21:38:11.890 5: XBMC_ProcessRead
2015.01.25 21:38:11.890 5: No PARTIAL buffer
2015.01.25 21:38:11.890 5: XBMC_Read: Incoming data: {"jsonrpc":"2.0","method":"Player.OnPlay","params":{"data":{"item":{"id":1434,"type":"episode"},"player":{"playerid":1,"speed":1}},"sender":"xbmc"}}
2015.01.25 21:38:11.890 5: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {"jsonrpc":"2.0","method":"Player.OnPlay","params":{"data":{"item":{"id":1434,"type":"episode"},"player":{"playerid":1,"speed":1}},"sender":"xbmc"}}
2015.01.25 21:38:11.890 5: XBMC_Read: Decoding JSON message. Length: 148 Content: {"jsonrpc":"2.0","method":"Player.OnPlay","params":{"data":{"item":{"id":1434,"type":"episode"},"player":{"playerid":1,"speed":1}},"sender":"xbmc"}}
2015.01.25 21:38:11.961 5: XBMC_Call: Sending: {"params":{"playerid":1,"properties":["time","totaltime","repeat","shuffled","speed"]},"jsonrpc":"2.0","id":354595,"method":"Player.GetProperties"}
2015.01.25 21:38:11.961 5: SW: 7b22706172616d73223a7b22706c617965726964223a312c2270726f70657274696573223a5b2274696d65222c22746f74616c74696d65222c22726570656174222c2273687566666c6564222c227370656564225d7d2c226a736f6e727063223a22322e30222c226964223a3335343539352c226d6574686f64223a22506c617965722e47657450726f70657274696573227d
2015.01.25 21:38:11.963 5: XBMC_Read: Tail:
2015.01.25 21:38:11.963 5: XBMC_Read: PARTIAL:
2015.01.25 21:38:11.963 5: XBMC_ProcessRead
2015.01.25 21:38:11.963 5: No PARTIAL buffer
2015.01.25 21:38:11.963 5: XBMC_Read: Incoming data: {"jsonrpc":"2.0","method":"Player.OnPause","params":{"data":{"item":{"id":1434,"type":"episode"},"player":{"playerid":1,"speed":0}},"sender":"xbmc"}}
2015.01.25 21:38:11.963 5: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {"jsonrpc":"2.0","method":"Player.OnPause","params":{"data":{"item":{"id":1434,"type":"episode"},"player":{"playerid":1,"speed":0}},"sender":"xbmc"}}
2015.01.25 21:38:11.963 5: XBMC_Read: Decoding JSON message. Length: 149 Content: {"jsonrpc":"2.0","method":"Player.OnPause","params":{"data":{"item":{"id":1434,"type":"episode"},"player":{"playerid":1,"speed":0}},"sender":"xbmc"}}
2015.01.25 21:38:11.983 5: XBMC_Read: Tail:
2015.01.25 21:38:11.983 5: XBMC_Read: PARTIAL:
2015.01.25 21:38:12.900 5: XBMC_ProcessRead
2015.01.25 21:38:12.900 5: No PARTIAL buffer
2015.01.25 21:38:12.900 5: XBMC_Read: Incoming data: {"id":354595,"jsonrpc":"2.0","result":{"repeat":"off","shuffled":false,"speed":0,"time":{"hours":0,"milliseconds":50,"minutes":0,"seconds":0},"totaltime":{"hours":0,"milliseconds":600,"minutes":21,"seconds":59}}}
2015.01.25 21:38:12.900 5: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {"id":354595,"jsonrpc":"2.0","result":{"repeat":"off","shuffled":false,"speed":0,"time":{"hours":0,"milliseconds":50,"minutes":0,"seconds":0},"totaltime":{"hours":0,"milliseconds":600,"minutes":21,"seconds":59}}}
2015.01.25 21:38:12.900 5: XBMC_Read: Decoding JSON message. Length: 212 Content: {"id":354595,"jsonrpc":"2.0","result":{"repeat":"off","shuffled":false,"speed":0,"time":{"hours":0,"milliseconds":50,"minutes":0,"seconds":0},"totaltime":{"hours":0,"milliseconds":600,"minutes":21,"seconds":59}}}
2015.01.25 21:38:12.926 5: XBMC_Read: Tail:
2015.01.25 21:38:12.926 5: XBMC_Read: PARTIAL:
2015.01.25 21:38:14.917 5: XBMC_ProcessRead
2015.01.25 21:38:14.918 5: No PARTIAL buffer
2015.01.25 21:38:14.918 5: XBMC_Read: Incoming data: {"jsonrpc":"2.0","method":"Player.OnPlay","params":{"data":{"item":{"id":1434,"type":"episode"},"player":{"playerid":1,"speed":1}},"sender":"xbmc"}}
2015.01.25 21:38:14.918 5: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {"jsonrpc":"2.0","method":"Player.OnPlay","params":{"data":{"item":{"id":1434,"type":"episode"},"player":{"playerid":1,"speed":1}},"sender":"xbmc"}}
2015.01.25 21:38:14.918 5: XBMC_Read: Decoding JSON message. Length: 148 Content: {"jsonrpc":"2.0","method":"Player.OnPlay","params":{"data":{"item":{"id":1434,"type":"episode"},"player":{"playerid":1,"speed":1}},"sender":"xbmc"}}
2015.01.25 21:38:14.987 5: XBMC_Call: Sending: {"params":{"playerid":1,"properties":["time","totaltime","repeat","shuffled","speed"]},"jsonrpc":"2.0","id":846355,"method":"Player.GetProperties"}
2015.01.25 21:38:14.987 5: SW: 7b22706172616d73223a7b22706c617965726964223a312c2270726f70657274696573223a5b2274696d65222c22746f74616c74696d65222c22726570656174222c2273687566666c6564222c227370656564225d7d2c226a736f6e727063223a22322e30222c226964223a3834363335352c226d6574686f64223a22506c617965722e47657450726f70657274696573227d
2015.01.25 21:38:14.989 5: XBMC_Read: Tail:
2015.01.25 21:38:14.989 5: XBMC_Read: PARTIAL:
2015.01.25 21:38:14.990 5: XBMC_ProcessRead
2015.01.25 21:38:14.990 5: No PARTIAL buffer
2015.01.25 21:38:14.990 5: XBMC_Read: Incoming data: {"id":846355,"jsonrpc":"2.0","result":{"repeat":"off","shuffled":false,"speed":1,"time":{"hours":0,"milliseconds":122,"minutes":0,"seconds":0},"totaltime":{"hours":0,"milliseconds":600,"minutes":21,"seconds":59}}}
2015.01.25 21:38:14.990 5: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {"id":846355,"jsonrpc":"2.0","result":{"repeat":"off","shuffled":false,"speed":1,"time":{"hours":0,"milliseconds":122,"minutes":0,"seconds":0},"totaltime":{"hours":0,"milliseconds":600,"minutes":21,"seconds":59}}}
2015.01.25 21:38:14.990 5: XBMC_Read: Decoding JSON message. Length: 213 Content: {"id":846355,"jsonrpc":"2.0","result":{"repeat":"off","shuffled":false,"speed":1,"time":{"hours":0,"milliseconds":122,"minutes":0,"seconds":0},"totaltime":{"hours":0,"milliseconds":600,"minutes":21,"seconds":59}}}
2015.01.25 21:38:15.010 5: XBMC_Read: Tail:
2015.01.25 21:38:15.010 5: XBMC_Read: PARTIAL:
2015.01.25 21:38:28.609 5: XBMC_ProcessRead
2015.01.25 21:38:28.609 5: No PARTIAL buffer
2015.01.25 21:38:28.609 5: XBMC_Read: Incoming data: {"jsonrpc":"2.0","method":"Player.OnStop","params":{"data":{"end":false,"item":{"id":1434,"type":"episode"}},"sender":"xbmc"}}
2015.01.25 21:38:28.609 5: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {"jsonrpc":"2.0","method":"Player.OnStop","params":{"data":{"end":false,"item":{"id":1434,"type":"episode"}},"sender":"xbmc"}}
2015.01.25 21:38:28.609 5: XBMC_Read: Decoding JSON message. Length: 126 Content: {"jsonrpc":"2.0","method":"Player.OnStop","params":{"data":{"end":false,"item":{"id":1434,"type":"episode"}},"sender":"xbmc"}}
2015.01.25 21:38:28.636 5: XBMC_Read: Tail:
2015.01.25 21:38:28.636 5: XBMC_Read: PARTIAL:
2015.01.25 21:38:38.010 5: SW: 7b226a736f6e727063223a22322e30222c226964223a3330343238322c226d6574686f64223a224a534f4e5250432e50696e67227d
2015.01.25 21:38:38.012 5: XBMC_ProcessRead
2015.01.25 21:38:38.013 5: No PARTIAL buffer
2015.01.25 21:38:38.013 5: XBMC_Read: Incoming data: {"id":304282,"jsonrpc":"2.0","result":"pong"}
2015.01.25 21:38:38.013 5: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {"id":304282,"jsonrpc":"2.0","result":"pong"}
2015.01.25 21:38:38.013 5: XBMC_Read: Decoding JSON message. Length: 45 Content: {"id":304282,"jsonrpc":"2.0","result":"pong"}
2015.01.25 21:38:38.013 5: XBMC_Read: Tail:
2015.01.25 21:38:38.013 5: XBMC_Read: PARTIAL:
2015.01.25 21:38:44.095 5: XBMC_ProcessRead
2015.01.25 21:38:44.095 5: No PARTIAL buffer
2015.01.25 21:38:44.095 5: XBMC_Read: Incoming data: {"jsonrpc":"2.0","method":"System.OnQuit","params":{"data":0,"sender":"xbmc"}}
2015.01.25 21:38:44.095 5: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {"jsonrpc":"2.0","method":"System.OnQuit","params":{"data":0,"sender":"xbmc"}}
2015.01.25 21:38:44.095 5: XBMC_Read: Decoding JSON message. Length: 78 Content: {"jsonrpc":"2.0","method":"System.OnQuit","params":{"data":0,"sender":"xbmc"}}
2015.01.25 21:38:44.112 1: readingsUpdate(plex,playStatus,stopped) missed to call readingsBeginUpdate first.
2015.01.25 21:38:44.112 5: XBMC_Read: Tail:
2015.01.25 21:38:44.112 5: XBMC_Read: PARTIAL:
2015.01.25 21:38:45.027 1: 10.0.0.40:9090 disconnected, waiting to reappear (plex)


Grüße

vbs

Also FHEM bekommt das Event "OnPlay", sobald Plex mit abspielen anfängt. Das ist erstmal richtig und passiert auch bei dir. Wenn dabei "type==episode" ist, dann würde jetzt FHEM ein "VideoLibrary.GetEpisodeDetails" senden, um die Details der Episode zu holen. Gemäß Quellcode passiert jedoch genau das im Plex-Modus nicht und es werden nur die Readings eingetragen, die sowieso mit der "OnPlay"-Nachricht mitkommen. Das sind praktisch keine :)

Warum das so ist: keine Ahnung, ich kenne Plex leider nicht. Vermute mal, dass sich die JSON-API da unterscheidet. Gibt es da evtl. kein VideoLibrary.GetEpisodeDetails und die Details sollten da eigentlich schon mit der OnPlay-Nachricht mitkommen? Hast du du evtl. Plex geupdatet und nun verhält es sich in dem Bereich wie Kodi? Also ein weitere Abfrage wäre nötig?

Kannst ja mal den Plex-Modus in FHEM abschalten und gucken, was passiert. Evtl. hat sich Plex da Kodi API-mässig angenähert. Ist aber alles reine Spekulation von mir, ich hab eigentlich keine Ahnung :)

justme1968

plex hat keine .*Library.Get.*Details.

schau mal in diesen post: http://forum.fhem.de/index.php/topic,10075.msg125781.html#msg125781. das war der alte stand.
das hat bis mitte november funktioniert. scheinbar hat sich hier etwas geändert. die detail info ist nicht mehr mit dabei.

ich habe mal im plex forum nachgefragt. mal sehen ob es antwort gibt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

fhainz

Zitat von: justme1968 am 27 Januar 2015, 15:38:48
ich habe mal im plex forum nachgefragt. mal sehen ob es antwort gibt.

gruss
  andre

danke!

vbs

Hast du mal ausprobiert, was passiert, wenn du den plex-Modus abschaltest?