Problem
On Home Assistant Core 2026.9.3 with ha-xtool v2.7.2, an attached Fire Safety Set v1.5 is detected by the S1 protocol but never appears as a Home Assistant device. Accessory firmware update entities fail during registration. The Smart Air Assist's other entities load, but its firmware entity also fails.
Hardware and versions
- xTool S1, 40 W diode
- S1 firmware: V40.32.015.2025.01 B10
- Fire Safety Set v1.5 firmware: V40.203.002.3224.01B01
- Smart Air Assist firmware: V40.208.002.3D28.01 B1
- Home Assistant Core 2026.9.3 / HAOS
- Integration v2.7.2
Reproduction
- Connect an S1 with the Fire Safety Set v1.5 attached.
- Add or load the xTool Laser integration.
- Observe that the S1 and Air Assist appear, but the extinguisher does not.
- Inspect the logs: accessory detection succeeds, while update entity registration fails.
Relevant detection output (no device identifiers included):
S1 M1098 accessories_raw=['', '', 'V40.208.002.3D28.01 B1', '', 'V40.203.002.3224.01B01', '', '', '', '', '']
S1 accessory detected (M1098 slot 4): FireExtinguisherV1_5 fields={'version': 'V40.203.002.3224.01B01'}
Registration error:
Error adding entity None for domain update with platform xtool
homeassistant.helpers.frame.MissingIntegrationFrame
The traceback runs through entity_platform._async_add_entity, device_registry.async_get_or_create, and report_usage for the deprecated via_device parameter.
Cause
Both _AccessoryEntity.device_info and _AccessoryUpdate.device_info return via_device=(DOMAIN, laser_sid). On this HA version, the deprecation reporting path can raise when the async update-entity registration stack no longer contains an integration frame. This matches home-assistant/core#180469.
The Fire Safety Set has only a firmware version available through the S1 slot data. build_accessory_entities suppresses the version sensor when it creates a firmware update entity. When that sole entity fails to register, the entire accessory device is absent.
Proposed fix
Register the laser device before forwarding platform setup, retain its registry ID, and use via_device_id for both accessory entity classes on HA versions supporting it. Retain the legacy tuple only for older supported HA versions.
Reference: https://developers.home-assistant.io/blog/2026/08/24/device-registry-follow-up-changes/
Local verification
The proposed fix was applied to the same HA installation. After restart, both the Fire Safety Set device and its firmware entity appeared, linked to the S1, with the expected installed firmware. The Air Assist firmware entity also loaded. Three regression tests and the HA configuration check passed; the accessory registration error did not recur.
Problem
On Home Assistant Core 2026.9.3 with ha-xtool v2.7.2, an attached Fire Safety Set v1.5 is detected by the S1 protocol but never appears as a Home Assistant device. Accessory firmware update entities fail during registration. The Smart Air Assist's other entities load, but its firmware entity also fails.
Hardware and versions
Reproduction
Relevant detection output (no device identifiers included):
Registration error:
The traceback runs through
entity_platform._async_add_entity,device_registry.async_get_or_create, andreport_usagefor the deprecatedvia_deviceparameter.Cause
Both
_AccessoryEntity.device_infoand_AccessoryUpdate.device_inforeturnvia_device=(DOMAIN, laser_sid). On this HA version, the deprecation reporting path can raise when the async update-entity registration stack no longer contains an integration frame. This matches home-assistant/core#180469.The Fire Safety Set has only a firmware version available through the S1 slot data.
build_accessory_entitiessuppresses the version sensor when it creates a firmware update entity. When that sole entity fails to register, the entire accessory device is absent.Proposed fix
Register the laser device before forwarding platform setup, retain its registry ID, and use
via_device_idfor both accessory entity classes on HA versions supporting it. Retain the legacy tuple only for older supported HA versions.Reference: https://developers.home-assistant.io/blog/2026/08/24/device-registry-follow-up-changes/
Local verification
The proposed fix was applied to the same HA installation. After restart, both the Fire Safety Set device and its firmware entity appeared, linked to the S1, with the expected installed firmware. The Air Assist firmware entity also loaded. Three regression tests and the HA configuration check passed; the accessory registration error did not recur.