]> git.basschouten.com Git - openhab-addons.git/commitdiff
[sonos] Add support for Sonos Roam (#10596)
authorlolodomo <lg.hc@free.fr>
Tue, 27 Apr 2021 17:15:09 +0000 (19:15 +0200)
committerGitHub <noreply@github.com>
Tue, 27 Apr 2021 17:15:09 +0000 (19:15 +0200)
Fix #10588

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/SonosBindingConstants.java
bundles/org.openhab.binding.sonos/src/main/resources/OH-INF/thing/Roam.xml [new file with mode: 0644]

index 66797f1a0c7be50f3f121a86d1db619d9cc1bc36..bdde548775fe5335928fd8ed25acf7d35d36875b 100644 (file)
@@ -52,6 +52,7 @@ public class SonosBindingConstants {
     public static final ThingTypeUID ARC_THING_TYPE_UID = new ThingTypeUID(BINDING_ID, "Arc");
     public static final ThingTypeUID ARC_SL_THING_TYPE_UID = new ThingTypeUID(BINDING_ID, "ArcSL");
     public static final ThingTypeUID MOVE_THING_TYPE_UID = new ThingTypeUID(BINDING_ID, "Move");
+    public static final ThingTypeUID ROAM_THING_TYPE_UID = new ThingTypeUID(BINDING_ID, "Roam");
     public static final ThingTypeUID ZONEPLAYER_THING_TYPE_UID = new ThingTypeUID(BINDING_ID, "zoneplayer");
 
     public static final Set<ThingTypeUID> WITH_LINEIN_THING_TYPES_UIDS = Stream.of(PLAY5_THING_TYPE_UID,
@@ -65,11 +66,11 @@ public class SonosBindingConstants {
     public static final Set<ThingTypeUID> WITH_DIGITAL_LINEIN_THING_TYPES_UIDS = Stream.of(AMP_THING_TYPE_UID)
             .collect(Collectors.toSet());
 
-    public static final Set<ThingTypeUID> SUPPORTED_KNOWN_THING_TYPES_UIDS = Stream
-            .of(ONE_THING_TYPE_UID, ONE_SL_THING_TYPE_UID, PLAY1_THING_TYPE_UID, PLAY3_THING_TYPE_UID,
-                    PLAY5_THING_TYPE_UID, PLAYBAR_THING_TYPE_UID, PLAYBASE_THING_TYPE_UID, BEAM_THING_TYPE_UID,
-                    CONNECT_THING_TYPE_UID, CONNECTAMP_THING_TYPE_UID, PORT_THING_TYPE_UID, AMP_THING_TYPE_UID,
-                    SYMFONISK_THING_TYPE_UID, ARC_THING_TYPE_UID, ARC_SL_THING_TYPE_UID, MOVE_THING_TYPE_UID)
+    public static final Set<ThingTypeUID> SUPPORTED_KNOWN_THING_TYPES_UIDS = Stream.of(ONE_THING_TYPE_UID,
+            ONE_SL_THING_TYPE_UID, PLAY1_THING_TYPE_UID, PLAY3_THING_TYPE_UID, PLAY5_THING_TYPE_UID,
+            PLAYBAR_THING_TYPE_UID, PLAYBASE_THING_TYPE_UID, BEAM_THING_TYPE_UID, CONNECT_THING_TYPE_UID,
+            CONNECTAMP_THING_TYPE_UID, PORT_THING_TYPE_UID, AMP_THING_TYPE_UID, SYMFONISK_THING_TYPE_UID,
+            ARC_THING_TYPE_UID, ARC_SL_THING_TYPE_UID, MOVE_THING_TYPE_UID, ROAM_THING_TYPE_UID)
             .collect(Collectors.toSet());
 
     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = new HashSet<>(SUPPORTED_KNOWN_THING_TYPES_UIDS);
diff --git a/bundles/org.openhab.binding.sonos/src/main/resources/OH-INF/thing/Roam.xml b/bundles/org.openhab.binding.sonos/src/main/resources/OH-INF/thing/Roam.xml
new file mode 100644 (file)
index 0000000..01ad16f
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<thing:thing-descriptions bindingId="sonos"
+       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">
+
+       <!-- Sonos Roam Thing Type -->
+       <thing-type id="Roam" listed="false">
+               <label>Roam</label>
+               <description>Represents SONOS Roam speaker</description>
+
+               <channels>
+                       <channel id="add" typeId="add"/>
+                       <channel id="alarm" typeId="alarm"/>
+                       <channel id="alarmproperties" typeId="alarmproperties"/>
+                       <channel id="alarmrunning" typeId="alarmrunning"/>
+                       <channel id="control" typeId="system.media-control"/>
+                       <channel id="currentalbum" typeId="currentalbum"/>
+                       <channel id="currentalbumart" typeId="currentalbumart"/>
+                       <channel id="currentalbumarturl" typeId="currentalbumarturl"/>
+                       <channel id="currentartist" typeId="system.media-artist"/>
+                       <channel id="currenttitle" typeId="system.media-title"/>
+                       <channel id="currenttrack" typeId="currenttrack"/>
+                       <channel id="shuffle" typeId="shuffle"/>
+                       <channel id="repeat" typeId="repeat"/>
+                       <channel id="favorite" typeId="favorite"/>
+                       <channel id="led" typeId="led"/>
+                       <channel id="localcoordinator" typeId="localcoordinator"/>
+                       <channel id="mute" typeId="system.mute"/>
+                       <channel id="notificationsound" typeId="notificationsound"/>
+                       <channel id="playlist" typeId="playlist"/>
+                       <channel id="clearqueue" typeId="clearqueue"/>
+                       <channel id="playlinein" typeId="playlinein"/>
+                       <channel id="playqueue" typeId="playqueue"/>
+                       <channel id="playtrack" typeId="playtrack"/>
+                       <channel id="playuri" typeId="playuri"/>
+                       <channel id="radio" typeId="radio"/>
+                       <channel id="remove" typeId="remove"/>
+                       <channel id="restore" typeId="restore"/>
+                       <channel id="restoreall" typeId="restoreall"/>
+                       <channel id="save" typeId="save"/>
+                       <channel id="saveall" typeId="saveall"/>
+                       <channel id="snooze" typeId="snooze"/>
+                       <channel id="standalone" typeId="standalone"/>
+                       <channel id="state" typeId="state"/>
+                       <channel id="stop" typeId="stop"/>
+                       <channel id="tuneinstationid" typeId="tuneinstationid"/>
+                       <channel id="volume" typeId="system.volume"/>
+                       <channel id="zonegroupid" typeId="zonegroupid"/>
+                       <channel id="zonename" typeId="zonename"/>
+                       <channel id="coordinator" typeId="coordinator"/>
+                       <channel id="sleeptimer" typeId="sleeptimer"/>
+                       <channel id="currenttransporturi" typeId="currenttransporturi"/>
+                       <channel id="currenttrackuri" typeId="currenttrackuri"/>
+                       <!-- Extended SONOS channels -->
+                       <channel id="batterycharging" typeId="batterycharging"/>
+                       <channel id="batterylevel" typeId="system.battery-level"/>
+                       <channel id="microphone" typeId="microphone"/>
+               </channels>
+
+               <properties>
+                       <property name="vendor">SONOS</property>
+                       <property name="modelId">Roam</property>
+               </properties>
+
+               <representation-property>udn</representation-property>
+
+               <config-description-ref uri="thing-type:sonos:zoneplayer"/>
+       </thing-type>
+</thing:thing-descriptions>