
Plex Media Player Stupid for Neeo but Smart with Harmony
Hi,
i'm running a Plex Media Player on a RPI. My Harmony does communicate thru wifi to control the Plex Player. My RPI does not even have an usb IR input.
Couldn't you make it work the same way with Neeo ? In the Harmony remote, Plex is recognized as a Roku 3 player (maybe plex emulate a roku api).
I tried to setup a Plex Player or even a Roku 3 device on the Neeo remote but i cannot control my Plex player like the Harmony can.
-
We are already working on a way to have Plex integration directly on NEEO. As for the moment, a possibility would be to use our SDK, maybe the available Roku driver works, but I have not tested that. Check out the getting started guide from Niels de Klerk here .
Another option would be to get an MCE remote which comes with an IR Receiver, these are usually very cheap and we already have many of them in our database.
There are more solutions from Planet NEEO already, this one and this one could be an interesting read for you.
-
We can surely look into this. I hope you do understand that we have to carefully decide what we prioritize for our limited resources. If you want I can move this over to the idea voting section, by collecting a lot of votes we can sure accelerate that.
Would be amazing if you could try to do a driver with our SDK. Check the examples, then you should be able to get a basic driver together quickly.
-
Hey Nicolas Philippe - I'm currently working on the same thing, as I have a similar setup, and the current Plex implementation only allows for IR.
I'm basing it on another driver and using the HTTP API on Plex for interacting with the navigation on a single client. Currently it uses some standard Plex API libraries on NPM, with some adjustments - and as such it's presently only running in my own setup, as the adjustments to the 3rd party libraries are not pushed back to the original author yet (I'm working on that tonight) . Anyway, it's located here, if you're interested: https://github.com/jesperrasmussen/neeo-driver-plex
-
That's pretty interesting, I haven't been able to reproduce this on my setup - the response code 500 would indicate a server error on the PLEX HTTP API, which the driver uses for shipping commands to PLEX - but what causes it is hard to reproduce without a similar setup.
What version of PMS are you running? I'm running 1.11.0.4666
-
i updated to use the same version (i was in 1.09...). I use a Linux Server. I still have this error :
Potentially unhandled rejection [2] TypeError: console.err is not a function at /Users/Nicolas/Downloads/neeo-driver-plex-master/plexApi.js:85:21 at tryCatchReject (/Users/Nicolas/Downloads/neeo-driver-plex-master/node_modules/when/lib/makePromise.js:845:30) at runContinuation1 (/Users/Nicolas/Downloads/neeo-driver-plex-master/node_modules/when/lib/makePromise.js:804:4) at Rejected.when (/Users/Nicolas/Downloads/neeo-driver-plex-master/node_modules/when/lib/makePromise.js:625:4) at Thenable.Pending.run (/Users/Nicolas/Downloads/neeo-driver-plex-master/node_modules/when/lib/makePromise.js:483:13) at Scheduler._drain (/Users/Nicolas/Downloads/neeo-driver-plex-master/node_modules/when/lib/Scheduler.js:62:19) at Scheduler.drain (/Users/Nicolas/Downloads/neeo-driver-plex-master/node_modules/when/lib/Scheduler.js:27:9) at _combinedTickCallback (internal/process/next_tick.js:131:7) at process._tickCallback (internal/process/next_tick.js:180:9)
I'll try to give a look inside the code
-
Nicolas Philippe The console.err missing is my mistake - I used a dependency for node debugging locally, which isn't included in the repo. I've changed it to using the standard console.error included in Node.
You're more than welcome to looking at the code - It's basically just based on the node-plex-api npm module (though patched for newer PLEX versions). I was looking into the dependency, my best bet would be to add some debugging to node-plex-api/lib/api.js around line 212m which looks like the following:
if (response.statusCode < 200 || response.statusCode > 299) { return reject( new Error( 'Plex Server didnt respond with a valid 2xx status code, response code: ' + response.statusCode ) ); }
I would probably try debugging by logging the response object as well as the body returned from PLEX' HTTP API - as that might contain some useful information on what went wrong in the request towards PLEX.
-
Response Body:
<?xml version='1.0' encoding='utf-8'?> <Response code="2000" status="HTTPError: "> <Traceback>Traceback (most recent call last): File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-fc63598ba/Framework.bundle/Conten ts/Resources/Versions/2/Python/Framework/components/runtime.py", line 843, in handle_request result = f(**d) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-fc63598ba/System.bundle/Contents/ Code/playerservice.py", line 67, in process_legacy_remote_command result = cmd(**kwargs) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-fc63598ba/Framework.bundle/Conten ts/Resources/Versions/2/Python/Framework/code/sandbox.py", line 19, in _apply return apply(f, args, kwargs) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-fc63598ba/Framework.bundle/Conten ts/Resources/Versions/2/Python/Framework/api/playerkit.py", line 395, in f return req.content File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-fc63598ba/Framework.bundle/Conten ts/Resources/Versions/2/Python/Framework/components/networking.py", line 265, in content return self.__str__() File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-fc63598ba/Framework.bundle/Conten ts/Resources/Versions/2/Python/Framework/components/networking.py", line 243, in __str__ self.load() File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-fc63598ba/Framework.bundle/Conten ts/Resources/Versions/2/Python/Framework/components/networking.py", line 181, in load f = self._opener.open(req, timeout=self._timeout) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-fc63598ba/Framework.bundle/Conten ts/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 444, in open response = meth(req, response) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-fc63598ba/Framework.bundle/Conten ts/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 557, in http_response 'http', request, response, code, msg, hdrs) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-fc63598ba/Framework.bundle/Conten ts/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 482, in error return self._call_chain(*args) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-fc63598ba/Framework.bundle/Conten ts/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 416, in _call_chain result = func(*args) File "/volume1/@appstore/Plex Media Server/Resources/Plug-ins-fc63598ba/Framework.bundle/Conten ts/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 565, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) HTTPError: HTTP Error 406: Not Acceptable </Traceback> </Response>
But no idea what that means. :-(