Add entity id to template error logging (#71107)

* Add entity id to template error logging

* Increase coverage
This commit is contained in:
Shay Levy 2022-04-30 19:24:24 +03:00 committed by Paulus Schoutsen
parent 3ce531e2f1
commit 6a110e5a77
6 changed files with 57 additions and 23 deletions

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 }}"'}),