Fix MQTT messages

This commit is contained in:
Otto Winter 2018-06-06 08:12:30 +02:00
parent abeac23abd
commit 084fc00517
No known key found for this signature in database
GPG key ID: DB66C0BE6013F97E

View file

@ -16,7 +16,7 @@ from esphomeyaml.helpers import App, ArrayInitializer, Pvariable, RawExpression,
def validate_message_just_topic(value): def validate_message_just_topic(value):
value = cv.publish_topic(value) value = cv.publish_topic(value)
return {CONF_TOPIC: value} return MQTT_MESSAGE_BASE({CONF_TOPIC: value})
MQTT_MESSAGE_BASE = vol.Schema({ MQTT_MESSAGE_BASE = vol.Schema({
@ -74,7 +74,7 @@ CONFIG_SCHEMA = vol.Schema({
vol.Optional(CONF_ON_MESSAGE): vol.All(cv.ensure_list, [automation.AUTOMATION_SCHEMA.extend({ vol.Optional(CONF_ON_MESSAGE): vol.All(cv.ensure_list, [automation.AUTOMATION_SCHEMA.extend({
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_variable_id(MQTTMessageTrigger), cv.GenerateID(CONF_TRIGGER_ID): cv.declare_variable_id(MQTTMessageTrigger),
vol.Required(CONF_TOPIC): cv.publish_topic, vol.Required(CONF_TOPIC): cv.publish_topic,
vol.Optional(CONF_QOS, 0): cv.mqtt_qos, vol.Optional(CONF_QOS, default=0): cv.mqtt_qos,
})]) })])
}) })
@ -106,13 +106,13 @@ def to_code(config):
add(mqtt.set_topic_prefix(config[CONF_TOPIC_PREFIX])) add(mqtt.set_topic_prefix(config[CONF_TOPIC_PREFIX]))
if CONF_BIRTH_MESSAGE in config: if CONF_BIRTH_MESSAGE in config:
birth_message = config[CONF_BIRTH_MESSAGE] birth_message = config[CONF_BIRTH_MESSAGE]
if birth_message is None: if not birth_message:
add(mqtt.disable_birth_message()) add(mqtt.disable_birth_message())
else: else:
add(mqtt.set_birth_message(exp_mqtt_message(birth_message))) add(mqtt.set_birth_message(exp_mqtt_message(birth_message)))
if CONF_WILL_MESSAGE in config: if CONF_WILL_MESSAGE in config:
will_message = config[CONF_WILL_MESSAGE] will_message = config[CONF_WILL_MESSAGE]
if will_message is None: if not will_message:
add(mqtt.disable_last_will()) add(mqtt.disable_last_will())
else: else:
add(mqtt.set_last_will(exp_mqtt_message(will_message))) add(mqtt.set_last_will(exp_mqtt_message(will_message)))
@ -120,10 +120,10 @@ def to_code(config):
add(mqtt.set_client_id(config[CONF_CLIENT_ID])) add(mqtt.set_client_id(config[CONF_CLIENT_ID]))
if CONF_LOG_TOPIC in config: if CONF_LOG_TOPIC in config:
log_topic = config[CONF_LOG_TOPIC] log_topic = config[CONF_LOG_TOPIC]
if log_topic is None: if not log_topic:
add(mqtt.disable_log_message()) add(mqtt.disable_log_message())
else: else:
add(mqtt.set_log_topic(exp_mqtt_message(log_topic))) add(mqtt.set_log_message_template(exp_mqtt_message(log_topic)))
if CONF_SSL_FINGERPRINTS in config: if CONF_SSL_FINGERPRINTS in config:
for fingerprint in config[CONF_SSL_FINGERPRINTS]: for fingerprint in config[CONF_SSL_FINGERPRINTS]:
arr = [RawExpression("0x{}".format(fingerprint[i:i + 2])) for i in range(0, 40, 2)] arr = [RawExpression("0x{}".format(fingerprint[i:i + 2])) for i in range(0, 40, 2)]