From 7e702d3caac762dbafcb705b21db8ee88ec5aaad Mon Sep 17 00:00:00 2001 From: emontnemery Date: Mon, 19 Nov 2018 09:59:07 +0100 Subject: [PATCH] Fix small issue related to topic prefix (#18512) Fix expansion of topic prefix when discovery message contains non string-type items. --- homeassistant/components/mqtt/discovery.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/mqtt/discovery.py b/homeassistant/components/mqtt/discovery.py index 91f62cd0848..f680cd9c136 100644 --- a/homeassistant/components/mqtt/discovery.py +++ b/homeassistant/components/mqtt/discovery.py @@ -202,10 +202,11 @@ async def async_start(hass: HomeAssistantType, discovery_topic, hass_config, if TOPIC_BASE in payload: base = payload[TOPIC_BASE] for key, value in payload.items(): - if value[0] == TOPIC_BASE and key.endswith('_topic'): - payload[key] = "{}{}".format(base, value[1:]) - if value[-1] == TOPIC_BASE and key.endswith('_topic'): - payload[key] = "{}{}".format(value[:-1], base) + if isinstance(value, str): + if value[0] == TOPIC_BASE and key.endswith('_topic'): + payload[key] = "{}{}".format(base, value[1:]) + if value[-1] == TOPIC_BASE and key.endswith('_topic'): + payload[key] = "{}{}".format(value[:-1], base) # If present, the node_id will be included in the discovered object id discovery_id = '_'.join((node_id, object_id)) if node_id else object_id