]> git.basschouten.com Git - openhab-addons.git/commitdiff
[http] Fix duplicate commands on PlayerItemConverter (#9981)
authorJ-N-K <J-N-K@users.noreply.github.com>
Fri, 29 Jan 2021 08:59:20 +0000 (09:59 +0100)
committerGitHub <noreply@github.com>
Fri, 29 Jan 2021 08:59:20 +0000 (09:59 +0100)
Fixes #9957

Signed-off-by: Jan N. Klug <jan.n.klug@rub.de>
bundles/org.openhab.binding.http/src/main/java/org/openhab/binding/http/internal/converter/PlayerItemConverter.java

index 6ef676257bf2cad51b9b69e2d4b24a102934d0df..eb2ad57b3bc8d26df9bdc488a61ef456585f0602 100644 (file)
@@ -35,6 +35,7 @@ import org.openhab.core.types.UnDefType;
 @NonNullByDefault
 public class PlayerItemConverter extends AbstractTransformingItemConverter {
     private final HttpChannelConfig channelConfig;
+    private @Nullable String lastCommand; // store last command to prevent duplicate commands
 
     public PlayerItemConverter(Consumer<State> updateState, Consumer<Command> postCommand,
             @Nullable Consumer<String> sendHttpValue, ValueTransformation stateTransformations,
@@ -55,6 +56,12 @@ public class PlayerItemConverter extends AbstractTransformingItemConverter {
 
     @Override
     protected @Nullable Command toCommand(String string) {
+        if (string.equals(lastCommand)) {
+            // only send commands once
+            return null;
+        }
+        lastCommand = string;
+
         if (string.equals(channelConfig.playValue)) {
             return PlayPauseType.PLAY;
         } else if (string.equals(channelConfig.pauseValue)) {