
KODI driver now in beta [1.3.8]
KODI IP driver for NEEO.
This will be a full featured kodi driver for NEEO. This driver is in an early beta stage so expect issue. I kindly request to only report crashes including crashlogs, Features will come later.
Remove the device you are using from NEEO before using this new version. I still make a lot of changes with every version to find the sweet spot.
The driver state: Early BETA
Features
- Discovering KODI instances.
- Wake on Lan as POWER ON command.
- Browse through movies and recent Movies. (add the Movie Library as shortcut).
- Browse through TV Shows and recent episodes. (add the TV Shows Library as shortcut).
- Browse through PVR TV Stations and Radio Stations. (add the PVR Library as shortcut).
- Browse through Music Albums, recent Albums and Music Video's. (add the Music Library as shortcut).
- Large Now playing cover image. (add the <Now Playing Cover (large)> Image as shortcut).
- Small Now playing cover image. (add the <Now Playing Cover (Small)> Image as shortcut).
- Now playing label. (add the Label as shortcut).
- Volume Slider. (add the Slider as shortcut).
- When EPG is available the broadcasted title is shown on TV Channels.
- All known API commands are exposed as buttons.
- Button to update Audio Library.
- Button to update Video Library.
- Content aware controlls.
Caviats
- Kodi password must be set to nothing or to "kodi". Username/Password is not being handled.
- Kodi 17.x on Android is not supported because it lacks Zeroconf, alternatives are using KODI 18 or use LibreElec.
- The "kodi Player" driver is NOT complete. use it for fun or show of but please Don't add bug reports for that. It's mainly unusable at this point.
Getting Started
These instructions will get you a copy of the project up and running on your local machine.
Prerequisites
You will need a copy of Node.js (v6) installed, see http://nodejs.org On windows you need either Bonjour SDK or iTunes installed for MDNS discovery.
Installing
Download or clone the github files to a directory of your choosing. Extract the files. Use your computers console and go to the path where the files are extracted and Install the package using NPM.
npm install
Running the driver
Use your computers console and go to the path where the files are extracted, Start the driver with NPM.
npm start
Running the driver the old way or for debugging.
Use your computers console and go to the path where the files are extracted, Edit the file Debug_NEEO_DRIVER-KODI.js to your pesonal setup, then Start the Debug_NEEO_DRIVER-KODI.js file with node.
node Debug_NEEO_DRIVER-KODI.js
or use in Visual Studio Code
KODI Settings
In Kodi make sure to enable the following settings:
- "Announce services to other systems", (not posible on kodi v17.x on android, Upgrade to kodi v18 Beta)
- "Allow remote control via HTTP", (Used for grabbing images)
- "Allow remote control from applications on other systems".
- set Kodi User/Password to either kodi/kodi or leave the password blank (default).
Usefull links
- NEEO - Official NEEO website.
- Planet NEEO - Official NEEO community website.
- KODI - Official KODI website.
- NEEO-SDK - NEEO SDK github.
- NEEO-SDK Docs - Detailed SDK documentation.
Authors
ToDo:
- ability to add credentials.
Releases
Version 1.3.8
- Added Music Queue.
- Added Movies in progress.
- Fixed issue not showing cover art when other kodi webservice is used.
- Fixed showing listitems x times.
- Devices need to be re-added. sorry.
- Fixed list error when kodi didn't report any items.
- Rewriting browsing service for Player
- Added generic Library Directory while still having the generic Movies, Music, etc..
- Fixed content aware controls being dependant on english language.
- Added disconnected message to listview.
- Added SUBTITLE and AUDIO (Language) Buttons.
- Removed unused code.
- Fixed lists limited to 64 items.
- Added PLAY PAUSE button for handeling play pause in Player, is mapped to OK button.
- Added Player Components. (only debug mode as it's not working properly yet.)
Version 1.2.2
- Reconnect when connection is lost.
Version 1.2.1
- Removed Module node-arp, Using native Kodi RPC call.
- Removed Module node-kodi, Using purpose build websocket connector.
- Improved discovery time from 8 Seconds to 3.
- Removed Module request.
- Bugfix: Recent movies returns actual count to list.
- Bugfix: list limit could exceed item count.
- Bugfix: Empty list were cousing an issue.
Version 1.2.0
- Converted all connection methods to use websocket.
- Added now playing image, Small.
- Added now playing image, Large.
- Added now playing label.
- Added volume slider.
Version 1.1.4
- Added websocket connection.
Version 1.1.3
- Reworked the way itemlists are build. now steps of 64 items are fetched.
- Code cleaning.
- Fixed images.
Version 1.1.2
- fixed reacurring filter issue
Version 1.1.1
- NPM start fix
Version 1.1.0
As all basic features are now working i've updated to 1.1.0.
- Fixed an endless discovery bug when a device got offline
- Fixed a WOL bug.
- Added PVR TV stations. Shows a list of TV channels and if EPG info is availeble also the current broadcast title.
- Added PVR Radio stations. Shows a list of Radio channels and if EPG info is availeble also the current broadcast title.
- Added contentaware buttons of Channel UP and Channel Down.
- Added Recent Albums
Version 1.0.12
- Added support fot Music albums and tracks.
- Added Preloading Music albums.
- Added Library cache and background fetching. (especially nice with huge libraries.)
- Added support for Music Videos.
Version 1.0.11
- Changed SDK-CLI Start method.
Version 1.0.10
- added movie filters: All, Watched, Unwatched.
Version 1.0.9
- added genre to movie list. just to play around, might change.
Version 1.0.8
- Changed code to use NEEO CLI, Remove old files first!
- Added a debugging file for use with IDE. Debug_NEEO_DRIVER-KODI.js
- Removed Circular dependancies, Thanks to Michael Kohler
- Fixed promise.resolve issues.
Version 1.0.7
- Changed the way to obtain the MAC address.
Version 1.0.6
- Added content aware controlls. i.e. using cursor in movie to skip.
Version 1.0.5
- Added Discovery logging to troubleshoot.
- removed IP in index.
- restructuring code.... (Still ongoing, could take a while)
- Starting to implement content aware buttons to behave like normal ir Remote or Key's
Version 1.0.4
- Fixed "ENTER" -> "CURSOR ENTER"
- Fixed Button controlls.
- Added Connection banner in KODI.
- Added Offline discovery.
- Automatically reconnect.
- Rewritten WOL, (POWER ON)
- Automatically connect to KODI instance when POWER ON command is send. (maximum boot duration supported is 5 Minutes).
- Manual connect to KODI instance when any command is send. (Command is not queued except for Power ON and Power Off).
- restructured Commands.
- Cleaned NEEO Controller.
- Added logo_NEEO_Twitter to images.
- Removed discovery from browserService-Movie.
- Removed discovery from browserService-TVShow.
- Added timer configuration in KODI Controller.
Version 1.0.3
- Rewritten BrowserService for TV Shows
Version 1.0.2
- Restructured discovery process.
- Restructured controller for Kodi.
- Rewritten BrowserService for Movies.
- Added BrowserService for music
- Added BrowserService for pvr
- Added BrowserService for TV Shows
-
Glad to be back home after few months traveling and discovering this topic .. Yaaay thanks.
So for testing purpose running Kodi on my macmini connected to a monitor not (TV or AVR) in a different room with no brain.
1) installed your git repo
2) Installed nodejs
3) started the services- I can see service connected to brain
4) installed Neeo kodi ip device driver - Happy to see kodi being discovered.
5) configuring recipe - Blocked here as not able to configure cable salad with my current macmini setup.
One more question. Is it possible to configure Kodi on Firetv with Kodi IP driver ?
-
Hello, i hope someone can help me. I am trying to install the driver but when i send the command npm start the service will not start. This is the log do someone know what the problem can be?
> neeo_driver-kodi@1.3.8 start /volume1/apps/neeo_driver-kodi-master
> neeo-sdk startcould not load devices in file @eaDir: Cannot find module '/volume1/apps/neeo_driver-kodi-master/devices/@eaDir'
DRIVER LOAD FAILED STACKTRACE:
Error: Cannot find module '/volume1/apps/neeo_driver-kodi-master/devices/@eaDir'
at Function.Module._resolveFilename (module.js:538:15)
at Function.Module._load (module.js:468:25)
at Module.require (module.js:587:17)
at require (internal/module.js:11:18)
at fs.readdirSync.filter.map (/volume1/apps/neeo_driver-kodi-master/node_modules/neeo-sdk/cli/deviceloader.js:69:16)
at Array.map (<anonymous>)
at loadDevicesFrom (/volume1/apps/neeo_driver-kodi-master/node_modules/neeo-sdk/cli/deviceloader.js:65:6)
at getLocalDevices (/volume1/apps/neeo_driver-kodi-master/node_modules/neeo-sdk/cli/deviceloader.js:32:10)
at Object.loadDevices (/volume1/apps/neeo_driver-kodi-master/node_modules/neeo-sdk/cli/deviceloader.js:15:20)
at BluePromise (/volume1/apps/neeo_driver-kodi-master/node_modules/neeo-sdk/cli/devicecontroller.js:61:34)
at Promise._execute (/volume1/apps/neeo_driver-kodi-master/node_modules/bluebird/js/release/debuggability.js:313:9)
at Promise._resolveFromExecutor (/volume1/apps/neeo_driver-kodi-master/node_modules/bluebird/js/release/promise.js:483:18)
at new Promise (/volume1/apps/neeo_driver-kodi-master/node_modules/bluebird/js/release/promise.js:79:10)
at loadDevices (/volume1/apps/neeo_driver-kodi-master/node_modules/neeo-sdk/cli/devicecontroller.js:60:10)
at Object.startDevices (/volume1/apps/neeo_driver-kodi-master/node_modules/neeo-sdk/cli/devicecontroller.js:27:7)
at Object.<anonymous> (/volume1/apps/neeo_driver-kodi-master/node_modules/neeo-sdk/cli/index.js:30:18)
Kodi Driver by Niels de Klerk.
No Brain address configured, attempting to discover one...
ERROR! Error: No Brain found after 5000ms!
at CatchSubscriber.mdns.getMdnsStream.pipe.catchError [as selector] (/volume1/apps/neeo_driver-kodi-master/node_modules/neeo-sdk/lib/discover/brain-lookup.js:36:15)
at CatchSubscriber.error (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/operators/catchError.js:48:31)
at TapSubscriber._error (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/operators/tap.js:75:26)
at TapSubscriber.Subscriber.error (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/Subscriber.js:73:18)
at TakeSubscriber.Subscriber._error (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/Subscriber.js:93:26)
at TakeSubscriber.Subscriber.error (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/Subscriber.js:73:18)
at MergeMapSubscriber.Subscriber._error (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/Subscriber.js:93:26)
at MergeMapSubscriber.Subscriber.error (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/Subscriber.js:73:18)
at FilterSubscriber.Subscriber._error (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/Subscriber.js:93:26)
at FilterSubscriber.Subscriber.error (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/Subscriber.js:73:18)
at FilterSubscriber.Subscriber._error (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/Subscriber.js:93:26)
at FilterSubscriber.Subscriber.error (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/Subscriber.js:73:18)
at TimeoutWithSubscriber.OuterSubscriber.notifyError (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/OuterSubscriber.js:26:26)
at InnerSubscriber._error (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/InnerSubscriber.js:31:21)
at InnerSubscriber.Subscriber.error (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/Subscriber.js:73:18)
at Observable._subscribe (/volume1/apps/neeo_driver-kodi-master/node_modules/rxjs/internal/observable/throwError.js:6:86)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! neeo_driver-kodi@1.3.8 start: `neeo-sdk start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the neeo_driver-kodi@1.3.8 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above -
Got my NEEO today and so far very pleased. Tried to get Kodi on my NUC to work but at this moment with limited success... I got an error message (see below), seems to be network related(?). Anyone an idea how to solve this?
- Brain discovered: NEEO Living Room - Start server, connect to NEEO Brain: { brain: 'NEEO Living Room', host: 'NEEO-d2324822.local', port: 3000 } ERROR! { Error: getaddrinfo EAI_AGAIN neeo-d2324822.local neeo-d2324822.local:3000 at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:58:26)
-
Kodi has been working great with this sdk.
Thanks for this. But do i need to keep the command prompt working at all the times with the command running in the background? I was wondering if this can be added to a services running in the windows background?
Also, can we change the color of the page from white to something darker.. or similar to neeo's background page?
-
Is this driver still working?
I followed the guides step by step, and it absolutely seems broken to me?
When the driver is running on my Synology after a fresh reboot - the driver shows up in NEEO. However when I press it, it cannot find any devices. Even though my NVIDIA Shield is set up exactly like the driver prompts and the guide is saying.
If I press back and try to find the driver again, it does not show up. So it is like it times out or something?
If I remove my Shield from NEEO, like the instructions here say, before trying to add it, it won’t even find the driver. No clue why that is the case, as they shouldn’t even be connected at that point?
I am a little bit worried how overly complicated this is, and how the community around NEEO seems completely dead. If you guys had to be honest, is this product end of life at this point? I honestly could have drawn a remote, had it CNC milled and installed it with buttons and a Pi Zero for all remote goodness in less time than I have spent trying to get this KODI driver working :(
-
Not much is going my way in terms of Neeo it seems :( I got your driver working on my old Synology NAS, but just had to update to a newer module, because of unrelated things.
Well I did the exact same things, but I am now getting this:
[CONTROLLER] Failed to send notification COMPONENTNAME_NOT_FOUND PLAYING
[CONTROLLER] Failed to send notification COMPONENTNAME_NOT_FOUND COVER_ART_SENSOR
[CONTROLLER] Failed to send notification COMPONENTNAME_NOT_FOUND NOWPLAYINGIMAGE
[CONTROLLER] Failed to send notification COMPONENTNAME_NOT_FOUND TITLE_SENSOR
[CONTROLLER] Failed to send notification COMPONENTNAME_NOT_FOUND NOWPLAYINGTITLE
[CONTROLLER] Failed to send notification COMPONENTNAME_NOT_FOUND DESCRIPTION_SENSOR
[CONTROLLER] Failed to send notification COMPONENTNAME_NOT_FOUND NOWPLAYINGDESCRIPTION
It seems buttons are working, but covers and titles etc. are not.
Any clue what that could be?
-
Hi Niels de Klerk ,
can you give me a hint for the following things:
- Where can i activate the "record" Button of the touch screen in your Driver or can you edit it on github?
- How can I change the key assignment of the Hardwarebuttons (Channel Up + Down)?
- At Live TV they are for the foreward and rewind actions, but i want them for Channel Up + Down)
Can you give me a hint for these things? I know that the End of Neeo is near, but i want to use it as long as possible.
MfG Benny
-
You uncommented a line. Probably one below line number 143. As that was the last line in the object it doesn’t contain a comma on the end.
add a comma on line 143 and remove the comma on the last line in the object, for instance if you uncommented record and it’s the last line then remove the comma (the last one) there.
-
Bonjour should not be in your computer with kodi but the one with the driver as it helps you discover other network items. Are you 100% sure you have these 4 items met ?
- "Announce services to other systems", (not posible on kodi v17.x on android, Upgrade to kodi v18 Beta) (you can have kodi 18.5 leia now)
- "Allow remote control via HTTP", (Used for grabbing images)
- "Allow remote control from applications on other systems".
- set Kodi User/Password to either kodi/kodi or leave the password blank (default).