mirror of
https://github.com/home-assistant/core.git
synced 2025-07-16 01:37:08 +00:00
Add entity id to template error logging (#71107)
* Add entity id to template error logging * Increase coverage
This commit is contained in:
parent
3ce531e2f1
commit
6a110e5a77
@ -207,8 +207,9 @@ class AlarmControlPanelTemplate(TemplateEntity, AlarmControlPanelEntity):
|
|||||||
return
|
return
|
||||||
|
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid alarm panel state: %s. Expected: %s",
|
"Received invalid alarm panel state: %s for entity %s. Expected: %s",
|
||||||
result,
|
result,
|
||||||
|
self.entity_id,
|
||||||
", ".join(_VALID_STATES),
|
", ".join(_VALID_STATES),
|
||||||
)
|
)
|
||||||
self._state = None
|
self._state = None
|
||||||
|
@ -222,8 +222,9 @@ class CoverTemplate(TemplateEntity, CoverEntity):
|
|||||||
self._is_closing = state == STATE_CLOSING
|
self._is_closing = state == STATE_CLOSING
|
||||||
else:
|
else:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid cover is_on state: %s. Expected: %s",
|
"Received invalid cover is_on state: %s for entity %s. Expected: %s",
|
||||||
state,
|
state,
|
||||||
|
self.entity_id,
|
||||||
", ".join(_VALID_STATES),
|
", ".join(_VALID_STATES),
|
||||||
)
|
)
|
||||||
if not self._position_template:
|
if not self._position_template:
|
||||||
|
@ -285,8 +285,9 @@ class TemplateFan(TemplateEntity, FanEntity):
|
|||||||
"""Set the preset_mode of the fan."""
|
"""Set the preset_mode of the fan."""
|
||||||
if self.preset_modes and preset_mode not in self.preset_modes:
|
if self.preset_modes and preset_mode not in self.preset_modes:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid preset_mode: %s. Expected: %s",
|
"Received invalid preset_mode: %s for entity %s. Expected: %s",
|
||||||
preset_mode,
|
preset_mode,
|
||||||
|
self.entity_id,
|
||||||
self.preset_modes,
|
self.preset_modes,
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
@ -322,8 +323,9 @@ class TemplateFan(TemplateEntity, FanEntity):
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid direction: %s. Expected: %s",
|
"Received invalid direction: %s for entity %s. Expected: %s",
|
||||||
direction,
|
direction,
|
||||||
|
self.entity_id,
|
||||||
", ".join(_VALID_DIRECTIONS),
|
", ".join(_VALID_DIRECTIONS),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -341,8 +343,9 @@ class TemplateFan(TemplateEntity, FanEntity):
|
|||||||
self._state = None
|
self._state = None
|
||||||
else:
|
else:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid fan is_on state: %s. Expected: %s",
|
"Received invalid fan is_on state: %s for entity %s. Expected: %s",
|
||||||
result,
|
result,
|
||||||
|
self.entity_id,
|
||||||
", ".join(_VALID_STATES),
|
", ".join(_VALID_STATES),
|
||||||
)
|
)
|
||||||
self._state = None
|
self._state = None
|
||||||
@ -390,7 +393,11 @@ class TemplateFan(TemplateEntity, FanEntity):
|
|||||||
try:
|
try:
|
||||||
percentage = int(float(percentage))
|
percentage = int(float(percentage))
|
||||||
except ValueError:
|
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._percentage = 0
|
||||||
self._preset_mode = None
|
self._preset_mode = None
|
||||||
return
|
return
|
||||||
@ -399,7 +406,11 @@ class TemplateFan(TemplateEntity, FanEntity):
|
|||||||
self._percentage = percentage
|
self._percentage = percentage
|
||||||
self._preset_mode = None
|
self._preset_mode = None
|
||||||
else:
|
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._percentage = 0
|
||||||
self._preset_mode = None
|
self._preset_mode = None
|
||||||
|
|
||||||
@ -416,8 +427,9 @@ class TemplateFan(TemplateEntity, FanEntity):
|
|||||||
self._preset_mode = None
|
self._preset_mode = None
|
||||||
else:
|
else:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid preset_mode: %s. Expected: %s",
|
"Received invalid preset_mode: %s for entity %s. Expected: %s",
|
||||||
preset_mode,
|
preset_mode,
|
||||||
|
self.entity_id,
|
||||||
self.preset_mode,
|
self.preset_mode,
|
||||||
)
|
)
|
||||||
self._percentage = None
|
self._percentage = None
|
||||||
@ -434,8 +446,9 @@ class TemplateFan(TemplateEntity, FanEntity):
|
|||||||
self._oscillating = None
|
self._oscillating = None
|
||||||
else:
|
else:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid oscillating: %s. Expected: True/False",
|
"Received invalid oscillating: %s for entity %s. Expected: True/False",
|
||||||
oscillating,
|
oscillating,
|
||||||
|
self.entity_id,
|
||||||
)
|
)
|
||||||
self._oscillating = None
|
self._oscillating = None
|
||||||
|
|
||||||
@ -448,8 +461,9 @@ class TemplateFan(TemplateEntity, FanEntity):
|
|||||||
self._direction = None
|
self._direction = None
|
||||||
else:
|
else:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid direction: %s. Expected: %s",
|
"Received invalid direction: %s for entity %s. Expected: %s",
|
||||||
direction,
|
direction,
|
||||||
|
self.entity_id,
|
||||||
", ".join(_VALID_DIRECTIONS),
|
", ".join(_VALID_DIRECTIONS),
|
||||||
)
|
)
|
||||||
self._direction = None
|
self._direction = None
|
||||||
|
@ -393,8 +393,9 @@ class LightTemplate(TemplateEntity, LightEntity):
|
|||||||
effect = kwargs[ATTR_EFFECT]
|
effect = kwargs[ATTR_EFFECT]
|
||||||
if effect not in self._effect_list:
|
if effect not in self._effect_list:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid effect: %s. Expected one of: %s",
|
"Received invalid effect: %s for entity %s. Expected one of: %s",
|
||||||
effect,
|
effect,
|
||||||
|
self.entity_id,
|
||||||
self._effect_list,
|
self._effect_list,
|
||||||
exc_info=True,
|
exc_info=True,
|
||||||
)
|
)
|
||||||
@ -443,7 +444,9 @@ class LightTemplate(TemplateEntity, LightEntity):
|
|||||||
self._brightness = int(brightness)
|
self._brightness = int(brightness)
|
||||||
else:
|
else:
|
||||||
_LOGGER.error(
|
_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
|
self._brightness = None
|
||||||
except ValueError:
|
except ValueError:
|
||||||
@ -464,7 +467,9 @@ class LightTemplate(TemplateEntity, LightEntity):
|
|||||||
self._white_value = int(white_value)
|
self._white_value = int(white_value)
|
||||||
else:
|
else:
|
||||||
_LOGGER.error(
|
_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
|
self._white_value = None
|
||||||
except ValueError:
|
except ValueError:
|
||||||
@ -483,8 +488,9 @@ class LightTemplate(TemplateEntity, LightEntity):
|
|||||||
|
|
||||||
if not isinstance(effect_list, list):
|
if not isinstance(effect_list, list):
|
||||||
_LOGGER.error(
|
_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,
|
effect_list,
|
||||||
|
self.entity_id,
|
||||||
)
|
)
|
||||||
self._effect_list = None
|
self._effect_list = None
|
||||||
return
|
return
|
||||||
@ -504,8 +510,9 @@ class LightTemplate(TemplateEntity, LightEntity):
|
|||||||
|
|
||||||
if effect not in self._effect_list:
|
if effect not in self._effect_list:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid effect: %s. Expected one of: %s",
|
"Received invalid effect: %s for entity %s. Expected one of: %s",
|
||||||
effect,
|
effect,
|
||||||
|
self.entity_id,
|
||||||
self._effect_list,
|
self._effect_list,
|
||||||
)
|
)
|
||||||
self._effect = None
|
self._effect = None
|
||||||
@ -533,8 +540,9 @@ class LightTemplate(TemplateEntity, LightEntity):
|
|||||||
return
|
return
|
||||||
|
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid light is_on state: %s. Expected: %s",
|
"Received invalid light is_on state: %s for entity %s. Expected: %s",
|
||||||
state,
|
state,
|
||||||
|
self.entity_id,
|
||||||
", ".join(_VALID_STATES),
|
", ".join(_VALID_STATES),
|
||||||
)
|
)
|
||||||
self._state = None
|
self._state = None
|
||||||
@ -551,8 +559,9 @@ class LightTemplate(TemplateEntity, LightEntity):
|
|||||||
self._temperature = temperature
|
self._temperature = temperature
|
||||||
else:
|
else:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid color temperature : %s. Expected: %s-%s",
|
"Received invalid color temperature : %s for entity %s. Expected: %s-%s",
|
||||||
temperature,
|
temperature,
|
||||||
|
self.entity_id,
|
||||||
self.min_mireds,
|
self.min_mireds,
|
||||||
self.max_mireds,
|
self.max_mireds,
|
||||||
)
|
)
|
||||||
@ -591,13 +600,16 @@ class LightTemplate(TemplateEntity, LightEntity):
|
|||||||
self._color = (h_str, s_str)
|
self._color = (h_str, s_str)
|
||||||
elif h_str is not None and s_str is not None:
|
elif h_str is not None and s_str is not None:
|
||||||
_LOGGER.error(
|
_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,
|
h_str,
|
||||||
s_str,
|
s_str,
|
||||||
|
self.entity_id,
|
||||||
)
|
)
|
||||||
self._color = None
|
self._color = None
|
||||||
else:
|
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
|
self._color = None
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
|
@ -253,8 +253,9 @@ class TemplateVacuum(TemplateEntity, StateVacuumEntity):
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid fan speed: %s. Expected: %s",
|
"Received invalid fan speed: %s for entity %s. Expected: %s",
|
||||||
fan_speed,
|
fan_speed,
|
||||||
|
self.entity_id,
|
||||||
self._attr_fan_speed_list,
|
self._attr_fan_speed_list,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -298,8 +299,9 @@ class TemplateVacuum(TemplateEntity, StateVacuumEntity):
|
|||||||
self._state = None
|
self._state = None
|
||||||
else:
|
else:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid vacuum state: %s. Expected: %s",
|
"Received invalid vacuum state: %s for entity %s. Expected: %s",
|
||||||
result,
|
result,
|
||||||
|
self.entity_id,
|
||||||
", ".join(_VALID_STATES),
|
", ".join(_VALID_STATES),
|
||||||
)
|
)
|
||||||
self._state = None
|
self._state = None
|
||||||
@ -312,7 +314,9 @@ class TemplateVacuum(TemplateEntity, StateVacuumEntity):
|
|||||||
raise ValueError
|
raise ValueError
|
||||||
except ValueError:
|
except ValueError:
|
||||||
_LOGGER.error(
|
_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
|
self._attr_battery_level = None
|
||||||
return
|
return
|
||||||
@ -333,8 +337,9 @@ class TemplateVacuum(TemplateEntity, StateVacuumEntity):
|
|||||||
self._attr_fan_speed = None
|
self._attr_fan_speed = None
|
||||||
else:
|
else:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Received invalid fan speed: %s. Expected: %s",
|
"Received invalid fan speed: %s for entity %s. Expected: %s",
|
||||||
fan_speed,
|
fan_speed,
|
||||||
|
self.entity_id,
|
||||||
self._attr_fan_speed_list,
|
self._attr_fan_speed_list,
|
||||||
)
|
)
|
||||||
self._attr_fan_speed = None
|
self._attr_fan_speed = None
|
||||||
|
@ -1025,6 +1025,7 @@ async def test_color_action_no_template(hass, start_ha, calls):
|
|||||||
((359.9, 99.9), {"replace6": '"{{(359.9, 99.9)}}"'}),
|
((359.9, 99.9), {"replace6": '"{{(359.9, 99.9)}}"'}),
|
||||||
(None, {"replace6": '"{{(361, 100)}}"'}),
|
(None, {"replace6": '"{{(361, 100)}}"'}),
|
||||||
(None, {"replace6": '"{{(360, 101)}}"'}),
|
(None, {"replace6": '"{{(360, 101)}}"'}),
|
||||||
|
(None, {"replace6": '"[{{(360)}},{{null}}]"'}),
|
||||||
(None, {"replace6": '"{{x - 12}}"'}),
|
(None, {"replace6": '"{{x - 12}}"'}),
|
||||||
(None, {"replace6": '""'}),
|
(None, {"replace6": '""'}),
|
||||||
(None, {"replace6": '"{{ none }}"'}),
|
(None, {"replace6": '"{{ none }}"'}),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user