AllPlay binding: Looking for testers

@dominicdesu

Thank you very much. Then I will await your “Multiroom implementation”.

AUX IN is a new funktion, it’s called “Line-in to Wi-Fi Re-Streaming” See here link (in german!)

I have “IoT Explorer for AllJoyn” installed, maybe I can provide this missing information, if I knew where to lookup…

Ok, I will try “Official Binding” again…

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.

@dominicdesu What about the input source “Line-In”? I could also provide information for this via “IoT Explorer for AllJoyn”, may I?

@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?

Thanks, I’m going to provide information this evening!

@dominicdesu

here is my introspection:

 <interface name="net.allplay.InputSelector">
    <signal name="InputChanged">
      <arg name="input" type="s" direction="out"/>
    </signal>
    <method name="SelectInput">
      <arg name="input" type="s" direction="in"/>
    </method>
    <property name="ActiveInput" type="s" access="read"/>
    <property name="InputList" type="as" access="read"/>
    <property name="Version" type="q" access="read"/>
 </interface>

@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?

@dominicdesu No, there is only [0]Line-In entry in the list.

When I select a local track from smartphone or Internet-Radio, the Property: ActiveInput changes from Value “Line-In” to (null value).

By the way it is not a speaker. It is a Allplay wifi connector for an AV Receiver or hifi amplifier.

here is the link:

http://www.nuprimeaudio.com/index.php/products/wireless/wr100.html

Possible other values (e.g. for speakers) maybe could be: BT = bluetooth or direct = direct wifi

An other connector is e.g. Musaic MPL:

see here:

Inside the APP of Musaic you have the choice: Streaming, Aux Input, Bluetooth

Thanks for the information. I’ll implement it after looking into the Gramofon issue.

Trying these bindings out, unable to getting it to work, browsing and stumbling on this thread; i can confirm the problem on windows x64 :slight_smile:

[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

with your snapshot it does work however

@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:

  1. either upgrade your complete openHAB to 2.1.0-SNAPSHOT and then download the AllPlay binding from PaperUI or
  2. 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

@Celaeno1, I have prepared an update of the binding including the functions to get and set the active input:
https://drive.google.com/file/d/0B5RwWQEiYx5tbkNWWm9mU294bzg/view?usp=sharing

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.

1 Like

@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.

@Maarten1, thanks for your feedback.

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 :slight_smile:

@dominicdesu I tested “Input” and it is running! Thanks a lot! :slight_smile:

Hi,

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

Can somebody help me, to get it running?

Sorry, no idea what has to be done on a Synology…
However if you find a solution I can update the readme or the binding accordingly.

@nignac

I do not know so well in linux, but maybe this helps?

read there answers No: 41 and 42

Do you have GLIBCXX_3.4.21 on your system?

try this command:

 strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

Maybe you have to install or update your version? How to update? Depending on your linux system…

in above link answer No. 42 is for ubuntu!!

installing:

 sudo apt-get install libstdc++6

update: (but I’m not sure, if it’s the correct repository!!)

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade 

But NO WARRANTY, if this helps! Maybe a linux (Synology) specialist could tell you more?