Matrix Notification Plugin für Emby
Basierend auf meinem Telegram Notification Plugin für Emby habe ich nun ein Plugin zusammengestellt welches Messenger über das Matrix Protokoll ansprechen kann. Der Vorteil ist das man für Matrix seinen eigenen Server hosten kann. Man ist also nicht auf einen Dienstanbieter wie Telegram angewiesen.
Das Plugin ist nicht im Plugin Katalog von Emby. die Emby Entwickler wollen für diese Plugins quasi einen Full Time Support vom Entwickler habe, was lustig ist das Sie tonnenweise Feature Requests Jahre vor sich herschieben. Ausserdem ist Emby inzwischen closed Source, das zusammen mit der so gut wie nicht vorhandenen Plugin Dokumentation macht den Support recht schwer.
Was tut das Plugin?
Es leitet ganz simpel die Nachrichten die aus dem Emby Notification Framework kommen in einen Matrix Raum um, nicht mehr nicht weniger. Sorry keine hübschen Poster etc. Emby unterstützt es halt nicht und die Entwickler sehen es seit ca. 5 Jahren nicht für nötig an das zu erweiter. Klar könnte man das selber Programmieren, aber wenn man weiss wie viele Community Dev’s an sowas bei Emby verzweifelt sind…
Installation
- Ladet die Plugin DLL runter (oder kompiliert Sie selbst mit VS 2017/2019) und speichert Sie im Emby Plugin Ordner
- Startet den Emby Server neu
- Ladet euch den Element Messenger runter und holt euch curl (oder irgendwas anderes womit Ihr mit der Matrix API sprechen könnt)
- Euer Server braucht auf der Matrix Instanz die Ihr nutzen wollt einen Account, also legt diesen bitte an
- Startet den Element Client mit euren persönlichen Account und legt einen Raum an, deaktiviert die verschlüsselung, ich habe meinen Raum „Invite only“ eingestellt.
- Ladet den Account eures Emby Server in den Raum ein
- Seht euch in Element die Raumeinstellungen an, unter Erweitert findet Ihr die Raum ID. Sollte ungefähr so aussehen: !klblablabla:matrix.org
- Nun holen wir uns mit curl das Access Token, passt die TLD an eure matrix Instanz an: curl -XPOST -d ‚{„type“:“m.login.password“, „user“:“EMBYSERVERUSER“, „password“:“EMBYSERVERPASSWORD“}‘ „https://matrix.org/_matrix/client/r0/login“
- Nun muss euer Server dem Raum joinen (ersetzt das ! in der Room ID mit %21 ) : curl -XPOST -d ‚{}‘ „https://matrix.org/_matrix/client/r0/rooms/%21klblablabla:matrix.org/join?access_token=ACCESSTOKEN“
- Nun könnt Ihr testen ob euer Server Nachrichten senden kann: curl -XPOST -d ‚{„msgtype“:“m.text“, „body“:“hello“}‘ „https://matrix.org/_matrix/client/r0/rooms/%21klblablabla:matrix.org/send/m.room.message?access_token=ACCESSTOKEN“
- Geht in die Settings Page vom Plugin und tragt das Access Token und die Room ID ein. Bei der Room ID muss das Ausführungszeichen am Anfang stehen, die Server Adresse muss mit einem / enden.
- Sendet einen Test Nachricht von der Settings Page
- Aktiviert die Matrix Benachrichtigungen für alles was Ihr wollt
Probleme?
Das Plugin unterstützt nicht die Matrix E2E- Verschlüsselung. Es gibt einfach kein C# SDK dafür. Eure Daten sind jedoch Transportverschlüsselt. Ausserdem unterliegt das Plugin den Beschränkungen des New Media Notification Framwork (Pro Scan nur 10 Items die gesendet werden obwohl ihr 100 Filme hinzugefügt habt etc.). Da kann ich nur den Tipp geben das Playback Reporting Plugin in Augenschein zu nehmen.
Wo bekommt Ihr es?
Source und DLL findet Ihr auf Github:
https://github.com/bjoerns1983/Emby.Plugin.MatrixNotification/releases
Viel Spass damit. Wenn jemand ne coole Idee hat einfach raus damit.
Es wäre zum Beispiel schön diesen ganzen Registrierungsprozess über die Settings Page zu lösen. Vielleicht hat da ja jemand ne Idee zu. PR’s sind willkommen.