Add support for 4 zone model (#16043)
Signed-off-by: Michael Lobstein <michael.lobstein@gmail.com>
This commit is contained in:
parent
992f65d8e2
commit
872013a700
@ -3,6 +3,7 @@
|
||||
This binding can be used to control the following types of whole house multi-zone amplifier systems:
|
||||
|
||||
- Monoprice MPR-SG6Z (10761), Monoprice Passive Matrix (39261), Dayton Audio DAX66 or compatible clones
|
||||
- Monoprice 44519 4 zone / 6 source variant of the 10761 **(untested)**
|
||||
- Monoprice 31028 or OSD Audio PAM1270 **(untested)**
|
||||
- Dayton Audio DAX88 **(untested)**
|
||||
- Xantech MRC88, MX88, MRAUDIO8X8 or CM8X8 **(untested)**
|
||||
@ -21,9 +22,11 @@ Or you can connect it for example to a Raspberry Pi and use [ser2net Linux tool]
|
||||
## Supported Things
|
||||
|
||||
Monoprice 10761 & 39261 or Dayton Audio DAX66 amplifiers use the `amplifier` thing id. Up to 18 zones with 3 linked amps and 6 source inputs are supported.
|
||||
Note: Compatible clones (including 4 zone versions) from McLELLAND, Factor, Soundavo, etc. should work as well.
|
||||
Note: Compatible clones from McLELLAND, Factor, Soundavo, etc. should work as well.
|
||||
|
||||
***The following three thing types were implemented via available documentation only and have not been tested. Please open an issue for any bugs found when using these thing types.***
|
||||
***The following thing types were implemented via available documentation only and have not been tested. Please open an issue for any bugs found when using these thing types.***
|
||||
|
||||
Monoprice 44519 4 zone variants use the `monoprice4` thing id. Up to 12 zones with 3 linked amps and 6 source inputs are supported.
|
||||
|
||||
Monoprice 31028 or OSD Audio PAM1270 70 volt amplifiers use the `monoprice70` thing id. 6 zones per amp (not linkable) and 2 source inputs are supported.
|
||||
|
||||
@ -63,7 +66,7 @@ The thing has the following configuration parameters (number of sources and zone
|
||||
|
||||
Some notes:
|
||||
|
||||
- On the 10761/DAX66 amp, activating the 'Page All Zones' feature can only be done through the +12v trigger input on the back of the amplifier.
|
||||
- On the 10761/44519/DAX66 amp, activating the 'Page All Zones' feature can only be done through the +12v trigger input on the back of the amplifier.
|
||||
|
||||
- On Linux, you may get an error stating the serial port cannot be opened when the MonopriceAudio binding tries to load.
|
||||
- You can get around this by adding the `openhab` user to the `dialout` group like this: `usermod -a -G dialout openhab`.
|
||||
@ -121,6 +124,9 @@ monopriceaudio:amplifier:myamp "Monoprice WHA" [ serialPort="COM5", pollingInter
|
||||
// Monoprice 10761, 39261 / DAX66 (serial over IP connection)
|
||||
monopriceaudio:amplifier:myamp "Monoprice WHA" [ host="192.168.0.10", port=8080, pollingInterval=15, numZones=6, inputLabel1="Chromecast", inputLabel2="Radio", inputLabel3="CD Player", inputLabel4="Bluetooth Audio", inputLabel5="HTPC", inputLabel6="Phono" ]
|
||||
|
||||
// Monoprice 44519
|
||||
monopriceaudio:monoprice4:myamp "Monoprice WHA" [ serialPort="COM5", pollingInterval=15, numZones=4, inputLabel1="Chromecast", inputLabel2="Radio", inputLabel3="CD Player", inputLabel4="Bluetooth Audio", inputLabel5="HTPC", inputLabel6="Phono" ]
|
||||
|
||||
// Monoprice 31028 or OSD Audio PAM1270
|
||||
monopriceaudio:monoprice70:myamp "Monoprice WHA" [ serialPort="COM5", pollingInterval=30, numZones=6, inputLabel1="Source 0 - Bus", inputLabel2="Source 1 - Line" ]
|
||||
|
||||
@ -136,7 +142,7 @@ monopriceaudio:xantech:myamp "Xantech WHA" [ serialPort="COM5", pollingInterval=
|
||||
monoprice.items:
|
||||
|
||||
```java
|
||||
// substitute 'amplifier' for the appropriate thing id if using 31028, DAX88 or Xantech amplifier
|
||||
// substitute 'amplifier' for the appropriate thing id if using 44519, 31028, DAX88 or Xantech amplifier
|
||||
|
||||
Switch all_allpower "All Zones Power" { channel="monopriceaudio:amplifier:myamp:all#allpower" }
|
||||
Number all_source "Source Input [%s]" { channel="monopriceaudio:amplifier:myamp:all#allsource" }
|
||||
|
||||
@ -30,6 +30,7 @@ public class MonopriceAudioBindingConstants {
|
||||
// List of all Thing Type UIDs
|
||||
// to avoid breaking existing installations, the 10761/DAX66 will still be known as 'amplifier'
|
||||
public static final ThingTypeUID THING_TYPE_MP = new ThingTypeUID(BINDING_ID, "amplifier");
|
||||
public static final ThingTypeUID THING_TYPE_MP4 = new ThingTypeUID(BINDING_ID, "monoprice4");
|
||||
public static final ThingTypeUID THING_TYPE_MP70 = new ThingTypeUID(BINDING_ID, "monoprice70");
|
||||
public static final ThingTypeUID THING_TYPE_DAX88 = new ThingTypeUID(BINDING_ID, "dax88");
|
||||
public static final ThingTypeUID THING_TYPE_XT = new ThingTypeUID(BINDING_ID, "xantech");
|
||||
|
||||
@ -43,8 +43,8 @@ import org.slf4j.LoggerFactory;
|
||||
@Component(configurationPid = "binding.monopriceaudio", service = ThingHandlerFactory.class)
|
||||
public class MonopriceAudioHandlerFactory extends BaseThingHandlerFactory {
|
||||
|
||||
private static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_MP, THING_TYPE_MP70,
|
||||
THING_TYPE_DAX88, THING_TYPE_XT);
|
||||
private static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_MP, THING_TYPE_MP4,
|
||||
THING_TYPE_MP70, THING_TYPE_DAX88, THING_TYPE_XT);
|
||||
|
||||
private final SerialPortManager serialPortManager;
|
||||
|
||||
@ -73,6 +73,11 @@ public class MonopriceAudioHandlerFactory extends BaseThingHandlerFactory {
|
||||
serialPortManager);
|
||||
}
|
||||
|
||||
if (THING_TYPE_MP4.equals(thingTypeUID)) {
|
||||
return new MonopriceAudioHandler(thing, AmplifierModel.MONOPRICE4, stateDescriptionProvider,
|
||||
serialPortManager);
|
||||
}
|
||||
|
||||
if (THING_TYPE_MP70.equals(thingTypeUID)) {
|
||||
return new MonopriceAudioHandler(thing, AmplifierModel.MONOPRICE70, stateDescriptionProvider,
|
||||
serialPortManager);
|
||||
|
||||
@ -47,6 +47,21 @@ public enum AmplifierModel {
|
||||
new StateOption("5", config.inputLabel5), new StateOption("6", config.inputLabel6));
|
||||
}
|
||||
},
|
||||
// Monoprice 44519 4 zone variant
|
||||
MONOPRICE4("<", "\r", "?", "", "#>", "PR", "CH", "VO", "MU", "TR", "BS", "BL", "DT", 38, -7, 7, 7, -10, 10, 10, 12,
|
||||
6, true, List.of("11", "12", "13", "14", "21", "22", "23", "24", "31", "32", "33", "34")) {
|
||||
@Override
|
||||
public MonopriceAudioZoneDTO getZoneData(String newZoneData) {
|
||||
return getMonopriceZoneData(newZoneData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StateOption> getSourceLabels(MonopriceAudioThingConfiguration config) {
|
||||
return List.of(new StateOption("1", config.inputLabel1), new StateOption("2", config.inputLabel2),
|
||||
new StateOption("3", config.inputLabel3), new StateOption("4", config.inputLabel4),
|
||||
new StateOption("5", config.inputLabel5), new StateOption("6", config.inputLabel6));
|
||||
}
|
||||
},
|
||||
// Dayton Audio DAX88
|
||||
DAX88("<", "\r", "?", "", ">", "PR", "CH", "VO", "MU", "TR", "BS", "BL", "DT", 38, -12, 12, 12, -10, 10, 10, 8, 8,
|
||||
true, List.of("01", "02", "03", "04", "05", "06", "07", "08")) {
|
||||
|
||||
@ -441,6 +441,7 @@ public class MonopriceAudioHandler extends BaseThingHandler implements Monoprice
|
||||
|
||||
@Override
|
||||
public void onNewMessageEvent(MonopriceAudioMessageEvent evt) {
|
||||
updateStatus(ThingStatus.ONLINE);
|
||||
String key = evt.getKey();
|
||||
|
||||
switch (key) {
|
||||
@ -510,8 +511,6 @@ public class MonopriceAudioHandler extends BaseThingHandler implements Monoprice
|
||||
if (error != null) {
|
||||
closeConnection();
|
||||
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, error);
|
||||
} else {
|
||||
updateStatus(ThingStatus.ONLINE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -65,6 +65,34 @@ thing-type.monopriceaudio.dax88.group.zone7.label = Zone 7
|
||||
thing-type.monopriceaudio.dax88.group.zone7.description = The Controls for Zone 7
|
||||
thing-type.monopriceaudio.dax88.group.zone8.label = Zone 8
|
||||
thing-type.monopriceaudio.dax88.group.zone8.description = The Controls for Zone 8
|
||||
thing-type.monopriceaudio.monoprice4.label = Monoprice 44519 4 Zone Amplifier
|
||||
thing-type.monopriceaudio.monoprice4.description = A Multi-zone Whole House Amplifier System
|
||||
thing-type.monopriceaudio.monoprice4.group.all.label = All Zones
|
||||
thing-type.monopriceaudio.monoprice4.group.all.description = Control All Zones Simultaneously
|
||||
thing-type.monopriceaudio.monoprice4.group.zone1.label = Zone 1
|
||||
thing-type.monopriceaudio.monoprice4.group.zone1.description = The Controls for Zone 1
|
||||
thing-type.monopriceaudio.monoprice4.group.zone10.label = Zone 10
|
||||
thing-type.monopriceaudio.monoprice4.group.zone10.description = The Controls for Zone 10
|
||||
thing-type.monopriceaudio.monoprice4.group.zone11.label = Zone 11
|
||||
thing-type.monopriceaudio.monoprice4.group.zone11.description = The Controls for Zone 11
|
||||
thing-type.monopriceaudio.monoprice4.group.zone12.label = Zone 12
|
||||
thing-type.monopriceaudio.monoprice4.group.zone12.description = The Controls for Zone 12
|
||||
thing-type.monopriceaudio.monoprice4.group.zone2.label = Zone 2
|
||||
thing-type.monopriceaudio.monoprice4.group.zone2.description = The Controls for Zone 2
|
||||
thing-type.monopriceaudio.monoprice4.group.zone3.label = Zone 3
|
||||
thing-type.monopriceaudio.monoprice4.group.zone3.description = The Controls for Zone 3
|
||||
thing-type.monopriceaudio.monoprice4.group.zone4.label = Zone 4
|
||||
thing-type.monopriceaudio.monoprice4.group.zone4.description = The Controls for Zone 4
|
||||
thing-type.monopriceaudio.monoprice4.group.zone5.label = Zone 5
|
||||
thing-type.monopriceaudio.monoprice4.group.zone5.description = The Controls for Zone 5
|
||||
thing-type.monopriceaudio.monoprice4.group.zone6.label = Zone 6
|
||||
thing-type.monopriceaudio.monoprice4.group.zone6.description = The Controls for Zone 6
|
||||
thing-type.monopriceaudio.monoprice4.group.zone7.label = Zone 7
|
||||
thing-type.monopriceaudio.monoprice4.group.zone7.description = The Controls for Zone 7
|
||||
thing-type.monopriceaudio.monoprice4.group.zone8.label = Zone 8
|
||||
thing-type.monopriceaudio.monoprice4.group.zone8.description = The Controls for Zone 8
|
||||
thing-type.monopriceaudio.monoprice4.group.zone9.label = Zone 9
|
||||
thing-type.monopriceaudio.monoprice4.group.zone9.description = The Controls for Zone 9
|
||||
thing-type.monopriceaudio.monoprice70.label = Monoprice 31028 70V Amplifier
|
||||
thing-type.monopriceaudio.monoprice70.description = A Multi-zone Whole House Amplifier System
|
||||
thing-type.monopriceaudio.monoprice70.group.all.label = All Zones
|
||||
@ -180,6 +208,34 @@ thing-type.config.monopriceaudio.dax88.port.label = Port
|
||||
thing-type.config.monopriceaudio.dax88.port.description = Communication Port for Serial over IP connection to the Dayton Amplifier
|
||||
thing-type.config.monopriceaudio.dax88.serialPort.label = Serial Port
|
||||
thing-type.config.monopriceaudio.dax88.serialPort.description = Serial Port to Use for Connecting to the Dayton Amplifier
|
||||
thing-type.config.monopriceaudio.monoprice4.disableKeypadPolling.label = Disable Keypad Polling
|
||||
thing-type.config.monopriceaudio.monoprice4.disableKeypadPolling.description = If physical keypads are not used, this option will disable polling the amplifier for zone updates
|
||||
thing-type.config.monopriceaudio.monoprice4.host.label = Address
|
||||
thing-type.config.monopriceaudio.monoprice4.host.description = Host Name or IP Address of the Monoprice Amplifier or Serial over IP device
|
||||
thing-type.config.monopriceaudio.monoprice4.ignoreZones.label = Ignore Zones
|
||||
thing-type.config.monopriceaudio.monoprice4.ignoreZones.description = (Optional) A Comma Seperated List of Zone Numbers That Will Ignore the 'All Zone' (Except All Off) Commands (ie: 1,6,10)
|
||||
thing-type.config.monopriceaudio.monoprice4.initialAllVolume.label = Initial All Volume
|
||||
thing-type.config.monopriceaudio.monoprice4.initialAllVolume.description = When 'All' Zones Are Activated, the Volume Will Reset to This Value (1-30; default 10) to Prevent Excessive Blaring of Sound ;)
|
||||
thing-type.config.monopriceaudio.monoprice4.inputLabel1.label = Source 1 Input Label
|
||||
thing-type.config.monopriceaudio.monoprice4.inputLabel1.description = Friendly Name for the Input Source to Be Displayed in the UI (ie: Chromecast, Radio, CD, etc.)
|
||||
thing-type.config.monopriceaudio.monoprice4.inputLabel2.label = Source 2 Input Label
|
||||
thing-type.config.monopriceaudio.monoprice4.inputLabel2.description = Friendly Name for the Input Source to Be Displayed in the UI (ie: Chromecast, Radio, CD, etc.)
|
||||
thing-type.config.monopriceaudio.monoprice4.inputLabel3.label = Source 3 Input Label
|
||||
thing-type.config.monopriceaudio.monoprice4.inputLabel3.description = Friendly Name for the Input Source to Be Displayed in the UI (ie: Chromecast, Radio, CD, etc.)
|
||||
thing-type.config.monopriceaudio.monoprice4.inputLabel4.label = Source 4 Input Label
|
||||
thing-type.config.monopriceaudio.monoprice4.inputLabel4.description = Friendly Name for the Input Source to Be Displayed in the UI (ie: Chromecast, Radio, CD, etc.)
|
||||
thing-type.config.monopriceaudio.monoprice4.inputLabel5.label = Source 5 Input Label
|
||||
thing-type.config.monopriceaudio.monoprice4.inputLabel5.description = Friendly Name for the Input Source to Be Displayed in the UI (ie: Chromecast, Radio, CD, etc.)
|
||||
thing-type.config.monopriceaudio.monoprice4.inputLabel6.label = Source 6 Input Label
|
||||
thing-type.config.monopriceaudio.monoprice4.inputLabel6.description = Friendly Name for the Input Source to Be Displayed in the UI (ie: Chromecast, Radio, CD, etc.)
|
||||
thing-type.config.monopriceaudio.monoprice4.numZones.label = Number of Zones
|
||||
thing-type.config.monopriceaudio.monoprice4.numZones.description = Number of Zones on the Amplifier to Utilize in the Binding (Up to 12 Zones With 3 Amplifiers Connected Together)
|
||||
thing-type.config.monopriceaudio.monoprice4.pollingInterval.label = Polling Interval
|
||||
thing-type.config.monopriceaudio.monoprice4.pollingInterval.description = Configures How Often to Poll the Amplifier to Check for Zone Updates (5-60; Default 15)
|
||||
thing-type.config.monopriceaudio.monoprice4.port.label = Port
|
||||
thing-type.config.monopriceaudio.monoprice4.port.description = Communication Port for Serial over IP connection to the Monoprice Amplifier (8080 for amps with built-in Serial over IP)
|
||||
thing-type.config.monopriceaudio.monoprice4.serialPort.label = Serial Port
|
||||
thing-type.config.monopriceaudio.monoprice4.serialPort.description = Serial Port to Use for Connecting to the Monoprice Amplifier
|
||||
thing-type.config.monopriceaudio.monoprice70.host.label = Address
|
||||
thing-type.config.monopriceaudio.monoprice70.host.description = Host Name or IP Address of the Machine Connected to the Monoprice Amplifier (Serial over IP)
|
||||
thing-type.config.monopriceaudio.monoprice70.ignoreZones.label = Ignore Zones
|
||||
|
||||
@ -0,0 +1,238 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<thing:thing-descriptions bindingId="monopriceaudio"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
|
||||
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
|
||||
|
||||
<!-- Monoprice 44519 4 zone/6 source variant -->
|
||||
<thing-type id="monoprice4">
|
||||
<label>Monoprice 44519 4 Zone Amplifier</label>
|
||||
<description>
|
||||
A Multi-zone Whole House Amplifier System
|
||||
</description>
|
||||
|
||||
<channel-groups>
|
||||
<channel-group id="all" typeId="all">
|
||||
<label>All Zones</label>
|
||||
<description>Control All Zones Simultaneously</description>
|
||||
</channel-group>
|
||||
<channel-group id="zone1" typeId="zone">
|
||||
<label>Zone 1</label>
|
||||
<description>The Controls for Zone 1</description>
|
||||
</channel-group>
|
||||
<channel-group id="zone2" typeId="zone">
|
||||
<label>Zone 2</label>
|
||||
<description>The Controls for Zone 2</description>
|
||||
</channel-group>
|
||||
<channel-group id="zone3" typeId="zone">
|
||||
<label>Zone 3</label>
|
||||
<description>The Controls for Zone 3</description>
|
||||
</channel-group>
|
||||
<channel-group id="zone4" typeId="zone">
|
||||
<label>Zone 4</label>
|
||||
<description>The Controls for Zone 4</description>
|
||||
</channel-group>
|
||||
<channel-group id="zone5" typeId="zone">
|
||||
<label>Zone 5</label>
|
||||
<description>The Controls for Zone 5</description>
|
||||
</channel-group>
|
||||
<channel-group id="zone6" typeId="zone">
|
||||
<label>Zone 6</label>
|
||||
<description>The Controls for Zone 6</description>
|
||||
</channel-group>
|
||||
<channel-group id="zone7" typeId="zone">
|
||||
<label>Zone 7</label>
|
||||
<description>The Controls for Zone 7</description>
|
||||
</channel-group>
|
||||
<channel-group id="zone8" typeId="zone">
|
||||
<label>Zone 8</label>
|
||||
<description>The Controls for Zone 8</description>
|
||||
</channel-group>
|
||||
<channel-group id="zone9" typeId="zone">
|
||||
<label>Zone 9</label>
|
||||
<description>The Controls for Zone 9</description>
|
||||
</channel-group>
|
||||
<channel-group id="zone10" typeId="zone">
|
||||
<label>Zone 10</label>
|
||||
<description>The Controls for Zone 10</description>
|
||||
</channel-group>
|
||||
<channel-group id="zone11" typeId="zone">
|
||||
<label>Zone 11</label>
|
||||
<description>The Controls for Zone 11</description>
|
||||
</channel-group>
|
||||
<channel-group id="zone12" typeId="zone">
|
||||
<label>Zone 12</label>
|
||||
<description>The Controls for Zone 12</description>
|
||||
</channel-group>
|
||||
</channel-groups>
|
||||
|
||||
<config-description>
|
||||
<parameter name="serialPort" type="text" required="false">
|
||||
<context>serial-port</context>
|
||||
<limitToOptions>false</limitToOptions>
|
||||
<label>Serial Port</label>
|
||||
<description>Serial Port to Use for Connecting to the Monoprice Amplifier</description>
|
||||
</parameter>
|
||||
<parameter name="host" type="text" required="false">
|
||||
<context>network-address</context>
|
||||
<label>Address</label>
|
||||
<description>Host Name or IP Address of the Monoprice Amplifier or Serial over IP device</description>
|
||||
</parameter>
|
||||
<parameter name="port" type="integer" min="1" max="65535" required="false">
|
||||
<label>Port</label>
|
||||
<description>Communication Port for Serial over IP connection to the Monoprice Amplifier (8080 for amps with
|
||||
built-in Serial over IP)</description>
|
||||
</parameter>
|
||||
<parameter name="numZones" type="integer" min="1" max="12" required="true">
|
||||
<label>Number of Zones</label>
|
||||
<description>Number of Zones on the Amplifier to Utilize in the Binding (Up to 12 Zones With 3 Amplifiers Connected
|
||||
Together)</description>
|
||||
<default>4</default>
|
||||
</parameter>
|
||||
<parameter name="pollingInterval" type="integer" min="5" max="60" unit="s" required="false">
|
||||
<label>Polling Interval</label>
|
||||
<description>Configures How Often to Poll the Amplifier to Check for Zone Updates (5-60; Default 15)</description>
|
||||
<default>15</default>
|
||||
</parameter>
|
||||
<parameter name="ignoreZones" type="text" required="false">
|
||||
<label>Ignore Zones</label>
|
||||
<description>(Optional) A Comma Seperated List of Zone Numbers That Will Ignore the 'All Zone' (Except All Off)
|
||||
Commands (ie: 1,6,10)</description>
|
||||
</parameter>
|
||||
<parameter name="initialAllVolume" type="integer" min="1" max="30" required="false">
|
||||
<label>Initial All Volume</label>
|
||||
<description>When 'All' Zones Are Activated, the Volume Will Reset to This Value (1-30; default 10) to Prevent
|
||||
Excessive Blaring of Sound ;)</description>
|
||||
<default>10</default>
|
||||
</parameter>
|
||||
<parameter name="inputLabel1" type="text" required="false">
|
||||
<label>Source 1 Input Label</label>
|
||||
<description>Friendly Name for the Input Source to Be Displayed in the UI (ie: Chromecast, Radio, CD, etc.)</description>
|
||||
<default>Source 1</default>
|
||||
</parameter>
|
||||
<parameter name="inputLabel2" type="text" required="false">
|
||||
<label>Source 2 Input Label</label>
|
||||
<description>Friendly Name for the Input Source to Be Displayed in the UI (ie: Chromecast, Radio, CD, etc.)</description>
|
||||
<default>Source 2</default>
|
||||
</parameter>
|
||||
<parameter name="inputLabel3" type="text" required="false">
|
||||
<label>Source 3 Input Label</label>
|
||||
<description>Friendly Name for the Input Source to Be Displayed in the UI (ie: Chromecast, Radio, CD, etc.)</description>
|
||||
<default>Source 3</default>
|
||||
</parameter>
|
||||
<parameter name="inputLabel4" type="text" required="false">
|
||||
<label>Source 4 Input Label</label>
|
||||
<description>Friendly Name for the Input Source to Be Displayed in the UI (ie: Chromecast, Radio, CD, etc.)</description>
|
||||
<default>Source 4</default>
|
||||
</parameter>
|
||||
<parameter name="inputLabel5" type="text" required="false">
|
||||
<label>Source 5 Input Label</label>
|
||||
<description>Friendly Name for the Input Source to Be Displayed in the UI (ie: Chromecast, Radio, CD, etc.)</description>
|
||||
<default>Source 5</default>
|
||||
</parameter>
|
||||
<parameter name="inputLabel6" type="text" required="false">
|
||||
<label>Source 6 Input Label</label>
|
||||
<description>Friendly Name for the Input Source to Be Displayed in the UI (ie: Chromecast, Radio, CD, etc.)</description>
|
||||
<default>Source 6</default>
|
||||
</parameter>
|
||||
<parameter name="disableKeypadPolling" type="boolean" required="false">
|
||||
<label>Disable Keypad Polling</label>
|
||||
<description>If physical keypads are not used, this option will disable polling the amplifier for zone updates</description>
|
||||
<default>false</default>
|
||||
</parameter>
|
||||
</config-description>
|
||||
</thing-type>
|
||||
|
||||
<channel-group-type id="all">
|
||||
<label>All Zones</label>
|
||||
<description>Control All Zones Simultaneously</description>
|
||||
<channels>
|
||||
<channel id="allpower" typeId="allpower"/>
|
||||
<channel id="allsource" typeId="source"/>
|
||||
<channel id="allvolume" typeId="system.volume"/>
|
||||
<channel id="allmute" typeId="system.mute"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
|
||||
<channel-group-type id="zone">
|
||||
<label>Zone Controls</label>
|
||||
<description>The Controls for the Zone</description>
|
||||
<channels>
|
||||
<channel id="power" typeId="system.power"/>
|
||||
<channel id="source" typeId="source"/>
|
||||
<channel id="volume" typeId="system.volume"/>
|
||||
<channel id="mute" typeId="system.mute"/>
|
||||
<channel id="treble" typeId="treble"/>
|
||||
<channel id="bass" typeId="bass"/>
|
||||
<channel id="balance" typeId="balance"/>
|
||||
<channel id="dnd" typeId="dnd"/>
|
||||
<channel id="page" typeId="page"/>
|
||||
<channel id="keypad" typeId="keypad"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
|
||||
<channel-type id="allpower">
|
||||
<item-type>Switch</item-type>
|
||||
<label>All On</label>
|
||||
<description>Turn All Zones On or Off</description>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="source">
|
||||
<item-type>Number</item-type>
|
||||
<label>Source Input</label>
|
||||
<description>Select the Source Input</description>
|
||||
<state min="1" max="6"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="treble">
|
||||
<item-type>Number</item-type>
|
||||
<label>Treble Adjustment</label>
|
||||
<description>Adjust the Treble</description>
|
||||
<state min="-7" max="7" step="1" pattern="%d"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="bass">
|
||||
<item-type>Number</item-type>
|
||||
<label>Bass Adjustment</label>
|
||||
<description>Adjust the Bass</description>
|
||||
<state min="-7" max="7" step="1" pattern="%d"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="balance">
|
||||
<item-type>Number</item-type>
|
||||
<label>Balance Adjustment</label>
|
||||
<description>Adjust the Balance</description>
|
||||
<state min="-10" max="10" step="1" pattern="%d"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="dnd">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Do Not Disturb</label>
|
||||
<description>Controls if the Zone Should Ignore an Incoming Audio Page</description>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="page">
|
||||
<item-type>Contact</item-type>
|
||||
<label>Page Active</label>
|
||||
<description>Indicates if the Page Mode is Active for This Zone</description>
|
||||
<state readOnly="true">
|
||||
<options>
|
||||
<option value="CLOSED">Inactive</option>
|
||||
<option value="OPEN">Active</option>
|
||||
</options>
|
||||
</state>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="keypad">
|
||||
<item-type>Contact</item-type>
|
||||
<label>Keypad Connected</label>
|
||||
<description>Indicates if a Physical Keypad is Attached to This Zone</description>
|
||||
<state readOnly="true">
|
||||
<options>
|
||||
<option value="CLOSED">Disconnected</option>
|
||||
<option value="OPEN">Connected</option>
|
||||
</options>
|
||||
</state>
|
||||
</channel-type>
|
||||
|
||||
</thing:thing-descriptions>
|
||||
Loading…
x
Reference in New Issue
Block a user