Add additional error handling for automation script run (#45613)

pull/45639/head
Marc Mueller 2021-01-28 09:26:41 +01:00 committed by GitHub
parent 5711d61b38
commit 7673f57248
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 0 deletions

View File

@ -404,6 +404,12 @@ class AutomationEntity(ToggleEntity, RestoreEntity):
await self.action_script.async_run(
variables, trigger_context, started_action
)
except (vol.Invalid, HomeAssistantError) as err:
self._logger.error(
"Error while executing automation %s: %s",
self.entity_id,
err,
)
except Exception: # pylint: disable=broad-except
self._logger.exception("While executing automation %s", self.entity_id)

View File

@ -291,6 +291,9 @@ class _ScriptRun:
elif isinstance(exception, exceptions.ServiceNotFound):
error_desc = "Service not found"
elif isinstance(exception, exceptions.HomeAssistantError):
error_desc = "Error"
else:
error_desc = "Unexpected error"
level = _LOG_EXCEPTION

View File

@ -947,6 +947,7 @@ async def test_automation_with_error_in_script(hass, caplog):
hass.bus.async_fire("test_event")
await hass.async_block_till_done()
assert "Service not found" in caplog.text
assert "Traceback" not in caplog.text
async def test_automation_with_error_in_script_2(hass, caplog):