diff --git a/homeassistant/components/alarm_control_panel/mqtt.py b/homeassistant/components/alarm_control_panel/mqtt.py index 3bc7b860869..b5bdf478add 100644 --- a/homeassistant/components/alarm_control_panel/mqtt.py +++ b/homeassistant/components/alarm_control_panel/mqtt.py @@ -13,33 +13,31 @@ import homeassistant.components.mqtt as mqtt from homeassistant.const import ( STATE_ALARM_ARMED_AWAY, STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED, STATE_ALARM_PENDING, STATE_ALARM_TRIGGERED, STATE_UNKNOWN, - CONF_NAME) + CONF_NAME, CONF_CODE) from homeassistant.components.mqtt import ( CONF_STATE_TOPIC, CONF_COMMAND_TOPIC, CONF_QOS) import homeassistant.helpers.config_validation as cv _LOGGER = logging.getLogger(__name__) -DEPENDENCIES = ['mqtt'] - CONF_PAYLOAD_DISARM = 'payload_disarm' CONF_PAYLOAD_ARM_HOME = 'payload_arm_home' CONF_PAYLOAD_ARM_AWAY = 'payload_arm_away' -CONF_CODE = 'code' -DEFAULT_NAME = "MQTT Alarm" -DEFAULT_DISARM = "DISARM" -DEFAULT_ARM_HOME = "ARM_HOME" -DEFAULT_ARM_AWAY = "ARM_AWAY" +DEFAULT_ARM_AWAY = 'ARM_AWAY' +DEFAULT_ARM_HOME = 'ARM_HOME' +DEFAULT_DISARM = 'DISARM' +DEFAULT_NAME = 'MQTT Alarm' +DEPENDENCIES = ['mqtt'] PLATFORM_SCHEMA = mqtt.MQTT_BASE_PLATFORM_SCHEMA.extend({ - vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, - vol.Required(CONF_STATE_TOPIC): mqtt.valid_subscribe_topic, vol.Required(CONF_COMMAND_TOPIC): mqtt.valid_publish_topic, - vol.Optional(CONF_PAYLOAD_DISARM, default=DEFAULT_DISARM): cv.string, - vol.Optional(CONF_PAYLOAD_ARM_HOME, default=DEFAULT_ARM_HOME): cv.string, - vol.Optional(CONF_PAYLOAD_ARM_AWAY, default=DEFAULT_ARM_AWAY): cv.string, + vol.Required(CONF_STATE_TOPIC): mqtt.valid_subscribe_topic, vol.Optional(CONF_CODE): cv.string, + vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, + vol.Optional(CONF_PAYLOAD_ARM_AWAY, default=DEFAULT_ARM_AWAY): cv.string, + vol.Optional(CONF_PAYLOAD_ARM_HOME, default=DEFAULT_ARM_HOME): cv.string, + vol.Optional(CONF_PAYLOAD_DISARM, default=DEFAULT_DISARM): cv.string, }) @@ -47,20 +45,20 @@ def setup_platform(hass, config, add_devices, discovery_info=None): """Setup the MQTT platform.""" add_devices([MqttAlarm( hass, - config[CONF_NAME], - config[CONF_STATE_TOPIC], - config[CONF_COMMAND_TOPIC], - config[CONF_QOS], - config[CONF_PAYLOAD_DISARM], - config[CONF_PAYLOAD_ARM_HOME], - config[CONF_PAYLOAD_ARM_AWAY], + config.get(CONF_NAME), + config.get(CONF_STATE_TOPIC), + config.get(CONF_COMMAND_TOPIC), + config.get(CONF_QOS), + config.get(CONF_PAYLOAD_DISARM), + config.get(CONF_PAYLOAD_ARM_HOME), + config.get(CONF_PAYLOAD_ARM_AWAY), config.get(CONF_CODE))]) # pylint: disable=too-many-arguments, too-many-instance-attributes # pylint: disable=abstract-method class MqttAlarm(alarm.AlarmControlPanel): - """Represent a MQTT alarm status.""" + """Representation of a MQTT alarm status.""" def __init__(self, hass, name, state_topic, command_topic, qos, payload_disarm, payload_arm_home, payload_arm_away, code): diff --git a/homeassistant/components/automation/mqtt.py b/homeassistant/components/automation/mqtt.py index 5cd60ff0cea..6824c32bf07 100644 --- a/homeassistant/components/automation/mqtt.py +++ b/homeassistant/components/automation/mqtt.py @@ -7,13 +7,12 @@ at https://home-assistant.io/components/automation/#mqtt-trigger import voluptuous as vol import homeassistant.components.mqtt as mqtt -from homeassistant.const import CONF_PLATFORM +from homeassistant.const import (CONF_PLATFORM, CONF_PAYLOAD) import homeassistant.helpers.config_validation as cv DEPENDENCIES = ['mqtt'] CONF_TOPIC = 'topic' -CONF_PAYLOAD = 'payload' TRIGGER_SCHEMA = vol.Schema({ vol.Required(CONF_PLATFORM): mqtt.DOMAIN, @@ -24,7 +23,7 @@ TRIGGER_SCHEMA = vol.Schema({ def trigger(hass, config, action): """Listen for state changes based on configuration.""" - topic = config[CONF_TOPIC] + topic = config.get(CONF_TOPIC) payload = config.get(CONF_PAYLOAD) def mqtt_automation_listener(msg_topic, msg_payload, qos): diff --git a/homeassistant/components/binary_sensor/mqtt.py b/homeassistant/components/binary_sensor/mqtt.py index a381305691a..fd767bb1528 100644 --- a/homeassistant/components/binary_sensor/mqtt.py +++ b/homeassistant/components/binary_sensor/mqtt.py @@ -9,45 +9,42 @@ import logging import voluptuous as vol import homeassistant.components.mqtt as mqtt -from homeassistant.components.binary_sensor import (BinarySensorDevice, - SENSOR_CLASSES) -from homeassistant.const import CONF_NAME, CONF_VALUE_TEMPLATE -from homeassistant.components.mqtt import CONF_STATE_TOPIC, CONF_QOS +from homeassistant.components.binary_sensor import ( + BinarySensorDevice, SENSOR_CLASSES) +from homeassistant.const import ( + CONF_NAME, CONF_VALUE_TEMPLATE, CONF_PAYLOAD_ON, CONF_PAYLOAD_OFF, + CONF_SENSOR_CLASS) +from homeassistant.components.mqtt import (CONF_STATE_TOPIC, CONF_QOS) from homeassistant.helpers import template import homeassistant.helpers.config_validation as cv _LOGGER = logging.getLogger(__name__) -DEPENDENCIES = ['mqtt'] - -CONF_SENSOR_CLASS = 'sensor_class' -CONF_PAYLOAD_ON = 'payload_on' -CONF_PAYLOAD_OFF = 'payload_off' - DEFAULT_NAME = 'MQTT Binary sensor' -DEFAULT_PAYLOAD_ON = 'ON' DEFAULT_PAYLOAD_OFF = 'OFF' +DEFAULT_PAYLOAD_ON = 'ON' +DEPENDENCIES = ['mqtt'] PLATFORM_SCHEMA = mqtt.MQTT_RO_PLATFORM_SCHEMA.extend({ vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, + vol.Optional(CONF_PAYLOAD_OFF, default=DEFAULT_PAYLOAD_OFF): cv.string, + vol.Optional(CONF_PAYLOAD_ON, default=DEFAULT_PAYLOAD_ON): cv.string, vol.Optional(CONF_SENSOR_CLASS, default=None): vol.Any(vol.In(SENSOR_CLASSES), vol.SetTo(None)), - vol.Optional(CONF_PAYLOAD_ON, default=DEFAULT_PAYLOAD_ON): cv.string, - vol.Optional(CONF_PAYLOAD_OFF, default=DEFAULT_PAYLOAD_OFF): cv.string, }) # pylint: disable=unused-argument def setup_platform(hass, config, add_devices, discovery_info=None): - """Add MQTT binary sensor.""" + """Setup the MQTT binary sensor.""" add_devices([MqttBinarySensor( hass, - config[CONF_NAME], - config[CONF_STATE_TOPIC], - config[CONF_SENSOR_CLASS], - config[CONF_QOS], - config[CONF_PAYLOAD_ON], - config[CONF_PAYLOAD_OFF], + config.get(CONF_NAME), + config.get(CONF_STATE_TOPIC), + config.get(CONF_SENSOR_CLASS), + config.get(CONF_QOS), + config.get(CONF_PAYLOAD_ON), + config.get(CONF_PAYLOAD_OFF), config.get(CONF_VALUE_TEMPLATE) )])