# AllPlay Binding
This binding integrates devices compatible with Qualcomm AllPlay (opens new window). The binding uses native libraries for the AllJoyn framework. Libraries for the following platforms are already included in the binding:
- Linux ARM
- Linux x86 (32 bit, AllJoyn v16.04a)
- Linux x86-64 (64 bit, AllJoyn v16.04a)
- Windows x86 (32 bit, AllJoyn v16.04a)
- Windows x86-64 (64 bit, AllJoyn v16.04a)
The Windows libraries have a dependency on the Visual C++ Redistributable for Visual Studio 2015 (opens new window). If you are using Windows, please make sure to install these components before using the AllPlay binding.
If there is need for another architecture/platform, please open a ticket on GitHub (opens new window) so the missing native library can be added.
# Supported Things
All AllPlay compatible speakers are supported by this binding. This includes for example the Panasonic ALL series (opens new window). All AllPlay speakers are registered as an audio sink in the framework.
# Discovery
The AllPlay devices are discovered through the AllJoyn discovery mechanism and are put in the Inbox upon discovery.
# Binding Configuration
The binding has the following configuration options, which can be set for "binding:allplay":
Parameter | Name | Description | Required |
---|---|---|---|
rewindSkipTimeInSec | Rewind skip time (s) | Seconds to jump backwards if the rewind command is executed | yes |
fastForwardSkipTimeInSec | Fast forward skip time (s) | Seconds to jump forward if the fastforward command is executed | yes |
callbackUrl | Callback URL | URL to use for playing audio streams, e.g. http://192.168.0.2:8080 (opens new window) | no |
# Thing Configuration
AllPlay Players are identified by their device ID (e.g. 9fbe37ca-d015-47a2-b76e-8fce7bc25687). Available configuration parameters are:
Parameter Label | Parameter ID | Description | Required | Default |
---|---|---|---|---|
Device ID | deviceId | The device identifier identifies one certain speaker | true | |
Device Name | deviceName | The device name of the speaker | false | |
Volume step size | volumeStepSize | Step size to use if the volume is changed using the increase/decrease command | true | 1 |
Zone Member Separator | zoneMemberSeparator | Separator which is used when sending multiple zone members to channel 'zonemembers' | true | , |
# Channels
The devices support the following channels:
Channel Type ID | Item Type | Description |
---|---|---|
clearzone | Switch | Remove the current speaker from the zone |
control | Player | Control the speaker, play/pause/next/previous/ffward/rewind |
coverart | Image | Image data of cover art of the current song |
coverarturl | String | URL of the cover art of the current song |
currentalbum | String | Name of the album currently playing |
currentartist | String | Name of the artist currently playing |
currentduration | Number | Duration in seconds of the track currently playing |
currentgenre | String | Genre of the track currently playing |
currenttitle | String | Title of the track currently playing |
currenturl | String | URL of the track or radio station currently playing |
currentuserdata | String | Custom user data (e.g. name of radio station) of the track currently playing |
input | String | Input of the speaker, e.g. Line-In (not supported by all speakers) |
loopmode | String | Loop mode of the speaker (ONE, ALL, NONE) |
mute | Switch | Set or get the mute state of the master volume of the speaker (not supported by all speakers) |
playstate | String | State of the Speaker, e.g. PLAYING, STOPPED,.. |
shufflemode | Switch | Toggle the shuffle mode of the speaker |
stop | Switch | Stop the playback |
stream | String | Play the given HTTP or file stream (file:// or http://) |
volume | Dimmer | Get and set the volume of the speaker |
volumecontrol | Switch | Flag if the volume control is enabled (might be disabled if speaker is not master of the zone) |
zoneid | String | Id of the Zone the speaker belongs to |
zonemembers | String | Set the zone members by providing a comma-separated list of device names. |
(This channel is currently only for setting the zone members. | ||
It does not update automatically if the zone members are changed from another source) |
# Audio Support
All AllPlay speakers are registered as an audio sink in the framework.
Audio streams are sent to the stream
channel.
# Full Example
demo.things:
Thing allplay:speaker:mySpeaker [ deviceId="9fbe37ca-d015-47a2-b76e-8fce7bc25687"]
demo.items:
String All2Stream {channel="allplay:speaker:9fbe37ca-d015-47a2-b76e-8fce7bc25687:stream"}
Player All2Control {channel="allplay:speaker:9fbe37ca-d015-47a2-b76e-8fce7bc25687:control"}
Dimmer All2Volume "Volume" {channel="allplay:speaker:9fbe37ca-d015-47a2-b76e-8fce7bc25687:volume"}
String All2Title "Title [%s]" {channel="allplay:speaker:9fbe37ca-d015-47a2-b76e-8fce7bc25687:currenttitle"}
String All2State "State [%s]" {channel="allplay:speaker:9fbe37ca-d015-47a2-b76e-8fce7bc25687:playstate"}
String All2Artist "Artist [%s]" {channel="allplay:speaker:9fbe37ca-d015-47a2-b76e-8fce7bc25687:currentartist"}
String All2CoverUrl "Cover Art URL [%s]" {channel="allplay:speaker:9fbe37ca-d015-47a2-b76e-8fce7bc25687:coverarturl"}
demo.sitemap:
sitemap demo label="Main Menu" {
Frame label="All2" {
Default item=All2Control
Slider item=All2Volume
Text item=All2Title
Text item=All2Artist
Text item=All2State
}
}
demo.rules:
rule "Play Online Radio stream"
when
Item All2OnlineRadio changed to ON
then
All2Stream.sendCommand("http://chromaradio.com:8008/listen.pls")