@riddix/hamh 2.0.40 → 2.0.41

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.
Files changed (130) hide show
  1. package/README.md +37 -5
  2. package/dist/backend/cli.js +1533 -1042
  3. package/dist/frontend/assets/index-CExdZqNu.js +473 -0
  4. package/dist/frontend/assets/index-G-pxPqsB.css +1 -0
  5. package/dist/frontend/assets/javascript-BQ_IDdmx.js +1 -0
  6. package/dist/frontend/assets/roboto-cyrillic-300-normal-DEFNdjk5.woff +0 -0
  7. package/dist/frontend/assets/roboto-cyrillic-300-normal-DzUz0kzv.woff2 +0 -0
  8. package/dist/frontend/assets/{roboto-cyrillic-400-normal-DZJji7Rx.woff → roboto-cyrillic-400-normal-Bjg-1-sg.woff} +0 -0
  9. package/dist/frontend/assets/roboto-cyrillic-400-normal-CBPI_iaY.woff2 +0 -0
  10. package/dist/frontend/assets/{roboto-cyrillic-500-normal-BI4HuXre.woff → roboto-cyrillic-500-normal-CBKMylY4.woff} +0 -0
  11. package/dist/frontend/assets/roboto-cyrillic-500-normal-CLao9AfR.woff2 +0 -0
  12. package/dist/frontend/assets/roboto-cyrillic-700-normal-C2o7G-SM.woff2 +0 -0
  13. package/dist/frontend/assets/{roboto-cyrillic-700-normal-KqaQ5bNp.woff → roboto-cyrillic-700-normal-DhZFXDSN.woff} +0 -0
  14. package/dist/frontend/assets/roboto-cyrillic-ext-300-normal-D7ank4TF.woff +0 -0
  15. package/dist/frontend/assets/roboto-cyrillic-ext-300-normal-DIxttMbC.woff2 +0 -0
  16. package/dist/frontend/assets/{roboto-cyrillic-ext-400-normal-DtZHuW6i.woff → roboto-cyrillic-ext-400-normal-CaK1767H.woff} +0 -0
  17. package/dist/frontend/assets/roboto-cyrillic-ext-400-normal-qHufge6k.woff2 +0 -0
  18. package/dist/frontend/assets/roboto-cyrillic-ext-500-normal-BWC_xYeb.woff2 +0 -0
  19. package/dist/frontend/assets/roboto-cyrillic-ext-500-normal-DqF2hftb.woff +0 -0
  20. package/dist/frontend/assets/roboto-cyrillic-ext-700-normal-CI7FH63F.woff +0 -0
  21. package/dist/frontend/assets/roboto-cyrillic-ext-700-normal-DmFxo5wj.woff2 +0 -0
  22. package/dist/frontend/assets/roboto-greek-300-normal-C_Dgaih9.woff +0 -0
  23. package/dist/frontend/assets/roboto-greek-300-normal-DJEM9B4Z.woff2 +0 -0
  24. package/dist/frontend/assets/{roboto-greek-400-normal-CcizSnRP.woff → roboto-greek-400-normal-Bb5mj_fZ.woff} +0 -0
  25. package/dist/frontend/assets/roboto-greek-400-normal-ai2Z1K3C.woff2 +0 -0
  26. package/dist/frontend/assets/roboto-greek-500-normal-C9AnhcmC.woff2 +0 -0
  27. package/dist/frontend/assets/{roboto-greek-500-normal-BLLWU9W-.woff → roboto-greek-500-normal-oCqhoyfc.woff} +0 -0
  28. package/dist/frontend/assets/roboto-greek-700-normal-0aHWxGLu.woff2 +0 -0
  29. package/dist/frontend/assets/{roboto-greek-700-normal-D3kmAf0K.woff → roboto-greek-700-normal-DjRqqLBV.woff} +0 -0
  30. package/dist/frontend/assets/roboto-latin-300-normal-BARJ-h6h.woff +0 -0
  31. package/dist/frontend/assets/roboto-latin-300-normal-CCzlftfr.woff2 +0 -0
  32. package/dist/frontend/assets/roboto-latin-400-normal-BqEyEoaF.woff2 +0 -0
  33. package/dist/frontend/assets/{roboto-latin-400-normal-068yxgMN.woff → roboto-latin-400-normal-DyYNIH4P.woff} +0 -0
  34. package/dist/frontend/assets/roboto-latin-500-normal-7RbcRiD8.woff2 +0 -0
  35. package/dist/frontend/assets/roboto-latin-500-normal-DQZyH_nt.woff +0 -0
  36. package/dist/frontend/assets/roboto-latin-700-normal-BZpUvMxY.woff2 +0 -0
  37. package/dist/frontend/assets/roboto-latin-700-normal-DLgJJpmK.woff +0 -0
  38. package/dist/frontend/assets/roboto-latin-ext-300-normal-B90pq-BC.woff2 +0 -0
  39. package/dist/frontend/assets/roboto-latin-ext-300-normal-CTCCHkZF.woff +0 -0
  40. package/dist/frontend/assets/roboto-latin-ext-400-normal-C3tdtHj3.woff2 +0 -0
  41. package/dist/frontend/assets/roboto-latin-ext-400-normal-scX0fKtV.woff +0 -0
  42. package/dist/frontend/assets/roboto-latin-ext-500-normal-Cyc0AKLz.woff +0 -0
  43. package/dist/frontend/assets/roboto-latin-ext-500-normal-pMCM9Ixg.woff2 +0 -0
  44. package/dist/frontend/assets/roboto-latin-ext-700-normal-BUhwtWwy.woff +0 -0
  45. package/dist/frontend/assets/roboto-latin-ext-700-normal-DSBUz0N1.woff2 +0 -0
  46. package/dist/frontend/assets/roboto-math-300-normal-5dF_7mZP.woff2 +0 -0
  47. package/dist/frontend/assets/roboto-math-300-normal-Ds0YpBw2.woff +0 -0
  48. package/dist/frontend/assets/roboto-math-400-normal-BEFej5gc.woff2 +0 -0
  49. package/dist/frontend/assets/{roboto-math-400-normal-rzxYvyVt.woff → roboto-math-400-normal-C9RxBKAh.woff} +0 -0
  50. package/dist/frontend/assets/{roboto-math-500-normal-DaFX-ZC8.woff → roboto-math-500-normal-C-7mKPO3.woff} +0 -0
  51. package/dist/frontend/assets/roboto-math-500-normal-C4NU9gLX.woff2 +0 -0
  52. package/dist/frontend/assets/roboto-math-700-normal-B8YqGHVc.woff2 +0 -0
  53. package/dist/frontend/assets/roboto-math-700-normal-DVoD5t2k.woff +0 -0
  54. package/dist/frontend/assets/roboto-symbols-300-normal-BCnjhQd_.woff +0 -0
  55. package/dist/frontend/assets/roboto-symbols-300-normal-DDU7avhj.woff2 +0 -0
  56. package/dist/frontend/assets/roboto-symbols-400-normal-CB1Ce4Gk.woff2 +0 -0
  57. package/dist/frontend/assets/roboto-symbols-400-normal-DLYbZahX.woff +0 -0
  58. package/dist/frontend/assets/roboto-symbols-500-normal-B_CZKVJS.woff2 +0 -0
  59. package/dist/frontend/assets/roboto-symbols-500-normal-F7c8nfcH.woff +0 -0
  60. package/dist/frontend/assets/roboto-symbols-700-normal-BiFDindJ.woff2 +0 -0
  61. package/dist/frontend/assets/roboto-symbols-700-normal-BoS6HWkc.woff +0 -0
  62. package/dist/frontend/assets/roboto-vietnamese-300-normal-BPvXm_f1.woff2 +0 -0
  63. package/dist/frontend/assets/roboto-vietnamese-300-normal-INUupD3o.woff +0 -0
  64. package/dist/frontend/assets/roboto-vietnamese-400-normal-D2PTxGxD.woff2 +0 -0
  65. package/dist/frontend/assets/{roboto-vietnamese-400-normal-DmXaN3yE.woff → roboto-vietnamese-400-normal-DnpnVwnf.woff} +0 -0
  66. package/dist/frontend/assets/roboto-vietnamese-500-normal-B3ncpOoB.woff2 +0 -0
  67. package/dist/frontend/assets/{roboto-vietnamese-500-normal-DW96CsrR.woff → roboto-vietnamese-500-normal-D380IkQ8.woff} +0 -0
  68. package/dist/frontend/assets/roboto-vietnamese-700-normal-BEVeWqJt.woff2 +0 -0
  69. package/dist/frontend/assets/{roboto-vietnamese-700-normal-Dz0HwF-w.woff → roboto-vietnamese-700-normal-DsFyXAL4.woff} +0 -0
  70. package/dist/frontend/assets/vitesse-dark-tyNGF42e.js +1 -0
  71. package/dist/frontend/assets/vitesse-light-B2NYzK0e.js +1 -0
  72. package/dist/frontend/index.html +2 -2
  73. package/package.json +5 -7
  74. package/dist/backend/cli.js.map +0 -7
  75. package/dist/frontend/assets/index-BNdBOwwe.css +0 -1
  76. package/dist/frontend/assets/index-DRgMVTsn.js +0 -499
  77. package/dist/frontend/assets/javascript-ySlJ1b_l.js +0 -1
  78. package/dist/frontend/assets/roboto-cyrillic-300-normal-BoeCr7ev.woff2 +0 -0
  79. package/dist/frontend/assets/roboto-cyrillic-300-normal-D568C3aM.woff +0 -0
  80. package/dist/frontend/assets/roboto-cyrillic-400-normal-DAIM1_dR.woff2 +0 -0
  81. package/dist/frontend/assets/roboto-cyrillic-500-normal-hCeO1jFL.woff2 +0 -0
  82. package/dist/frontend/assets/roboto-cyrillic-700-normal-BiSG5NnW.woff2 +0 -0
  83. package/dist/frontend/assets/roboto-cyrillic-ext-300-normal-CUPJdUZp.woff2 +0 -0
  84. package/dist/frontend/assets/roboto-cyrillic-ext-300-normal-DQdcc27I.woff +0 -0
  85. package/dist/frontend/assets/roboto-cyrillic-ext-400-normal-DzMWdK87.woff2 +0 -0
  86. package/dist/frontend/assets/roboto-cyrillic-ext-500-normal-B7rQpwPu.woff2 +0 -0
  87. package/dist/frontend/assets/roboto-cyrillic-ext-500-normal-C927yMrb.woff +0 -0
  88. package/dist/frontend/assets/roboto-cyrillic-ext-700-normal-BuQgZIrO.woff +0 -0
  89. package/dist/frontend/assets/roboto-cyrillic-ext-700-normal-UFn0vR9r.woff2 +0 -0
  90. package/dist/frontend/assets/roboto-greek-300-normal-CTj2MfNN.woff +0 -0
  91. package/dist/frontend/assets/roboto-greek-300-normal-Cnub06j7.woff2 +0 -0
  92. package/dist/frontend/assets/roboto-greek-400-normal-jFM2czAU.woff2 +0 -0
  93. package/dist/frontend/assets/roboto-greek-500-normal-BJMS0heP.woff2 +0 -0
  94. package/dist/frontend/assets/roboto-greek-700-normal-BcGn9doz.woff2 +0 -0
  95. package/dist/frontend/assets/roboto-latin-300-normal-CztWkFGs.woff2 +0 -0
  96. package/dist/frontend/assets/roboto-latin-300-normal-KByCBsad.woff +0 -0
  97. package/dist/frontend/assets/roboto-latin-400-normal-CNwBRw8h.woff2 +0 -0
  98. package/dist/frontend/assets/roboto-latin-500-normal-CC5nhZkh.woff +0 -0
  99. package/dist/frontend/assets/roboto-latin-500-normal-CkrA1NAy.woff2 +0 -0
  100. package/dist/frontend/assets/roboto-latin-700-normal-CXeAXeti.woff2 +0 -0
  101. package/dist/frontend/assets/roboto-latin-700-normal-DUekQERp.woff +0 -0
  102. package/dist/frontend/assets/roboto-latin-ext-300-normal-BOz0oSmX.woff2 +0 -0
  103. package/dist/frontend/assets/roboto-latin-ext-300-normal-Tcf9y2tg.woff +0 -0
  104. package/dist/frontend/assets/roboto-latin-ext-400-normal-ZYmyxeOy.woff2 +0 -0
  105. package/dist/frontend/assets/roboto-latin-ext-400-normal-eTRLN0Nt.woff +0 -0
  106. package/dist/frontend/assets/roboto-latin-ext-500-normal-C_ARlJGk.woff2 +0 -0
  107. package/dist/frontend/assets/roboto-latin-ext-500-normal-FFcS8vBN.woff +0 -0
  108. package/dist/frontend/assets/roboto-latin-ext-700-normal-70GS1MYH.woff2 +0 -0
  109. package/dist/frontend/assets/roboto-latin-ext-700-normal-BS1OuQqR.woff +0 -0
  110. package/dist/frontend/assets/roboto-math-300-normal-BMxwzQmU.woff2 +0 -0
  111. package/dist/frontend/assets/roboto-math-300-normal-BU9CUCyj.woff +0 -0
  112. package/dist/frontend/assets/roboto-math-400-normal-B3wgz80t.woff2 +0 -0
  113. package/dist/frontend/assets/roboto-math-500-normal-CFNaIMFC.woff2 +0 -0
  114. package/dist/frontend/assets/roboto-math-700-normal-VUAI6Bz2.woff2 +0 -0
  115. package/dist/frontend/assets/roboto-math-700-normal-pYD1nhov.woff +0 -0
  116. package/dist/frontend/assets/roboto-symbols-300-normal-BtHl5mYl.woff2 +0 -0
  117. package/dist/frontend/assets/roboto-symbols-300-normal-kyoSXp-d.woff +0 -0
  118. package/dist/frontend/assets/roboto-symbols-400-normal-Tzuungub.woff +0 -0
  119. package/dist/frontend/assets/roboto-symbols-400-normal-fF1SLJBj.woff2 +0 -0
  120. package/dist/frontend/assets/roboto-symbols-500-normal-BXFTxrNR.woff2 +0 -0
  121. package/dist/frontend/assets/roboto-symbols-500-normal-CAhAe-ik.woff +0 -0
  122. package/dist/frontend/assets/roboto-symbols-700-normal-CuuvBBxy.woff +0 -0
  123. package/dist/frontend/assets/roboto-symbols-700-normal-rJi6RjIy.woff2 +0 -0
  124. package/dist/frontend/assets/roboto-vietnamese-300-normal-CNeuLW5X.woff2 +0 -0
  125. package/dist/frontend/assets/roboto-vietnamese-300-normal-DXBG9gdz.woff +0 -0
  126. package/dist/frontend/assets/roboto-vietnamese-400-normal-CDDxGrUb.woff2 +0 -0
  127. package/dist/frontend/assets/roboto-vietnamese-500-normal-HYpufUYk.woff2 +0 -0
  128. package/dist/frontend/assets/roboto-vietnamese-700-normal-iKxYNAzq.woff2 +0 -0
  129. package/dist/frontend/assets/vitesse-dark-D0r3Knsf.js +0 -1
  130. package/dist/frontend/assets/vitesse-light-CVO1_9PV.js +0 -1
package/README.md CHANGED
@@ -37,7 +37,7 @@ of port forwarding etc.
37
37
 
38
38
  | Channel | Branch | Current Version | Description |
39
39
  |---------|--------|-----------------|-------------|
40
- | **Stable** | `main` | v2.0.38 | Production-ready, recommended for most users |
40
+ | **Stable** | `main` | v2.0.41 | Production-ready, recommended for most users |
41
41
  | **Alpha** | `alpha` | v2.1.0-alpha.x | Pre-release with new features, for early adopters |
42
42
  | **Testing** | `testing` | v4.1.0-testing.x | ⚠️ **Highly unstable!** Experimental features, may break |
43
43
 
@@ -52,15 +52,40 @@ of port forwarding etc.
52
52
  ## 🎉 What's New
53
53
 
54
54
  <details>
55
- <summary><strong>📦 Stable Features (v2.0.38)</strong> - Click to expand</summary>
55
+ <summary><strong>📦 Stable Features (v2.0.41)</strong> - Click to expand</summary>
56
56
 
57
- **HOTFIX (post v2.0.38):**
57
+ **New in v2.0.41:**
58
+
59
+ | Feature | Description |
60
+ |---------|-------------|
61
+ | 🌡️ Google Home AC offline fix | `DeadFrontBehavior` on climate OnOff cluster so RoomAirConditioner stops showing offline on Google Home ([#302](https://github.com/RiDDiX/home-assistant-matter-hub/issues/302)) |
62
+ | 🪟 Cover device_class mapping | Map HA `garage`/`gate`/`window`/`awning`/etc. to the matching Matter WindowCovering type so voice commands hit the right device type ([#304](https://github.com/RiDDiX/home-assistant-matter-hub/issues/304)) |
63
+ | 📺 LG TV commissioning patch | Local patch on matter.js 0.16.11 to accept long NOC operational cert serials ([#305](https://github.com/RiDDiX/home-assistant-matter-hub/issues/305)) |
64
+ | 💡 Alexa brightness-reset behind flag | Old Alexa brightness-reset heuristic moved behind `alexaPreserveBrightnessOnTurnOn`, default off — Apple Home "set room to 100%" works again ([#306](https://github.com/RiDDiX/home-assistant-matter-hub/issues/306)) |
65
+ | 🌀 Google Home fan speed | Uses `fan.set_percentage` so already-on fans pick up speed changes from Google Home ([#308](https://github.com/RiDDiX/home-assistant-matter-hub/issues/308)) |
66
+ | ❄️ Climate auto mode | Expose Matter Auto mode when HA reports `auto` in `hvac_modes` ([#309](https://github.com/RiDDiX/home-assistant-matter-hub/issues/309)) |
67
+ | 🆔 Server-mode root identity | Root identity now applies as a single transaction, so controllers don't drop devices mid-swap ([#311](https://github.com/RiDDiX/home-assistant-matter-hub/issues/311)) |
68
+ | 🪟 Lift-only blinds | No more `TiltBlindTiltOnly` on covers without tilt — fixes Alexa routines for roller blinds ([#312](https://github.com/RiDDiX/home-assistant-matter-hub/issues/312)) |
69
+ | 🏷️ Per-entity `disableClimateOnOff` | Turn off the OnOff cluster on climate endpoints per entity for controllers that prefer mode-only control |
70
+ | 🔢 `serialNumberSuffix` per bridge | Append a suffix to every entity serial — useful if controllers like Aqara cache stale device data |
71
+ | 📝 `protocolLogLevel` option | Quiet matter.js logs independently from the app log level |
72
+ | 🖥️ Bridge HW/SW version strings | HA device-registry `hw_version`/`sw_version` now show up in Matter BasicInformation on server-mode endpoints |
73
+ | 🎨 Extended color light: XY + enhancedColorMode | XY feature added as mandatory, `enhancedColorMode` mirrors `colorMode` |
74
+ | 🎭 Groups + Scenes | Scenes and Groups clusters added on light, plug, and fan endpoints |
75
+ | 💧 Boolean state configuration | Cluster added on leak, freeze, rain, and contact sensors |
76
+ | 🌍 Spanish translation | New `es` locale ([#314](https://github.com/RiDDiX/home-assistant-matter-hub/pull/314), thanks [@Yllelder](https://github.com/Yllelder)) |
77
+ | 🧵 Matter.js 0.16.11 (pinned) | Kept pinned, local NOC serial patch applied |
78
+ | ⬆️ Dep bumps | Vite 8, jsdom 29, MUI x-tree-view 9, i18next 26, react-i18next 17, TypeScript 6.0.3, biome pinned 2.4.3, pnpm overrides for transitive CVEs |
79
+
80
+ **Reliability & resilience:** parallel bridge stop in `stopAll`/`restartAll`, parallel HA registry fetches, serialized bridge start/stop lifecycle, serialized `updateStates` with plugin listener detach, HA reconnect retry on transient network errors, 30s timeout on `sendMessagePromise`, port-conflict reject on web-api start, graceful shutdown on `/api/backup/restart`, `AppEnvironment` disposal on SIGINT, stale optimistic state sweep, pending debouncer clear, healthcheck 401 fix under basic auth, deep-equal entity attribute comparison, overlap guard for auto-refresh, safer mireds conversion, aligned `colorMode` publishing, surfaced bridge import errors, corrected thermostat running state for unknown modes + drying, unified Node version across Dockerfiles, sourcemaps excluded from npm tarball, unused deps dropped (rxjs, strip-color, lodash), unused `config-validator` utility removed.
81
+
82
+ **Previously in v2.0.39 & v2.0.40 (hotfix releases):**
58
83
  - Fixed crash loop on startup caused by Node 22 native WebSocket dropping connections ([#297](https://github.com/RiDDiX/home-assistant-matter-hub/issues/297), [#299](https://github.com/RiDDiX/home-assistant-matter-hub/issues/299)) — affects both aarch64 (RPi) and amd64
59
84
  - Fixed service initialization errors being silently swallowed, causing the process to hang instead of exiting
60
85
  - Registry fetch now waits for WebSocket reconnect between retries and has increased retry tolerance
61
86
  - Fixed `select`, `input_select`, `siren` domains showing as unsupported in filter preview ([#298](https://github.com/RiDDiX/home-assistant-matter-hub/issues/298))
62
87
 
63
- **New in v2.0.38:**
88
+ **Previously in v2.0.38:**
64
89
 
65
90
  | Feature | Description |
66
91
  |---------|-------------|
@@ -102,7 +127,7 @@ of port forwarding etc.
102
127
  <details>
103
128
  <summary><strong>🧪 Alpha Features (v2.1.0-alpha.x)</strong> - Click to expand</summary>
104
129
 
105
- **Alpha is currently level with Stable (v2.0.38).** All alpha features from the v2.1.0-alpha.600 line have been promoted into v2.0.38. New alpha work continues from `v2.1.0-alpha.601` onward and will appear here as development progresses.
130
+ **Alpha is currently level with Stable (v2.0.41).** All alpha work from the v2.1.0-alpha.601 line through v2.1.0-alpha.626 has been promoted into v2.0.41. New alpha work continues from `v2.1.0-alpha.627` onward and will appear here as development progresses.
106
131
 
107
132
  </details>
108
133
 
@@ -128,6 +153,12 @@ of port forwarding etc.
128
153
  <details>
129
154
  <summary><strong>📜 Previous Stable Versions</strong> - Click to expand</summary>
130
155
 
156
+ ### v2.0.40
157
+ Filter preview domain fix — `select`, `input_select`, `siren` now show as supported ([#298](https://github.com/RiDDiX/home-assistant-matter-hub/issues/298))
158
+
159
+ ### v2.0.39
160
+ Node 22 WebSocket crash loop fix ([#297](https://github.com/RiDDiX/home-assistant-matter-hub/issues/297), [#299](https://github.com/RiDDiX/home-assistant-matter-hub/issues/299)), service init error surfacing, registry retry hardening, support link added
161
+
131
162
  ### v2.0.37
132
163
  Aqara productNameFromNodeLabel flag, Matter.js 0.16.11, Swedish locale update
133
164
 
@@ -434,6 +465,7 @@ This project thrives thanks to the amazing community! Special thanks to everyone
434
465
  | [@omerfaruk-aran](https://github.com/omerfaruk-aran) | 🔧 **Network Debugging Expert** - Systematic mDNS/multicast root cause analysis for "No Response" issues ([#129](https://github.com/RiDDiX/home-assistant-matter-hub/issues/129)) |
435
466
  | [@gustavakerstrom](https://github.com/gustavakerstrom) | 🤖 **Code Contributor** - Template description display fix ([#215](https://github.com/RiDDiX/home-assistant-matter-hub/pull/215)) |
436
467
  | [@aetasoul](https://github.com/aetasoul) | 🤖 **Code Contributor** - Immediate force sync on startup to beat stale Alexa queues ([#282](https://github.com/RiDDiX/home-assistant-matter-hub/pull/282)) |
468
+ | [@Yllelder](https://github.com/Yllelder) | 🌐 **Translator** - Spanish translation ([#314](https://github.com/RiDDiX/home-assistant-matter-hub/pull/314)) |
437
469
 
438
470
  <details>
439
471
  <summary><strong>📋 Issue Tracker - All Contributors</strong> (click to expand)</summary>