diff --git a/homeassistant/components/template/alarm_control_panel.py b/homeassistant/components/template/alarm_control_panel.py index 07610a59457..9d81dce28fe 100644 --- a/homeassistant/components/template/alarm_control_panel.py +++ b/homeassistant/components/template/alarm_control_panel.py @@ -207,8 +207,9 @@ class AlarmControlPanelTemplate(TemplateEntity, AlarmControlPanelEntity): return _LOGGER.error( - "Received invalid alarm panel state: %s. Expected: %s", + "Received invalid alarm panel state: %s for entity %s. Expected: %s", result, + self.entity_id, ", ".join(_VALID_STATES), ) self._state = None diff --git a/homeassistant/components/template/cover.py b/homeassistant/components/template/cover.py index 7a05f9445f9..e1df61bf4a2 100644 --- a/homeassistant/components/template/cover.py +++ b/homeassistant/components/template/cover.py @@ -222,8 +222,9 @@ class CoverTemplate(TemplateEntity, CoverEntity): self._is_closing = state == STATE_CLOSING else: _LOGGER.error( - "Received invalid cover is_on state: %s. Expected: %s", + "Received invalid cover is_on state: %s for entity %s. Expected: %s", state, + self.entity_id, ", ".join(_VALID_STATES), ) if not self._position_template: diff --git a/homeassistant/components/template/fan.py b/homeassistant/components/template/fan.py index 2ee63e7e318..6b0fdefc2f9 100644 --- a/homeassistant/components/template/fan.py +++ b/homeassistant/components/template/fan.py @@ -285,8 +285,9 @@ class TemplateFan(TemplateEntity, FanEntity): """Set the preset_mode of the fan.""" if self.preset_modes and preset_mode not in self.preset_modes: _LOGGER.error( - "Received invalid preset_mode: %s. Expected: %s", + "Received invalid preset_mode: %s for entity %s. Expected: %s", preset_mode, + self.entity_id, self.preset_modes, ) return @@ -322,8 +323,9 @@ class TemplateFan(TemplateEntity, FanEntity): ) else: _LOGGER.error( - "Received invalid direction: %s. Expected: %s", + "Received invalid direction: %s for entity %s. Expected: %s", direction, + self.entity_id, ", ".join(_VALID_DIRECTIONS), ) @@ -341,8 +343,9 @@ class TemplateFan(TemplateEntity, FanEntity): self._state = None else: _LOGGER.error( - "Received invalid fan is_on state: %s. Expected: %s", + "Received invalid fan is_on state: %s for entity %s. Expected: %s", result, + self.entity_id, ", ".join(_VALID_STATES), ) self._state = None @@ -390,7 +393,11 @@ class TemplateFan(TemplateEntity, FanEntity): try: percentage = int(float(percentage)) except ValueError: - _LOGGER.error("Received invalid percentage: %s", percentage) + _LOGGER.error( + "Received invalid percentage: %s for entity %s", + percentage, + self.entity_id, + ) self._percentage = 0 self._preset_mode = None return @@ -399,7 +406,11 @@ class TemplateFan(TemplateEntity, FanEntity): self._percentage = percentage self._preset_mode = None else: - _LOGGER.error("Received invalid percentage: %s", percentage) + _LOGGER.error( + "Received invalid percentage: %s for entity %s", + percentage, + self.entity_id, + ) self._percentage = 0 self._preset_mode = None @@ -416,8 +427,9 @@ class TemplateFan(TemplateEntity, FanEntity): self._preset_mode = None else: _LOGGER.error( - "Received invalid preset_mode: %s. Expected: %s", + "Received invalid preset_mode: %s for entity %s. Expected: %s", preset_mode, + self.entity_id, self.preset_mode, ) self._percentage = None @@ -434,8 +446,9 @@ class TemplateFan(TemplateEntity, FanEntity): self._oscillating = None else: _LOGGER.error( - "Received invalid oscillating: %s. Expected: True/False", + "Received invalid oscillating: %s for entity %s. Expected: True/False", oscillating, + self.entity_id, ) self._oscillating = None @@ -448,8 +461,9 @@ class TemplateFan(TemplateEntity, FanEntity): self._direction = None else: _LOGGER.error( - "Received invalid direction: %s. Expected: %s", + "Received invalid direction: %s for entity %s. Expected: %s", direction, + self.entity_id, ", ".join(_VALID_DIRECTIONS), ) self._direction = None diff --git a/homeassistant/components/template/light.py b/homeassistant/components/template/light.py index d2260aa10dc..5a79b3db8fc 100644 --- a/homeassistant/components/template/light.py +++ b/homeassistant/components/template/light.py @@ -393,8 +393,9 @@ class LightTemplate(TemplateEntity, LightEntity): effect = kwargs[ATTR_EFFECT] if effect not in self._effect_list: _LOGGER.error( - "Received invalid effect: %s. Expected one of: %s", + "Received invalid effect: %s for entity %s. Expected one of: %s", effect, + self.entity_id, self._effect_list, exc_info=True, ) @@ -443,7 +444,9 @@ class LightTemplate(TemplateEntity, LightEntity): self._brightness = int(brightness) else: _LOGGER.error( - "Received invalid brightness : %s. Expected: 0-255", brightness + "Received invalid brightness : %s for entity %s. Expected: 0-255", + brightness, + self.entity_id, ) self._brightness = None except ValueError: @@ -464,7 +467,9 @@ class LightTemplate(TemplateEntity, LightEntity): self._white_value = int(white_value) else: _LOGGER.error( - "Received invalid white value: %s. Expected: 0-255", white_value + "Received invalid white value: %s for entity %s. Expected: 0-255", + white_value, + self.entity_id, ) self._white_value = None except ValueError: @@ -483,8 +488,9 @@ class LightTemplate(TemplateEntity, LightEntity): if not isinstance(effect_list, list): _LOGGER.error( - "Received invalid effect list: %s. Expected list of strings", + "Received invalid effect list: %s for entity %s. Expected list of strings", effect_list, + self.entity_id, ) self._effect_list = None return @@ -504,8 +510,9 @@ class LightTemplate(TemplateEntity, LightEntity): if effect not in self._effect_list: _LOGGER.error( - "Received invalid effect: %s. Expected one of: %s", + "Received invalid effect: %s for entity %s. Expected one of: %s", effect, + self.entity_id, self._effect_list, ) self._effect = None @@ -533,8 +540,9 @@ class LightTemplate(TemplateEntity, LightEntity): return _LOGGER.error( - "Received invalid light is_on state: %s. Expected: %s", + "Received invalid light is_on state: %s for entity %s. Expected: %s", state, + self.entity_id, ", ".join(_VALID_STATES), ) self._state = None @@ -551,8 +559,9 @@ class LightTemplate(TemplateEntity, LightEntity): self._temperature = temperature else: _LOGGER.error( - "Received invalid color temperature : %s. Expected: %s-%s", + "Received invalid color temperature : %s for entity %s. Expected: %s-%s", temperature, + self.entity_id, self.min_mireds, self.max_mireds, ) @@ -591,13 +600,16 @@ class LightTemplate(TemplateEntity, LightEntity): self._color = (h_str, s_str) elif h_str is not None and s_str is not None: _LOGGER.error( - "Received invalid hs_color : (%s, %s). Expected: (0-360, 0-100)", + "Received invalid hs_color : (%s, %s) for entity %s. Expected: (0-360, 0-100)", h_str, s_str, + self.entity_id, ) self._color = None else: - _LOGGER.error("Received invalid hs_color : (%s)", render) + _LOGGER.error( + "Received invalid hs_color : (%s) for entity %s", render, self.entity_id + ) self._color = None @callback diff --git a/homeassistant/components/template/vacuum.py b/homeassistant/components/template/vacuum.py index 2a004eabc9a..1d350d120c7 100644 --- a/homeassistant/components/template/vacuum.py +++ b/homeassistant/components/template/vacuum.py @@ -253,8 +253,9 @@ class TemplateVacuum(TemplateEntity, StateVacuumEntity): ) else: _LOGGER.error( - "Received invalid fan speed: %s. Expected: %s", + "Received invalid fan speed: %s for entity %s. Expected: %s", fan_speed, + self.entity_id, self._attr_fan_speed_list, ) @@ -298,8 +299,9 @@ class TemplateVacuum(TemplateEntity, StateVacuumEntity): self._state = None else: _LOGGER.error( - "Received invalid vacuum state: %s. Expected: %s", + "Received invalid vacuum state: %s for entity %s. Expected: %s", result, + self.entity_id, ", ".join(_VALID_STATES), ) self._state = None @@ -312,7 +314,9 @@ class TemplateVacuum(TemplateEntity, StateVacuumEntity): raise ValueError except ValueError: _LOGGER.error( - "Received invalid battery level: %s. Expected: 0-100", battery_level + "Received invalid battery level: %s for entity %s. Expected: 0-100", + battery_level, + self.entity_id, ) self._attr_battery_level = None return @@ -333,8 +337,9 @@ class TemplateVacuum(TemplateEntity, StateVacuumEntity): self._attr_fan_speed = None else: _LOGGER.error( - "Received invalid fan speed: %s. Expected: %s", + "Received invalid fan speed: %s for entity %s. Expected: %s", fan_speed, + self.entity_id, self._attr_fan_speed_list, ) self._attr_fan_speed = None diff --git a/tests/components/template/test_light.py b/tests/components/template/test_light.py index 2b877c52c4f..642fa5601cf 100644 --- a/tests/components/template/test_light.py +++ b/tests/components/template/test_light.py @@ -1025,6 +1025,7 @@ async def test_color_action_no_template(hass, start_ha, calls): ((359.9, 99.9), {"replace6": '"{{(359.9, 99.9)}}"'}), (None, {"replace6": '"{{(361, 100)}}"'}), (None, {"replace6": '"{{(360, 101)}}"'}), + (None, {"replace6": '"[{{(360)}},{{null}}]"'}), (None, {"replace6": '"{{x - 12}}"'}), (None, {"replace6": '""'}), (None, {"replace6": '"{{ none }}"'}),