Driver for Logitech Media Server (and KODI)

Hi.

I've pushed my driver for Logitech Media Server on GitHub:

https://github.com/br0wny/neeo_driver_squeezebox

It's a fork from https://github.com/clegendre/neeo_driver_squeezebox with many changes:

  • Restructured project for multi-driver approach
  • Async/Await for Req/Res
  • Telnet-Listener for notifications (New Song) --> Current Song info is updated when a new song is played
  • Changed Neeo "DeviceBuilding" use discovery

It's still not fully finished yet. Some features are not supported (yet) by the SDK.

TODO/Planed Features

  • DONE Automatically add favorites
  • DONE Display playlist
  • (Sync Players)

Many thanks to Cédric Legendre and Stuart Trout  for the previous work.

 

PS: The reason I restructured the project is the following:
I use a Netgear NAS to store my media and the LMS is also running on it. In my living room I have a UDOO X86 (A sort of Raspberry) with Ubuntu and KODI. I've combined the LMS and the KODI driver (https://github.com/br0wny/neeo-driver-kodi-squeezebox) and this is running on the UDOO. So now I have a single SDK-Adapter running in my home and it's easy to add new device-drivers if needed.

UPDATE: I've just pushed an update to GitHub. I added some directories. Now you can browse through your current playlist, your favorites and even your music library. The setup also got easier, because the SDK supports a musicplayer now by default.

Have fun!

Reply
9replies Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
  • Hi Mario Braun I got the following error with your code:

    NeeoDriver: +++++ Starting NEEO driver
    NeeoDriver: Discover one NEEO Brain...
    events.js:167
          throw er; // Unhandled 'error' event
          ^
    
    Error: addMembership EADDRINUSE
        at Socket.addMembership (dgram.js:626:11)
        at Socket.<anonymous> (/root/neeo_driver_squeezebox/node_modules/multicast-dns/index.js:57:18)
        at Socket.emit (events.js:187:15)
        at startListening (dgram.js:168:10)
        at _handle.lookup (dgram.js:286:7)
        at process._tickCallback (internal/process/next_tick.js:63:19)
        at Function.Module.runMain (internal/modules/cjs/loader.js:721:11)
        at startup (internal/bootstrap/node.js:228:19)
        at bootstrapNodeJSCore (internal/bootstrap/node.js:576:3)
    Emitted 'error' event at:
        at Socket.<anonymous> (/root/neeo_driver_squeezebox/node_modules/multicast-dns/index.js:59:16)
        at Socket.emit (events.js:187:15)
        [... lines matching original stack trace ...]
        at bootstrapNodeJSCore (internal/bootstrap/node.js:576:3)

    Can you pls help? I configured according to your instructions on github repository. Thank you in advance!

    Reply Like
    • Hi janus.  Sorry for the late reply.

      Looks like the Address is in use already.

      Are you running two neeo drivers at the same time?

      BR Mario

      Reply Like
      • janus
      • janus
      • 2 mths ago
      • Reported - view

      Hi Mario Braun ok thanks I rebooted the brain and deleted all references to the drivers. Now I got the following error:

      NeeoDriver: +++++ Starting NEEO driver
      NeeoDriver: Discover one NEEO Brain...
      NeeoDriver: Brain discovered: NEEO Living Room
      NeeoDriver: Start server
      NeeoDriver: Error: BRAIN_NOT_REACHABLE
      

      I pinged the brain ip address and I got reply. What seemed to be the problem here? Thanks in advance!

      Reply Like
    • Hi janus.

      I assume you are using a Windows OS.
      This version of the SDK has a problem with the autodetection of the neeo brain.

      Go to neeoDriver/neeoDriver.js and change line 29 to the correct IP displayed in you Neeo App or set the env variable.

      const brainIp = "192.168.0.xx";//process.env.BRAINIP;

       

      PS: I made some updates (Current Playlist, Music Library and Favorites as lists) to my driver 4 month ago, but then I had no time to finish them.

      BR Mario

      Reply Like
      • janus
      • janus
      • 2 mths ago
      • Reported - view

      Hi Mario Braun thank you so so much for the solution. Now the driver is working! And no, I'm not running Wi downs but on a Raspberry Pi Model 3B+ 😊

      There is still a small issue when the music is playing: NEEO doesn't show that it's playing on the home screen. I tried restarting the driver but it doesn't help. Do you know what can I do? 

      I like the idea of adding my playlists on NEEO. How do I add my music library? 

      Awesome driver! Kudos to you! 

      Eric

      Reply Like
    • janus 

      Do you mean the now active display on the home screen? It is working in my configuration...

      The configuration of the music library (Adding folders the library) can be done via the webinterface of the Logitech Media Server. Just go to: http://xxx.xxx.xxx.xxx:9000/ insert the ip address of you Server.

      BR Mario

      Reply Like
      • janus
      • janus
      • 1 mth ago
      • Reported - view

      Mario Braun 

      Sorry for my late reply. The now active display for LMS works now after I added Power On command to my recipe. Kudo! ;-)

      Somehow I still have problems adding my playlists. Here is my configuration:

      // Set Favorites
      config.squeeze.favorites = [
      {
              name : 'daily mix 3',
              name : 'Billboard Hot 10',
              name : 'Chill Mode: On',
              name : 'Daily Mix 2018',
              name : 'Deep House Relax',
              name : 'Discovery Weekly',
              name : 'EDM HOUSE 2018 presented by bigFM nitroX',
              name : 'Good Vibes',
              name : 'Lazy Sunday Music',
              name : 'Mood Booster',
              name : 'Pop Remix',
              name : "Summer '18",
              name : 'Summer Party',
              name : 'Young, Wild & Free',
              name : 'Summer songs',
              name : 'Your Summer Rewind'
      
      

      The playlists just don't show up on the remote. Do you have any instructions for me on how to set it up?

      Another thing is: I have already setup my music library on LMS. How do I add it in NEEO? And the cover art image doesn't work as well. 

      Thank you for your driver! I really appreciate it!

      Janus

      Reply Like
    • Hi janus.

      There is only a little mistake in the configuration. It should be an array of JSON Object with a name field. Like this:

      // Set Favorites
      config.squeeze.favorites = [
      {
              name : 'daily mix 3'
      },{
              name : 'Billboard Hot 10'
      },{
              name : 'Chill Mode: On'
      }];

      The names of the favorites have to be the same as configured in the Logitech Media Server (via web interface).
      If you change the values in config.js, you have to newly add (delete and add) the device to you remote. Otherwise the new favorites are not shown as Shortcuts in your remote.

      Regarding adding (playing) music library via NEEO: At the moment it's not possible the play a certain track/album of the library. There are two shortcuts. With "Play random album" a random album is loaded in the playlist and only this album is played. With "Play random tack" the whole library is loaded in the playlist. Working on it.

      Regarding album cover: Are the images displayed in the web interface? The driver is requesting the image directly from the LMS. I have sorted my library by hand and added the image to the ID3 Tag of each mp3/flac file with mp3tag. A very tedious and long-term process 😉.

      I think you can also paste an image in the album folder. You can find more info here: http://wiki.slimdevices.com/index.php/Album_Artwork

      BR Mario

      Reply Like
  • Hi  Mario Braun , thank you for the codes. Now I have my playlists on NEEO! Neat!

    As for the album art, my local music files were tagged correctly and they show on the remote. However, when I stream music the album art doesn't work.

    And also the song info (title, artist and album) is not updated when the playback continues to the next song. Perhaps this is something you are aware of/and fixing?

    Thank you!

    Janus

    Reply Like
reply to topic
Like2 Follow