diff --git a/esphomeyaml/config_validation.py b/esphomeyaml/config_validation.py index 6ae393227..24f13a8fb 100644 --- a/esphomeyaml/config_validation.py +++ b/esphomeyaml/config_validation.py @@ -547,7 +547,7 @@ MQTT_COMPONENT_SCHEMA = vol.Schema({ vol.Optional(CONF_RETAIN): boolean, vol.Optional(CONF_DISCOVERY): boolean, vol.Optional(CONF_STATE_TOPIC): publish_topic, - vol.Optional(CONF_AVAILABILITY): MQTT_COMPONENT_AVAILABILITY_SCHEMA, + vol.Optional(CONF_AVAILABILITY): vol.Any(None, MQTT_COMPONENT_AVAILABILITY_SCHEMA), }) MQTT_COMMAND_COMPONENT_SCHEMA = MQTT_COMPONENT_SCHEMA.extend({ diff --git a/esphomeyaml/helpers.py b/esphomeyaml/helpers.py index 9c5467bed..5da6e6d40 100644 --- a/esphomeyaml/helpers.py +++ b/esphomeyaml/helpers.py @@ -604,8 +604,11 @@ def setup_mqtt_component(obj, config): add(obj.set_custom_command_topic(config[CONF_COMMAND_TOPIC])) if CONF_AVAILABILITY in config: availability = config[CONF_AVAILABILITY] - add(obj.set_availability(availability[CONF_TOPIC], availability[CONF_PAYLOAD_AVAILABLE], - availability[CONF_PAYLOAD_NOT_AVAILABLE])) + if not availability: + add(obj.disable_availability()) + else: + add(obj.set_availability(availability[CONF_TOPIC], availability[CONF_PAYLOAD_AVAILABLE], + availability[CONF_PAYLOAD_NOT_AVAILABLE])) # shlex's quote for Python 2.7