f25cc8d14a
* Initial contribution of AmpliPi binding Signed-off-by: Kai Kreuzer <kai@openhab.org> * change http client from cxf jax-rs to Jetty Signed-off-by: Kai Kreuzer <kai@openhab.org> * applied spotless Signed-off-by: Kai Kreuzer <kai@openhab.org> * Remove Jackson dependency Signed-off-by: Kai Kreuzer <kai@openhab.org> * Add support for input handling Signed-off-by: Kai Kreuzer <kai@openhab.org> * Clean up, improvements and documentation Signed-off-by: Kai Kreuzer <kai@openhab.org> * Remove unused password from configuration class Signed-off-by: Kai Kreuzer <kai@openhab.org> * Remove example properties file Signed-off-by: Kai Kreuzer <kai@openhab.org> * revert change in .gitignore Signed-off-by: Kai Kreuzer <kai@openhab.org> * Update README Signed-off-by: Kai Kreuzer <kai@openhab.org> * Address review feedback Signed-off-by: Kai Kreuzer <kai@openhab.org> * Handle ExecutionException as network error Signed-off-by: Kai Kreuzer <kai@openhab.org> |
||
---|---|---|
.. | ||
src | ||
amplipi-api.yml | ||
NOTICE | ||
pom.xml | ||
README.md |
AmpliPi Binding
This binding supports the multi room audio system AmpliPi from MicroNova.
Supported Things
The AmpliPi itself is modeled as a Bridge of type controller
.
Every available zone as well as group is managed as an individual Thing of type zone
resp. group
.
Discovery
Once the AmpliPi announces itself through mDNS (still a pending feature), it will be automatically discovered on the network.
As soon as the AmpliPi is online, its zones and groups are automatically retrieved and added as Things to the Inbox.
Thing Configuration
The controller
Bridge has two configuration parameters:
Parameter | Required | Description |
---|---|---|
hostname | yes | The hostname or IP address of the AmpliPi on the network |
refreshInterval | no | The time to wait between two polling requests for receiving state updates. Defaults to 10 seconds. |
Both the zone
and group
Things only require a single configuration parameter id
, which corresponds to their id on the AmpliPi.
Channels
These are the channels of the controller
Bridge:
Channel | Type | Description |
---|---|---|
preset | Number | Allows setting a pre-configured preset. The available options are dynamically read from the AmpliPi. |
input1 | String | The selected input of source 1 |
input2 | String | The selected input of source 2 |
input3 | String | The selected input of source 3 |
input4 | String | The selected input of source 4 |
The zone
and group
Things have the following channels:
Channel | Type | Description |
---|---|---|
volume | Dimmer | The volume of the zone/group |
mute | Switch | Mutes the zone/group |
source | Number | The source (1-4) that this zone/group is playing |
Full Example
amplipi.things:
Bridge amplipi:controller:1 "My AmpliPi" [ hostname="amplipi.local" ] {
zone zone2 "Living Room" [ id=1 ]
}
amplipi.items:
Number Preset "Preset" { channel="amplipi:controller:1:preset" }
String Input1 "Input 1" { channel="amplipi:controller:1:input1" }
String Input2 "Input 2" { channel="amplipi:controller:1:input2" }
String Input3 "Input 3" { channel="amplipi:controller:1:input3" }
String Input4 "Input 4" { channel="amplipi:controller:1:input4" }
Dimmer VolumeZ2 "Volume Zone2" { channel="amplipi:zone:1:zone2:volume" }
Switch MuteZ2 "Mute Zone2" { channel="amplipi:zone:1:zone2::mute" }
Number SourceZ2 "Source Zone2" { channel="amplipi:zone:1:zone2::source" }
amplipi.sitemap:
sitemap amplipi label="Main Menu"
{
Frame label="AmpliPi" {
Selection item=Preset
Selection item=Input1
Selection item=Input2
Selection item=Input3
Selection item=Input4
}
Frame label="Living Room Zone" {
Slider item=VolumeZ2 label="Volume Zone 1 [%.1f %%]"
Switch item=MuteZ2
Selection item=SourceZ2
}
}