From 0ec1401be7700ea6bbe62f78fedcfdd988989fbf Mon Sep 17 00:00:00 2001 From: emontnemery Date: Tue, 15 Jan 2019 23:26:37 +0100 Subject: [PATCH] Minor refactoring of MQTT availability (#20136) * Small refactor of MQTT availability * Use dict[key] for required config keys and keys with default values. --- homeassistant/components/mqtt/__init__.py | 29 ++++++------------- .../components/mqtt/alarm_control_panel.py | 10 ++----- .../components/mqtt/binary_sensor.py | 13 ++------- homeassistant/components/mqtt/climate.py | 13 ++------- homeassistant/components/mqtt/cover.py | 26 +++++++---------- homeassistant/components/mqtt/fan.py | 12 ++------ .../components/mqtt/light/schema_basic.py | 10 ++----- .../components/mqtt/light/schema_json.py | 10 ++----- .../components/mqtt/light/schema_template.py | 10 ++----- homeassistant/components/mqtt/lock.py | 10 ++----- homeassistant/components/mqtt/sensor.py | 10 ++----- homeassistant/components/mqtt/switch.py | 14 +++------ homeassistant/components/mqtt/vacuum.py | 7 +---- 13 files changed, 45 insertions(+), 129 deletions(-) diff --git a/homeassistant/components/mqtt/__init__.py b/homeassistant/components/mqtt/__init__.py index 801cb2997d4..dbdb7f7eb32 100644 --- a/homeassistant/components/mqtt/__init__.py +++ b/homeassistant/components/mqtt/__init__.py @@ -892,17 +892,12 @@ class MqttAttributes(Entity): class MqttAvailability(Entity): """Mixin used for platforms that report availability.""" - def __init__(self, availability_topic: Optional[str], qos: Optional[int], - payload_available: Optional[str], - payload_not_available: Optional[str]) -> None: + def __init__(self, config: dict) -> None: """Initialize the availability mixin.""" self._availability_sub_state = None self._available = False # type: bool - self._availability_topic = availability_topic - self._availability_qos = qos - self._payload_available = payload_available - self._payload_not_available = payload_not_available + self._avail_config = config async def async_added_to_hass(self) -> None: """Subscribe MQTT events. @@ -914,16 +909,9 @@ class MqttAvailability(Entity): async def availability_discovery_update(self, config: dict): """Handle updated discovery message.""" - self._availability_setup_from_config(config) + self._avail_config = config await self._availability_subscribe_topics() - def _availability_setup_from_config(self, config): - """(Re)Setup.""" - self._availability_topic = config.get(CONF_AVAILABILITY_TOPIC) - self._availability_qos = config.get(CONF_QOS) - self._payload_available = config.get(CONF_PAYLOAD_AVAILABLE) - self._payload_not_available = config.get(CONF_PAYLOAD_NOT_AVAILABLE) - async def _availability_subscribe_topics(self): """(Re)Subscribe to topics.""" from .subscription import async_subscribe_topics @@ -933,9 +921,9 @@ class MqttAvailability(Entity): payload: SubscribePayloadType, qos: int) -> None: """Handle a new received MQTT availability message.""" - if payload == self._payload_available: + if payload == self._avail_config[CONF_PAYLOAD_AVAILABLE]: self._available = True - elif payload == self._payload_not_available: + elif payload == self._avail_config[CONF_PAYLOAD_NOT_AVAILABLE]: self._available = False self.async_schedule_update_ha_state() @@ -943,9 +931,9 @@ class MqttAvailability(Entity): self._availability_sub_state = await async_subscribe_topics( self.hass, self._availability_sub_state, {'availability_topic': { - 'topic': self._availability_topic, + 'topic': self._avail_config.get(CONF_AVAILABILITY_TOPIC), 'msg_callback': availability_message_received, - 'qos': self._availability_qos}}) + 'qos': self._avail_config[CONF_QOS]}}) async def async_will_remove_from_hass(self): """Unsubscribe when removed.""" @@ -956,7 +944,8 @@ class MqttAvailability(Entity): @property def available(self) -> bool: """Return if the device is available.""" - return self._availability_topic is None or self._available + availability_topic = self._avail_config.get(CONF_AVAILABILITY_TOPIC) + return availability_topic is None or self._available class MqttDiscoveryUpdate(Entity): diff --git a/homeassistant/components/mqtt/alarm_control_panel.py b/homeassistant/components/mqtt/alarm_control_panel.py index 7d092216a1d..5bd4117ecee 100644 --- a/homeassistant/components/mqtt/alarm_control_panel.py +++ b/homeassistant/components/mqtt/alarm_control_panel.py @@ -17,8 +17,7 @@ from homeassistant.const import ( STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED, STATE_ALARM_PENDING, STATE_ALARM_TRIGGERED, STATE_UNKNOWN) from homeassistant.components.mqtt import ( - ATTR_DISCOVERY_HASH, CONF_AVAILABILITY_TOPIC, CONF_COMMAND_TOPIC, - CONF_PAYLOAD_AVAILABLE, CONF_PAYLOAD_NOT_AVAILABLE, CONF_QOS, CONF_RETAIN, + ATTR_DISCOVERY_HASH, CONF_COMMAND_TOPIC, CONF_QOS, CONF_RETAIN, CONF_STATE_TOPIC, MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, subscription) from homeassistant.components.mqtt.discovery import ( @@ -95,14 +94,9 @@ class MqttAlarm(MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, self._unique_id = config.get(CONF_UNIQUE_ID) self._sub_state = None - availability_topic = config.get(CONF_AVAILABILITY_TOPIC) - payload_available = config.get(CONF_PAYLOAD_AVAILABLE) - payload_not_available = config.get(CONF_PAYLOAD_NOT_AVAILABLE) - qos = config.get(CONF_QOS) device_config = config.get(CONF_DEVICE) - MqttAvailability.__init__(self, availability_topic, qos, - payload_available, payload_not_available) + MqttAvailability.__init__(self, config) MqttDiscoveryUpdate.__init__(self, discovery_hash, self.discovery_update) MqttEntityDeviceInfo.__init__(self, device_config) diff --git a/homeassistant/components/mqtt/binary_sensor.py b/homeassistant/components/mqtt/binary_sensor.py index f42feec6838..95886a46299 100644 --- a/homeassistant/components/mqtt/binary_sensor.py +++ b/homeassistant/components/mqtt/binary_sensor.py @@ -16,10 +16,8 @@ from homeassistant.const import ( CONF_FORCE_UPDATE, CONF_NAME, CONF_VALUE_TEMPLATE, CONF_PAYLOAD_ON, CONF_PAYLOAD_OFF, CONF_DEVICE_CLASS, CONF_DEVICE) from homeassistant.components.mqtt import ( - ATTR_DISCOVERY_HASH, CONF_AVAILABILITY_TOPIC, CONF_STATE_TOPIC, - CONF_PAYLOAD_AVAILABLE, CONF_PAYLOAD_NOT_AVAILABLE, CONF_QOS, - MqttAttributes, MqttAvailability, MqttDiscoveryUpdate, - MqttEntityDeviceInfo, subscription) + ATTR_DISCOVERY_HASH, CONF_QOS, CONF_STATE_TOPIC, MqttAttributes, + MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, subscription) from homeassistant.components.mqtt.discovery import ( MQTT_DISCOVERY_NEW, clear_discovery_hash) import homeassistant.helpers.config_validation as cv @@ -96,15 +94,10 @@ class MqttBinarySensor(MqttAttributes, MqttAvailability, MqttDiscoveryUpdate, self._sub_state = None self._delay_listener = None - availability_topic = config.get(CONF_AVAILABILITY_TOPIC) - payload_available = config.get(CONF_PAYLOAD_AVAILABLE) - payload_not_available = config.get(CONF_PAYLOAD_NOT_AVAILABLE) - qos = config.get(CONF_QOS) device_config = config.get(CONF_DEVICE) MqttAttributes.__init__(self, config) - MqttAvailability.__init__(self, availability_topic, qos, - payload_available, payload_not_available) + MqttAvailability.__init__(self, config) MqttDiscoveryUpdate.__init__(self, discovery_hash, self.discovery_update) MqttEntityDeviceInfo.__init__(self, device_config) diff --git a/homeassistant/components/mqtt/climate.py b/homeassistant/components/mqtt/climate.py index 3219b71c1bd..71950f9b1b7 100644 --- a/homeassistant/components/mqtt/climate.py +++ b/homeassistant/components/mqtt/climate.py @@ -21,10 +21,8 @@ from homeassistant.const import ( ATTR_TEMPERATURE, CONF_DEVICE, CONF_NAME, CONF_VALUE_TEMPLATE, STATE_ON, STATE_OFF) from homeassistant.components.mqtt import ( - ATTR_DISCOVERY_HASH, CONF_AVAILABILITY_TOPIC, CONF_QOS, CONF_RETAIN, - CONF_PAYLOAD_AVAILABLE, CONF_PAYLOAD_NOT_AVAILABLE, - MQTT_BASE_PLATFORM_SCHEMA, MqttAvailability, MqttDiscoveryUpdate, - MqttEntityDeviceInfo, subscription) + ATTR_DISCOVERY_HASH, CONF_QOS, CONF_RETAIN, MQTT_BASE_PLATFORM_SCHEMA, + MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, subscription) from homeassistant.components.mqtt.discovery import ( MQTT_DISCOVERY_NEW, clear_discovery_hash) import homeassistant.helpers.config_validation as cv @@ -210,14 +208,9 @@ class MqttClimate(MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, self._setup_from_config(config) - availability_topic = config.get(CONF_AVAILABILITY_TOPIC) - payload_available = config.get(CONF_PAYLOAD_AVAILABLE) - payload_not_available = config.get(CONF_PAYLOAD_NOT_AVAILABLE) - qos = config.get(CONF_QOS) device_config = config.get(CONF_DEVICE) - MqttAvailability.__init__(self, availability_topic, qos, - payload_available, payload_not_available) + MqttAvailability.__init__(self, config) MqttDiscoveryUpdate.__init__(self, discovery_hash, self.discovery_update) MqttEntityDeviceInfo.__init__(self, device_config) diff --git a/homeassistant/components/mqtt/cover.py b/homeassistant/components/mqtt/cover.py index f5001c9c495..5ebe51a3bce 100644 --- a/homeassistant/components/mqtt/cover.py +++ b/homeassistant/components/mqtt/cover.py @@ -20,10 +20,9 @@ from homeassistant.const import ( CONF_NAME, CONF_VALUE_TEMPLATE, CONF_OPTIMISTIC, STATE_OPEN, STATE_CLOSED, STATE_UNKNOWN, CONF_DEVICE) from homeassistant.components.mqtt import ( - ATTR_DISCOVERY_HASH, CONF_AVAILABILITY_TOPIC, CONF_STATE_TOPIC, - CONF_COMMAND_TOPIC, CONF_PAYLOAD_AVAILABLE, CONF_PAYLOAD_NOT_AVAILABLE, - CONF_QOS, CONF_RETAIN, valid_publish_topic, valid_subscribe_topic, - MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, subscription) + ATTR_DISCOVERY_HASH, CONF_COMMAND_TOPIC, CONF_QOS, CONF_RETAIN, + CONF_STATE_TOPIC, MqttAvailability, MqttDiscoveryUpdate, + MqttEntityDeviceInfo, subscription) from homeassistant.components.mqtt.discovery import ( MQTT_DISCOVERY_NEW, clear_discovery_hash) import homeassistant.helpers.config_validation as cv @@ -92,12 +91,12 @@ def validate_options(value): PLATFORM_SCHEMA = vol.All(mqtt.MQTT_BASE_PLATFORM_SCHEMA.extend({ - vol.Optional(CONF_COMMAND_TOPIC): valid_publish_topic, - vol.Optional(CONF_SET_POSITION_TOPIC): valid_publish_topic, + vol.Optional(CONF_COMMAND_TOPIC): mqtt.valid_publish_topic, + vol.Optional(CONF_SET_POSITION_TOPIC): mqtt.valid_publish_topic, vol.Optional(CONF_SET_POSITION_TEMPLATE): cv.template, vol.Optional(CONF_RETAIN, default=DEFAULT_RETAIN): cv.boolean, - vol.Optional(CONF_GET_POSITION_TOPIC): valid_subscribe_topic, - vol.Optional(CONF_STATE_TOPIC): valid_subscribe_topic, + vol.Optional(CONF_GET_POSITION_TOPIC): mqtt.valid_subscribe_topic, + vol.Optional(CONF_STATE_TOPIC): mqtt.valid_subscribe_topic, vol.Optional(CONF_VALUE_TEMPLATE): cv.template, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_PAYLOAD_OPEN, default=DEFAULT_PAYLOAD_OPEN): cv.string, @@ -110,8 +109,8 @@ PLATFORM_SCHEMA = vol.All(mqtt.MQTT_BASE_PLATFORM_SCHEMA.extend({ vol.Optional(CONF_POSITION_CLOSED, default=DEFAULT_POSITION_CLOSED): int, vol.Optional(CONF_OPTIMISTIC, default=DEFAULT_OPTIMISTIC): cv.boolean, - vol.Optional(CONF_TILT_COMMAND_TOPIC): valid_publish_topic, - vol.Optional(CONF_TILT_STATUS_TOPIC): valid_subscribe_topic, + vol.Optional(CONF_TILT_COMMAND_TOPIC): mqtt.valid_publish_topic, + vol.Optional(CONF_TILT_STATUS_TOPIC): mqtt.valid_subscribe_topic, vol.Optional(CONF_TILT_CLOSED_POSITION, default=DEFAULT_TILT_CLOSED_POSITION): int, vol.Optional(CONF_TILT_OPEN_POSITION, @@ -175,14 +174,9 @@ class MqttCover(MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, # Load config self._setup_from_config(config) - availability_topic = config.get(CONF_AVAILABILITY_TOPIC) - payload_available = config.get(CONF_PAYLOAD_AVAILABLE) - payload_not_available = config.get(CONF_PAYLOAD_NOT_AVAILABLE) - qos = config.get(CONF_QOS) device_config = config.get(CONF_DEVICE) - MqttAvailability.__init__(self, availability_topic, qos, - payload_available, payload_not_available) + MqttAvailability.__init__(self, config) MqttDiscoveryUpdate.__init__(self, discovery_hash, self.discovery_update) MqttEntityDeviceInfo.__init__(self, device_config) diff --git a/homeassistant/components/mqtt/fan.py b/homeassistant/components/mqtt/fan.py index 3adb821eba5..22f89a40e04 100644 --- a/homeassistant/components/mqtt/fan.py +++ b/homeassistant/components/mqtt/fan.py @@ -14,9 +14,8 @@ from homeassistant.const import ( CONF_NAME, CONF_OPTIMISTIC, CONF_STATE, STATE_ON, STATE_OFF, CONF_PAYLOAD_OFF, CONF_PAYLOAD_ON, CONF_DEVICE) from homeassistant.components.mqtt import ( - ATTR_DISCOVERY_HASH, CONF_AVAILABILITY_TOPIC, CONF_STATE_TOPIC, - CONF_COMMAND_TOPIC, CONF_PAYLOAD_AVAILABLE, CONF_PAYLOAD_NOT_AVAILABLE, - CONF_QOS, CONF_RETAIN, MqttAvailability, MqttDiscoveryUpdate, + ATTR_DISCOVERY_HASH, CONF_COMMAND_TOPIC, CONF_QOS, CONF_RETAIN, + CONF_STATE_TOPIC, MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, subscription) import homeassistant.helpers.config_validation as cv from homeassistant.helpers.dispatcher import async_dispatcher_connect @@ -141,14 +140,9 @@ class MqttFan(MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, # Load config self._setup_from_config(config) - availability_topic = config.get(CONF_AVAILABILITY_TOPIC) - payload_available = config.get(CONF_PAYLOAD_AVAILABLE) - payload_not_available = config.get(CONF_PAYLOAD_NOT_AVAILABLE) - qos = config.get(CONF_QOS) device_config = config.get(CONF_DEVICE) - MqttAvailability.__init__(self, availability_topic, qos, - payload_available, payload_not_available) + MqttAvailability.__init__(self, config) MqttDiscoveryUpdate.__init__(self, discovery_hash, self.discovery_update) MqttEntityDeviceInfo.__init__(self, device_config) diff --git a/homeassistant/components/mqtt/light/schema_basic.py b/homeassistant/components/mqtt/light/schema_basic.py index 351eb4c464c..fdfc1961db3 100644 --- a/homeassistant/components/mqtt/light/schema_basic.py +++ b/homeassistant/components/mqtt/light/schema_basic.py @@ -19,8 +19,7 @@ from homeassistant.const import ( CONF_NAME, CONF_OPTIMISTIC, CONF_PAYLOAD_OFF, CONF_PAYLOAD_ON, STATE_ON, CONF_RGB, CONF_STATE, CONF_VALUE_TEMPLATE, CONF_WHITE_VALUE, CONF_XY) from homeassistant.components.mqtt import ( - CONF_AVAILABILITY_TOPIC, CONF_COMMAND_TOPIC, CONF_PAYLOAD_AVAILABLE, - CONF_PAYLOAD_NOT_AVAILABLE, CONF_QOS, CONF_RETAIN, CONF_STATE_TOPIC, + CONF_COMMAND_TOPIC, CONF_QOS, CONF_RETAIN, CONF_STATE_TOPIC, MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, subscription) from homeassistant.helpers.restore_state import RestoreEntity import homeassistant.helpers.config_validation as cv @@ -151,14 +150,9 @@ class MqttLight(MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, # Load config self._setup_from_config(config) - availability_topic = config.get(CONF_AVAILABILITY_TOPIC) - payload_available = config.get(CONF_PAYLOAD_AVAILABLE) - payload_not_available = config.get(CONF_PAYLOAD_NOT_AVAILABLE) - qos = config.get(CONF_QOS) device_config = config.get(CONF_DEVICE) - MqttAvailability.__init__(self, availability_topic, qos, - payload_available, payload_not_available) + MqttAvailability.__init__(self, config) MqttDiscoveryUpdate.__init__(self, discovery_hash, self.discovery_update) MqttEntityDeviceInfo.__init__(self, device_config) diff --git a/homeassistant/components/mqtt/light/schema_json.py b/homeassistant/components/mqtt/light/schema_json.py index f0888726d78..6c986cbf49f 100644 --- a/homeassistant/components/mqtt/light/schema_json.py +++ b/homeassistant/components/mqtt/light/schema_json.py @@ -16,8 +16,7 @@ from homeassistant.components.light import ( SUPPORT_BRIGHTNESS, SUPPORT_COLOR, SUPPORT_COLOR_TEMP, SUPPORT_EFFECT, SUPPORT_FLASH, SUPPORT_TRANSITION, SUPPORT_WHITE_VALUE, Light) from homeassistant.components.mqtt import ( - CONF_AVAILABILITY_TOPIC, CONF_COMMAND_TOPIC, CONF_PAYLOAD_AVAILABLE, - CONF_PAYLOAD_NOT_AVAILABLE, CONF_QOS, CONF_RETAIN, CONF_STATE_TOPIC, + CONF_COMMAND_TOPIC, CONF_QOS, CONF_RETAIN, CONF_STATE_TOPIC, MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, subscription) from homeassistant.const import ( CONF_BRIGHTNESS, CONF_COLOR_TEMP, CONF_DEVICE, CONF_EFFECT, CONF_NAME, @@ -114,14 +113,9 @@ class MqttLightJson(MqttAvailability, MqttDiscoveryUpdate, # Load config self._setup_from_config(config) - availability_topic = config.get(CONF_AVAILABILITY_TOPIC) - payload_available = config.get(CONF_PAYLOAD_AVAILABLE) - payload_not_available = config.get(CONF_PAYLOAD_NOT_AVAILABLE) - qos = config.get(CONF_QOS) device_config = config.get(CONF_DEVICE) - MqttAvailability.__init__(self, availability_topic, qos, - payload_available, payload_not_available) + MqttAvailability.__init__(self, config) MqttDiscoveryUpdate.__init__(self, discovery_hash, self.discovery_update) MqttEntityDeviceInfo.__init__(self, device_config) diff --git a/homeassistant/components/mqtt/light/schema_template.py b/homeassistant/components/mqtt/light/schema_template.py index 9f04e9a6468..53423679050 100644 --- a/homeassistant/components/mqtt/light/schema_template.py +++ b/homeassistant/components/mqtt/light/schema_template.py @@ -17,8 +17,7 @@ from homeassistant.components.light import ( from homeassistant.const import ( CONF_DEVICE, CONF_NAME, CONF_OPTIMISTIC, STATE_ON, STATE_OFF) from homeassistant.components.mqtt import ( - CONF_AVAILABILITY_TOPIC, CONF_STATE_TOPIC, CONF_COMMAND_TOPIC, - CONF_PAYLOAD_AVAILABLE, CONF_PAYLOAD_NOT_AVAILABLE, CONF_QOS, CONF_RETAIN, + CONF_STATE_TOPIC, CONF_COMMAND_TOPIC, CONF_QOS, CONF_RETAIN, MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, subscription) import homeassistant.helpers.config_validation as cv import homeassistant.util.color as color_util @@ -101,14 +100,9 @@ class MqttTemplate(MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, # Load config self._setup_from_config(config) - availability_topic = config.get(CONF_AVAILABILITY_TOPIC) - payload_available = config.get(CONF_PAYLOAD_AVAILABLE) - payload_not_available = config.get(CONF_PAYLOAD_NOT_AVAILABLE) - qos = config.get(CONF_QOS) device_config = config.get(CONF_DEVICE) - MqttAvailability.__init__(self, availability_topic, qos, - payload_available, payload_not_available) + MqttAvailability.__init__(self, config) MqttDiscoveryUpdate.__init__(self, discovery_hash, self.discovery_update) MqttEntityDeviceInfo.__init__(self, device_config) diff --git a/homeassistant/components/mqtt/lock.py b/homeassistant/components/mqtt/lock.py index 53bfe6ff7a1..e82498a9b12 100644 --- a/homeassistant/components/mqtt/lock.py +++ b/homeassistant/components/mqtt/lock.py @@ -11,8 +11,7 @@ import voluptuous as vol from homeassistant.core import callback from homeassistant.components.lock import LockDevice from homeassistant.components.mqtt import ( - ATTR_DISCOVERY_HASH, CONF_AVAILABILITY_TOPIC, CONF_COMMAND_TOPIC, - CONF_PAYLOAD_AVAILABLE, CONF_PAYLOAD_NOT_AVAILABLE, CONF_QOS, CONF_RETAIN, + ATTR_DISCOVERY_HASH, CONF_COMMAND_TOPIC, CONF_QOS, CONF_RETAIN, CONF_STATE_TOPIC, MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, subscription) from homeassistant.const import ( @@ -91,14 +90,9 @@ class MqttLock(MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, self._sub_state = None self._optimistic = False - availability_topic = config.get(CONF_AVAILABILITY_TOPIC) - payload_available = config[CONF_PAYLOAD_AVAILABLE] - payload_not_available = config[CONF_PAYLOAD_NOT_AVAILABLE] - qos = config[CONF_QOS] device_config = config.get(CONF_DEVICE) - MqttAvailability.__init__(self, availability_topic, qos, - payload_available, payload_not_available) + MqttAvailability.__init__(self, config) MqttDiscoveryUpdate.__init__(self, discovery_hash, self.discovery_update) MqttEntityDeviceInfo.__init__(self, device_config) diff --git a/homeassistant/components/mqtt/sensor.py b/homeassistant/components/mqtt/sensor.py index b78ebb048ad..688352b1ef6 100644 --- a/homeassistant/components/mqtt/sensor.py +++ b/homeassistant/components/mqtt/sensor.py @@ -14,8 +14,7 @@ import voluptuous as vol from homeassistant.core import callback from homeassistant.components import sensor from homeassistant.components.mqtt import ( - ATTR_DISCOVERY_HASH, CONF_AVAILABILITY_TOPIC, CONF_PAYLOAD_AVAILABLE, - CONF_PAYLOAD_NOT_AVAILABLE, CONF_QOS, CONF_STATE_TOPIC, MqttAttributes, + ATTR_DISCOVERY_HASH, CONF_QOS, CONF_STATE_TOPIC, MqttAttributes, MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, subscription) from homeassistant.components.mqtt.discovery import ( MQTT_DISCOVERY_NEW, clear_discovery_hash) @@ -101,10 +100,6 @@ class MqttSensor(MqttAttributes, MqttAvailability, MqttDiscoveryUpdate, self._expiration_trigger = None self._attributes = None - availability_topic = config.get(CONF_AVAILABILITY_TOPIC) - payload_available = config.get(CONF_PAYLOAD_AVAILABLE) - payload_not_available = config.get(CONF_PAYLOAD_NOT_AVAILABLE) - qos = config.get(CONF_QOS) device_config = config.get(CONF_DEVICE) if config.get(CONF_JSON_ATTRS): @@ -112,8 +107,7 @@ class MqttSensor(MqttAttributes, MqttAvailability, MqttDiscoveryUpdate, 'deprecated, replace with "json_attributes_topic"') MqttAttributes.__init__(self, config) - MqttAvailability.__init__(self, availability_topic, qos, - payload_available, payload_not_available) + MqttAvailability.__init__(self, config) MqttDiscoveryUpdate.__init__(self, discovery_hash, self.discovery_update) MqttEntityDeviceInfo.__init__(self, device_config) diff --git a/homeassistant/components/mqtt/switch.py b/homeassistant/components/mqtt/switch.py index 02f0a60aed2..bc8eac86a6d 100644 --- a/homeassistant/components/mqtt/switch.py +++ b/homeassistant/components/mqtt/switch.py @@ -10,10 +10,9 @@ import voluptuous as vol from homeassistant.core import callback from homeassistant.components.mqtt import ( - ATTR_DISCOVERY_HASH, CONF_STATE_TOPIC, CONF_COMMAND_TOPIC, - CONF_AVAILABILITY_TOPIC, CONF_PAYLOAD_AVAILABLE, - CONF_PAYLOAD_NOT_AVAILABLE, CONF_QOS, CONF_RETAIN, MqttAvailability, - MqttDiscoveryUpdate, MqttEntityDeviceInfo, subscription) + ATTR_DISCOVERY_HASH, CONF_COMMAND_TOPIC, CONF_QOS, CONF_RETAIN, + CONF_STATE_TOPIC, MqttAvailability, MqttDiscoveryUpdate, + MqttEntityDeviceInfo, subscription) from homeassistant.components.mqtt.discovery import ( MQTT_DISCOVERY_NEW, clear_discovery_hash) from homeassistant.components.switch import SwitchDevice @@ -101,14 +100,9 @@ class MqttSwitch(MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, # Load config self._setup_from_config(config) - availability_topic = config.get(CONF_AVAILABILITY_TOPIC) - payload_available = config.get(CONF_PAYLOAD_AVAILABLE) - payload_not_available = config.get(CONF_PAYLOAD_NOT_AVAILABLE) - qos = config.get(CONF_QOS) device_config = config.get(CONF_DEVICE) - MqttAvailability.__init__(self, availability_topic, qos, - payload_available, payload_not_available) + MqttAvailability.__init__(self, config) MqttDiscoveryUpdate.__init__(self, discovery_hash, self.discovery_update) MqttEntityDeviceInfo.__init__(self, device_config) diff --git a/homeassistant/components/mqtt/vacuum.py b/homeassistant/components/mqtt/vacuum.py index bc48362b511..612737c990d 100644 --- a/homeassistant/components/mqtt/vacuum.py +++ b/homeassistant/components/mqtt/vacuum.py @@ -196,14 +196,9 @@ class MqttVacuum(MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, # Load config self._setup_from_config(config) - qos = config.get(mqtt.CONF_QOS) - availability_topic = config.get(mqtt.CONF_AVAILABILITY_TOPIC) - payload_available = config.get(mqtt.CONF_PAYLOAD_AVAILABLE) - payload_not_available = config.get(mqtt.CONF_PAYLOAD_NOT_AVAILABLE) device_config = config.get(CONF_DEVICE) - MqttAvailability.__init__(self, availability_topic, qos, - payload_available, payload_not_available) + MqttAvailability.__init__(self, config) MqttDiscoveryUpdate.__init__(self, discovery_info, self.discovery_update) MqttEntityDeviceInfo.__init__(self, device_config)