Thank you very much for the great binding! I tested it with my Medion P69055. Everything works fine except playing an audio file via the stream channel. I get the following exception after I changed the stream value:
de.kaizencode.tchaikovsky.exception.SpeakerException: Unable to play item
at de.kaizencode.tchaikovsky.speaker.remote.RemoteSpeaker.playItem(RemoteSpeaker.java:297)[187:org.openhab.binding.allplay:2.0.0]
at org.openhab.binding.allplay.handler.AllPlayHandler.handleSpeakerCommand(AllPlayHandler.java:223)[187:org.openhab.binding.allplay:2.0.0]
at org.openhab.binding.allplay.handler.AllPlayHandler.handleCommand(AllPlayHandler.java:196)[187:org.openhab.binding.allplay:2.0.0]
at org.eclipse.smarthome.core.thing.internal.ThingManager$4.call(ThingManager.java:372)[105:org.eclipse.smarthome.core.thing:0.9.0.b4]
at org.eclipse.smarthome.core.thing.internal.ThingManager$4.call(ThingManager.java:1)[105:org.eclipse.smarthome.core.thing:0.9.0.b4]
at org.eclipse.smarthome.core.common.SafeMethodCaller$CallableWrapper.call(SafeMethodCaller.java:179)[98:org.eclipse.smarthome.core:0.9.0.b4]
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]
Caused by: org.alljoyn.bus.ErrorReplyBusException: org.alljoyn.Bus.ER_BUS_OBJECT_NO_SUCH_INTERFACE
at org.alljoyn.bus.ProxyBusObject.methodCall(Native Method)[187:org.openhab.binding.allplay:2.0.0]
at org.alljoyn.bus.ProxyBusObject.access$300(ProxyBusObject.java:40)[187:org.openhab.binding.allplay:2.0.0]
at org.alljoyn.bus.ProxyBusObject$Handler.invoke(ProxyBusObject.java:314)[187:org.openhab.binding.allplay:2.0.0]
at com.sun.proxy.$Proxy122.playItem(Unknown Source)[187:org.openhab.binding.allplay:2.0.0]
at de.kaizencode.tchaikovsky.speaker.remote.RemoteSpeaker.playItem(RemoteSpeaker.java:295)[187:org.openhab.binding.allplay:2.0.0]
... 9 more
Hi, at first glance I would say the speaker doesn’t support the playItem command or the command is named differently.
Do you have a Windows 10 PC? In this case you could download the IoT Explorer for AllJoyn from the store to get an overview of all possible commands. If you execute an introspection in this app on the net/allplay/MediaPlayer and post the results, we can check the available commands.
@Celaeno1, sorry, missed your last post. If you could provide the introspection information we can check if there is anything related to the line-in. It is possible, though, that the line-in option is not implemented via AllPlay and we will not find anything. Maybe you could also check if there is anything else besides net.allplay.MediaPlayer?
@Celaeno1 thanks, I don’t have this interface on my speakers. Can you find out the other valid values for the inputList/activeInput? There seems to be “Line-in”, but what are the other options?
Trying these bindings out, unable to getting it to work, browsing and stumbling on this thread; i can confirm the problem on windows x64
[ERROR] [org.openhab.binding.allplay ] - [org.openhab.binding.allplay.internal.AllPlayHandlerFactory(183)] The activate method has thrown an exception
java.lang.NoClassDefFoundError: Could not initialize class de.kaizencode.tchaikovsky.AllPlay
@Maarten1, I assume you are using the 2.0.0 stable release of openHAB? Unfotunately the fix is not included in 2.0.0, only in one of the latest snapshots of 2.1.0-SNAPSHOT.
To get the 2.1.0-SNAPSHOT, you have two possibilities:
either upgrade your complete openHAB to 2.1.0-SNAPSHOT and then download the AllPlay binding from PaperUI or
Download only the 2.1.0 binding snapshot from here and place it into your addons folder (make sure to uninstall the 2.0.0 version first)
You can check that the snapshot version is installed correctly by executing bundle:list in the karaf console, it should print out the version like this:
182 | Active | 80 | 2.1.0.201704170008 | AllPlay Binding
Would you mind to try if it works? I cannot test it as my speakers don’t support this interface…
The advanced channel for setting and getting the active input is called “input”. The channel is of type string, so to change the input to line-in, just send “Line-In”. I have not yet implemented the function to get a list of all input options.
Probably you need to remove already discovered speakers once and rediscover them after updating the binding, else the channel will not be available.
@dominicdesu, I was able to get your 2.1 snapshot build and that one does work.
I’m able to execute most of the actions; control, volume, title etc. However some do not seem to function: like mute and shuffle for example.
Also i’m wondering how i would be able to get some functionality which i currently have with panasonic’s app like selecting a file to play/stream or the zone aspect.
I really applaud your effort, i can help you with testing as i have two ALL9’s, one ALL05 and an ALL5CD.
Mute doesn’t seem to work on the Panasonic speakers (same on mine). This is not a binding problem, as if I set mute from the IoT Explorer app, it doesn’t work either. As a workaround I’d suggest to set the volume to 0. I’ll add a comment about this to the documentation. The shuffle command, however, works for me. Note that shuffle means all following songs will be played in random order, it will not immediately jump to the next song when shuffle is activated. Could you check again? If it is still not working, I can check.
Are you using PaperUI or rules? You can stream from an URL using the stream channel, like this: LVPanasonicAll8Stream.sendCommand("http://chromaradio.com:8008/listen.pls")
You need to know the URL of the file. The binding is not able to discover your music library and offer you songs for playing.
Zone management is indeed not yet implemented, it’s on my Todo list
i’m trying to get the Allplay binding running on a Synology Diskstation using Docker.
But i get the following error:
18:45:17.340 [ERROR] [org.openhab.binding.allplay ] - [org.openhab.binding.allplay.discovery(196)] The activate method has thrown an exception
java.lang.UnsatisfiedLinkError: /openhab/userdata/cache/org.eclipse.osgi/210/0/.cp/lib/x86-64/linux/liballjoyn_java.so: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /openhab/userdata/cache/org.eclipse.osgi/210/0/.cp/lib/x86-64/linux/liballjoyn_java.so)
18:45:17.365 [WARN ] [org.openhab.binding.allplay ] - FrameworkEvent WARNING - org.openhab.binding.allplay
org.osgi.framework.ServiceException: org.apache.felix.scr.impl.manager.SingleComponentManager.getService() returned a null service object
18:45:17.375 [DEBUG] [overy.AllPlaySpeakerDiscoveryService] - Starting scan for AllPlay devices
18:45:17.375 [ERROR] [org.openhab.binding.allplay ] - [org.openhab.binding.allplay.discovery(196)] The activate method has thrown an exception
java.lang.NoClassDefFoundError: Could not initialize class de.kaizencode.tchaikovsky.AllPlay