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); } }