I’ll try this right now.
Pre upgrade
[core-ssh ~]$ ha core restart && ha core check
Processing... Done.
Command completed successfully.
Processing... Done.
Command completed successfully.
[core-ssh ~]$ ha core update
Processing... Done.
Command completed successfully.
I’ve tried another check, just in case:
[core-ssh ~]$ ha core restart && ha core check
Processing... Done.
Command completed successfully.
Processing... Done.
Error: Testing configuration at /config
ERROR:homeassistant.helpers.check_config:Unexpected error validating config
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/check_config.py", line 217, in async_check_ha_config_file
await config_validator.async_validate_config(hass, config)
File "/usr/src/homeassistant/homeassistant/components/automation/config.py", line 328, in async_validate_config
await _try_async_validate_config_item(hass, p_config)
File "/usr/src/homeassistant/homeassistant/components/automation/config.py", line 306, in _try_async_validate_config_item
return await _async_validate_config_item(hass, config, False, True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/automation/config.py", line 220, in _async_validate_config_item
automation_config[CONF_TRIGGERS] = await async_validate_trigger_config(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
hass, validated_config[CONF_TRIGGERS]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/src/homeassistant/homeassistant/helpers/trigger.py", line 1212, in async_validate_trigger_config
platform_domain, platform = await _async_get_trigger_platform(hass, trigger_key)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/trigger.py", line 1200, in _async_get_trigger_platform
await _register_trigger_platform(hass, platform, platform_module)
File "/usr/src/homeassistant/homeassistant/helpers/trigger.py", line 205, in _register_trigger_platform
triggers = hass.data[TRIGGERS]
~~~~~~~~~^^^^^^^^^^
KeyError: 'triggers'
Failed config
automation:
- Unexpected error calling config validator: 'triggers'
- [{'id': '1772958162883', 'alias': 'Droger Automatisch Uitschakelen', 'mode': 'single', 'triggers': [{'platform': 'numeric_state', 'entity_id': 'sensor.droogtrommel_vermogen', 'above': 10, 'id': 'gestart', 'for': '00:01:00'}, {'platform': 'numeric_state', 'entity_id': 'sensor.droogtrommel_vermogen', 'below': 4, 'id': 'klaar', 'for': '00:05:00'}], 'actions': [{'choose': [{'conditions': [{'condition': 'trigger', 'id': 'gestart'}, {'condition': 'state', 'entity_id': 'switch.droogtrommel', 'state': 'on'}], 'sequence': [{'target': {'entity_id': 'input_boolean.droger_actief'}, 'action': 'input_boolean.turn_on'}]}, {'conditions': [{'condition': 'trigger', 'id': 'klaar'}, {'condition': 'state', 'entity_id': 'input_boolean.droger_actief', 'state': 'on'}, {'condition': 'state', 'entity_id': 'switch.droogtrommel', 'state': 'on'}], 'sequence': [{'target': {'entity_id': 'switch.droogtrommel'}, 'action': 'switch.turn_off'}, {'target': {'entity_id': 'input_boolean.droger_actief'}, 'action': 'input_boolean.turn_off'}, {'data': {'title': 'Droger klaar!', 'message': 'De droger is klaar.'}, 'action': 'notify.familie'}]}]}], 'conditions': []}, {'id': '1772960697194', 'alias': 'Wasmachine Automatisch Uitschakelen', 'trigger': [{'platform': 'numeric_state', 'entity_id': 'sensor.wasmachine_vermogen', 'above': 10, 'id': 'gestart', 'for': '00:01:00'}, {'platform': 'numeric_state', 'entity_id': 'sensor.wasmachine_vermogen', 'below': 4, 'id': 'klaar', 'for': '00:00:15'}], 'condition': [], 'action': [{'choose': [{'conditions': [{'condition': 'trigger', 'id': 'gestart'}, {'condition': 'state', 'entity_id': 'switch.wasmachine', 'state': 'on'}], 'sequence': [{'service': 'input_boolean.turn_on', 'target': {'entity_id': 'input_boolean.wasmachine_actief'}}]}, {'conditions': [{'condition': 'trigger', 'id': 'klaar'}, {'condition': 'state', 'entity_id': 'input_boolean.wasmachine_actief', 'state': 'on'}, {'condition': 'state', 'entity_id': 'switch.wasmachine', 'state': 'on'}], 'sequence': [{'service': 'switch.turn_off', 'target': {'entity_id': 'switch.wasmachine'}}, {'service': 'input_boolean.turn_off', 'target': {'entity_id': 'input_boolean.wasmachine_actief'}}, {'service': 'notify.familie', 'data': {'title': 'Wasmachine klaar!', 'message': 'De wasmachine is klaar.'}}]}]}], 'mode': 'single'}, {'id': '1773838684136', 'alias': 'Presence verlichting + SONOS + weltrusten', 'triggers': [{'entity_id': ['person.leslie_de_groot', 'person.esther_de_groot'], 'from': 'not_home', 'to': 'home', 'id': 'thuis', 'trigger': 'state'}, {'entity_id': ['person.leslie_de_groot', 'person.esther_de_groot'], 'from': 'home', 'to': 'not_home', 'for': '00:00:15', 'id': 'weg', 'trigger': 'state'}, {'at': '03:00:00', 'id': 'nacht', 'trigger': 'time'}], 'conditions': [], 'actions': [{'choose': [{'conditions': [{'condition': 'trigger', 'id': 'thuis'}, {'condition': 'template', 'value_template': "{{ states.person\n | selectattr('state', 'eq', 'home')\n | list\n | count == 1 }}\n"}], 'sequence': [{'if': [{'condition': 'state', 'entity_id': 'light.woonkamer', 'state': 'off'}], 'then': [{'data': {'group_name': 'Woonkamer', 'scene_name': 'filament'}, 'action': 'hue.hue_activate_scene'}]}, {'target': {'entity_id': ['media_player.keuken_wsb', 'media_player.slaapkamer_wsb', 'media_player.woonkamer_wsb']}, 'data': {'volume_level': 0.3}, 'action': 'media_player.volume_set'}, {'if': [{'condition': 'template', 'value_template': "{{ not is_state_attr('media_player.woonkamer_wsb', 'group_members', ['media_player.keuken_wsb','media_player.dressoir_wsb']) }}\n"}], 'then': [{'target': {'entity_id': 'media_player.woonkamer_wsb'}, 'data': {'group_members': ['media_player.keuken_wsb']}, 'action': 'media_player.join'}]}]}, {'conditions': [{'condition': 'trigger', 'id': 'weg'}, {'condition': 'template', 'value_template': "{{ states.person\n | selectattr('state', 'eq', 'home')\n | list\n | count == 0 }}\n"}], 'sequence': [{'target': {'entity_id': ['light.woonkamer', 'light.slaapkamer']}, 'action': 'light.turn_off'}, {'target': {'device_id': ['28b41e081520c3bb215ceddcca86d864', 'fda4c14be16f4a32a303fd84d03be43f']}, 'action': 'remote.turn_off'}, {'target': {'entity_id': 'media_player.lg_webos_tv_2'}, 'action': 'media_player.turn_off'}, {'target': {'entity_id': ['media_player.keuken_wsb', 'media_player.slaapkamer_wsb', 'media_player.woonkamer_wsb']}, 'action': 'media_player.media_stop', 'data': {}}]}, {'conditions': [{'condition': 'trigger', 'id': 'nacht'}], 'sequence': [{'target': {'entity_id': ['light.woonkamer', 'light.slaapkamer']}, 'action': 'light.turn_off'}, {'target': {'entity_id': 'media_player.lg_webos_tv_2'}, 'action': 'media_player.turn_off'}, {'target': {'entity_id': ['media_player.keuken_wsb', 'media_player.slaapkamer_wsb', 'media_player.woonkamer_wsb']}, 'action': 'media_player.media_stop', 'data': {}}]}]}], 'mode': 'single'}, {'id': '1775214060676', 'alias': 'Gang Motion', 'use_blueprint': {'path': 'motion/motion_light.yaml', 'input': {'motion_sensor': 'binary_sensor.gang_motion_sensor_beweging', 'light_target': {'entity_id': 'light.gang'}, 'ruimte_naam': 'Gang', 'master_switch': 'input_boolean.gang_motion_master_switch'}}}, {'id': '1775214624881', 'alias': 'Wasruimte motion', 'use_blueprint': {'path': 'motion/motion_light.yaml', 'input': {'motion_sensor': 'binary_sensor.wasruimte_beweging_2', 'light_target': {'entity_id': 'light.wasruimte_2'}, 'ruimte_naam': 'Wasruimte', 'master_switch': 'input_boolean.wasruimte_motion_master_switch', 'sleep_enabled': False}}}, {'id': '1775218740871', 'alias': 'Batterij meldingen PRO', 'triggers': [{'entity_id': ['sensor.wasruimte_batterij', 'sensor.eettafel_schakelaar_batterij', 'sensor.woonkamer_buitendeur_batterij', 'sensor.woonkamer_intercom_batterij', 'sensor.leslie_schakelaar_batterij', 'sensor.keuken_schakelaar_batterij', 'sensor.gang_motion_sensor_batterij', 'sensor.esther_schakelaar_batterij'], 'trigger': 'state'}], 'conditions': [{'condition': 'template', 'value_template': "{{ trigger.to_state is not none and\n trigger.to_state.state not in ['unknown','unavailable','none'] }}\n"}, {'condition': 'template', 'value_template': '{{ this.attributes.last_triggered is none or\n (now() - this.attributes.last_triggered).total_seconds() > 86400 }}\n'}], 'actions': [{'variables': {'kritisch': "{% set ns = namespace(v=[]) %} {% for e in [\n 'sensor.wasruimte_batterij',\n 'sensor.eettafel_schakelaar_batterij',\n 'sensor.woonkamer_buitendeur_batterij',\n 'sensor.woonkamer_intercom_batterij',\n 'sensor.leslie_schakelaar_batterij',\n 'sensor.keuken_schakelaar_batterij',\n 'sensor.gang_motion_sensor_batterij',\n 'sensor.esther_schakelaar_batterij'\n] %} {% set val = states(e) | replace('%','') | float(100) %} {% if val <= 10 %}\n {% set ns.v = ns.v + [(state_attr(e,'friendly_name') or e) ~ ' (' ~ (val|int) ~ '%)'] %}\n{% endif %} {% endfor %} {{ ns.v }}\n", 'laag': "{% set ns = namespace(v=[]) %} {% for e in [\n 'sensor.wasruimte_batterij',\n 'sensor.eettafel_schakelaar_batterij',\n 'sensor.woonkamer_buitendeur_batterij',\n 'sensor.woonkamer_intercom_batterij',\n 'sensor.leslie_schakelaar_batterij',\n 'sensor.keuken_schakelaar_batterij',\n 'sensor.gang_motion_sensor_batterij',\n 'sensor.esther_schakelaar_batterij'\n] %} {% set val = states(e) | replace('%','') | float(100) %} {% if val > 10 and val <= 15 %}\n {% set ns.v = ns.v + [(state_attr(e,'friendly_name') or e) ~ ' (' ~ (val|int) ~ '%)'] %}\n{% endif %} {% endfor %} {{ ns.v }}\n"}}, {'choose': [{'conditions': [{'condition': 'template', 'value_template': '{{ kritisch | count > 0 }}'}], 'sequence': [{'data': {'title': '🔴 Batterijen kritiek', 'message': "- {{ kritisch | join('\\n- ') }}\n"}, 'action': 'notify.familie'}]}, {'conditions': [{'condition': 'template', 'value_template': '{{ laag | count > 0 }}'}], 'sequence': [{'data': {'title': '🟠 Batterijen laag', 'message': "- {{ laag | join('\\n- ') }}\n"}, 'action': 'notify.familie'}]}]}], 'mode': 'single'}]
Successful config (partial)
automation:
I will try to fix it by using the advice from @petro
[core-ssh ~]$ ha core restart && ha core check
Processing... Done.
Command completed successfully.
Processing... Done.
Error: Testing configuration at /config
ERROR:homeassistant.helpers.check_config:Unexpected error validating config
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/check_config.py", line 217, in async_check_ha_config_file
await config_validator.async_validate_config(hass, config)
File "/usr/src/homeassistant/homeassistant/components/automation/config.py", line 328, in async_validate_config
await _try_async_validate_config_item(hass, p_config)
File "/usr/src/homeassistant/homeassistant/components/automation/config.py", line 306, in _try_async_validate_config_item
return await _async_validate_config_item(hass, config, False, True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/automation/config.py", line 220, in _async_validate_config_item
automation_config[CONF_TRIGGERS] = await async_validate_trigger_config(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
hass, validated_config[CONF_TRIGGERS]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/src/homeassistant/homeassistant/helpers/trigger.py", line 1212, in async_validate_trigger_config
platform_domain, platform = await _async_get_trigger_platform(hass, trigger_key)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/trigger.py", line 1200, in _async_get_trigger_platform
await _register_trigger_platform(hass, platform, platform_module)
File "/usr/src/homeassistant/homeassistant/helpers/trigger.py", line 205, in _register_trigger_platform
triggers = hass.data[TRIGGERS]
~~~~~~~~~^^^^^^^^^^
KeyError: 'triggers'
Failed config
automation:
- Unexpected error calling config validator: 'triggers'
- [{'id': '1772958162883', 'alias': 'Droger Automatisch Uitschakelen', 'triggers': [{'platform': 'numeric_state', 'entity_id': 'sensor.droogtrommel_vermogen', 'above': 10, 'id': 'gestart', 'for': '00:01:00'}, {'platform': 'numeric_state', 'entity_id': 'sensor.droogtrommel_vermogen', 'below': 4, 'id': 'klaar', 'for': '00:05:00'}], 'mode': 'single', 'actions': [{'choose': [{'conditions': [{'condition': 'trigger', 'id': 'gestart'}, {'condition': 'state', 'entity_id': 'switch.droogtrommel', 'state': 'on'}], 'sequence': [{'target': {'entity_id': 'input_boolean.droger_actief'}, 'action': 'input_boolean.turn_on'}]}, {'conditions': [{'condition': 'trigger', 'id': 'klaar'}, {'condition': 'state', 'entity_id': 'input_boolean.droger_actief', 'state': 'on'}, {'condition': 'state', 'entity_id': 'switch.droogtrommel', 'state': 'on'}], 'sequence': [{'target': {'entity_id': 'switch.droogtrommel'}, 'action': 'switch.turn_off'}, {'target': {'entity_id': 'input_boolean.droger_actief'}, 'action': 'input_boolean.turn_off'}, {'data': {'title': 'Droger klaar!', 'message': 'De droger is klaar.'}, 'action': 'notify.familie'}]}]}], 'conditions': []}, {'id': '1772960697194', 'alias': 'Wasmachine Automatisch Uitschakelen', 'triggers': [{'platform': 'numeric_state', 'entity_id': 'sensor.wasmachine_vermogen', 'above': 10, 'id': 'gestart', 'for': '00:01:00'}, {'platform': 'numeric_state', 'entity_id': 'sensor.wasmachine_vermogen', 'below': 4, 'id': 'klaar', 'for': '00:00:15'}], 'condition': [], 'action': [{'choose': [{'conditions': [{'condition': 'trigger', 'id': 'gestart'}, {'condition': 'state', 'entity_id': 'switch.wasmachine', 'state': 'on'}], 'sequence': [{'service': 'input_boolean.turn_on', 'target': {'entity_id': 'input_boolean.wasmachine_actief'}}]}, {'conditions': [{'condition': 'trigger', 'id': 'klaar'}, {'condition': 'state', 'entity_id': 'input_boolean.wasmachine_actief', 'state': 'on'}, {'condition': 'state', 'entity_id': 'switch.wasmachine', 'state': 'on'}], 'sequence': [{'service': 'switch.turn_off', 'target': {'entity_id': 'switch.wasmachine'}}, {'service': 'input_boolean.turn_off', 'target': {'entity_id': 'input_boolean.wasmachine_actief'}}, {'service': 'notify.familie', 'data': {'title': 'Wasmachine klaar!', 'message': 'De wasmachine is klaar.'}}]}]}], 'mode': 'single'}, {'id': '1773838684136', 'alias': 'Presence verlichting + SONOS + weltrusten', 'triggers': [{'entity_id': ['person.leslie_de_groot', 'person.esther_de_groot'], 'from': 'not_home', 'to': 'home', 'id': 'thuis', 'triggers': 'state'}, {'entity_id': ['person.leslie_de_groot', 'person.esther_de_groot'], 'from': 'home', 'to': 'not_home', 'for': '00:00:15', 'id': 'weg', 'triggers': 'state'}, {'at': '03:00:00', 'id': 'nacht', 'triggers': 'time'}], 'conditions': [], 'actions': [{'choose': [{'conditions': [{'condition': 'trigger', 'id': 'thuis'}, {'condition': 'template', 'value_template': "{{ states.person\n | selectattr('state', 'eq', 'home')\n | list\n | count == 1 }}\n"}], 'sequence': [{'if': [{'condition': 'state', 'entity_id': 'light.woonkamer', 'state': 'off'}], 'then': [{'data': {'group_name': 'Woonkamer', 'scene_name': 'filament'}, 'action': 'hue.hue_activate_scene'}]}, {'target': {'entity_id': ['media_player.keuken_wsb', 'media_player.slaapkamer_wsb', 'media_player.woonkamer_wsb']}, 'data': {'volume_level': 0.3}, 'action': 'media_player.volume_set'}, {'if': [{'condition': 'template', 'value_template': "{{ not is_state_attr('media_player.woonkamer_wsb', 'group_members', ['media_player.keuken_wsb','media_player.dressoir_wsb']) }}\n"}], 'then': [{'target': {'entity_id': 'media_player.woonkamer_wsb'}, 'data': {'group_members': ['media_player.keuken_wsb']}, 'action': 'media_player.join'}]}]}, {'conditions': [{'condition': 'trigger', 'id': 'weg'}, {'condition': 'template', 'value_template': "{{ states.person\n | selectattr('state', 'eq', 'home')\n | list\n | count == 0 }}\n"}], 'sequence': [{'target': {'entity_id': ['light.woonkamer', 'light.slaapkamer']}, 'action': 'light.turn_off'}, {'target': {'device_id': ['28b41e081520c3bb215ceddcca86d864', 'fda4c14be16f4a32a303fd84d03be43f']}, 'action': 'remote.turn_off'}, {'target': {'entity_id': 'media_player.lg_webos_tv_2'}, 'action': 'media_player.turn_off'}, {'target': {'entity_id': ['media_player.keuken_wsb', 'media_player.slaapkamer_wsb', 'media_player.woonkamer_wsb']}, 'action': 'media_player.media_stop', 'data': {}}]}, {'conditions': [{'condition': 'trigger', 'id': 'nacht'}], 'sequence': [{'target': {'entity_id': ['light.woonkamer', 'light.slaapkamer']}, 'action': 'light.turn_off'}, {'target': {'entity_id': 'media_player.lg_webos_tv_2'}, 'action': 'media_player.turn_off'}, {'target': {'entity_id': ['media_player.keuken_wsb', 'media_player.slaapkamer_wsb', 'media_player.woonkamer_wsb']}, 'action': 'media_player.media_stop', 'data': {}}]}]}], 'mode': 'single'}, {'id': '1775214060676', 'alias': 'Gang Motion', 'use_blueprint': {'path': 'motion/motion_light.yaml', 'input': {'motion_sensor': 'binary_sensor.gang_motion_sensor_beweging', 'light_target': {'entity_id': 'light.gang'}, 'ruimte_naam': 'Gang', 'master_switch': 'input_boolean.gang_motion_master_switch'}}}, {'id': '1775214624881', 'alias': 'Wasruimte motion', 'use_blueprint': {'path': 'motion/motion_light.yaml', 'input': {'motion_sensor': 'binary_sensor.wasruimte_beweging_2', 'light_target': {'entity_id': 'light.wasruimte_2'}, 'ruimte_naam': 'Wasruimte', 'master_switch': 'input_boolean.wasruimte_motion_master_switch', 'sleep_enabled': False}}}, {'id': '1775218740871', 'alias': 'Batterij meldingen PRO', 'triggers': [{'entity_id': ['sensor.wasruimte_batterij', 'sensor.eettafel_schakelaar_batterij', 'sensor.woonkamer_buitendeur_batterij', 'sensor.woonkamer_intercom_batterij', 'sensor.leslie_schakelaar_batterij', 'sensor.keuken_schakelaar_batterij', 'sensor.gang_motion_sensor_batterij', 'sensor.esther_schakelaar_batterij'], 'triggers': 'state'}], 'conditions': [{'condition': 'template', 'value_template': "{{ trigger.to_state is not none and\n trigger.to_state.state not in ['unknown','unavailable','none'] }}\n"}, {'condition': 'template', 'value_template': '{{ this.attributes.last_triggered is none or\n (now() - this.attributes.last_triggered).total_seconds() > 86400 }}\n'}], 'actions': [{'variables': {'kritisch': "{% set ns = namespace(v=[]) %} {% for e in [\n 'sensor.wasruimte_batterij',\n 'sensor.eettafel_schakelaar_batterij',\n 'sensor.woonkamer_buitendeur_batterij',\n 'sensor.woonkamer_intercom_batterij',\n 'sensor.leslie_schakelaar_batterij',\n 'sensor.keuken_schakelaar_batterij',\n 'sensor.gang_motion_sensor_batterij',\n 'sensor.esther_schakelaar_batterij'\n] %} {% set val = states(e) | replace('%','') | float(100) %} {% if val <= 10 %}\n {% set ns.v = ns.v + [(state_attr(e,'friendly_name') or e) ~ ' (' ~ (val|int) ~ '%)'] %}\n{% endif %} {% endfor %} {{ ns.v }}\n", 'laag': "{% set ns = namespace(v=[]) %} {% for e in [\n 'sensor.wasruimte_batterij',\n 'sensor.eettafel_schakelaar_batterij',\n 'sensor.woonkamer_buitendeur_batterij',\n 'sensor.woonkamer_intercom_batterij',\n 'sensor.leslie_schakelaar_batterij',\n 'sensor.keuken_schakelaar_batterij',\n 'sensor.gang_motion_sensor_batterij',\n 'sensor.esther_schakelaar_batterij'\n] %} {% set val = states(e) | replace('%','') | float(100) %} {% if val > 10 and val <= 15 %}\n {% set ns.v = ns.v + [(state_attr(e,'friendly_name') or e) ~ ' (' ~ (val|int) ~ '%)'] %}\n{% endif %} {% endfor %} {{ ns.v }}\n"}}, {'choose': [{'conditions': [{'condition': 'template', 'value_template': '{{ kritisch | count > 0 }}'}], 'sequence': [{'data': {'title': '🔴 Batterijen kritiek', 'message': "- {{ kritisch | join('\\n- ') }}\n"}, 'action': 'notify.familie'}]}, {'conditions': [{'condition': 'template', 'value_template': '{{ laag | count > 0 }}'}], 'sequence': [{'data': {'title': '🟠 Batterijen laag', 'message': "- {{ laag | join('\\n- ') }}\n"}, 'action': 'notify.familie'}]}]}], 'mode': 'single'}]
Successful config (partial)
automation: