From 0ef0d4bac7588b84b775ab587d860f63b04cb8b2 Mon Sep 17 00:00:00 2001 From: Jan Harkes Date: Wed, 6 Apr 2016 21:12:51 -0400 Subject: [PATCH] Config validation for automation MQTT trigger --- homeassistant/components/automation/mqtt.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/automation/mqtt.py b/homeassistant/components/automation/mqtt.py index db63d81e54b..db0c1be7c2a 100644 --- a/homeassistant/components/automation/mqtt.py +++ b/homeassistant/components/automation/mqtt.py @@ -4,26 +4,29 @@ Offer MQTT listening automation rules. For more details about this automation rule, please refer to the documentation at https://home-assistant.io/components/automation/#mqtt-trigger """ -import logging +import voluptuous as vol import homeassistant.components.mqtt as mqtt +from homeassistant.const import CONF_PLATFORM +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, + vol.Required(CONF_TOPIC): mqtt.valid_subscribe_topic, + vol.Optional(CONF_PAYLOAD): cv.string, +}) + def trigger(hass, config, action): """Listen for state changes based on configuration.""" - topic = config.get(CONF_TOPIC) + topic = config[CONF_TOPIC] payload = config.get(CONF_PAYLOAD) - if topic is None: - logging.getLogger(__name__).error( - "Missing configuration key %s", CONF_TOPIC) - return False - def mqtt_automation_listener(msg_topic, msg_payload, qos): """Listen for MQTT messages.""" if payload is None or payload == msg_payload: