]> git.basschouten.com Git - openhab-addons.git/commitdiff
[sonos] Ignore TRANSITIONING device state when updating channels (#13241)
authorlolodomo <lg.hc@free.fr>
Thu, 11 Aug 2022 06:21:39 +0000 (08:21 +0200)
committerGitHub <noreply@github.com>
Thu, 11 Aug 2022 06:21:39 +0000 (08:21 +0200)
* [sonos] Ignore TRANSITIONING device state when updating channels
* Remove TRANSITIONING state option

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/handler/ZonePlayerHandler.java
bundles/org.openhab.binding.sonos/src/main/resources/OH-INF/i18n/sonos.properties
bundles/org.openhab.binding.sonos/src/main/resources/OH-INF/thing/channels.xml

index b55b9f4d7aa70bedbae0039f37c9f67ed962c72a..3b751d62294008b045dbeb8b7fd1f4ab993a2d95 100644 (file)
@@ -100,6 +100,7 @@ public class ZonePlayerHandler extends BaseThingHandler implements UpnpIOPartici
     private static final String STATE_PLAYING = "PLAYING";
     private static final String STATE_PAUSED_PLAYBACK = "PAUSED_PLAYBACK";
     private static final String STATE_STOPPED = "STOPPED";
+    private static final String STATE_TRANSITIONING = "TRANSITIONING";
 
     private static final String LINEINCONNECTED = "LineInConnected";
     private static final String TOSLINEINCONNECTED = "TOSLinkConnected";
@@ -761,7 +762,8 @@ public class ZonePlayerHandler extends BaseThingHandler implements UpnpIOPartici
             case STATE:
                 value = getTransportState();
                 if (value != null) {
-                    newState = new StringType(value);
+                    // Ignoring state TRANSITIONING
+                    newState = STATE_TRANSITIONING.equals(value) ? null : new StringType(value);
                 }
                 break;
             case CONTROL:
@@ -772,12 +774,15 @@ public class ZonePlayerHandler extends BaseThingHandler implements UpnpIOPartici
                     newState = PlayPauseType.PAUSE;
                 } else if (STATE_PAUSED_PLAYBACK.equals(value)) {
                     newState = PlayPauseType.PAUSE;
+                } else if (STATE_TRANSITIONING.equals(value)) {
+                    // Ignoring state TRANSITIONING
+                    newState = null;
                 }
                 break;
             case STOP:
                 value = getTransportState();
                 if (value != null) {
-                    newState = OnOffType.from(STATE_STOPPED.equals(value));
+                    newState = STATE_TRANSITIONING.equals(value) ? null : OnOffType.from(STATE_STOPPED.equals(value));
                 }
                 break;
             case SHUFFLE:
index 7e3d429e3480c2074ddce650a28650a2249444f9..5d50450584a401ff2ca1a256a7e897bb93b3710d 100644 (file)
@@ -167,7 +167,6 @@ channel-type.sonos.state.description = The State channel contains state of the S
 channel-type.sonos.state.state.option.STOPPED = Stopped
 channel-type.sonos.state.state.option.PLAYING = Playing
 channel-type.sonos.state.state.option.PAUSED_PLAYBACK = Paused
-channel-type.sonos.state.state.option.TRANSITIONING = Transitioning
 channel-type.sonos.stop.label = Stop
 channel-type.sonos.stop.description = Stop the Sonos device. ON if the player is stopped.
 channel-type.sonos.subwoofer.label = Subwoofer
index 9b6c6d53124abb511d7619e8901aea3f589f9e03..7ba383577b0d908391fff7ac51c4e779bf9cb49c 100644 (file)
                                <option value="STOPPED">Stopped</option>
                                <option value="PLAYING">Playing</option>
                                <option value="PAUSED_PLAYBACK">Paused</option>
-                               <option value="TRANSITIONING">Transitioning</option>
                        </options>
                </state>
        </channel-type>