plex und fhem

Begonnen von justme1968, 27 Oktober 2015, 01:11:32

Vorheriges Thema - Nächstes Thema

Risiko

#135
Hallo Andre,

super, dass du das Modul  offiziell aufgenommen hast.

Wenn ich einen Track (key=/library/metadata/250) abspielen möchte, stürzen alle meine Clients ab.
Server-Version: 0.9.16.6
Clients:
Plex for Android - Version 4.25.2.588 (Handy, Tablet und FireTV)
plexhometheater- Version 1.4.1.dev-git (ubuntu)

Bin mir aber sicher, dass es mit einer älteren Plexversion schon mal funktioniert hat.

Das Modul sendet:

http://192.168.178.28:32500/player/playback/playMedia?key=/library/metadata/250&machineIdentifier=b907d71c65720b6fb7aaa44061c98628cbb8f7bf&address=192.168.178.220&port=32400&commandID=181

PlexWeb (2.6.1) sendet (mittels wireshark ermittelt)

http://192.168.178.28:32500/player/playback/playMedia?key=/library/metadata/250&offset=0&machineIdentifier=b907d71c65720b6fb7aaa44061c98628cbb8f7bf&protocol=http&address=192.168.178.220&port=32400&containerKey=/playQueues/557?own=1&window=200&commandID=2

also ohne Angabe von containerKey.
Keine Ahnung was 'containerKey' hier bedeutet. Es handelt sich hierbei um einen einzelnen Track und nicht um eine Playlist.
Es wird aber immer eine temporäre Playlist durch PlexWeb am Client erzeugt!! (Keine Playlist auf dem Server)
Wenn man sich mittels PlexWeb neu mit dem Client verbindet, wechselt die Id von 'playQueues' bei gleichem Track.

Kann das jemand bestätigen?
Hat Plex da was an der Syntax geändert!? oder hat sonst jemand eine Idee?

Risiko

Nachtrag:
Habe hier was dazu gefunden:
https://github.com/plexinc/plex-media-player/wiki/Remote-control-API
ZitatProtocol-Version (default is 0, 1 means you support this new API).
Zitat/player/playback/playMedia now accepts key, offset, machineIdentifier, address, port, protocol, token, and containerKey parameters instead of the previous path parameter.

Nachtrag 2
Ich habe  noch etwas weiter recherchiert.
PlexWeb legt vor dem eigentlichen Play-Befehl mit POST doch eine Queue an bzw. lässt sie vom Server anlegen.

http://192.168.178.220:32400/playQueues?type=audio&uri=.......

und bekommt  vom Server die ID, welche  dann bei 'containerKey' verwendet wird.
Mittels

http://192.168.178.220:32400/playQueues/<ID> bekommt man dann auch die Info's zur Queue


Ärgerlich ist aktuell, dass die Clients beim Abspielen von Tracks ohne Queue abschmieren.
@Andre: Könntest du dir vorstellen die 'playQueues' mit ins Modul aufzunehmen?

Den vollständige Log von wireshark könnte ich zur Verfügung stellen.

Joker2002

Hallo miteinander,

nachdem Plex nun auch ,,offiziell" in FHEM eingecheckt ist, wollte ich meine vorhandenen Plex Clients mit FHEM Steuern.

Hierzu habe ich erst einmal die notwendige Vorraussetzung für das Plex Modul geschaffen mit:

sudo apt-get install libio-socket-multicast-perl

danach:

define Plex plex 192.168.172.19

So sieht also mein Modul in FHEM aus:

Internals:
   CFGFN
   DEF        192.168.172.19
   NAME       Plex
   NR         420
   NTFY_ORDER 50-Plex
   STATE      ???
   TYPE       plex
   fhemHostname (none)
   fhemIP     192.168.172.19
   id         f0a378f803b546078e0e8371011aad76
   port       32400
   server     192.168.172.19
   Clients:
   Servers:
     192.168.172.19:
       address    192.168.172.19
       host       192.168.172.19
       machineIdentifier 3d628a86ff9b98292f78af28d462e42fa6e8af2f
       name       HTPC
       online     1
       port       32400
       updatedAt  1463180083.94096
       version    0.9.16.6.1993-5089475
Attributes:
   room       Multimedia_Zubehör


Nun habe ich aber bereits folgendes Problem. Wie man sehen kann, steht unter ,,State": nur ? ? ?

Zur Befehlsauswahl stehen folgende Befehle zur Verfügung:

playlistAdd
playlistCreate
playlistREmove
restartDiscovery
showAccount
subscribe
unsubscribe
unwachted
watched.

Weitere Clients werden nicht vom Plex Modul hinzugefügt und ich kann meine vorhandene Clients bisher auch nicht ansteuern.

Ich habe mir die Commandref bzgl. des Plex Moduls mehrmals durchgelesen, weiss allerdings nicht, wo ich den Fehler begangen haben könnte.

Habt Ihr vielleicht einen Tipp für mich ?

justme1968

@Risiko: ich habe es gerade mit plex ht 1.4.1 und openpht 1.5.1 getestet und kann das problem nicht reproduzieren.

das fhem modul verwendet das neue api, sendet bei play (playMedia) für einen titel aber nur den key und legt keine playqueue an. playQueues sind schon eingebaut und werden verwendet wenn du mit playAlbum ein komplettes album abspielst.

hast du das play auf eine player device gemacht oder auf das server device?


@Joker2002: leg das plex master device an ohne eine ip anzugeben. der server wird automatisch gesucht und die player dann angelegt sobald sie im netz sind bzw. sobald sie das erste mal etwas spielen.

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

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

aeronaut

Habe es ausprobiert und ich möchte ein dickes Danke dafür sagen. Plex nutze ich schon länger und nun hat das Smart-Home endlich auch Steuerungsmöglichkeiten.

Das Abspielen von Playlisten funktioniert bei mir noch nicht, Plex für Android auf Kitkat beendet sich dabei und das Plex Home Theater reagiert gar nicht drauf. So wie ich gelesen habe, ist das wohl noch ein offener Punkt (?).

Das Abspielen von einzelnen Titeln und Alben funktioniert wunderbar, juhu :D

lg
aeronaut

justme1968

playlisten lassen sich anzeigen, erzeugen, ändern und löschen. mehr noch nicht. zum abspielen muss vermutliche wie bei den alben eine playqueue angelegt werden. das ist bis jetzt nur für die alben eingebaut.


wie hast du versucht sie abzuspielen?

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

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

aeronaut

Ich habs so versucht:
set 7118ee6315124e6cbaf1ccf1a8523de5 play /playlists/60267/items

Das ist eine Musik-Playlist.

Risiko

#141
Zitat von: justme1968 am 21 Mai 2016, 17:39:21
@Risiko: ich habe es gerade mit plex ht 1.4.1 und openpht 1.5.1 getestet und kann das problem nicht reproduzieren.

das fhem modul verwendet das neue api, sendet bei play (playMedia) für einen titel aber nur den key und legt keine playqueue an. playQueues sind schon eingebaut und werden verwendet wenn du mit playAlbum ein komplettes album abspielst.

hast du das play auf eine player device gemacht oder auf das server device?
Ja, mit OpenPHT (1.5.2) gehen einzelne Tracks ohne playQueues. Mit Plex für Android v4.25.2.588 gehen einzelne Tracks leider nicht.  >:(
Das Abspielen von Alben geht aber (da hier eine playQueue angelegt wird).
Das Pausieren und Stoppen geht leider nicht, da hier der Typ video und nicht music verwendet wird

/player/playback/stop?type=video&commandID=11


Bei OpenPHT geht das mit Typ video auch bei Musik (noch)

Hab alles über den Player gesteuert.

justme1968

@aeronaut: das ist noch nicht eingebaut. vermutlich muss man für eine playlist auch wieder selber eine playqueue erzeugen. das schaue ich mir demnächst an. auch wegen dem abspielen einzelner titel.

@Risiko: ich habe eben eine version eingecheckt die versucht für die playback kommandos den aktuellen medien type aus der timeline zu bestimmen. zusätzlich kann man den typ (video,music,photo) als optionalen paramter mit angeben.

das erstellen der playqueue auch für einzelne title schaue ich mir an. ich weiss aber nicht wann ich dazu komme.

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

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

Risiko

Vielen Dank.
Wenn ich es zeitlich schaffe, kann ich dir evtl. auch nen patch liefern.
Hab mir heute den Code im Modul etwas angesehen und denke so schwer ist das nicht.

justme1968

gibt es noch jemanden der plex und sonos verwendet und über die sonos player auf die plex music library zugreifen will? z.b. um das 65000 titel limit zu umgehen?

ich habe gerade eine erweiterung des plex moduls angefangen mit der man direkt aus dem sonos controller die plex library ansprechen kann wie jeden anderen online dienst. da dabei die sonos player nicht mehr direkt indizieren kann so auch auf mehr als auf 65000 titel zugegriffen werden.

falls jemand demnächst testen mag bitte melden.

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

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

dev0

Hört sich spannend an, bisher nutze ich Sonos mit einer abgesteckten Bibliothek. Plex habe ich noch nicht im Einsatz, hab's aber gerade auf einer Synology DS1813+ installiert und lasse gerade die Tracks importieren.

guhu

Wäre für mich interessant. Haber > 65000 Titel.
Habe bisher aber kein Plex, habe aber auch Synology im Einsatz.
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

justme1968

#147
ich habe eben ein update eingecheckt:
  • statt mit myPlex account und password es ist möglich sich für myPlex per pin anzumelden
    hierzu wird statt der user und password attribute mit get <plex> pin eine pin erzeugt die man unter https://plex.tv/pin bestätigt um das fhem modul zu authentifizieren. wenn man autosave deaktiviert hat muss man danach in fhem ein mal save aufrufen damit das token permanent gespeichert wird.

  • neues attribut httpPort
    hier mit lässt sich der von modul verwendete http port auf einen festen einstellen und wird nicht mehr dynamisch bestimmt.

  • es ist eine erste version der SMAPI unterstützung eingecheckt mit dem ein SONOS system direkt auf die PMS libraries zugreifen kann.

  • diverse kleiner bug fixes


um die PLEX/SONOS anbindung zu testen:
  • das SONOS modul in fhem verwenden und die player devices zu erzeugen (das ist nur einmalig zur Registrierung nötig)
  • mit dem httpPort attribut einen festen (und auf dem fhem rechner unbenutzten) port vergeben
  • mit set <plex> smapiRegister das plex server device bei den sonos playern registrieren
    alternativ wenn das SONOS modul nicht installiert ist: set <plex> smapiRegister <ip> mit der ip des/der sonos player aufrufen.
  • im sonos system über Musikdienste hinzufügen PLEX als dienst bekannt machen
  • danach ist PLEX als musikquelle auswählbar und lässt sich ganz normal verwenden

anmerkungen:
- es werden nur musik und premium musik sections angezeigt
- es ist (noch) kein transcoding eingebaut. d.h. das sonos system muss mit den verwendeten formaten klar kommen
- die anfragen an den plex server die vom sonos system kommen werden (im gegensatz zu allen anderen) noch synchron und blockierend ausgeführt
- die Info & Optionen seite zeigt zum teil noch falsche dinge an

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

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

Risiko

#148
Hallo Andre,

hier der besagte Patch.
1. playAlbum ist mit in der set-List, wenn der Client playQueues unterstützt
2. Den Befehl zur Erstellung der playQueue auf dem Server  entsprechend PlexWeb angepasst

Somit funktioniert es jetzt bei plex für Android und OpenPHT.
Weiterhin kann man bei playAlbum auch einen einzelnen Track angeben.

Risiko

Nachtrag: Noch kleinen Fehler mit der Set-List behoben

justme1968

danke. schaut gut aus. hab es eingecheckt.

falls du zeit und lust hast kannst du mal schauen wie das abspielen einer playlist funktioniert bzw. die die anderen player das machen :).

den key für die playlist kann man scheinbar nicht direkt angeben. eventuell muss man die playlist auslesen und dann alle elemente in die playQueue eintragen.

vermutlich wäre es dann gut etwas zur playQueue hinzufügen. das könnte man dann auch gleich als set kommando einbauen.

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

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