@riddix/hamh 2.1.0-alpha.804 → 2.1.0-alpha.807

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -498,7 +498,7 @@ Matter relies heavily on **mDNS (multicast DNS)** for device discovery and reach
498
498
  - **Keep the path simple**: Avoid placing access points or managed switches between your Matter bridge (Home Assistant) and your Home Hub (HomePod/Apple TV)
499
499
  - **Use wired connections** where possible for Home Hubs and the Home Assistant host
500
500
  - **Same subnet**: All Matter devices, controllers, and the bridge must be on the same Layer 2 network / subnet
501
- - **IPv6**: Matter requires IPv6, do not disable it. For VLAN setups, configure **ULA addresses** (`fd00::/8`), not just link-local (`fe80::`). See [Troubleshooting](https://home-assistant-matter-hub.riddix.dev/guides/connectivity-issues#ipv6) and [Discussion #39](https://github.com/RiDDiX/home-assistant-matter-hub/discussions/39)
501
+ - **IPv6**: Matter requires IPv6, do not disable it. For VLAN setups, configure **ULA addresses** (`fd00::/8`), not just link-local (`fe80::`). See [Troubleshooting](https://riddix.github.io/home-assistant-matter-hub/guides/connectivity-issues#ipv6) and [Discussion #39](https://github.com/RiDDiX/home-assistant-matter-hub/discussions/39)
502
502
 
503
503
  </details>
504
504
 
@@ -162664,10 +162664,10 @@ function createEndpointId5(entityId, customName) {
162664
162664
  return baseName.replace(/\./g, "_").replace(/\s+/g, "_");
162665
162665
  }
162666
162666
  function buildEntityPayload4(registry2, entityId) {
162667
- const state = registry2.initialState(entityId);
162667
+ const state = registry2.initialStateIncludingUnfiltered(entityId);
162668
162668
  if (!state) return void 0;
162669
- const entity = registry2.entity(entityId);
162670
- const deviceRegistry = registry2.deviceOf(entityId);
162669
+ const entity = registry2.entityIncludingUnfiltered(entityId);
162670
+ const deviceRegistry = registry2.deviceOfIncludingUnfiltered(entityId);
162671
162671
  return {
162672
162672
  entity_id: entityId,
162673
162673
  state,
@@ -162725,7 +162725,7 @@ var UserComposedEndpoint = class _UserComposedEndpoint extends Endpoint {
162725
162725
  const subPayload = buildEntityPayload4(registry2, sub.entityId);
162726
162726
  if (!subPayload) {
162727
162727
  logger229.warn(
162728
- `Cannot find entity state for composed sub-entity ${sub.entityId}`
162728
+ `Cannot find state for composed sub-entity ${sub.entityId}, it does not exist in Home Assistant (removed or renamed?)`
162729
162729
  );
162730
162730
  continue;
162731
162731
  }
@@ -164683,6 +164683,20 @@ var BridgeRegistry = class _BridgeRegistry {
164683
164683
  initialState(entityId) {
164684
164684
  return this._states[entityId];
164685
164685
  }
164686
+ // composed sub-entities may sit outside the bridge filter (#408), so these
164687
+ // fall back to the full HA registry. keep them separate from the strict
164688
+ // accessors above, every other caller must stay filtered.
164689
+ initialStateIncludingUnfiltered(entityId) {
164690
+ return this._states[entityId] ?? this.registry.states[entityId];
164691
+ }
164692
+ entityIncludingUnfiltered(entityId) {
164693
+ return this._entities[entityId] ?? this.registry.entities[entityId];
164694
+ }
164695
+ deviceOfIncludingUnfiltered(entityId) {
164696
+ const entity = this.entityIncludingUnfiltered(entityId);
164697
+ if (!entity) return void 0;
164698
+ return this._devices[entity.device_id] ?? this.registry.devices[entity.device_id];
164699
+ }
164686
164700
  /**
164687
164701
  * Find a battery sensor entity that belongs to the same HA device.
164688
164702
  * Returns the entity_id of the battery sensor, or undefined if none found.