Upgrade from 2021.10.7 to 2021.12.8 config validation issues

Hi all,

I try to be careful when upgrading Home Assistant (on my NUC, supported install), and I always run the configuration checker before doing so. I’ve been holding off upgrading since I keep getting an error in the configuration checker that I can’t figure out how to track down. Below is the relevant chunk from the log. It looks like it doesn’t like something in my automations, but they’re totally vanilla and I don’t see what it could be … Does anyone see where the problem is? Searching the forum hasn’t turned up a similar issue to this unfortunately …

Thanks!

ERROR:homeassistant.helpers.check_config:Unexpected error validating config
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/homeassistant/helpers/check_config.py", line 161, in async_check_ha_config_file
    await config_validator.async_validate_config(  # type: ignore
  File "/usr/local/lib/python3.9/site-packages/homeassistant/components/automation/config.py", line 129, in async_validate_config
    await asyncio.gather(
  File "/usr/local/lib/python3.9/site-packages/homeassistant/components/automation/config.py", line 106, in _try_async_validate_config_item
    config = await async_validate_config_item(hass, config, full_config)
  File "/usr/local/lib/python3.9/site-packages/homeassistant/components/automation/config.py", line 74, in async_validate_config_item
    config[CONF_TRIGGER] = await async_validate_trigger_config(
  File "/usr/local/lib/python3.9/site-packages/homeassistant/helpers/trigger.py", line 50, in async_validate_trigger_config
    conf = await platform.async_validate_trigger_config(hass, conf)
  File "/usr/local/lib/python3.9/site-packages/homeassistant/components/device_automation/trigger.py", line 26, in async_validate_trigger_config
    return await getattr(platform, "async_validate_trigger_config")(hass, config)
  File "/usr/local/lib/python3.9/site-packages/homeassistant/components/zwave_js/device_trigger.py", line 220, in async_validate_trigger_config
    if async_is_device_config_entry_not_loaded(hass, config[CONF_DEVICE_ID]):
  File "/usr/local/lib/python3.9/site-packages/homeassistant/components/zwave_js/helpers.py", line 283, in async_is_device_config_entry_not_loaded
    return any(
  File "/usr/local/lib/python3.9/site-packages/homeassistant/components/zwave_js/helpers.py", line 284, in <genexpr>
    (entry := hass.config_entries.async_get_entry(entry_id))
AttributeError: 'NoneType' object has no attribute 'async_get_entry'
INFO:homeassistant.util.package:Attempting install of pysabnzbd==1.1.0
INFO:homeassistant.util.package:Attempting install of netdisco==3.0.0
INFO:homeassistant.util.package:Attempting install of spotipy==2.19.0
e[1;37mFailed confige[0m
  e[1;31mautomation:e[0m e[31me[31m
    - Unexpected error calling config validator: 'NoneType' object has no attribute 'async_get_entry'
    - [OrderedDict([('id', '1616945951282'), ('alias', 'Nightly Backup'), ('description', ''), ('trigger', [OrderedDict([('platform', 'time'), ('at', '01:00:00')])]), ('condition', []), ('action', [OrderedDict([('service', 'hassio.addon_start'), ('data', OrderedDict([('addon', '36883ed7_remote_backup')]))])]), ('mode', 'single')]), OrderedDict([('id', '1634587624483'), ('alias', 'Modbus_Floorheat_SCR_Output'), ('description', ''), ('trigger', [OrderedDict([('platform', 'state'), ('entity_id', 'sensor.sunroom_floor_heat_output'), ('id', 'sunroom_scr')])]), ('condition', []), ('action', [OrderedDict([('service', 'modbus.write_register'), ('data', OrderedDict([('address', 0), ('unit', 0), ('hub', 'io'), ('value', '{{ states.sensor.sunroom_floor_heat_output.state|int * 500}}')]))])]), ('mode', 'single')]), OrderedDict([('id', '1636210412977'), ('alias', 'Sunroom floor heat enable contactor when thermostat is on'), ('description', ''), ('trigger', [OrderedDict([('platform', 'state'), ('entity_id', 'sensor.sunroom_floor_heat_status')])]), ('condition', [OrderedDict([('condition', 'or'), ('conditions', [OrderedDict([('condition', 'state'), ('entity_id', 'sensor.sunroom_floor_heat_status'), ('state', 'idle')]), OrderedDict([('condition', 'state'), ('entity_id', 'sensor.sunroom_floor_heat_status'), ('state', 'heating')])])])]), ('action', [OrderedDict([('service', 'switch.turn_on'), ('target', OrderedDict([('entity_id', 'switch.floor_heat_enable')]))])]), ('mode', 'single')]), OrderedDict([('id', '1636210472651'), ('alias', 'Sunroom floor heat disable contactor when thermostat is off'), ('description', ''), ('trigger', [OrderedDict([('platform', 'state'), ('entity_id', 'sensor.sunroom_floor_heat_status')])]), ('condition', [OrderedDict([('condition', 'state'), ('entity_id', 'sensor.sunroom_floor_heat_status'), ('state', 'off')])]), ('action', [OrderedDict([('service', 'switch.turn_off'), ('target', OrderedDict([('entity_id', 'switch.floor_heat_enable')]))])]), ('mode', 'single')]), OrderedDict([('id', '1638636636400'), ('alias', 'Holiday Window Candles and Tree 1 and 2 On at Dusk'), ('description', ''), ('trigger', [OrderedDict([('platform', 'sun'), ('event', 'sunset'), ('offset', '-01:00')])]), ('condition', []), ('action', [OrderedDict([('scene', 'scene.window_candles')]), OrderedDict([('type', 'turn_on'), ('device_id', 'c1d32a73d2a0e5e6e819406d5f061b84'), ('entity_id', 'switch.on_off_plug_in_unit_16'), ('domain', 'switch')]), OrderedDict([('type', 'turn_on'), ('device_id', '6856d1d960363a0e60ae1ae6c9c92438'), ('entity_id', 'switch.on_off_plug_in_unit_17'), ('domain', 'switch')]), OrderedDict([('type', 'turn_on'), ('device_id', '107b5d7365dfa283ecd9b95bbf671ba2'), ('entity_id', 'switch.holiday_swl_outdoor_front_drv'), ('domain', 'switch')])]), ('mode', 'single')]), OrderedDict([('id', '1638636724617'), ('alias', 'Holiday Lights All Off at Midnight'), ('description', ''), ('trigger', [OrderedDict([('platform', 'time'), ('at', '00:00:00')])]), ('condition', []), ('action', [OrderedDict([('scene', 'scene.window_candles_off')]), OrderedDict([('type', 'turn_off'), ('device_id', 'c1d32a73d2a0e5e6e819406d5f061b84'), ('entity_id', 'switch.on_off_plug_in_unit_16'), ('domain', 'switch')]), OrderedDict([('type', 'turn_off'), ('device_id', '6856d1d960363a0e60ae1ae6c9c92438'), ('entity_id', 'switch.on_off_plug_in_unit_17'), ('domain', 'switch')]), OrderedDict([('type', 'turn_off'), ('device_id', '107b5d7365dfa283ecd9b95bbf671ba2'), ('entity_id', 'switch.holiday_swl_outdoor_front_drv'), ('domain', 'switch')])]), ('mode', 'single')]), OrderedDict([('id', '1638636792980'), ('alias', 'Holiday Tree 1 On in the AM'), ('description', ''), ('trigger', [OrderedDict([('platform', 'time'), ('at', '06:00:00')])]), ('condition', []), ('action', [OrderedDict([('type', 'turn_on'), ('device_id', 'c1d32a73d2a0e5e6e819406d5f061b84'), ('entity_id', 'switch.on_off_plug_in_unit_16'), ('domain', 'switch')])]), ('mode', 'single')]), OrderedDict([('id', '1638636846766'), ('alias', 'Holiday Tree 1 Off at 10AM'), ('description', ''), ('trigger', [OrderedDict([('platform', 'time'), ('at', '10:00:00')])]), ('condition', []), ('action', [OrderedDict([('type', 'turn_off'), ('device_id', 'c1d32a73d2a0e5e6e819406d5f061b84'), ('entity_id', 'switch.on_off_plug_in_unit_16'), ('domain', 'switch')])]), ('mode', 'single')]), OrderedDict([('id', '1638649050546'), ('alias', 'Humidifier MBR on before bedtime'), ('description', ''), ('trigger', [OrderedDict([('platform', 'time'), ('at', '20:30:00')])]), ('condition', []), ('action', [OrderedDict([('service', 'climate.turn_on'), ('target', OrderedDict([('entity_id', 'climate.master_bedroom_humidity')]))])]), ('mode', 'single')]), OrderedDict([('id', '1638649104775'), ('alias', 'Humidifier MBR Off at wakeup'), ('description', ''), ('trigger', [OrderedDict([('platform', 'time'), ('at', '07:00:00')])]), ('condition', []), ('action', [OrderedDict([('service', 'climate.turn_off'), ('target', OrderedDict([('entity_id', 'climate.master_bedroom_humidity')]))])]), ('mode', 'single')]), OrderedDict([('id', '1638813575269'), ('alias', 'Basement Humidifier On - Weekdays AM'), ('description', ''), ('trigger', [OrderedDict([('platform', 'time'), ('at', '06:00:00')])]), ('condition', [OrderedDict([('condition', 'time'), ('weekday', ['mon', 'tue', 'wed', 'thu', 'fri'])])]), ('action', [OrderedDict([('service', 'climate.turn_on'), ('target', OrderedDict([('entity_id', 'climate.basement_humidity')]))])]), ('mode', 'single')]), OrderedDict([('id', '1638813624047'), ('alias', 'Basement Humidifier Off at End of Workday'), ('description', ''), ('trigger', [OrderedDict([('platform', 'time'), ('at', '17:00:00')])]), ('condition', []), ('action', [OrderedDict([('service', 'climate.turn_off'), ('target', OrderedDict([('entity_id', 'climate.basement_humidity')]))])]), ('mode', 'single')]), OrderedDict([('id', '1638895582522'), ('alias', 'Kitchen Switch Scene 1 On (Den LED)'), ('description', ''), ('trigger', [OrderedDict([('platform', 'device'), ('device_id', 'df32efa0a864346bcc15c6a9fa2517cd'), ('domain', 'zwave_js'), ('type', 'event.value_notification.central_scene'), ('property', 'scene'), ('property_key', '001'), ('endpoint', 0), ('command_class', 91), ('subtype', 'Endpoint 0 Scene 001')])]), ('condition', [OrderedDict([('condition', 'state'), ('entity_id', 'switch.smart_plug_2'), ('state', 'off')])]), ('action', [OrderedDict([('service', 'zwave_js.bulk_set_partial_config_parameters'), ('target', OrderedDict([('entity_id', 'switch.scene_controller')])), ('data', OrderedDict([('parameter', '2'), ('value', 3)]))]), OrderedDict([('service', 'switch.turn_on'), ('target', OrderedDict([('entity_id', 'switch.smart_plug_2')]))])]), ('mode', 'single')]), OrderedDict([('id', '1638896209083'), ('alias', 'Kitchen Switch Scene 1 Off (Den LED)'), ('description', ''), ('trigger', [OrderedDict([('platform', 'device'), ('device_id', 'df32efa0a864346bcc15c6a9fa2517cd'), ('domain', 'zwave_js'), ('type', 'event.value_notification.central_scene'), ('property', 'scene'), ('property_key', '001'), ('endpoint', 0), ('command_class', 91), ('subtype', 'Endpoint 0 Scene 001')])]), ('condition', [OrderedDict([('condition', 'state'), ('entity_id', 'switch.smart_plug_2'), ('state', 'on')])]), ('action', [OrderedDict([('service', 'zwave_js.bulk_set_partial_config_parameters'), ('data', OrderedDict([('parameter', '2'), ('value', 2)])), ('target', OrderedDict([('entity_id', 'switch.scene_controller')]))]), OrderedDict([('service', 'switch.turn_off'), ('target', OrderedDict([('entity_id', 'switch.smart_plug_2')]))])]), ('mode', 'single')]), OrderedDict([('id', '1639671971233'), ('alias', 'Kitchen Keypad Sink E (Under Cab Lights On)'), ('description', ''), ('trigger', [OrderedDict([('platform', 'device'), ('type', 'turned_on'), ('device_id', 'e41cfefd71e472bdf3c97fa5d9ebaf3b'), ('entity_id', 'light.keypad_kitchen_sink_e'), ('domain', 'light')])]), ('condition', []), ('action', [OrderedDict([('scene', 'scene.under_cabinet_lights_on')])]), ('mode', 'single')]), OrderedDict([('id', '1639672006359'), ('alias', 'Kitchen Keypad Sink E (Under Cab Lights Off)'), ('description', ''), ('trigger', [OrderedDict([('platform', 'device'), ('type', 'turned_off'), ('device_id', 'e41cfefd71e472bdf3c97fa5d9ebaf3b'), ('entity_id', 'light.keypad_kitchen_sink_e'), ('domain', 'light')])]), ('condition', []), ('action', [OrderedDict([('scene', 'scene.kitchen_under_cabinet_lights_off')])]), ('mode', 'single')]), OrderedDict([('id', '1641134349398'), ('alias', 'Kitchen Switch Scene 2 On (Den Computer)'), ('description', ''), ('trigger', [OrderedDict([('platform', 'device'), ('device_id', 'df32efa0a864346bcc15c6a9fa2517cd'), ('domain', 'zwave_js'), ('type', 'event.value_notification.central_scene'), ('property', 'scene'), ('property_key', '002'), ('endpoint', 0), ('command_class', 91), ('subtype', 'Endpoint 0 Scene 002'), ('value', 0)])]), ('condition', [OrderedDict([('condition', 'state'), ('entity_id', 'switch.on_off_plug_in_unit_26'), ('state', 'off')])]), ('action', [OrderedDict([('service', 'zwave_js.bulk_set_partial_config_parameters'), ('target', OrderedDict([('entity_id', 'switch.scene_controller')])), ('data', OrderedDict([('parameter', '3'), ('value', 3)]))]), OrderedDict([('service', 'switch.turn_on'), ('target', OrderedDict([('device_id', '42d9b1f1f12d183117e220538ac3c36c')]))])]), ('mode', 'single')]), OrderedDict([('id', '1641134387781'), ('alias', 'Kitchen Switch Scene 2 Off (Den Computer)'), ('description', ''), ('trigger', [OrderedDict([('platform', 'device'), ('device_id', 'df32efa0a864346bcc15c6a9fa2517cd'), ('domain', 'zwave_js'), ('type', 'event.value_notification.central_scene'), ('property', 'scene'), ('property_key', '002'), ('endpoint', 0), ('command_class', 91), ('subtype', 'Endpoint 0 Scene 002'), ('value', 0)])]), ('condition', [OrderedDict([('condition', 'state'), ('entity_id', 'switch.on_off_plug_in_unit_26'), ('state', 'on')])]), ('action', [OrderedDict([('service', 'zwave_js.bulk_set_partial_config_parameters'), ('target', OrderedDict([('entity_id', 'switch.scene_controller')])), ('data', OrderedDict([('parameter', '3'), ('value', 2)]))]), OrderedDict([('service', 'switch.turn_off'), ('target', OrderedDict([('device_id', '42d9b1f1f12d183117e220538ac3c36c')]))])]), ('mode', 'single')])]
e[0m
e[1;37mSuccessful config (partial)e[0m
  e[1mautomation:e[0m

What is this for?

That’s what I’d like to know … Somehow it’s failing on this, but it’s not in my config …

Out of curiosity:

async_get_entry (entry_id: str ) → ConfigEntry | None[source] Return entry with matching entry_id.

http://dev-docs.home-assistant.io/en/master/api/config_entries.html

Ok… I guess it’s an internal HA function. But how or why is it failing? I’d like to fix my config to make it compatible with 2021.12.8 before upgrading, but I can’t figure out what it doesn’t like …
This output came from the “Check Home Assistant configuration” addon.

I have no idea. I would deactivate the affected automations and try again. Then I would deactivate the addon and try again.

@rvdbijl Have you found the culprit? I’m getting the same error while checking the config to upgrade from 2021.10.9 to 2021.10.10.

I just went for it (upgrade to .12.9) after making a backup. Lo and behold – no issues at all with the config or anything else. Went totally smooth. I think there may be a bug in the version checker …

Seems to correspond to the problem here: