From e6f33c137703ee08291dd700d20408039a5d7d35 Mon Sep 17 00:00:00 2001 From: lolodomo Date: Sun, 5 Apr 2020 21:08:32 +0200 Subject: [PATCH] [lgwebos] Ignore power off command when the TV is already off (#7300) * [lgwebos] Ignore power off command when the TV is already off Signed-off-by: Laurent Garnier --- .../binding/lgwebos/internal/PowerControlPower.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/bundles/org.openhab.binding.lgwebos/src/main/java/org/openhab/binding/lgwebos/internal/PowerControlPower.java b/bundles/org.openhab.binding.lgwebos/src/main/java/org/openhab/binding/lgwebos/internal/PowerControlPower.java index c3f28b6665494..784a5360bcf83 100644 --- a/bundles/org.openhab.binding.lgwebos/src/main/java/org/openhab/binding/lgwebos/internal/PowerControlPower.java +++ b/bundles/org.openhab.binding.lgwebos/src/main/java/org/openhab/binding/lgwebos/internal/PowerControlPower.java @@ -31,6 +31,8 @@ public class PowerControlPower extends BaseChannelHandler { private final Logger logger = LoggerFactory.getLogger(PowerControlPower.class); + private boolean powerOn; + @Override public void onReceiveCommand(String channelId, LGWebOSHandler handler, Command command) { if (RefreshType.REFRESH == command) { @@ -49,7 +51,11 @@ public void onReceiveCommand(String channelId, LGWebOSHandler handler, Command c */ handler.postUpdate(channelId, OnOffType.OFF); } else if (OnOffType.OFF == command) { - handler.getSocket().powerOff(getDefaultResponseListener()); + if (powerOn) { + handler.getSocket().powerOff(getDefaultResponseListener()); + } else { + logger.debug("Received OFF - Ignored as the TV is already off."); + } } else { logger.info("Only accept OnOffType, RefreshType. Type was {}.", command.getClass()); } @@ -58,11 +64,13 @@ public void onReceiveCommand(String channelId, LGWebOSHandler handler, Command c @Override public void onDeviceReady(String channelId, LGWebOSHandler handler) { + powerOn = true; handler.postUpdate(channelId, OnOffType.ON); } @Override public void onDeviceRemoved(String channelId, LGWebOSHandler handler) { + powerOn = false; handler.postUpdate(channelId, OnOffType.OFF); } }