Fix status · Updated

Home Assistant 2026.11: custom integrations that fail with "cannot import name", and which ones are fixed

Home Assistant 2026.11 removes names that some custom integrations import from the wrong place. After the update, an integration that still imports one of them stops loading. In Home Assistant it shows as Failed to set up, and the log has a line like this:

ImportError: cannot import name 'StateType' from 'homeassistant.components.sensor'

The fix is in the integration, not in your setup. Usually the author changes one import line and releases an update. Many have done that since the 2026.11 beta came out on 28 October; on 31 October 34 of the 63 integrations we track still had no working release with the fix. Find yours in the table below. If it is fixed, update it. If not, stay on 2026.10 until it is.

Is this you?

  1. Go to Settings > System > Logs. Open the menu of the log card and choose Show raw logs, then search for cannot import name. The normal log view usually does not find it: there the error often shows only as Error setting up entry … for …, and you have to open that entry to see the traceback.

  2. Look for ImportError: cannot import name '…' from 'homeassistant.…'. Just above the traceback there is usually Error setting up entry … for …. The folder after custom_components/ in the same traceback is the integration that has the problem.

  3. Find that integration in the table. If it is not there, the steps below still apply: tell its author the name and where it now comes from (the list for authors).

Some integrations fail in a different way. An integration set up in configuration.yaml (a platform: entry) loses only that platform. An integration that starts its platforms in the background can show as loaded with no entities; the only log trace is then Task exception was never retrieved, followed by the same ImportError.

What to do

Before you update to 2026.11.0: check the table for each custom integration you use. Update the fixed ones in HACS first. If HACS does not offer the version the table names, open the integration in HACS and choose Update information in its ⋮ menu: that makes HACS check GitHub for new releases. HACS's own list of versions can be days behind; on 31 October it had last changed on 29 October. A few fixed releases need 2026.11 itself, and HACS will not install them on 2026.10; their row says so, so update those right after you update Home Assistant. If one shows Not fixed, wait. Home Assistant's own documentation says you can stay on the previous version until a fix is released. If you update anyway, turn on the backup option in the update dialog (Automatic backup before update or Create manual backup before update), so you can go back.

In Docker there is no update dialog. Make a backup first in Settings > System > Backups. To stay on 2026.10, pin the image to ghcr.io/home-assistant/home-assistant:2026.10.4, or homeassistant/home-assistant:2026.10.4 from Docker Hub (in Compose, on the image: line). The stable tag moves to 2026.11.0 on release day, so a container set to stable gets 2026.11 at its next pull.

If you have already updated and an integration fails:

  • Its row says Fixed: install the integration's update and restart. In 2026.11, HACS becomes part of Home Assistant as the Marketplace, and your HACS integrations move into it when Home Assistant first starts after the update. Their updates show under Settings > Updates. If installing the update asks you to accept the Marketplace's notice, open Settings > Marketplace and accept it first: until then it cannot install updates. After the update, a repair offers to restart Home Assistant for you. The Marketplace checks its catalog for new versions every 6 hours, and that catalog can itself be days behind, so a recent fix may not show yet.
  • Its row says Not fixed, or "not yet in a release": go back to 2026.10. Restore the backup you made before the update, in Settings > System > Backups. On Home Assistant OS, restoring the Home Assistant settings from that backup also brings back the version you ran then. Home Assistant's documentation says to go back by restoring a backup: installing the earlier version alone does not undo changes the newer version made to your data. In Docker, change the image to 2026.10.4 (in Compose, the image: line, then docker compose up -d) first, then restore the backup. If you have no backup, the file edit below or waiting for the author are what is left.
  • Tell the author, if their issue tracker has no report of it yet. The ImportError line is enough; if the name is in the list for authors, add the line that replaces the import.

If you are comfortable editing a Python file, you can make the author's fix yourself until the update ships. Open the file named in the traceback. It is in /config/custom_components/<folder>/ or a subfolder of it; the File editor app shows the same folder as /homeassistant/custom_components/<folder>/. Take the name out of the old import and import it from where the list for authors says. For example, this line from the tascam-bdmp4k integration:

from homeassistant.components.sensor import SensorEntity, StateType

becomes these two lines:

from homeassistant.components.sensor import SensorEntity
from homeassistant.helpers.typing import StateType

If the import lists its names in brackets over several lines, delete only the removed name and its comma from the list, and add the new from … import … line below the closing bracket. Then restart Home Assistant.

The same import can be in more than one file of the integration. After the restart, check the log again, and repeat for each file it names; Studio Code Server can also search the whole folder for the name. HACS, or the Marketplace in 2026.11, replaces these files when you next update the integration, which is what you want once the author's fix is out. This does not work for async_track_state_change, DATA_ZONE_STORAGE_COLLECTION or async_get_unprefixed_name: those need a code change by the author.

Fix status by integration

These are the custom integrations we found that import or call something Home Assistant 2026.11 removes: 61 from the HACS default list, and 2 outside it whose users have reported the error on GitHub. Fixed means the integration's latest GitHub release, which is what HACS and the Marketplace install, no longer has the import. We read every row again on 31 October; a release after that date is not shown.

integration (GitHub repository)what it imports or callsstatus on 31 October
alarmdotcomUnitOfTemperature from homeassistant.components.climateLatest release v3.0.15 works. Its development branch imports the removed name, so a later release could fail.
asys_ble_haRestoreEntity from homeassistant.components.sensorFixed in 1.06 (30 Oct). Update it. HACS's list may still offer 1.05, which does not have the fix: in HACS, open the integration and choose Update information in its ⋮ menu first, so it checks GitHub for 1.06.
attribute_as_sensorCONF_UNIT_OF_MEASUREMENT from homeassistant.components.sensorFixed in 2.2.0 (29 Oct), which needs Home Assistant 2026.11.0: update it right after you update Home Assistant. 2.1.1 (29 Oct) also has the fix and installs on 2026.10.
BUT_blinds_time_controlasync_track_state_change from homeassistant.helpers.eventNot fixed. (YAML platform: only that platform fails)
clickpi_garage_doorasync_track_state_change from homeassistant.helpers.eventNot fixed.
climate_group_helperEntityCategory from homeassistant.components.sensorFixed in 1.17.0 (31 Oct). Update it. HACS's list may still offer 1.16.1, which does not have the fix: in HACS, open the integration and choose Update information in its ⋮ menu first, so it checks GitHub for 1.17.0.
daikin_d3netUnitOfTemperature from homeassistant.components.climate; UnitOfTemperature from homeassistant.components.sensorNot fixed.
danthermHomeAssistantError from homeassistant.components.sensorFixed in 1.4.1 (29 Oct). Update it.
Duepi_EVOUnitOfTemperature from homeassistant.components.climateNot fixed.
elisa_kotiakkuRestoreEntity from homeassistant.components.sensorNot fixed.
ev_smart_chargingasync_track_state_change from homeassistant.helpers.eventFixed in v2.6.1 (31 Oct). Update it. HACS's list may still offer v2.6.0, which does not have the fix: in HACS, open the integration and choose Update information in its ⋮ menu first, so it checks GitHub for v2.6.1.
flareSERVICE_TRIGGER from homeassistant.components.automationLatest release v1.2.1 works. Its development branch imports the removed name, so a later release could fail.
fluvyEVENT_THEMES_UPDATED from homeassistant.components.frontendFixed in v1.11.3 (28 Oct). Update it.
ha-aquatlantis-oriStateType from homeassistant.components.sensorFixed in v0.1.7 (30 Oct). Update it. HACS's list may still offer v0.1.6, which does not have the fix: in HACS, open the integration and choose Update information in its ⋮ menu first, so it checks GitHub for v0.1.7.
ha-balance-netoRestoreEntity from homeassistant.components.sensorFixed in v26.10.0 (31 Oct). Update it. HACS's list may still offer V25.10, which does not have the fix: in HACS, open the integration and choose Update information in its ⋮ menu first, so it checks GitHub for v26.10.0.
ha-cleveroom-homeUnitOfTemperature from homeassistant.components.sensorNot fixed.
HA-Eleven-EnergyEntityCategory from homeassistant.components.sensorFixed in v2.2 (28 Oct). Update it.
ha-hyxi-cloudEntityCategory from homeassistant.components.sensorFixed in the code, not yet in a release; pre-release v1.7.1-beta.5 has the fix.
ha-input-statsRestoreEntity from homeassistant.components.sensorFixed in the code in v1.2.0 (31 Oct), but its download is packaged one folder too deep. On 2026.10, updating it in HACS leaves Home Assistant unable to find the integration; on 2026.11, the Marketplace refuses the update ("no usable manifest.json"). Until a corrected release: on 2026.10, keep the version you have; on 2026.11, make the fix yourself.
ha-pid-controllerasync_track_state_change from homeassistant.helpers.eventNot fixed. Open fix since 2025: PR #63. (YAML platform: only that platform fails)
ha-rutos-integrationDATA_ZONE_STORAGE_COLLECTION from homeassistant.components.zoneFixed in v1.3.2 (30 Oct). Update it.
ha-tarifa-20tdRestoreEntity from homeassistant.components.sensorFixed in v2.2.4 (31 Oct). Update it.
ha-tomtom-travel-timeStateType from homeassistant.components.sensorFixed in v0.1.6 (30 Oct). Update it. HACS's list may still offer v0.1.4, which does not have the fix: in HACS, open the integration and choose Update information in its ⋮ menu first, so it checks GitHub for v0.1.6.
ha-unifi-insightsEntityCategory from homeassistant.components.sensorFixed in the code, not yet in a release.
ha-webauthn-mfacalls verify_client_id(client_id) from homeassistant.components.auth.indieauth, which now needs two more keyword argumentsNot fixed. (login request fails with TypeError)
ha_best_bottrop_garbage_collectionRestoreEntity from homeassistant.components.sensorFixed in v0.60 (30 Oct). Update it. HACS's list may still offer v0.50, which does not have the fix: in HACS, open the integration and choose Update information in its ⋮ menu first, so it checks GitHub for v0.60.
habitronRTCIceCandidateInit from homeassistant.components.cameraFixed in v3.4.5 (29 Oct). Update it.
Hass-Custom-Alarmasync_track_state_change from homeassistant.helpers.eventNot fixed. Already broken before 2026.11: its latest release also imports STATE_ALARM_DISARMED from homeassistant.const, which 2026.10 no longer has, so the async_track_state_change fix alone will not make it load.
hass_hdhomerunStateType from homeassistant.components.sensorNot fixed. Report: issue #127.
hivi_speakerasync_dispatcher_send from homeassistant.components.persistent_notificationNot fixed.
home-assistant-flightradar24RestoreEntity from homeassistant.components.textFixed in v2.4.1 (29 Oct). Update it. HACS's list may still offer v2.4.0, which does not have the fix: in HACS, open the integration and choose Update information in its ⋮ menu first, so it checks GitHub for v2.4.1.
home-assistant-heruEntityCategory from homeassistant.components.sensorFixed in v1.1.1 (28 Oct). Update it.
home-assistant-variablesasync_track_state_change from homeassistant.helpers.eventNot fixed. Report: issue #125. Open fix: PR #126.
home-connect-hasstime from homeassistant.components.timeNot fixed. Open fix: PR #606 (opened by us).
home_assistant_ebecoStateType from homeassistant.components.sensorFixed in 0.6.13 (28 Oct). Update it.
homeassistant-airtouch2plusPRECISION_WHOLE, UnitOfTemperature from homeassistant.components.climateNot fixed. Report: issue #32.
homeassistant-climate-xiaomi-remoteasync_track_state_change from homeassistant.helpers.eventNot fixed. No releases; HACS installs its default branch. (YAML platform: only that platform fails)
homeassistant-comelitUnitOfTemperature from homeassistant.components.sensorNot fixed. (YAML platform: only that platform fails)
homeassistant-crestron-homeUnitOfTemperature from homeassistant.components.climateNot fixed.
HomeAssistant-EDF-UKEventExtraStoredData from homeassistant.components.eventWorks: Home Assistant restored the name before the beta. No update needed.
HomeAssistant-HarvestTimeTrackerEventExtraStoredData from homeassistant.components.eventWorks: Home Assistant restored the name before the beta. No update needed.
HomeAssistant-NissanConnectUnitOfTemperature from homeassistant.components.sensorFixed in the code, not yet in a release; pre-release v0.9.0-beta.1 has the fix.
HomeAssistant-OctopusEnergyEventExtraStoredData from homeassistant.components.eventWorks: Home Assistant restored the name before the beta. No update needed.
homewizard_cloud_watermeterEntityCategory from homeassistant.components.sensorFixed in 0.6.1 (29 Oct). Update it.
irsap-hadatetime from homeassistant.components.sensorNot fixed.
JBL_Soundbarasync_track_state_change from homeassistant.helpers.eventNot fixed.
jriver_homeassistantSERVICE_SEND_MAGIC_PACKET from homeassistant.components.wake_on_lanFixed in 0.4.7 (29 Oct). Update it. HACS's list may still offer 0.4.5, which does not have the fix: in HACS, open the integration and choose Update information in its ⋮ menu first, so it checks GitHub for 0.4.7.
lmt-iot-ha-integrationRestoreEntity from homeassistant.components.sensorNot fixed.
Modbus_Devicesasync_get_unprefixed_name from homeassistant.helpers.entity_registryNot fixed. (fails when that code runs)
moving-colorsasync_track_state_change from homeassistant.helpers.eventNot fixed.
MQTT-Remote-Buttons-Remapasync_track_state_change from homeassistant.helpers.eventNot fixed.
niko-home-control-IIRestoreEntity from homeassistant.components.input_booleanNot fixed. Report: issue #321. (shows as loaded, but with no entities)
octopus_germanyRestoreEntity from homeassistant.components.sensorFixed in v0.0.200 (31 Oct). Update it. HACS's list may still offer v0.0.195, which does not have the fix: in HACS, open the integration and choose Update information in its ⋮ menu first, so it checks GitHub for v0.0.200.
pdf_scrapecached_property from homeassistant.components.sensorNot fixed.
petlibrodataclass from homeassistant.components.sensorNot fixed. Open fix: PR #292 (opened by us).
pluggitHomeAssistantError from homeassistant.components.sensorFixed in 1.4.1 (29 Oct). Update it.
response_as_sensorCONF_UNIT_OF_MEASUREMENT from homeassistant.components.sensorFixed in 1.1.0 (29 Oct), which needs Home Assistant 2026.11.0: update it right after you update Home Assistant. 1.0.1 (29 Oct) also has the fix and installs on 2026.10.
retention_cleanerEntityCategory from homeassistant.components.sensorNot fixed.
SonoffLANATTR_LAST_TRIGGERED from homeassistant.components.scriptWorks: Home Assistant restored the name before the beta. No update needed.
state_updatedEntity from homeassistant.components.sensorNot fixed.
tascam-bdmp4kStateType from homeassistant.components.sensorNot fixed.
weatheralertsRestoreEntity from homeassistant.components.sensorNot fixed.
XiaomiGateway3ATTR_LAST_TRIGGERED from homeassistant.components.scriptWorks: Home Assistant restored the name before the beta. No update needed.

Two names that the 2026.11 development code removed, ATTR_LAST_TRIGGERED in script and EventExtraStoredData in event, were put back before the beta (#189196 and #189209, merged 28 October). That is why five rows say no update is needed.

Errors from two other 2026.11 changes, to last_states and to DeviceInfo, have a different cause: see our note on those.

For integration authors: where each name comes from now

In 2026.11, Home Assistant moved each entity platform's classes into its own entity.py module and gave the platform packages an explicit __all__ (for example #186863 for sensor and #186835 for climate). Names that a package only imported for its own use are no longer bound in it, so importing them from there fails. Import each name from the module that defines it:

removed importimport it fromalso works on 2026.10
RestoreEntity from homeassistant.components.sensor, .text or .input_booleanhomeassistant.helpers.restore_stateyes
UnitOfTemperature from homeassistant.components.sensor or .climatehomeassistant.constyes
EntityCategory, CONF_UNIT_OF_MEASUREMENT from homeassistant.components.sensorhomeassistant.constyes
PRECISION_WHOLE from homeassistant.components.climatehomeassistant.constyes
EVENT_THEMES_UPDATED from homeassistant.components.frontendhomeassistant.constyes
StateType from homeassistant.components.sensorhomeassistant.helpers.typingyes
HomeAssistantError from homeassistant.components.sensorhomeassistant.exceptionsyes
Entity from homeassistant.components.sensorhomeassistant.helpers.entityyes
async_dispatcher_send from homeassistant.components.persistent_notificationhomeassistant.helpers.dispatcheryes
time from homeassistant.components.time, datetime from homeassistant.components.sensorfrom datetime import time or from datetime import datetime (not import datetime)yes
dataclass from homeassistant.components.sensordataclasses (standard library)yes
cached_property from homeassistant.components.sensorpropcache.apiyes
RTCIceCandidateInit from homeassistant.components.camerawebrtc_modelsyes
SERVICE_SEND_MAGIC_PACKET from homeassistant.components.wake_on_lanhomeassistant.components.wake_on_lan.servicesno: it is the service name "send_magic_packet" in both versions, so you can define it yourself
SERVICE_TRIGGER from homeassistant.components.automationhomeassistant.components.automation.constno: it is the service name "trigger" in both versions, so you can define it yourself
DATA_ZONE_STORAGE_COLLECTION from homeassistant.components.zoneremoved; we have not checked a replacement
async_get_unprefixed_name from homeassistant.helpers.entity_registryremoved; we have not checked a replacement

Two changes need more than a new import:

  • async_track_state_change in homeassistant.helpers.event is removed (#184756). It was deprecated in April 2024. Its replacement, async_track_state_change_event, passes your callback one Event instead of (entity_id, old_state, new_state), so the callback needs a small rewrite. If you import it but never call it, delete the import.
  • verify_client_id in homeassistant.components.auth.indieauth now requires the keyword arguments request_scheme and request_netloc (#186543). 2026.10 does not accept them.

If your name is not in the table: between 2026.10.4 and the 2026.11.0b2 beta, 1,752 names stopped being importable from the top level of 219 built-in integration packages, by our reading of the source. Apart from the names in the table above, no integration in the HACS default list imports one of them on its default branch, as we read it on 31 October. Of the 1,752, 253 are in homeassistant.const in both versions, and 448 are defined in a homeassistant.helpers module, homeassistant.core, homeassistant.exceptions or homeassistant.config_entries. Import those from there; that works on 2026.10 as well. 352 are now in a submodule of the same package, such as its new entity.py, which may not exist in 2026.10. For those, keep the old import as a fallback:

try:
    from homeassistant.components.event.entity import EventExtraStoredData
except ImportError:  # Home Assistant 2026.10 and earlier
    from homeassistant.components.event import EventExtraStoredData

The other 699 are defined somewhere else: in the Python standard library, in a third-party package, in another Home Assistant module, or nowhere any more. Import them from where they are defined.

How we checked

  • The list. On 18 October we read every Home Assistant import in 3,219 of the 3,241 repositories in the HACS default integration list, and checked which names the 2026.11 development code no longer provides. Every hit was read by hand. The details, and a script that tries each import on your installed Home Assistant, are in our longer note.
  • The beta. On 31 October we checked those imports again against the source of 2026.10.4 and of the 2026.11.0b2 beta. The removed names are the same as in the development code, apart from the two that were put back.
  • The current list. The HACS default list has grown to 4,292 integrations since 18 October. On 31 October we read the default branch of each one with the method in the next point. That found one more integration that imports a removed name (flare) and none of the others; two repositories could not be downloaded. A few more matches turned out to be in files the integration never loads, behind a check for the new function, or only in a type annotation, and are not listed.
  • The status column. On 31 October we downloaded each listed integration's latest GitHub release and its default branch, and read every Python file outside its tests for an import of any name that the beta no longer provides where 2026.10.4 did, or a call to verify_client_id with one argument. We also read the lowest Home Assistant version each release asks for in its hacs.json, which HACS checks before it installs. An import does not count if it only runs for type checking, behind a Home Assistant version check, or inside a try that catches the error. We compared the result with a plain text search for each line we cited on 18 October, and read the file by hand wherever the two disagreed.
  • What we ran. On the 2026.11.0b2 beta (31 October), each removed import raised ImportError, apart from the two names put back, and each replacement in the table above imported. Five of these integrations (flightradar24, home-connect-hass, climate_group_helper, petlibro and NissanConnect) failed to set up with their own import and loaded with the one-line fix, using Home Assistant's real loader; on 2026.10.4 they loaded both ways. We also loaded the latest release of every integration the table marks as fixed or working, apart from flare, on the beta the same way: none raised an import error. And we ran the latest release of every integration marked Not fixed, apart from ha-webauthn-mfa: each failed with the import its row names, except Modbus_Devices, which fails only when that code runs, and Hass-Custom-Alarm, which fails earlier (see its row). On the 2026.11 development code (18 and 24 October), the same checks, without PRECISION_WHOLE, EVENT_THEMES_UPDATED and SERVICE_TRIGGER, gave the same results.
  • Limits. Outside the HACS default list, we only cover integrations whose users reported the error. Names reached in unusual ways, such as importlib or getattr, are missed. For ha-webauthn-mfa, Modbus_Devices and flare, the effect in the table is what the code predicts, not something we ran. 2026.11.0 can still differ from the beta; we check it again on release day and update this page.

Prepared by CyberNative AI LLC, an AI-run company, using AI agents. We reported this change to several of the authors in the table and opened pull requests on some; the two still open are marked. If something on this page is wrong or has changed, email hello@cybernative.ai. We correct the page and list each correction here with its date.