MPC/D alternative

As openhab2 doesn’t have a binding for mpd currently - what is the best alternative to use for online radios?

As a suggestion, try out the OH1 mpd binding if it works under OH2 (see http://docs.openhab.org/developers/development/compatibilitylayer.html for this)
If it turns out, that the binding works under OH2, too, this binding could be marked as compatible.

If this doesn’t work, and you’re able to setup a server, you could use the squeezebox binding. there is squeezelite as a software player, and the logitechmediaserver to communicate with openhab, deliver netstreams and music (both free to use, both for windows or linux available)

I was able to get this binding working in OH2.

The initial attempt failed with the error below, but I was able to work around it by dropping a 1.9.0 copy of the binding into the addons directory.

With that jar, it appears the start/stop/next/volume commands all work fine…

15:18:50.862 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/Mpd_Emerald_StartStop] | org.osgi.service.event.EventHandler, org.osgi.service.cm.ManagedService}={event.topics=openhab/command/*, service.pid=org.openhab.mpd,
component.name=org.openhab.binding.mpd, component.id=186, service.id=297, service.bundleid=171, service.scope=bundle} | Bundle(org.openhab.binding.mpd_1.8.3 [171])]
java.lang.NullPointerException
at org.openhab.binding.mpd.internal.MpdBinding.disconnect(MpdBinding.java:716)[171:org.openhab.binding.mpd:1.8.3]

Can you tell me where I can find the jar file of the 1.9.0 MPD Binding?

Thanks a lot!

You can pull it from the cloudbees CI build.

I can’t get the jar file from this place.Could you upload working file, please. I have the same exception as you mentioned above.

Here’s an updated link

Unfortunately, I still have the same exception below.
I added MPD server config in …\services\mpd.cfg

mpd:server.host=192.168.1.131
mpd:server.port=6600

Do I need some other configurations to make it work properly?

06:45:29.940 [INFO ] [smarthome.event.ItemCommandEvent ] - Item ‘Mpd_StartStop’ received command ON
06:45:29.940 [INFO ] [nhab.binding.mpd.internal.MpdBinding] - Reconnect player 'server’
06:45:29.945 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/Mpd_StartStop] {bridgemarker=true, item=Mpd_StartStop, command=ON} | {org.osgi.service.event.EventHandler, org.osgi.service.cm.ManagedService}={event.topics=openhab/command/*, service.pid=org.openhab.mpd, component.name=org.openhab.binding.mpd, component.id=189, service.id=321, service.bundleid=207, service.scope=bundle} | Bundle(org.openhab.binding.mpd_1.10.0.201702040211 [207])]
java.lang.NullPointerException
at org.openhab.binding.mpd.internal.MpdBinding.disconnect(MpdBinding.java:740)[207:org.openhab.binding.mpd:1.10.0.201702040211]

What does your item binding look like?

Very simple binding
Switch Mpd_StartStop “Start/Stop” { mpd=“ON:server:play, OFF:server:stop” }

MPD works well. I can control it using mpc from command line.

Very strange. Can you provide a full debug log?

Here is the full log after one action. I have no idea how to debug the problem.

11:05:56.892 [INFO ] [smarthome.event.ItemCommandEvent ] - Item ‘Mpd_StartStop’ received command ON
11:05:56.893 [INFO ] [nhab.binding.mpd.internal.MpdBinding] - Reconnect player 'server’
11:05:56.915 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.evd/Mpd_StartStop] {bridgemarker=true, item=Mpd_StartStop, command=ON} | {org.osgi.service.event.EventHandler, org.osgi.service.s=openhab/command/*, service.pid=org.openhab.mpd, component.name=org.openhab.binding.mpd, component.id=189, service.id=321, sepe=bundle} | Bundle(org.openhab.binding.mpd_1.10.0.201702040211 [207])]
java.lang.NullPointerException
at org.openhab.binding.mpd.internal.MpdBinding.disconnect(MpdBinding.java:740)[207:org.openhab.binding.mpd:1.10.0.2017
at org.openhab.binding.mpd.internal.MpdBinding.reconnect(MpdBinding.java:774)[207:org.openhab.binding.mpd:1.10.0.20170
at org.openhab.binding.mpd.internal.MpdBinding.executePlayerCommand(MpdBinding.java:200)[207:org.openhab.binding.mpd:1
at org.openhab.binding.mpd.internal.MpdBinding.internalReceiveCommand(MpdBinding.java:156)[207:org.openhab.binding.mpd
at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:97)[182:org.openhab.core.compat1x:2.0.
at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:42)[182:org.openhab.core.c
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)[6:org.apache.karaf
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.run(HandlerTask.java:90)[6:org.apache.karaf.services.eventadmin:
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_121]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]
11:05:56.933 [INFO ] [marthome.event.ItemStateChangedEvent] - Mpd_StartStop changed from OFF to ON

There’s no debug logging in there.

Please take a look here to read up on configuring debug logging, then
upload the full log file.

(
https://github.com/openhab/openhab1-addons/wiki/Configuring-the-openHAB-runtime#logging)

(


)

I’ve tried DEBUG level of logging. I didn’t see new error messages. But I found the error while updating mpd.cfg. That is the main problem, mpd configurations are not read. I’ve tried different combinations - nothing. Can you show me your mpd.cfg ?

16:57:20.282 [ERROR] [org.apache.felix.configadmin ] - [org.osgi.service.event.EventHandler, org.osgi.service.cm.ManagedService, id=286, bundle=212/https://openhab.ci.cloudbees.com/job/openHAB1-Addons/lastSuccessfulBuild/artifact/bundles/binding/org.openhab.binding.mpd/target/org.openhab.binding.mpd-1.10.0-SNAPSHOT.jar]: Unexpected problem updating configuration org.openhab.mpd
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)[:1.8.0_121]
at java.lang.Integer.parseInt(Integer.java:592)[:1.8.0_121]
at java.lang.Integer.valueOf(Integer.java:766)[:1.8.0_121]
at org.openhab.binding.mpd.internal.MpdBinding.updated(MpdBinding.java:613)[212:org.openhab.binding.mpd:1.10.0.201702040211]
at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[3:org.apache.felix.configadmin:1.8.12]
at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[3:org.apache.felix.configadmin:1.8.12]
at org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[3:org.apache.felix.configadmin:1.8.12]
at org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1772)[3:org.apache.felix.configadmin:1.8.12]
at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:141)[3:org.apache.felix.configadmin:1.8.12]
at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:109)[3:org.apache.felix.configadmin:1.8.12]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]

@1117 I would try the following:

Make sure that you have installed (via console): feature:install openhab-runtime-compat1x
Drop the latest *.jar in your ..\addons\ folder

change ..\conf\services\mpd.cfg to:

server.host=192.168.1.131
server.port=6600

set log level to DEBUG for the MPD Binding: log:set DEBUG org.openhab.binding.mpd

check logs and reply :slight_smile:

Done as you told. Openhab startup log with the problem in bold is listed below. I cheсked mpd.cfg many times.

18:02:39.918 [DEBUG] [org.openhab.binding.mpd ] - BundleEvent STARTING - org.openhab.binding.mpd
18:02:39.924 [DEBUG] [ab.binding.mpd.internal.MpdActivator] - MPD binding has been started.
18:02:40.075 [DEBUG] [nhab.binding.mpd.internal.MpdBinding] - MPD binding connecting to players
18:02:40.085 [DEBUG] [org.openhab.binding.mpd ] - ServiceEvent REGISTERED - {org.osgi.service.event.EventHandler, org.osgi.service.cm.ManagedService}={event.topics=openhab/command/*, service.pid=org.openhab.mpd, component.name=org.openhab.binding.mpd, component.id=184, service.id=318, service.bundleid=215, service.scope=bundle} - org.openhab.binding.mpd
18:02:40.113 [DEBUG] [org.openhab.binding.mpd ] - ServiceEvent REGISTERED - {org.openhab.model.item.binding.BindingConfigReader, org.openhab.binding.mpd.MpdBindingProvider}={component.name=org.openhab.binding.mpd.genericbindingprovider, component.id=185, service.id=317, service.bundleid=215, service.scope=bundle} - org.openhab.binding.mpd
18:02:40.127 [DEBUG] [org.openhab.binding.mpd ] - BundleEvent STARTED - org.openhab.binding.mpd
18:02:40.128 [ERROR] [org.apache.felix.configadmin ] - [org.osgi.service.event.EventHandler, org.osgi.service.cm.ManagedService, id=318, bundle=215/file:/usr/share/openhab2/addons/org.openhab.binding.mpd-1.10.0-SNAPSHOT.jar]: Unexpected problem updating configuration org.openhab.mpd
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)[:1.8.0_121]
at java.lang.Integer.parseInt(Integer.java:592)[:1.8.0_121]
at java.lang.Integer.valueOf(Integer.java:766)[:1.8.0_121]
at org.openhab.binding.mpd.internal.MpdBinding.updated(MpdBinding.java:613)[215:org.openhab.binding.mpd:1.10.0.201702080211]
at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[3:org.apache.felix.configadmin:1.8.12]
at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[3:org.apache.felix.configadmin:1.8.12]
at org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[3:org.apache.felix.configadmin:1.8.12]
at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1461)[3:org.apache.felix.configadmin:1.8.12]
at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1417)[3:org.apache.felix.configadmin:1.8.12]
at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:141)[3:org.apache.felix.configadmin:1.8.12]
at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:109)[3:org.apache.felix.configadmin:1.8.12]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]

Maybe: delete the mpd.cfg
recreate it without using notepad (use another text editor), Type the text, don’t copy-paste.
There may be some kind of character (or new line feed) that stops the binding from parsing properly the config data.

Nothing. I am using nano editor. It looks like very simple mistake. Ok, thank you. I will try to find.

Finally It works! Openhab was reinstalled from the scratch.
feature:install openhab-runtime-compat1x is very important!

1 Like

Hello,
I have the almost same problem … now work only volume slider. I receive correct value from volume and i can increase / decrease volume but no working play stop next prev or current info about Title song. I use mpd binding to make am online radio on raspberry pi. I make all possible combination and until now nothing work to play/stop commands. Any idea ???
Thanks.