| currenttrackuri | String | R | URI of the current track | all |
| currenttransporturi | String | R | URI of the current AV transport | all |
| favorite | String | W | Play the given favorite entry. The favorite entry has to be predefined in the Sonos Controller app | all |
+| heightlevel | Number | RW | Set or get the height level adjustment (value in range -10 / 10) | Arc, Arc SL |
| led | Switch | RW | Set or get the status of the white LED on the front of the Zone Player | all |
| linein | Switch | R | Indicator set to ON when the line-in of the Zone Player is connected | PLAY5, CONNECT, CONNECTAMP, PLAYBAR, PLAYBASE, Beam, Port |
| analoglinein | Switch | R | Indicator set to ON when the analog line-in of the Zone Player is connected | Amp |
public static final String CURRENTTRACKURI = "currenttrackuri";
public static final String CURRENTTRANSPORTURI = "currenttransporturi";
public static final String FAVORITE = "favorite";
+ public static final String HEIGHTLEVEL = "heightlevel";
public static final String LED = "led";
public static final String LINEIN = "linein";
public static final String ANALOGLINEIN = "analoglinein";
case "SurroundMode":
case "SurroundLevel":
case "MusicSurroundLevel":
+ case "HeightChannelLevel":
val = attributes == null ? null : attributes.getValue("val");
if (val != null) {
changes.put(qName, val);
private static final int MAX_SUBWOOFER_GAIN = 15;
private static final int MIN_SURROUND_LEVEL = -15;
private static final int MAX_SURROUND_LEVEL = 15;
+ private static final int MIN_HEIGHT_LEVEL = -10;
+ private static final int MAX_HEIGHT_LEVEL = 10;
private final Logger logger = LoggerFactory.getLogger(ZonePlayerHandler.class);
case SURROUNDTVLEVEL:
setSurroundTvLevel(command);
break;
+ case HEIGHTLEVEL:
+ setHeightLevel(command);
+ break;
case ADD:
addMember(command);
break;
case "MusicSurroundLevel":
updateChannel(SURROUNDMUSICLEVEL);
break;
+ case "HeightChannelLevel":
+ updateChannel(HEIGHTLEVEL);
+ break;
case "NightMode":
updateChannel(NIGHTMODE);
break;
newState = new DecimalType(value);
}
break;
+ case HEIGHTLEVEL:
+ value = getHeightLevel();
+ if (value != null) {
+ newState = new DecimalType(value);
+ }
+ break;
case NIGHTMODE:
value = getNightMode();
if (value != null) {
return stateMap.get("SubGain");
}
+ public @Nullable String getHeightLevel() {
+ return stateMap.get("HeightChannelLevel");
+ }
+
public @Nullable String getTransportState() {
return stateMap.get("TransportState");
}
MAX_SURROUND_LEVEL);
}
+ public void setHeightLevel(Command command) {
+ setEqualizerNumericSetting(command, "HeightChannelLevel", getHeightLevel(), MIN_HEIGHT_LEVEL, MAX_HEIGHT_LEVEL);
+ }
+
public void setNightMode(Command command) {
setEqualizerBooleanSetting(command, "NightMode");
}
<channel id="surroundmusicmode" typeId="surroundmusicmode"/>
<channel id="surroundmusiclevel" typeId="surroundmusiclevel"/>
<channel id="surroundtvlevel" typeId="surroundtvlevel"/>
+ <channel id="heightlevel" typeId="heightlevel"/>
</channels>
<properties>
<channel id="surroundmusicmode" typeId="surroundmusicmode"/>
<channel id="surroundmusiclevel" typeId="surroundmusiclevel"/>
<channel id="surroundtvlevel" typeId="surroundtvlevel"/>
+ <channel id="heightlevel" typeId="heightlevel"/>
</channels>
<properties>
<description>Play the given favorite entry. The favorite entry has to be predefined in the Sonos Controller app</description>
</channel-type>
+ <channel-type id="heightlevel" advanced="true">
+ <item-type>Number</item-type>
+ <label>Height Level</label>
+ <description>Set or get the height level adjustment</description>
+ <state min="-10" max="10" step="1" readOnly="false" pattern="%d"/>
+ </channel-type>
+
<channel-type id="led" advanced="true">
<item-type>Switch</item-type>
<label>Led</label>