homebridge-config-ui-x 5.0.0-beta.1 → 5.0.0-beta.100

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 (287) hide show
  1. package/CHANGELOG.md +439 -18
  2. package/CONTRIBUTING.md +5 -4
  3. package/LICENSE +1 -1
  4. package/README.md +6 -8
  5. package/config.schema.json +55 -252
  6. package/dist/bin/fork.js +17 -7
  7. package/dist/bin/fork.js.map +1 -1
  8. package/dist/bin/hb-service.d.ts +2 -2
  9. package/dist/bin/hb-service.js +69 -58
  10. package/dist/bin/hb-service.js.map +1 -1
  11. package/dist/bin/platforms/darwin.js +2 -2
  12. package/dist/bin/platforms/darwin.js.map +1 -1
  13. package/dist/bin/platforms/win32.js +4 -2
  14. package/dist/bin/platforms/win32.js.map +1 -1
  15. package/dist/bin/standalone.js +18 -7
  16. package/dist/bin/standalone.js.map +1 -1
  17. package/dist/core/auth/auth.controller.d.ts +31 -3
  18. package/dist/core/auth/auth.controller.js.map +1 -1
  19. package/dist/core/auth/auth.module.js +1 -1
  20. package/dist/core/auth/auth.module.js.map +1 -1
  21. package/dist/core/auth/auth.service.js +10 -10
  22. package/dist/core/auth/auth.service.js.map +1 -1
  23. package/dist/core/auth/jwt.strategy.d.ts +3 -1
  24. package/dist/core/config/config.service.d.ts +46 -11
  25. package/dist/core/config/config.service.js +57 -20
  26. package/dist/core/config/config.service.js.map +1 -1
  27. package/dist/core/config/config.startup.js +2 -2
  28. package/dist/core/config/config.startup.js.map +1 -1
  29. package/dist/core/homebridge-ipc/homebridge-ipc.service.js +3 -3
  30. package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
  31. package/dist/index.js +6 -67
  32. package/dist/index.js.map +1 -1
  33. package/dist/main.js +2 -1
  34. package/dist/main.js.map +1 -1
  35. package/dist/modules/accessories/accessories.controller.js +5 -5
  36. package/dist/modules/accessories/accessories.controller.js.map +1 -1
  37. package/dist/modules/accessories/accessories.service.js +8 -7
  38. package/dist/modules/accessories/accessories.service.js.map +1 -1
  39. package/dist/modules/backup/backup.controller.js +7 -7
  40. package/dist/modules/backup/backup.controller.js.map +1 -1
  41. package/dist/modules/backup/backup.service.js +19 -79
  42. package/dist/modules/backup/backup.service.js.map +1 -1
  43. package/dist/modules/child-bridges/child-bridges.service.js +0 -7
  44. package/dist/modules/child-bridges/child-bridges.service.js.map +1 -1
  45. package/dist/modules/config-editor/config-editor.controller.d.ts +7 -1
  46. package/dist/modules/config-editor/config-editor.controller.js +36 -8
  47. package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
  48. package/dist/modules/config-editor/config-editor.service.d.ts +5 -1
  49. package/dist/modules/config-editor/config-editor.service.js +132 -69
  50. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  51. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.d.ts +1 -1
  52. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +13 -11
  53. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  54. package/dist/modules/log/log.gateway.d.ts +2 -1
  55. package/dist/modules/log/log.gateway.js.map +1 -1
  56. package/dist/modules/log/log.service.js +3 -3
  57. package/dist/modules/log/log.service.js.map +1 -1
  58. package/dist/modules/platform-tools/docker/docker.controller.js +3 -3
  59. package/dist/modules/platform-tools/docker/docker.controller.js.map +1 -1
  60. package/dist/modules/platform-tools/docker/docker.service.js +1 -1
  61. package/dist/modules/platform-tools/docker/docker.service.js.map +1 -1
  62. package/dist/modules/platform-tools/hb-service/hb-service.controller.js +3 -3
  63. package/dist/modules/platform-tools/hb-service/hb-service.controller.js.map +1 -1
  64. package/dist/modules/platform-tools/hb-service/hb-service.service.js +6 -6
  65. package/dist/modules/platform-tools/hb-service/hb-service.service.js.map +1 -1
  66. package/dist/modules/platform-tools/linux/linux.controller.js +2 -2
  67. package/dist/modules/platform-tools/linux/linux.controller.js.map +1 -1
  68. package/dist/modules/platform-tools/linux/linux.service.js +2 -2
  69. package/dist/modules/platform-tools/linux/linux.service.js.map +1 -1
  70. package/dist/modules/platform-tools/terminal/terminal.gateway.d.ts +2 -1
  71. package/dist/modules/platform-tools/terminal/terminal.gateway.js.map +1 -1
  72. package/dist/modules/platform-tools/terminal/terminal.service.js +2 -2
  73. package/dist/modules/platform-tools/terminal/terminal.service.js.map +1 -1
  74. package/dist/modules/plugins/plugins.controller.js +4 -4
  75. package/dist/modules/plugins/plugins.controller.js.map +1 -1
  76. package/dist/modules/plugins/plugins.service.d.ts +7 -1
  77. package/dist/modules/plugins/plugins.service.js +215 -127
  78. package/dist/modules/plugins/plugins.service.js.map +1 -1
  79. package/dist/modules/server/server.controller.d.ts +33 -3
  80. package/dist/modules/server/server.controller.js +162 -20
  81. package/dist/modules/server/server.controller.js.map +1 -1
  82. package/dist/modules/server/server.service.d.ts +35 -6
  83. package/dist/modules/server/server.service.js +265 -66
  84. package/dist/modules/server/server.service.js.map +1 -1
  85. package/dist/modules/status/status.controller.d.ts +0 -1
  86. package/dist/modules/status/status.controller.js +3 -4
  87. package/dist/modules/status/status.controller.js.map +1 -1
  88. package/dist/modules/status/status.gateway.d.ts +1 -1
  89. package/dist/modules/status/status.service.d.ts +1 -1
  90. package/dist/modules/status/status.service.js +25 -41
  91. package/dist/modules/status/status.service.js.map +1 -1
  92. package/dist/modules/users/users.controller.js +7 -7
  93. package/dist/modules/users/users.controller.js.map +1 -1
  94. package/dist/self-check.js +6 -6
  95. package/dist/self-check.js.map +1 -1
  96. package/package.json +50 -44
  97. package/public/3rdpartylicenses.txt +573 -463
  98. package/public/assets/hap-icons/airpurifier.svg +49 -16
  99. package/public/assets/hap-icons/airquality.svg +24 -13
  100. package/public/assets/hap-icons/co-sensor.svg +72 -0
  101. package/public/assets/hap-icons/co2-sensor.svg +72 -0
  102. package/public/assets/hap-icons/contactsensor-closed.svg +35 -2
  103. package/public/assets/hap-icons/contactsensor-open.svg +80 -2
  104. package/public/assets/hap-icons/door-closed.svg +32 -2
  105. package/public/assets/hap-icons/door-open.svg +48 -2
  106. package/public/assets/hap-icons/fan-off.svg +24 -13
  107. package/public/assets/hap-icons/fan-on.svg +24 -13
  108. package/public/assets/hap-icons/garagedoor.svg +24 -13
  109. package/public/assets/hap-icons/humidity.svg +24 -13
  110. package/public/assets/hap-icons/irrigation-system.svg +47 -18
  111. package/public/assets/hap-icons/leaksensor.svg +52 -2
  112. package/public/assets/hap-icons/light.svg +47 -28
  113. package/public/assets/hap-icons/lightbulb.svg +24 -13
  114. package/public/assets/hap-icons/lock-locked.svg +24 -13
  115. package/public/assets/hap-icons/lock-unlocked.svg +24 -13
  116. package/public/assets/hap-icons/motionsensor.svg +100 -2
  117. package/public/assets/hap-icons/occupancysensor.svg +97 -2
  118. package/public/assets/hap-icons/outlet.svg +24 -13
  119. package/public/assets/hap-icons/securitysystem-active.svg +102 -2
  120. package/public/assets/hap-icons/securitysystem-off.svg +68 -2
  121. package/public/assets/hap-icons/smokesensor.svg +42 -9
  122. package/public/assets/hap-icons/speaker.svg +29 -13
  123. package/public/assets/hap-icons/statelessprogrammableswitch.svg +51 -2
  124. package/public/assets/hap-icons/switch.svg +24 -13
  125. package/public/assets/hap-icons/television.svg +15 -4
  126. package/public/assets/hap-icons/temperature.svg +24 -13
  127. package/public/assets/hap-icons/unknown.svg +24 -13
  128. package/public/assets/hap-icons/valve-generic.svg +27 -16
  129. package/public/assets/hap-icons/valve-irrigation.svg +37 -21
  130. package/public/assets/hap-icons/valve-showerhead.svg +52 -0
  131. package/public/assets/hap-icons/valve-waterfaucet.svg +21 -0
  132. package/public/assets/hap-icons/window-closed.svg +85 -2
  133. package/public/assets/hap-icons/window-open.svg +136 -2
  134. package/public/assets/hap-icons/windowcovering-closed.svg +45 -49
  135. package/public/assets/hap-icons/windowcovering-open.svg +40 -44
  136. package/public/assets/homebridge-color-round.svg +36 -1
  137. package/public/assets/homebridge-logo.svg +11 -1
  138. package/public/assets/mask-icon.svg +5 -1
  139. package/public/assets/plugin-ui-utils/ui.js +41 -19
  140. package/public/assets/plugin-ui-utils/ui.js.map +1 -1
  141. package/public/chunk-2E6EOZUJ.js +1 -0
  142. package/public/chunk-2EEZAGZA.js +1 -0
  143. package/public/chunk-2G7GNBIF.js +1 -0
  144. package/public/chunk-3GEFBFMQ.js +1 -0
  145. package/public/chunk-3VYIHHCL.js +1 -0
  146. package/public/chunk-45NQ4GBG.js +1 -0
  147. package/public/chunk-4G7RRMI2.js +1 -0
  148. package/public/chunk-4L2H4MMG.js +29 -0
  149. package/public/chunk-4LX4LX6P.js +1 -0
  150. package/public/chunk-4SLRCK6B.js +2 -0
  151. package/public/chunk-53ILAFUX.js +1 -0
  152. package/public/chunk-5FYL3TBQ.js +1 -0
  153. package/public/chunk-5PN6UJOB.js +1 -0
  154. package/public/chunk-6IOCCVAH.js +1 -0
  155. package/public/chunk-7REMZHOO.js +1 -0
  156. package/public/chunk-AH6LOD34.js +1 -0
  157. package/public/chunk-ALG7CIS3.js +5 -0
  158. package/public/chunk-AQNNOWXC.js +1 -0
  159. package/public/chunk-B4X7IOGK.js +1 -0
  160. package/public/chunk-BALPGJEG.js +1 -0
  161. package/public/chunk-BIRWL4X3.js +1 -0
  162. package/public/chunk-BMCQHGMB.js +1 -0
  163. package/public/chunk-BNYXD34L.js +1 -0
  164. package/public/chunk-BRW7C4BZ.js +1 -0
  165. package/public/chunk-C6HQUAQJ.js +1 -0
  166. package/public/chunk-C6LXQBT3.js +1 -0
  167. package/public/chunk-CG7LPZUJ.js +1 -0
  168. package/public/chunk-CMZBGXBL.js +1 -0
  169. package/public/chunk-CRIZPUI6.js +8 -0
  170. package/public/chunk-DDFZVHUO.js +1 -0
  171. package/public/chunk-DQUBVCJE.js +1 -0
  172. package/public/chunk-EULZTUQA.js +1 -0
  173. package/public/chunk-F6PRUGSN.js +1 -0
  174. package/public/chunk-FD3D3FMF.js +1 -0
  175. package/public/chunk-FJJNRLA7.js +1 -0
  176. package/public/chunk-FSQ4KA4X.js +1 -0
  177. package/public/chunk-FXS7MG4Z.js +1 -0
  178. package/public/chunk-GMY5QOXR.js +7 -0
  179. package/public/chunk-HE2YZMXJ.js +1 -0
  180. package/public/chunk-HOGBMPOF.js +1 -0
  181. package/public/chunk-HOI6GB6V.js +1 -0
  182. package/public/chunk-IOWBVW62.js +2 -0
  183. package/public/chunk-LCYRJQ4W.js +1 -0
  184. package/public/chunk-M2U64RPA.js +1 -0
  185. package/public/chunk-MAXJEMB2.js +1 -0
  186. package/public/chunk-MGEQZI52.js +1 -0
  187. package/public/chunk-MTSNBCD6.js +1 -0
  188. package/public/chunk-O752QW52.js +8 -0
  189. package/public/chunk-OHSRCO5R.js +1 -0
  190. package/public/chunk-OTJCSRHZ.js +1 -0
  191. package/public/chunk-PAQIQJ5I.js +1 -0
  192. package/public/chunk-PODF4FUD.js +1 -0
  193. package/public/chunk-PYWNQR2G.js +1 -0
  194. package/public/chunk-Q5OGHYTC.js +1 -0
  195. package/public/chunk-QIH36FRX.js +1 -0
  196. package/public/chunk-QMB5XE4Y.js +1 -0
  197. package/public/chunk-R3VPSO5X.js +7 -0
  198. package/public/chunk-RGUTUTJY.js +20 -0
  199. package/public/chunk-RJAFS3B2.js +1 -0
  200. package/public/chunk-RNHMRKPJ.js +8 -0
  201. package/public/chunk-SHP2ASKV.js +5 -0
  202. package/public/chunk-SMR5XBWZ.js +1 -0
  203. package/public/chunk-T5VLECCH.js +23 -0
  204. package/public/chunk-TFSUXAYX.js +1 -0
  205. package/public/chunk-UCO62FWN.js +1 -0
  206. package/public/chunk-UTAVUGTT.js +14 -0
  207. package/public/chunk-UVOJ3BF7.js +1 -0
  208. package/public/chunk-UVQC4EUO.js +6 -0
  209. package/public/chunk-VECPBVSQ.js +1 -0
  210. package/public/{chunk-GNQUXZMN.js → chunk-VHTQTL2S.js} +1 -1
  211. package/public/chunk-VJEUBTTK.js +1 -0
  212. package/public/chunk-VLX322GM.js +1 -0
  213. package/public/chunk-VUYAK52W.js +2 -0
  214. package/public/{chunk-6QEO3BTW.js → chunk-WAA5KWIN.js} +14 -14
  215. package/public/chunk-WGYMALW2.js +1 -0
  216. package/public/chunk-WU2EPT6Y.js +1 -0
  217. package/public/chunk-WUMR3VEV.js +1 -0
  218. package/public/chunk-WZZWFCHX.js +4 -0
  219. package/public/chunk-XB7KM2X2.js +1 -0
  220. package/public/chunk-YJ2ZKKJQ.js +1 -0
  221. package/public/index.html +2 -2
  222. package/public/main-BQGRDRA6.js +1 -0
  223. package/public/media/fa-brands-400-Q3XCMWHQ.woff2 +0 -0
  224. package/public/media/{fa-brands-400-CNBICIQT.ttf → fa-brands-400-R2XQZCET.ttf} +0 -0
  225. package/public/media/fa-regular-400-QSNYFYRT.woff2 +0 -0
  226. package/public/media/{fa-regular-400-2FI4ICQD.ttf → fa-regular-400-XUOPSR7E.ttf} +0 -0
  227. package/public/media/fa-solid-900-5ZUYHGA7.woff2 +0 -0
  228. package/public/media/{fa-solid-900-XVWCCN5V.ttf → fa-solid-900-PJNKLK6W.ttf} +0 -0
  229. package/public/polyfills-GCAZ7JAV.js +2 -0
  230. package/public/prerendered-routes.json +3 -0
  231. package/public/styles-PKR3EGHP.css +1 -0
  232. package/scripts/upgrade-install-plugin.sh +1 -1
  233. package/public/chunk-3KSUXL3K.js +0 -20
  234. package/public/chunk-422JXES4.js +0 -23
  235. package/public/chunk-4R6MSI5I.js +0 -14
  236. package/public/chunk-5UYN5OWH.js +0 -1
  237. package/public/chunk-7564WJJL.js +0 -1
  238. package/public/chunk-7R6JSPNH.js +0 -1
  239. package/public/chunk-B6C32ZRK.js +0 -1
  240. package/public/chunk-B6G7GTDI.js +0 -1
  241. package/public/chunk-BQLALGZ5.js +0 -4
  242. package/public/chunk-BROUJ7PT.js +0 -1
  243. package/public/chunk-C4OONTE3.js +0 -1
  244. package/public/chunk-DOLYKWZH.js +0 -1
  245. package/public/chunk-DRWF7R4E.js +0 -1
  246. package/public/chunk-F22FMU37.js +0 -1
  247. package/public/chunk-FBP5C7VG.js +0 -1
  248. package/public/chunk-FPOZAQLC.js +0 -5
  249. package/public/chunk-IGUSDGD6.js +0 -8
  250. package/public/chunk-JM7QCDMZ.js +0 -1
  251. package/public/chunk-K3YXRBTH.js +0 -1
  252. package/public/chunk-K6TZNXIW.js +0 -1
  253. package/public/chunk-LS7T2AVU.js +0 -8
  254. package/public/chunk-NZPTOWFC.js +0 -20
  255. package/public/chunk-RID7V4NP.js +0 -1
  256. package/public/chunk-RIWBPQF3.js +0 -1
  257. package/public/chunk-S4SOWUAW.js +0 -1
  258. package/public/chunk-SJTXTMYT.js +0 -2
  259. package/public/chunk-T5QVI4H2.js +0 -1
  260. package/public/chunk-TBJQ2Y3M.js +0 -1
  261. package/public/chunk-THFLPY67.js +0 -7
  262. package/public/chunk-TS27NWVA.js +0 -20
  263. package/public/chunk-VROGSJLF.js +0 -1
  264. package/public/chunk-VVILZWTF.js +0 -1
  265. package/public/chunk-WCDFKYP6.js +0 -5
  266. package/public/chunk-WCQIGCXO.js +0 -1
  267. package/public/chunk-Z47RP4BH.js +0 -1
  268. package/public/chunk-ZEONO5N6.js +0 -1
  269. package/public/main-VTRWQ63R.js +0 -6
  270. package/public/media/01-RQ3S2L53.png +0 -0
  271. package/public/media/02-VNCG2I2A.png +0 -0
  272. package/public/media/03-HI42L4ZG.png +0 -0
  273. package/public/media/04-FJLL55LZ.png +0 -0
  274. package/public/media/05-V3EO6SPT.png +0 -0
  275. package/public/media/06-EOJZCQZN.png +0 -0
  276. package/public/media/07-KMKB5PBD.png +0 -0
  277. package/public/media/08-UQJRF6B2.png +0 -0
  278. package/public/media/09-2DJQFRHH.png +0 -0
  279. package/public/media/arrow_left-CQT7FZM7.svg +0 -4
  280. package/public/media/arrow_right-SBUDRR2G.svg +0 -4
  281. package/public/media/fa-brands-400-MDS4TU4L.woff2 +0 -0
  282. package/public/media/fa-regular-400-N56QV3DR.woff2 +0 -0
  283. package/public/media/fa-solid-900-Z3HFQTXF.woff2 +0 -0
  284. package/public/polyfills-CE2SNIQF.js +0 -2
  285. package/public/scripts-6GVLYD7F.js +0 -62
  286. package/public/styles-7ETWN6DQ.css +0 -1
  287. /package/public/assets/{bootstrap-4 → bootstrap-5}/cssframework/assets.json +0 -0
package/CHANGELOG.md CHANGED
@@ -2,14 +2,248 @@
2
2
 
3
3
  All notable changes to `homebridge-config-ui-x` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).
4
4
 
5
- ## BETA
5
+ ## v5.0.0 (Unreleased)
6
6
 
7
7
  ### ⚠️ Breaking Changes
8
8
 
9
- - This version of the Homebridge UI will drop support for:
10
- - Node.js `v16` and earlier, so please update to `v18` or `v20` or `v22` - [more info on updating](https://github.com/homebridge/homebridge/wiki/How-To-Update-Node.js)
11
- - Raspberry Pi devices running on the `armv6` architecture (like the Pi 1 and Pi Zero) - please update your hardware
12
- - Instances using `pnpm` as the package manager - consider updating your Homebridge instance to use npm instead - [more info on updating](https://github.com/homebridge/homebridge-apt-pkg/blob/latest/README.md#using-apt)
9
+ - This version of the Homebridge UI:
10
+ - Is compatible with Homebridge `v1` and `v2-beta`
11
+ - Drops support for Node.js `v18` and earlier, so please update to `v20` or `v22` - [more info on updating](https://github.com/homebridge/homebridge/wiki/How-To-Update-Node.js)
12
+ - Drops support for Raspberry Pi devices running on the `armv6` architecture (like the Pi 1 and Pi Zero) - please update your hardware
13
+ - Drops support for instances using `pnpm` as the package manager - consider updating your Homebridge instance to use npm instead - [more info on updating](https://github.com/homebridge/homebridge-apt-pkg/blob/latest/README.md#using-apt)
14
+
15
+ ### UI Changes
16
+
17
+ - updates to the `fi.json` language file (#2253) (@l1500s)
18
+ - update default dashboard layout
19
+ - add support for dark mode switching with custom plugin uis (@NorthernMan54)
20
+
21
+ ### Other Changes
22
+
23
+ - retire use of `pnpm` and code references
24
+ - bump the default node version from 20 to 22
25
+ - make terminal enabled by default on new macOS hb-service installs
26
+ - set service mode as default, remove standalone
27
+ - Initial support for NodeJS 24 in preparation for LTS in Fall of 2025 (#2451) (@NorthernMan54)
28
+ - update `fastify` and `nestjs` dependencies
29
+
30
+ ### Homebridge Dependencies
31
+
32
+ - `@homebridge/hap-client` @ `v3.0.0`
33
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.0-beta`
34
+ - `@homebridge/plugin-ui-utils` @ `v2.1.0`
35
+
36
+ ## v4.77.0 (Unreleased)
37
+
38
+ ### UI Changes
39
+
40
+ - auto restart after version change of hb or ui
41
+ - redesigned setup wizard page
42
+ - style HBv2/UIv5 icons on status page based on readiness
43
+ - security system modal only show valid modes
44
+ - refactor settings page with immediate saving
45
+ - add support for `uiSchema` within plugin configurations
46
+ - add option to hide update notifications for specific plugins
47
+ - improve plugin search and result ordering (@justjam2013)
48
+
49
+ ### Other Changes
50
+
51
+ - Removed redundant Google Smart Home components (@NorthernMan54)
52
+
53
+ ### Homebridge Dependencies
54
+
55
+ - `@homebridge/hap-client` @ `v3.1.0`
56
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
57
+ - `@homebridge/plugin-ui-utils` @ `v2.1.0`
58
+
59
+ ## v4.76.0 (2025-06-07)
60
+
61
+ ### UI Changes
62
+
63
+ - updates to the `th.json` language file (#2443) (@tomzt)
64
+ - improvements to various accessory tiles and modals
65
+ - fix occasional issue in backup/restore, revert recent change
66
+ - improvements to plugin config validation
67
+ - use `ajv-keywords` to allow validation of unique properties in arrays
68
+ - fix form field error state font colour (make it red)
69
+ - redesigned login page
70
+ - improve wallpaper selection with new modal to upload a file
71
+ - refactor HBv2 and UIv5 readiness modals
72
+ - move backup settings from ui advanced settings to backup/restore modal
73
+ - show lock management service info on lock mechanism info modal
74
+ - show characteristic descriptions in info modal when available
75
+
76
+ ### Other Changes
77
+
78
+ - upgrade to angular `v20`
79
+ - bump `plugin-ui-utils` for new theme method
80
+
81
+ ### Homebridge Dependencies
82
+
83
+ - `@homebridge/hap-client` @ `v2.2.0`
84
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
85
+ - `@homebridge/plugin-ui-utils` @ `v2.1.0`
86
+
87
+ ## v4.75.0 (2025-05-25)
88
+
89
+ ### UI Changes
90
+
91
+ - updates to the uk.json language file (#2436) (@xrust83)
92
+ - updates to the th.json language file (#2437) (@tomzt)
93
+ - updates to the `manual_update_command` language string
94
+ - show restart modal after installing an already configured plugin
95
+ - add long click modal for lock mechanism + management
96
+ - improvements to heater/humidifier/thermostat icon+modal
97
+ - improvements to battery icon
98
+
99
+ ### Homebridge Dependencies
100
+
101
+ - `@homebridge/hap-client` @ `v2.1.0`
102
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
103
+ - `@homebridge/plugin-ui-utils` @ `v2.0.2`
104
+
105
+ ## v4.74.0 (2025-05-18)
106
+
107
+ ### UI Changes
108
+
109
+ - improve plugin manage version ui (#2424) (@apexskier)
110
+ - capitalise time zone in system info widget
111
+ - add architecture to system info widget
112
+ - add checks on system for updating to ui v5
113
+ - added screen for ui v5 readiness check
114
+ - add color temperature to lightbulb screen (@justjam2013)
115
+ - add temperature units to heatercooler (@justjam2013)
116
+ - add valve control modal (@justjam2013)
117
+ - update speaker tile + control modal (@justjam2013)
118
+
119
+ ### Homebridge Dependencies
120
+
121
+ - `@homebridge/hap-client` @ `v2.1.0`
122
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
123
+ - `@homebridge/plugin-ui-utils` @ `v2.0.2`
124
+
125
+ ## v4.73.0 (2025-04-19)
126
+
127
+ ### UI Changes
128
+
129
+ - updates to the `en.json` language file (#2389) (@HenryGelderbloem)
130
+ - updates to the `de.json` language file (#2403) (@Staubgeborener)
131
+ - updates to the `de.json` language file (#2404) (@Staubgeborener)
132
+ - improve icons in bridges widget
133
+ - fix individual accessory deselect on remove modal
134
+ - improve accessory icons for CO and CO2 sensors
135
+ - make secondary blue colour in light mode more distinct
136
+
137
+ ### Other Changes
138
+
139
+ - fix do not include `--omit=dev` flag in `pnpm` commands
140
+ - add lint job for checking all pull requests
141
+ - allow package mode users to disable the terminal
142
+ - various copilot improvements for file paths
143
+ - updated dependencies
144
+ - remove `ubuntu-20.04` from actions as unsupported
145
+
146
+ ### Homebridge Dependencies
147
+
148
+ - `@homebridge/hap-client` @ `v2.1.0`
149
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
150
+ - `@homebridge/plugin-ui-utils` @ `v2.0.2`
151
+
152
+ ## v4.72.0 (2025-03-22)
153
+
154
+ ### UI Changes
155
+
156
+ - updates to the `th.json` language file (#2365) (@tomzt)
157
+ - updates to the `es.json` language file (#2376) (@kyrokode)
158
+ - updates to the `id.json` language file (#2377) (@dwaan)
159
+ - updates to the `ru.json` language file (#2384) (@SeregaTarasov)
160
+ - fixed issue with UI config incorrectly reporting as invalid
161
+ - don't allow adding multiple config blocks for singular plugins
162
+
163
+ ### Other Changes
164
+
165
+ - updated dependencies
166
+
167
+ ### Homebridge Dependencies
168
+
169
+ - `@homebridge/hap-client` @ `v2.0.6`
170
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
171
+ - `@homebridge/plugin-ui-utils` @ `v2.0.1`
172
+
173
+ ## v4.71.2 (2025-02-23)
174
+
175
+ ### Other Changes
176
+
177
+ - fix alpha/beta update checks for bundled ui (#2363) (@dnicolson)
178
+ - fix ui config validation when default theme selected
179
+
180
+ ### Homebridge Dependencies
181
+
182
+ - `@homebridge/hap-client` @ `v2.0.5`
183
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
184
+ - `@homebridge/plugin-ui-utils` @ `v2.0.1`
185
+
186
+ ## v4.71.1 (2025-02-22)
187
+
188
+ ### UI Changes
189
+
190
+ - updates to the `uk.json` language file (#2352) (@xrust83)
191
+ - add missing add section button to plugin config screens
192
+ - improve active/stale bridge detection
193
+ - fix error state on plugin search input
194
+
195
+ ### Other Changes
196
+
197
+ - re-add `reflect-metadata` to `dependencies` in `package.json`
198
+
199
+ ### Homebridge Dependencies
200
+
201
+ - `@homebridge/hap-client` @ `v2.0.5`
202
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
203
+ - `@homebridge/plugin-ui-utils` @ `v2.0.1`
204
+
205
+ ## v4.71.0 (2025-02-09)
206
+
207
+ ### UI Changes
208
+
209
+ - updates to the `uk.json` language file (#2348) (@xrust83)
210
+ - allow docker users to disable the UI terminal via env
211
+ - set `HOMEBRIDGE_CONFIG_UI_TERMINAL_ENABLED=0`
212
+ - note that this has not been extensively tested
213
+ - fix opening control accessory modal on mobile devices
214
+
215
+ ### Other Changes
216
+
217
+ - update `@ng-formworks/` dependencies
218
+
219
+ ### Homebridge Dependencies
220
+
221
+ - `@homebridge/hap-client` @ `v2.0.5`
222
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
223
+ - `@homebridge/plugin-ui-utils` @ `v2.0.1`
224
+
225
+ ## v4.70.0 (2025-02-08)
226
+
227
+ ### UI Changes
228
+
229
+ - updates to the `th.json` language file (#2338) (@tomzt)
230
+ - improvements to long-click accessory control
231
+ - also fixes accessory and room rearranging on the accessories page
232
+ - accessory and status page layout will now be locked by default on each visit
233
+ - add message for docker/synology users in node update info modal
234
+
235
+ ### Other Changes
236
+
237
+ - append `--omit=dev` to `npm i` commands
238
+ - clean up `npm` cache before any install/uninstall
239
+
240
+ ### Homebridge Dependencies
241
+
242
+ - `@homebridge/hap-client` @ `v2.0.5`
243
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
244
+ - `@homebridge/plugin-ui-utils` @ `v2.0.1`
245
+
246
+ ## v4.69.0 (2025-01-25)
13
247
 
14
248
  ### ⚠️ Plugin Config Validation
15
249
 
@@ -25,28 +259,217 @@ If you have a plugin which can be configured multiple times, then an icon will b
25
259
 
26
260
  Plugin developers:
27
261
 
28
- - Please do not rely on this validation and assume that a user's configuration will be valid
29
- - All plugins should still validate a configuration when the plugin is started
262
+ - Please do not rely on this validation and assume that a user's configuration will be valid: you should still validate the user's config on plugin startup
30
263
  - Remember that some users do not use the UI at all, and other users may prefer to configure using raw `JSON` rather than config screens
31
- - Please report any cases where the validation is not working as expected, or where the 'Save' button is incorrectly disabled when using custom UIs
264
+ - For custom UI screens, the validation icon will be hidden when the save button is disabled (using `homebridge.disableSaveButton()` from `@homebridge/plugin-ui-utils`)
265
+ - Please report any cases where the validation is not working as expected
32
266
 
33
267
  ### UI Changes
34
268
 
35
- - implement and allow switching to scoped plugins
269
+ - updates to the `uk.json` language file (#2312) (@xrust83)
270
+ - updates to the `cs.json` language file (#2332) (@DavidHuljak)
271
+ - fix typos in hb/ui settings schemas (#2317) (@dnicolson)
272
+ - fix margins in update plugin modal
36
273
  - add plugin config validation functionality
37
274
  - refactor status and child bridge widgets
38
- - update default dashboard layout
275
+ - the existing 'status' widget has been renamed to 'update info' widget
276
+ - the existing 'child bridges' widget has been renamed to 'bridges' widget
277
+ - the homebridge status (from the old status widget) is now shown as a bridge in the new bridges widget
278
+ - node update information has been added to the new update info widget
279
+ - a widget option has been added to hide node update information: this may be useful for docker/synology users
280
+ - homebridge and ui version information has been moved from the footer to the new update info widget
281
+ - add 'homebridge name' setting to settings page
282
+ - migrate bootstrap from `v4` to `v5`
283
+ - fix plugin config/bridge screens for certain plugins
284
+ - add lighting mode option for terminal and log widgets
285
+ - only available when the UI is already in light mode
286
+ - fix long press on mobile devices
287
+ - control fan rotation direction from the ui
39
288
 
40
289
  ### Other Changes
41
290
 
42
- - retire use of `pnpm` and code references
43
- - enable strict config validation for the UI
44
- - bump the default node version from 20 to 22
291
+ - improvements to GH actions and build processes (@NorthernMan54)
292
+
293
+ ### Homebridge Dependencies
294
+
295
+ - `@homebridge/hap-client` @ `v2.0.5`
296
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
297
+ - `@homebridge/plugin-ui-utils` @ `v2.0.1`
298
+
299
+ ## v4.68.0 (2025-01-08)
300
+
301
+ Happy 2025 to all our users! 🎉
302
+
303
+ ### UI Changes
304
+
305
+ - updates to the `cs.json` language file (#2311) (@DavidHuljak)
306
+ - improved messaging on plugin child bridge modal
307
+ - further improvements to plugin search
308
+ - implement and allow switching to scoped plugins
309
+ - merge plugin info and verified modals
310
+ - condensing plugin card into title + three lines of description
311
+ - consistent formatting of child bridge names across the ui
312
+ - general improvements across the ui
313
+ - status page:
314
+ - individual widget setting form design made consistent with other forms
315
+ - added pairing status to qr code widget
316
+ - plugins page:
317
+ - visual improvements to plugin child bridge settings modal
318
+ - allow plugins to disable/enable the save button in custom uis (see below section)
319
+ - allow configuring [multiple accessories on the same child bridge](https://github.com/homebridge/homebridge/wiki/Child-Bridges#multiple-accessories-on-the-same-child-bridge) via the ui
320
+ - accessories page:
321
+ - changed accessory spanner icon to info icon (more descriptive)
322
+ - accessory info modal redesigned and provides more info where possible like the accessory UUID (including a link to remove from the cache)
323
+ - added support modal with some info about rooms and accessories (visible on desktop)
324
+ - json config page:
325
+ - redesigned restore modal to be more consistent with other modals
326
+ - settings page:
327
+ - chevron icons replaced with arrow-right icons
328
+ - removed restore modal from settings page and is accessible from the backup modal
329
+ - backup modal redesigned to be more consistent with other modals
330
+ - added new display -> menu mode setting which allows keeping the side menu from expanding out on desktop
331
+ - redesigned and improved accessories and bridges sections and modals
332
+ - users page:
333
+ - add user and edit user modals redesigned to be more consistent with other modals
334
+ - user card updated with icon buttons for edit/delete rather than text buttons
335
+
336
+ ### Plugin Custom UI Changes
337
+
338
+ The UI has recently been updated with `@homebridge/plugin-ui-utils` @ `v2.0.0`, which includes a new feature to allow plugin developers to dynamically enable and disable the `Save` button in the custom UI modal.
339
+ Two new methods have been added for this purpose:
340
+
341
+ - `homebridge.disableSaveButton()`
342
+ - `homebridge.enableSaveButton()`
343
+
344
+ Developers: to maintain compatibility with older versions of the Homebridge UI, it is recommended to check if the methods exist before calling them in your custom UIs:
345
+
346
+ - `homebridge.disableSaveButton?.()`
347
+ - `homebridge.enableSaveButton?.()`
348
+
349
+ ### Other Changes
350
+
351
+ - auto-fix ui theme setting property if existing value is not valid
352
+ - do not allow `armv6l` users to update to UI `v5`
353
+
354
+ ### Homebridge Dependencies
355
+
356
+ - `@homebridge/hap-client` @ `v2.0.5`
357
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
358
+ - `@homebridge/plugin-ui-utils` @ `v2.0.0`
359
+
360
+ ## v4.67.0 (2024-12-28)
361
+
362
+ ### UI Changes
363
+
364
+ - add explanation of deleting child bridges when un-toggling
365
+ - add filtering to search to improve results (#2286) (@justjam2013) (fixes [#2266](https://github.com/homebridge/homebridge-config-ui-x/issues/2266))
366
+ - fix spacing issue with hidden accessories
367
+ - make margins consistent of un/lock buttons on status screen
368
+ - fix ui not restarting properly after updating the ui
369
+ - use broom icon in remove bridge accessories (to match similar modal from plugin menu)
370
+
371
+ ### Other Changes
372
+
373
+ - improve and finish up previous angular migration
374
+ - update `hap-client` + `plugin-ui-utils` hb dependencies
375
+ - update dependencies
376
+ - improve lint sorting of imports
377
+
378
+ ### Homebridge Dependencies
379
+
380
+ - `@homebridge/hap-client` @ `v2.0.5`
381
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
382
+ - `@homebridge/plugin-ui-utils` @ `v2.0.0`
383
+
384
+ ## v4.66.0 (2024-12-25)
385
+
386
+ ### UI Changes
387
+
388
+ - fix verified plugins link in support module (fixes [#2295](https://github.com/homebridge/homebridge-config-ui-x/issues/2295))
389
+ - add missing modal footer `<div>`s to accessory control modals
390
+ - fix radio button groups in certain accessory control modals (fixes [#2294](https://github.com/homebridge/homebridge-config-ui-x/issues/2294))
391
+
392
+ ### Other Changes
393
+
394
+ - format svg files nicely as part of lint
395
+ - upgrade angular from `v18` to `v19`
396
+ - delete unpaired bridges when toggling bridges off (#2284) (@justjam2013) (fixes [#2257](https://github.com/homebridge/homebridge-config-ui-x/issues/2257))
397
+
398
+ ### Homebridge Dependencies
399
+
400
+ - `@homebridge/hap-client` @ `v1.10.2`
401
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
402
+ - `@homebridge/plugin-ui-utils` @ `v1.0.3`
403
+
404
+ ## v4.65.2 (2024-12-15)
405
+
406
+ ### UI Changes
407
+
408
+ - Rollback recent changes to plugin search (#2289) (@justjam2013)
409
+
410
+ ### Homebridge Dependencies
411
+
412
+ - `@homebridge/hap-client` @ `v1.10.2`
413
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
414
+ - `@homebridge/plugin-ui-utils` @ `v1.0.3`
415
+
416
+ ## v4.65.1 (2024-12-13)
417
+
418
+ ### UI Changes
419
+
420
+ - updates to the `th.json` language file (#2271) (@tomzt)
421
+ - updates to the `de.json` language file (#2250) (@Staubgeborener)
422
+ - Remove unrelated plugins from search (#2272) (@justjam2013)
423
+
424
+ ### Other Changes
425
+
426
+ - fix types + update dependencies
427
+ - fix attach artifacts to release workflow
428
+
429
+ ### Homebridge Dependencies
430
+
431
+ - `@homebridge/hap-client` @ `v1.10.2`
432
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
433
+ - `@homebridge/plugin-ui-utils` @ `v1.0.3`
434
+
435
+ ## v4.65.0 (2024-12-08)
436
+
437
+ ### UI Changes
438
+
439
+ - updates to the `uk.json` language file (#2262) (@xrust83)
440
+ - logo and `homebridge` text should link to status page
441
+ - Add icons for shower head and water faucet valve types (#2267) (@justjam2013)
442
+ - Removed conditional for displaying search exit component (#2269) (@justjam2013)
443
+
444
+ ### Other Changes
445
+
446
+ - Fix typo in console message (#2264) (@markholland)
447
+ - updated dependencies
448
+
449
+ ### Homebridge Dependencies
450
+
451
+ - `@homebridge/hap-client` @ `v1.10.2`
452
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
453
+ - `@homebridge/plugin-ui-utils` @ `v1.0.3`
454
+
455
+ ## v4.64.0 (2024-11-30)
456
+
457
+ ### UI Changes
458
+
459
+ - updates to the `de.json` language file (#2249) (@Staubgeborener)
460
+ - updates to the `ko.json` language file (#2251) (@alphaorderly)
461
+ - updates to the `uk.json` language file (#2255) (@xrust83)
462
+ - add reload menu item when using as a PWA
463
+
464
+ ### Other Changes
465
+
466
+ - dependency updates
467
+ - fix npm search max character limit
45
468
 
46
469
  ### Homebridge Dependencies
47
470
 
48
- - `@homebridge/hap-client` @ `v2.0.4`
49
- - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.12.0-beta`
471
+ - `@homebridge/hap-client` @ `v1.10.2`
472
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
50
473
  - `@homebridge/plugin-ui-utils` @ `v1.0.3`
51
474
 
52
475
  ## v4.63.0 (2024-11-17)
@@ -72,8 +495,6 @@ Plugin developers:
72
495
  - migrate `@zajsf/*` to `@ng-formworks/*` for plugin schema forms
73
496
  - check for service mode when querying child bridge status
74
497
  - perform a full restart when updating `homebridge`
75
- - make terminal enabled by default on new macOS hb-service installs
76
- - update node pty beta `v0.12.0-beta`
77
498
 
78
499
  ### Homebridge Dependencies
79
500
 
@@ -549,7 +970,7 @@ Merry Christmas and Happy Holidays to all our users celebrating later this month
549
970
  - Various changes to the plugin cards
550
971
  - Plugin settings now accessible from the plugin card menu, called 'Config'
551
972
  - Icons: plugin devs can request an icon for their verified plugin at:
552
- - https://github.com/homebridge/verified/issues/new/choose
973
+ - https://github.com/homebridge/plugins/issues/new/choose
553
974
 
554
975
  ### UI Changes
555
976
 
package/CONTRIBUTING.md CHANGED
@@ -2,11 +2,12 @@
2
2
 
3
3
  Pull requests are welcome from everyone.
4
4
 
5
- This project is written in [TypeScript](https://www.typescriptlang.org/) and uses [Nest.js](https://nestjs.com/) for the server and [Angular](https://angular.io/) for the client UI.
5
+ This project is written in [TypeScript](https://www.typescriptlang.org/) and uses [Nest.js](https://nestjs.com/) for the server and [Angular](https://angular.dev/) for the client UI.
6
6
 
7
7
  ## Getting Setup
8
8
 
9
- _Note: The Raspberry Pi and similar boards do not meet the memory or CPU requirements required to set up the development environment._
9
+ > [!NOTE]
10
+ > The Raspberry Pi and similar boards do not meet the memory or CPU requirements required to set up the development environment.
10
11
 
11
12
  First, remove any globally installed versions of `homebridge-config-ui-x` you may have installed on your development machine:
12
13
 
@@ -38,7 +39,7 @@ Symlink your development directory to global:
38
39
  npm link
39
40
  ```
40
41
 
41
- If you don't have homebridge installed already run:
42
+ If you don't have Homebridge installed already run:
42
43
 
43
44
  ```sh
44
45
  npm install -g homebridge
@@ -52,7 +53,7 @@ This will start the Angular development server on port `4200` and a standalone s
52
53
  npm run watch
53
54
  ```
54
55
 
55
- You should now be able to navigate to `https://localhost:4200` in your browser which will connect to your `homebridge` instance running on port `8581`. The UI will automatically reload whenever you make changes to the code.
56
+ You should now be able to navigate to `https://localhost:4200` in your browser which will connect to your Homebridge instance running on port `8581`. The UI will automatically reload whenever you make changes to the code.
56
57
 
57
58
  ## Running Tests
58
59
 
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2023-2024 Homebridge
3
+ Copyright (c) 2023-2025 Homebridge
4
4
  Copyright (c) 2017-2023 oznu <dev@oz.nu>
5
5
  Copyright (c) 2017 Michael Kellsy
6
6
 
package/README.md CHANGED
@@ -28,8 +28,6 @@
28
28
 
29
29
  Homebridge UI also provides a tool called [`hb-service`](https://github.com/homebridge/homebridge-config-ui-x/wiki/Homebridge-Service-Command) which makes it easy to set up Homebridge as a service on Linux/Raspbian, macOS and Windows 10.
30
30
 
31
- [![Status](screenshots/homebridge-config-ui-x-darkmode-status.png?2020-01-07)](#usage)
32
-
33
31
  ## Installation Instructions
34
32
 
35
33
  For detailed instructions on how to set up Node.js and Homebridge with Homebridge UI as a service, see the guides on the wiki:
@@ -54,35 +52,35 @@ The UI can be accessed via web browser by default on port `8581` (e.g. `http://l
54
52
 
55
53
  This shows an overview of your Homebridge system. The dashboard is widget-based and completely customisable with a number of themes available.
56
54
 
57
- ![Status](screenshots/homebridge-config-ui-x-status.png?2020-01-07)
55
+ ![Status](screenshots/homebridge-config-ui-x-status.png)
58
56
 
59
57
  ### Plugin Screen
60
58
 
61
59
  This shows you the currently installed plugins and allows you to install, configure, update and remove plugins.
62
60
 
63
- ![Plugin](screenshots/homebridge-config-ui-x-darkmode-plugins.png?2020-01-07)
61
+ ![Plugin](screenshots/homebridge-config-ui-x-darkmode-plugins.png)
64
62
 
65
63
  You can configure supported plugins using the graphical settings editor, or by editing the config JSON directly.
66
64
 
67
- ![Plugin Settings](screenshots/homebridge-config-ui-x-darkmode-alexa-settings.png?2020-01-07)
65
+ ![Plugin Settings](screenshots/homebridge-config-ui-x-darkmode-alexa-settings.png)
68
66
 
69
67
  ### Configuration Screen
70
68
 
71
69
  The configuration screen allows you to modify your Homebridge `config.json`. The built-in editor automatically syntax-checks your JSON and makes a backup of your config every time you make a change.
72
70
 
73
- ![Config](screenshots/homebridge-config-ui-x-config.png?2020-01-07)
71
+ ![Config](screenshots/homebridge-config-ui-x-config.png)
74
72
 
75
73
  ### Log Screen
76
74
 
77
75
  This shows you the Homebridge rolling log. This is helpful for troubleshooting.
78
76
 
79
- ![Log](screenshots/homebridge-config-ui-x-logs.png?2020-01-07)
77
+ ![Log](screenshots/homebridge-config-ui-x-logs.png)
80
78
 
81
79
  ### Accessories Screen
82
80
 
83
81
  This shows you the Homebridge accessories for all the Homebridge instances on your network. You can use this to control accessories from a web browser and works well on mobile devices which allows users to control Homebridge from non-Apple devices.
84
82
 
85
- ![Accessories](screenshots/homebridge-config-ui-x-accessories.png?2020-01-07)
83
+ ![Accessories](screenshots/homebridge-config-ui-x-accessories.png)
86
84
 
87
85
  ## Plugin Development
88
86