mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
update style issues
This commit is contained in:
parent
01ed3b18cc
commit
a9a650edb6
@ -4,14 +4,16 @@ homeassistant.components.switch.mqtt
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Allows to configure a MQTT switch.
|
||||
|
||||
In an ideal scenario, the MQTT device will have a state topic to publish state changes.
|
||||
If these messages are published with RETAIN flag, the MQTT switch will receive
|
||||
an instant state update after subscription and will start with correct state. Otherwise,
|
||||
the initial state of the switch will be false/off.
|
||||
In an ideal scenario, the MQTT device will have a state topic to publish
|
||||
state changes. If these messages are published with RETAIN flag, the MQTT
|
||||
switch will receive an instant state update after subscription and will
|
||||
start with correct state. Otherwise, the initial state of the switch will
|
||||
be false/off.
|
||||
|
||||
When a state topic is not available, the switch will work in an optimistic mode.
|
||||
In this mode, the MQTT switch will immediately change state after every command.
|
||||
Otherwise, the switch will wait for state confirmation from device (message from state_topic).
|
||||
When a state topic is not available, the switch will work in optimistic mode.
|
||||
In this mode, the switch will immediately change state after every command.
|
||||
Otherwise, the switch will wait for state confirmation from device
|
||||
(message from state_topic).
|
||||
|
||||
Optimistic mode can be forced, even if state topic is available.
|
||||
Try to enable it, if experiencing incorrect switch operation.
|
||||
@ -70,6 +72,7 @@ DEFAULT_OPTIMISTIC = False
|
||||
|
||||
DEPENDENCIES = ['mqtt']
|
||||
|
||||
|
||||
# pylint: disable=unused-argument
|
||||
def setup_platform(hass, config, add_devices_callback, discovery_info=None):
|
||||
""" Add MQTT Switch """
|
||||
@ -87,9 +90,11 @@ def setup_platform(hass, config, add_devices_callback, discovery_info=None):
|
||||
config.get('payload_off', DEFAULT_PAYLOAD_OFF),
|
||||
config.get('optimistic', DEFAULT_OPTIMISTIC))])
|
||||
|
||||
|
||||
class MqttSwitch(SwitchDevice):
|
||||
""" Represents a switch that can be togggled using MQTT """
|
||||
def __init__(self, hass, name, state_topic, command_topic, payload_on, payload_off, optimistic):
|
||||
def __init__(self, hass, name, state_topic, command_topic,
|
||||
payload_on, payload_off, optimistic):
|
||||
self._state = False
|
||||
self._hass = hass
|
||||
self._name = name
|
||||
@ -100,18 +105,19 @@ class MqttSwitch(SwitchDevice):
|
||||
self._optimistic = optimistic
|
||||
|
||||
def message_received(topic, payload, qos):
|
||||
if (payload == self._payload_on):
|
||||
""" A new MQTT message has been received. """
|
||||
if payload == self._payload_on:
|
||||
self._state = True
|
||||
self.update_ha_state()
|
||||
elif (payload == self._payload_off):
|
||||
elif payload == self._payload_off:
|
||||
self._state = False
|
||||
self.update_ha_state()
|
||||
|
||||
if self._state_topic is None:
|
||||
""" force optimistic mode """
|
||||
# force optimistic mode
|
||||
self._optimistic = True
|
||||
else:
|
||||
""" subscribe the state_topic """
|
||||
# subscribe the state_topic
|
||||
mqtt.subscribe(hass, self._state_topic, message_received)
|
||||
|
||||
@property
|
||||
@ -133,7 +139,7 @@ class MqttSwitch(SwitchDevice):
|
||||
""" Turn the device on. """
|
||||
mqtt.publish(self.hass, self._command_topic, self._payload_on)
|
||||
if self._optimistic:
|
||||
""" optimistically assume that switch has changed state """
|
||||
# optimistically assume that switch has changed state
|
||||
self._state = True
|
||||
self.update_ha_state()
|
||||
|
||||
@ -141,6 +147,6 @@ class MqttSwitch(SwitchDevice):
|
||||
""" Turn the device off. """
|
||||
mqtt.publish(self.hass, self._command_topic, self._payload_off)
|
||||
if self._optimistic:
|
||||
""" optimistically assume that switch has changed state """
|
||||
# optimistically assume that switch has changed state
|
||||
self._state = False
|
||||
self.update_ha_state()
|
||||
|
Loading…
x
Reference in New Issue
Block a user