node-red-contrib-knx-ultimate 7.1.3 → 8.0.1-beta.0

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 (605) hide show
  1. package/CHANGELOG.md +16 -3
  2. package/MIGRATION.md +40 -0
  3. package/README.md +33 -5
  4. package/docs/README.md +34 -0
  5. package/docs/assets/brand/made-in-italy.svg +12 -0
  6. package/examples/Alerter - Device Alert Aggregation.json +5 -2
  7. package/examples/Auto Responder - Read Request Defaults.json +5 -2
  8. package/examples/Garage - Door Controller.json +5 -2
  9. package/examples/Global Context - Expose KNX Values.json +5 -2
  10. package/examples/KNX DateTime - Set Date and Time to Bus.json +111 -89
  11. package/examples/Load Control - Manual Shedding Mode.json +5 -2
  12. package/examples/Logger ETS File and Telegram Count.json +10 -2
  13. package/examples/Scene Controller Recall and Save.json +33 -6
  14. package/examples/Staircase - Timer, Override and Block.json +5 -2
  15. package/examples/WatchDog Connect Disconnect.json +98 -70
  16. package/nodes/commonFunctions.js +0 -587
  17. package/nodes/knxUltimate-config.js +1 -18
  18. package/nodes/knxUltimate.html +1 -0
  19. package/nodes/knxUltimateLegacyMigration.js +75 -0
  20. package/nodes/locales/de/knxUltimateUtility.json +49 -0
  21. package/nodes/locales/en/knxUltimateUtility.json +49 -0
  22. package/nodes/locales/es/knxUltimateUtility.json +50 -1
  23. package/nodes/locales/fr/knxUltimateUtility.json +49 -0
  24. package/nodes/locales/it/knxUltimateUtility.json +49 -0
  25. package/nodes/locales/zh-CN/knxUltimateUtility.json +49 -0
  26. package/nodes/plugins/knxUltimate-v8-migration-recovery-plugin.html +140 -0
  27. package/nodes/plugins/knxUltimateViewer-vue/assets/app.js +2 -2
  28. package/package.json +25 -68
  29. package/resources/11f26b4500.js +2 -2
  30. package/resources/KNXAIChatAdapterMappings.js +2 -416
  31. package/resources/configNodeEditorSelection.js +2 -32
  32. package/resources/flowMigrationBackup.js +1 -1
  33. package/resources/hueControllerEditorSelection.js +2 -32
  34. package/resources/hueControllerMigrationDialog.js +2 -254
  35. package/resources/hueControllerProfiles.js +2 -9319
  36. package/resources/knxUtilityProfiles.js +2041 -2082
  37. package/resources/legacyMigrationNotice.js +23 -111
  38. package/resources/matterQrScanner.js +2 -98
  39. package/resources/upgradeToV8.js +1261 -0
  40. package/scripts/check-legacy-flows.js +142 -0
  41. package/examples/Hue Area Motion - Zone Presence.json +0 -77
  42. package/examples/Hue Battery - Level Status.json +0 -77
  43. package/examples/Hue Button - Short and Dim Commands.json +0 -83
  44. package/examples/Hue Camera Motion - Presence.json +0 -77
  45. package/examples/Hue Config - Bridge Template.json +0 -27
  46. package/examples/Hue Contact Sensor - Open Closed.json +0 -75
  47. package/examples/Hue Device Software Update - Availability.json +0 -77
  48. package/examples/Hue Humidity Sensor - Relative Humidity.json +0 -77
  49. package/examples/Hue Light - Switch and Brightness.json +0 -67
  50. package/examples/Hue Light Sensor - Lux to KNX.json +0 -77
  51. package/examples/Hue Motion - Presence Sensor.json +0 -76
  52. package/examples/Hue Plug - Switch and State.json +0 -63
  53. package/examples/Hue Scene - Recall from KNX.json +0 -63
  54. package/examples/Hue Tap Dial - Relative Dimming.json +0 -76
  55. package/examples/Hue Temperature Sensor - Celsius to KNX.json +0 -77
  56. package/examples/Hue Zigbee Connectivity - Online Status.json +0 -77
  57. package/examples/Matter Controller - Semantic Flow Input.json +0 -248
  58. package/nodes/hue-config.html +0 -372
  59. package/nodes/hue-config.js +0 -846
  60. package/nodes/icons/node-alerter-icon.png +0 -0
  61. package/nodes/icons/node-homekit-icon.png +0 -0
  62. package/nodes/icons/node-homekit-icon.svg +0 -10
  63. package/nodes/icons/node-hue-icon.svg +0 -10
  64. package/nodes/icons/node-knx-icon.png +0 -0
  65. package/nodes/icons/node-logger-icon.png +0 -0
  66. package/nodes/icons/node-logger2-icon.png +0 -0
  67. package/nodes/icons/node-logger2-icon.svg +0 -32
  68. package/nodes/icons/node-matter-bridge-icon.svg +0 -6
  69. package/nodes/icons/node-matter-controller-icon.svg +0 -6
  70. package/nodes/icons/node-matter-icon.svg +0 -12
  71. package/nodes/icons/node-scene-icon.png +0 -0
  72. package/nodes/icons/node-watchdog-icon.png +0 -0
  73. package/nodes/knxUltimateAI.html +0 -1820
  74. package/nodes/knxUltimateAI.js +0 -16797
  75. package/nodes/knxUltimateAIHomeAssistant.html +0 -40
  76. package/nodes/knxUltimateAIHomeAssistant.js +0 -152
  77. package/nodes/knxUltimateAlerter.html +0 -261
  78. package/nodes/knxUltimateAlerter.js +0 -300
  79. package/nodes/knxUltimateAutoResponder.html +0 -122
  80. package/nodes/knxUltimateAutoResponder.js +0 -264
  81. package/nodes/knxUltimateDateTime.html +0 -573
  82. package/nodes/knxUltimateDateTime.js +0 -282
  83. package/nodes/knxUltimateGarage.html +0 -323
  84. package/nodes/knxUltimateGarage.js +0 -504
  85. package/nodes/knxUltimateGlobalContext.html +0 -139
  86. package/nodes/knxUltimateGlobalContext.js +0 -208
  87. package/nodes/knxUltimateHATranslator.html +0 -80
  88. package/nodes/knxUltimateHATranslator.js +0 -83
  89. package/nodes/knxUltimateHueAreaMotion.html +0 -656
  90. package/nodes/knxUltimateHueAreaMotion.js +0 -218
  91. package/nodes/knxUltimateHueBattery.html +0 -632
  92. package/nodes/knxUltimateHueBattery.js +0 -182
  93. package/nodes/knxUltimateHueButton.html +0 -790
  94. package/nodes/knxUltimateHueButton.js +0 -292
  95. package/nodes/knxUltimateHueCameraMotion.html +0 -657
  96. package/nodes/knxUltimateHueCameraMotion.js +0 -218
  97. package/nodes/knxUltimateHueContactSensor.html +0 -595
  98. package/nodes/knxUltimateHueContactSensor.js +0 -188
  99. package/nodes/knxUltimateHueController.html +0 -1751
  100. package/nodes/knxUltimateHueController.js +0 -28
  101. package/nodes/knxUltimateHueHumiditySensor.html +0 -627
  102. package/nodes/knxUltimateHueHumiditySensor.js +0 -201
  103. package/nodes/knxUltimateHueLight.html +0 -2502
  104. package/nodes/knxUltimateHueLight.js +0 -1582
  105. package/nodes/knxUltimateHueLightSensor.html +0 -622
  106. package/nodes/knxUltimateHueLightSensor.js +0 -177
  107. package/nodes/knxUltimateHueMotion.html +0 -620
  108. package/nodes/knxUltimateHueMotion.js +0 -182
  109. package/nodes/knxUltimateHuePlug.html +0 -562
  110. package/nodes/knxUltimateHuePlug.js +0 -341
  111. package/nodes/knxUltimateHueScene.html +0 -953
  112. package/nodes/knxUltimateHueScene.js +0 -349
  113. package/nodes/knxUltimateHueTapDial.html +0 -626
  114. package/nodes/knxUltimateHueTapDial.js +0 -268
  115. package/nodes/knxUltimateHueTemperatureSensor.html +0 -625
  116. package/nodes/knxUltimateHueTemperatureSensor.js +0 -184
  117. package/nodes/knxUltimateHueZigbeeConnectivity.html +0 -634
  118. package/nodes/knxUltimateHueZigbeeConnectivity.js +0 -182
  119. package/nodes/knxUltimateHuedevice_software_update.html +0 -636
  120. package/nodes/knxUltimateHuedevice_software_update.js +0 -182
  121. package/nodes/knxUltimateLoadControl.html +0 -419
  122. package/nodes/knxUltimateLoadControl.js +0 -443
  123. package/nodes/knxUltimateLogger.html +0 -191
  124. package/nodes/knxUltimateLogger.js +0 -224
  125. package/nodes/knxUltimateMatterBridge.html +0 -675
  126. package/nodes/knxUltimateMatterBridge.js +0 -464
  127. package/nodes/knxUltimateMatterControllerDevice.html +0 -2837
  128. package/nodes/knxUltimateMatterControllerDevice.js +0 -1747
  129. package/nodes/knxUltimateSceneController.html +0 -523
  130. package/nodes/knxUltimateSceneController.js +0 -437
  131. package/nodes/knxUltimateStaircase.html +0 -340
  132. package/nodes/knxUltimateStaircase.js +0 -463
  133. package/nodes/knxUltimateWatchDog.html +0 -226
  134. package/nodes/knxUltimateWatchDog.js +0 -230
  135. package/nodes/locales/de/hue-config.html +0 -25
  136. package/nodes/locales/de/hue-config.json +0 -21
  137. package/nodes/locales/de/knxUltimateAI.html +0 -5
  138. package/nodes/locales/de/knxUltimateAI.json +0 -231
  139. package/nodes/locales/de/knxUltimateAlerter.html +0 -151
  140. package/nodes/locales/de/knxUltimateAlerter.json +0 -27
  141. package/nodes/locales/de/knxUltimateAutoResponder.html +0 -88
  142. package/nodes/locales/de/knxUltimateAutoResponder.json +0 -8
  143. package/nodes/locales/de/knxUltimateDateTime.html +0 -38
  144. package/nodes/locales/de/knxUltimateDateTime.json +0 -32
  145. package/nodes/locales/de/knxUltimateGarage.html +0 -71
  146. package/nodes/locales/de/knxUltimateGarage.json +0 -51
  147. package/nodes/locales/de/knxUltimateGlobalContext.html +0 -68
  148. package/nodes/locales/de/knxUltimateGlobalContext.json +0 -24
  149. package/nodes/locales/de/knxUltimateHATranslator.html +0 -17
  150. package/nodes/locales/de/knxUltimateHATranslator.json +0 -8
  151. package/nodes/locales/de/knxUltimateHueAreaMotion.html +0 -36
  152. package/nodes/locales/de/knxUltimateHueAreaMotion.json +0 -31
  153. package/nodes/locales/de/knxUltimateHueBattery.html +0 -29
  154. package/nodes/locales/de/knxUltimateHueBattery.json +0 -30
  155. package/nodes/locales/de/knxUltimateHueButton.html +0 -44
  156. package/nodes/locales/de/knxUltimateHueButton.json +0 -34
  157. package/nodes/locales/de/knxUltimateHueCameraMotion.html +0 -30
  158. package/nodes/locales/de/knxUltimateHueCameraMotion.json +0 -30
  159. package/nodes/locales/de/knxUltimateHueContactSensor.html +0 -27
  160. package/nodes/locales/de/knxUltimateHueContactSensor.json +0 -26
  161. package/nodes/locales/de/knxUltimateHueController.html +0 -682
  162. package/nodes/locales/de/knxUltimateHueController.json +0 -64
  163. package/nodes/locales/de/knxUltimateHueHumiditySensor.html +0 -30
  164. package/nodes/locales/de/knxUltimateHueHumiditySensor.json +0 -30
  165. package/nodes/locales/de/knxUltimateHueLight.html +0 -113
  166. package/nodes/locales/de/knxUltimateHueLight.json +0 -94
  167. package/nodes/locales/de/knxUltimateHueLightSensor.html +0 -30
  168. package/nodes/locales/de/knxUltimateHueLightSensor.json +0 -19
  169. package/nodes/locales/de/knxUltimateHueMotion.html +0 -33
  170. package/nodes/locales/de/knxUltimateHueMotion.json +0 -27
  171. package/nodes/locales/de/knxUltimateHuePlug.html +0 -42
  172. package/nodes/locales/de/knxUltimateHuePlug.json +0 -33
  173. package/nodes/locales/de/knxUltimateHueScene.html +0 -37
  174. package/nodes/locales/de/knxUltimateHueScene.json +0 -41
  175. package/nodes/locales/de/knxUltimateHueTapDial.html +0 -32
  176. package/nodes/locales/de/knxUltimateHueTapDial.json +0 -28
  177. package/nodes/locales/de/knxUltimateHueTemperatureSensor.html +0 -30
  178. package/nodes/locales/de/knxUltimateHueTemperatureSensor.json +0 -30
  179. package/nodes/locales/de/knxUltimateHueZigbeeConnectivity.html +0 -31
  180. package/nodes/locales/de/knxUltimateHueZigbeeConnectivity.json +0 -30
  181. package/nodes/locales/de/knxUltimateHuedevice_software_update.html +0 -28
  182. package/nodes/locales/de/knxUltimateHuedevice_software_update.json +0 -30
  183. package/nodes/locales/de/knxUltimateLoadControl.html +0 -61
  184. package/nodes/locales/de/knxUltimateLoadControl.json +0 -28
  185. package/nodes/locales/de/knxUltimateLogger.html +0 -118
  186. package/nodes/locales/de/knxUltimateLogger.json +0 -31
  187. package/nodes/locales/de/knxUltimateMatterBridge.html +0 -57
  188. package/nodes/locales/de/knxUltimateMatterBridge.json +0 -123
  189. package/nodes/locales/de/knxUltimateMatterControllerDevice.html +0 -49
  190. package/nodes/locales/de/knxUltimateMatterControllerDevice.json +0 -146
  191. package/nodes/locales/de/knxUltimateSceneController.html +0 -90
  192. package/nodes/locales/de/knxUltimateSceneController.json +0 -32
  193. package/nodes/locales/de/knxUltimateStaircase.html +0 -69
  194. package/nodes/locales/de/knxUltimateStaircase.json +0 -62
  195. package/nodes/locales/de/knxUltimateWatchDog.html +0 -170
  196. package/nodes/locales/de/knxUltimateWatchDog.json +0 -27
  197. package/nodes/locales/de/matter-config.html +0 -39
  198. package/nodes/locales/de/matter-config.json +0 -47
  199. package/nodes/locales/de/matterbridge-config.html +0 -37
  200. package/nodes/locales/de/matterbridge-config.json +0 -25
  201. package/nodes/locales/en/hue-config.html +0 -23
  202. package/nodes/locales/en/hue-config.json +0 -21
  203. package/nodes/locales/en/knxUltimateAI.html +0 -5
  204. package/nodes/locales/en/knxUltimateAI.json +0 -234
  205. package/nodes/locales/en/knxUltimateAlerter.html +0 -156
  206. package/nodes/locales/en/knxUltimateAlerter.json +0 -27
  207. package/nodes/locales/en/knxUltimateAutoResponder.html +0 -86
  208. package/nodes/locales/en/knxUltimateAutoResponder.json +0 -8
  209. package/nodes/locales/en/knxUltimateDateTime.html +0 -59
  210. package/nodes/locales/en/knxUltimateDateTime.json +0 -32
  211. package/nodes/locales/en/knxUltimateGarage.html +0 -71
  212. package/nodes/locales/en/knxUltimateGarage.json +0 -51
  213. package/nodes/locales/en/knxUltimateGlobalContext.html +0 -116
  214. package/nodes/locales/en/knxUltimateGlobalContext.json +0 -24
  215. package/nodes/locales/en/knxUltimateHATranslator.html +0 -17
  216. package/nodes/locales/en/knxUltimateHATranslator.json +0 -8
  217. package/nodes/locales/en/knxUltimateHueAreaMotion.html +0 -36
  218. package/nodes/locales/en/knxUltimateHueAreaMotion.json +0 -31
  219. package/nodes/locales/en/knxUltimateHueBattery.html +0 -29
  220. package/nodes/locales/en/knxUltimateHueBattery.json +0 -30
  221. package/nodes/locales/en/knxUltimateHueButton.html +0 -44
  222. package/nodes/locales/en/knxUltimateHueButton.json +0 -34
  223. package/nodes/locales/en/knxUltimateHueCameraMotion.html +0 -30
  224. package/nodes/locales/en/knxUltimateHueCameraMotion.json +0 -30
  225. package/nodes/locales/en/knxUltimateHueContactSensor.html +0 -27
  226. package/nodes/locales/en/knxUltimateHueContactSensor.json +0 -26
  227. package/nodes/locales/en/knxUltimateHueController.html +0 -683
  228. package/nodes/locales/en/knxUltimateHueController.json +0 -64
  229. package/nodes/locales/en/knxUltimateHueHumiditySensor.html +0 -30
  230. package/nodes/locales/en/knxUltimateHueHumiditySensor.json +0 -30
  231. package/nodes/locales/en/knxUltimateHueLight.html +0 -116
  232. package/nodes/locales/en/knxUltimateHueLight.json +0 -94
  233. package/nodes/locales/en/knxUltimateHueLightSensor.html +0 -30
  234. package/nodes/locales/en/knxUltimateHueLightSensor.json +0 -19
  235. package/nodes/locales/en/knxUltimateHueMotion.html +0 -33
  236. package/nodes/locales/en/knxUltimateHueMotion.json +0 -27
  237. package/nodes/locales/en/knxUltimateHuePlug.html +0 -42
  238. package/nodes/locales/en/knxUltimateHuePlug.json +0 -33
  239. package/nodes/locales/en/knxUltimateHueScene.html +0 -37
  240. package/nodes/locales/en/knxUltimateHueScene.json +0 -41
  241. package/nodes/locales/en/knxUltimateHueTapDial.html +0 -32
  242. package/nodes/locales/en/knxUltimateHueTapDial.json +0 -28
  243. package/nodes/locales/en/knxUltimateHueTemperatureSensor.html +0 -30
  244. package/nodes/locales/en/knxUltimateHueTemperatureSensor.json +0 -30
  245. package/nodes/locales/en/knxUltimateHueZigbeeConnectivity.html +0 -31
  246. package/nodes/locales/en/knxUltimateHueZigbeeConnectivity.json +0 -30
  247. package/nodes/locales/en/knxUltimateHuedevice_software_update.html +0 -28
  248. package/nodes/locales/en/knxUltimateHuedevice_software_update.json +0 -30
  249. package/nodes/locales/en/knxUltimateLoadControl.html +0 -68
  250. package/nodes/locales/en/knxUltimateLoadControl.json +0 -28
  251. package/nodes/locales/en/knxUltimateLogger.html +0 -153
  252. package/nodes/locales/en/knxUltimateLogger.json +0 -31
  253. package/nodes/locales/en/knxUltimateMatterBridge.html +0 -57
  254. package/nodes/locales/en/knxUltimateMatterBridge.json +0 -123
  255. package/nodes/locales/en/knxUltimateMatterControllerDevice.html +0 -49
  256. package/nodes/locales/en/knxUltimateMatterControllerDevice.json +0 -146
  257. package/nodes/locales/en/knxUltimateSceneController.html +0 -109
  258. package/nodes/locales/en/knxUltimateSceneController.json +0 -32
  259. package/nodes/locales/en/knxUltimateStaircase.html +0 -69
  260. package/nodes/locales/en/knxUltimateStaircase.json +0 -62
  261. package/nodes/locales/en/knxUltimateWatchDog.html +0 -236
  262. package/nodes/locales/en/knxUltimateWatchDog.json +0 -27
  263. package/nodes/locales/en/matter-config.html +0 -39
  264. package/nodes/locales/en/matter-config.json +0 -48
  265. package/nodes/locales/en/matterbridge-config.html +0 -37
  266. package/nodes/locales/en/matterbridge-config.json +0 -25
  267. package/nodes/locales/es/hue-config.html +0 -23
  268. package/nodes/locales/es/hue-config.json +0 -21
  269. package/nodes/locales/es/knxUltimateAI.html +0 -5
  270. package/nodes/locales/es/knxUltimateAI.json +0 -231
  271. package/nodes/locales/es/knxUltimateAlerter.html +0 -156
  272. package/nodes/locales/es/knxUltimateAlerter.json +0 -27
  273. package/nodes/locales/es/knxUltimateAutoResponder.html +0 -73
  274. package/nodes/locales/es/knxUltimateAutoResponder.json +0 -8
  275. package/nodes/locales/es/knxUltimateDateTime.html +0 -38
  276. package/nodes/locales/es/knxUltimateDateTime.json +0 -32
  277. package/nodes/locales/es/knxUltimateGarage.html +0 -71
  278. package/nodes/locales/es/knxUltimateGarage.json +0 -51
  279. package/nodes/locales/es/knxUltimateGlobalContext.html +0 -120
  280. package/nodes/locales/es/knxUltimateGlobalContext.json +0 -24
  281. package/nodes/locales/es/knxUltimateHATranslator.html +0 -17
  282. package/nodes/locales/es/knxUltimateHATranslator.json +0 -8
  283. package/nodes/locales/es/knxUltimateHueAreaMotion.html +0 -36
  284. package/nodes/locales/es/knxUltimateHueAreaMotion.json +0 -31
  285. package/nodes/locales/es/knxUltimateHueBattery.html +0 -29
  286. package/nodes/locales/es/knxUltimateHueBattery.json +0 -30
  287. package/nodes/locales/es/knxUltimateHueButton.html +0 -44
  288. package/nodes/locales/es/knxUltimateHueButton.json +0 -34
  289. package/nodes/locales/es/knxUltimateHueCameraMotion.html +0 -30
  290. package/nodes/locales/es/knxUltimateHueCameraMotion.json +0 -30
  291. package/nodes/locales/es/knxUltimateHueContactSensor.html +0 -27
  292. package/nodes/locales/es/knxUltimateHueContactSensor.json +0 -26
  293. package/nodes/locales/es/knxUltimateHueController.html +0 -683
  294. package/nodes/locales/es/knxUltimateHueController.json +0 -64
  295. package/nodes/locales/es/knxUltimateHueHumiditySensor.html +0 -30
  296. package/nodes/locales/es/knxUltimateHueHumiditySensor.json +0 -30
  297. package/nodes/locales/es/knxUltimateHueLight.html +0 -116
  298. package/nodes/locales/es/knxUltimateHueLight.json +0 -94
  299. package/nodes/locales/es/knxUltimateHueLightSensor.html +0 -30
  300. package/nodes/locales/es/knxUltimateHueLightSensor.json +0 -19
  301. package/nodes/locales/es/knxUltimateHueMotion.html +0 -33
  302. package/nodes/locales/es/knxUltimateHueMotion.json +0 -27
  303. package/nodes/locales/es/knxUltimateHuePlug.html +0 -42
  304. package/nodes/locales/es/knxUltimateHuePlug.json +0 -33
  305. package/nodes/locales/es/knxUltimateHueScene.html +0 -37
  306. package/nodes/locales/es/knxUltimateHueScene.json +0 -41
  307. package/nodes/locales/es/knxUltimateHueTapDial.html +0 -32
  308. package/nodes/locales/es/knxUltimateHueTapDial.json +0 -28
  309. package/nodes/locales/es/knxUltimateHueTemperatureSensor.html +0 -30
  310. package/nodes/locales/es/knxUltimateHueTemperatureSensor.json +0 -30
  311. package/nodes/locales/es/knxUltimateHueZigbeeConnectivity.html +0 -31
  312. package/nodes/locales/es/knxUltimateHueZigbeeConnectivity.json +0 -30
  313. package/nodes/locales/es/knxUltimateHuedevice_software_update.html +0 -28
  314. package/nodes/locales/es/knxUltimateHuedevice_software_update.json +0 -30
  315. package/nodes/locales/es/knxUltimateLoadControl.html +0 -68
  316. package/nodes/locales/es/knxUltimateLoadControl.json +0 -28
  317. package/nodes/locales/es/knxUltimateLogger.html +0 -154
  318. package/nodes/locales/es/knxUltimateLogger.json +0 -31
  319. package/nodes/locales/es/knxUltimateMatterBridge.html +0 -57
  320. package/nodes/locales/es/knxUltimateMatterBridge.json +0 -123
  321. package/nodes/locales/es/knxUltimateMatterControllerDevice.html +0 -49
  322. package/nodes/locales/es/knxUltimateMatterControllerDevice.json +0 -146
  323. package/nodes/locales/es/knxUltimateSceneController.html +0 -107
  324. package/nodes/locales/es/knxUltimateSceneController.json +0 -32
  325. package/nodes/locales/es/knxUltimateStaircase.html +0 -69
  326. package/nodes/locales/es/knxUltimateStaircase.json +0 -62
  327. package/nodes/locales/es/knxUltimateWatchDog.html +0 -222
  328. package/nodes/locales/es/knxUltimateWatchDog.json +0 -27
  329. package/nodes/locales/es/matter-config.html +0 -39
  330. package/nodes/locales/es/matter-config.json +0 -47
  331. package/nodes/locales/es/matterbridge-config.html +0 -37
  332. package/nodes/locales/es/matterbridge-config.json +0 -25
  333. package/nodes/locales/fr/hue-config.html +0 -23
  334. package/nodes/locales/fr/hue-config.json +0 -21
  335. package/nodes/locales/fr/knxUltimateAI.html +0 -5
  336. package/nodes/locales/fr/knxUltimateAI.json +0 -231
  337. package/nodes/locales/fr/knxUltimateAlerter.html +0 -156
  338. package/nodes/locales/fr/knxUltimateAlerter.json +0 -27
  339. package/nodes/locales/fr/knxUltimateAutoResponder.html +0 -84
  340. package/nodes/locales/fr/knxUltimateAutoResponder.json +0 -8
  341. package/nodes/locales/fr/knxUltimateDateTime.html +0 -38
  342. package/nodes/locales/fr/knxUltimateDateTime.json +0 -32
  343. package/nodes/locales/fr/knxUltimateGarage.html +0 -71
  344. package/nodes/locales/fr/knxUltimateGarage.json +0 -51
  345. package/nodes/locales/fr/knxUltimateGlobalContext.html +0 -114
  346. package/nodes/locales/fr/knxUltimateGlobalContext.json +0 -24
  347. package/nodes/locales/fr/knxUltimateHATranslator.html +0 -17
  348. package/nodes/locales/fr/knxUltimateHATranslator.json +0 -8
  349. package/nodes/locales/fr/knxUltimateHueAreaMotion.html +0 -36
  350. package/nodes/locales/fr/knxUltimateHueAreaMotion.json +0 -31
  351. package/nodes/locales/fr/knxUltimateHueBattery.html +0 -29
  352. package/nodes/locales/fr/knxUltimateHueBattery.json +0 -30
  353. package/nodes/locales/fr/knxUltimateHueButton.html +0 -44
  354. package/nodes/locales/fr/knxUltimateHueButton.json +0 -34
  355. package/nodes/locales/fr/knxUltimateHueCameraMotion.html +0 -30
  356. package/nodes/locales/fr/knxUltimateHueCameraMotion.json +0 -30
  357. package/nodes/locales/fr/knxUltimateHueContactSensor.html +0 -27
  358. package/nodes/locales/fr/knxUltimateHueContactSensor.json +0 -26
  359. package/nodes/locales/fr/knxUltimateHueController.html +0 -683
  360. package/nodes/locales/fr/knxUltimateHueController.json +0 -64
  361. package/nodes/locales/fr/knxUltimateHueHumiditySensor.html +0 -30
  362. package/nodes/locales/fr/knxUltimateHueHumiditySensor.json +0 -30
  363. package/nodes/locales/fr/knxUltimateHueLight.html +0 -116
  364. package/nodes/locales/fr/knxUltimateHueLight.json +0 -86
  365. package/nodes/locales/fr/knxUltimateHueLightSensor.html +0 -30
  366. package/nodes/locales/fr/knxUltimateHueLightSensor.json +0 -19
  367. package/nodes/locales/fr/knxUltimateHueMotion.html +0 -33
  368. package/nodes/locales/fr/knxUltimateHueMotion.json +0 -27
  369. package/nodes/locales/fr/knxUltimateHuePlug.html +0 -42
  370. package/nodes/locales/fr/knxUltimateHuePlug.json +0 -33
  371. package/nodes/locales/fr/knxUltimateHueScene.html +0 -37
  372. package/nodes/locales/fr/knxUltimateHueScene.json +0 -41
  373. package/nodes/locales/fr/knxUltimateHueTapDial.html +0 -32
  374. package/nodes/locales/fr/knxUltimateHueTapDial.json +0 -28
  375. package/nodes/locales/fr/knxUltimateHueTemperatureSensor.html +0 -30
  376. package/nodes/locales/fr/knxUltimateHueTemperatureSensor.json +0 -30
  377. package/nodes/locales/fr/knxUltimateHueZigbeeConnectivity.html +0 -31
  378. package/nodes/locales/fr/knxUltimateHueZigbeeConnectivity.json +0 -30
  379. package/nodes/locales/fr/knxUltimateHuedevice_software_update.html +0 -28
  380. package/nodes/locales/fr/knxUltimateHuedevice_software_update.json +0 -30
  381. package/nodes/locales/fr/knxUltimateLoadControl.html +0 -68
  382. package/nodes/locales/fr/knxUltimateLoadControl.json +0 -28
  383. package/nodes/locales/fr/knxUltimateLogger.html +0 -152
  384. package/nodes/locales/fr/knxUltimateLogger.json +0 -31
  385. package/nodes/locales/fr/knxUltimateMatterBridge.html +0 -57
  386. package/nodes/locales/fr/knxUltimateMatterBridge.json +0 -123
  387. package/nodes/locales/fr/knxUltimateMatterControllerDevice.html +0 -49
  388. package/nodes/locales/fr/knxUltimateMatterControllerDevice.json +0 -146
  389. package/nodes/locales/fr/knxUltimateSceneController.html +0 -109
  390. package/nodes/locales/fr/knxUltimateSceneController.json +0 -32
  391. package/nodes/locales/fr/knxUltimateStaircase.html +0 -69
  392. package/nodes/locales/fr/knxUltimateStaircase.json +0 -62
  393. package/nodes/locales/fr/knxUltimateWatchDog.html +0 -220
  394. package/nodes/locales/fr/knxUltimateWatchDog.json +0 -27
  395. package/nodes/locales/fr/matter-config.html +0 -39
  396. package/nodes/locales/fr/matter-config.json +0 -47
  397. package/nodes/locales/fr/matterbridge-config.html +0 -37
  398. package/nodes/locales/fr/matterbridge-config.json +0 -25
  399. package/nodes/locales/it/hue-config.html +0 -25
  400. package/nodes/locales/it/hue-config.json +0 -21
  401. package/nodes/locales/it/knxUltimateAI.html +0 -5
  402. package/nodes/locales/it/knxUltimateAI.json +0 -234
  403. package/nodes/locales/it/knxUltimateAlerter.html +0 -151
  404. package/nodes/locales/it/knxUltimateAlerter.json +0 -27
  405. package/nodes/locales/it/knxUltimateAutoResponder.html +0 -88
  406. package/nodes/locales/it/knxUltimateAutoResponder.json +0 -8
  407. package/nodes/locales/it/knxUltimateDateTime.html +0 -59
  408. package/nodes/locales/it/knxUltimateDateTime.json +0 -32
  409. package/nodes/locales/it/knxUltimateGarage.html +0 -71
  410. package/nodes/locales/it/knxUltimateGarage.json +0 -51
  411. package/nodes/locales/it/knxUltimateGlobalContext.html +0 -73
  412. package/nodes/locales/it/knxUltimateGlobalContext.json +0 -24
  413. package/nodes/locales/it/knxUltimateHATranslator.html +0 -16
  414. package/nodes/locales/it/knxUltimateHATranslator.json +0 -8
  415. package/nodes/locales/it/knxUltimateHueAreaMotion.html +0 -36
  416. package/nodes/locales/it/knxUltimateHueAreaMotion.json +0 -31
  417. package/nodes/locales/it/knxUltimateHueBattery.html +0 -29
  418. package/nodes/locales/it/knxUltimateHueBattery.json +0 -30
  419. package/nodes/locales/it/knxUltimateHueButton.html +0 -44
  420. package/nodes/locales/it/knxUltimateHueButton.json +0 -34
  421. package/nodes/locales/it/knxUltimateHueCameraMotion.html +0 -30
  422. package/nodes/locales/it/knxUltimateHueCameraMotion.json +0 -30
  423. package/nodes/locales/it/knxUltimateHueContactSensor.html +0 -27
  424. package/nodes/locales/it/knxUltimateHueContactSensor.json +0 -26
  425. package/nodes/locales/it/knxUltimateHueController.html +0 -682
  426. package/nodes/locales/it/knxUltimateHueController.json +0 -64
  427. package/nodes/locales/it/knxUltimateHueHumiditySensor 2.html +0 -11
  428. package/nodes/locales/it/knxUltimateHueHumiditySensor.html +0 -30
  429. package/nodes/locales/it/knxUltimateHueHumiditySensor.json +0 -30
  430. package/nodes/locales/it/knxUltimateHueLight.html +0 -116
  431. package/nodes/locales/it/knxUltimateHueLight.json +0 -94
  432. package/nodes/locales/it/knxUltimateHueLightSensor.html +0 -30
  433. package/nodes/locales/it/knxUltimateHueLightSensor.json +0 -19
  434. package/nodes/locales/it/knxUltimateHueMotion.html +0 -33
  435. package/nodes/locales/it/knxUltimateHueMotion.json +0 -27
  436. package/nodes/locales/it/knxUltimateHuePlug.html +0 -42
  437. package/nodes/locales/it/knxUltimateHuePlug.json +0 -33
  438. package/nodes/locales/it/knxUltimateHueScene.html +0 -37
  439. package/nodes/locales/it/knxUltimateHueScene.json +0 -41
  440. package/nodes/locales/it/knxUltimateHueTapDial.html +0 -32
  441. package/nodes/locales/it/knxUltimateHueTapDial.json +0 -28
  442. package/nodes/locales/it/knxUltimateHueTemperatureSensor.html +0 -30
  443. package/nodes/locales/it/knxUltimateHueTemperatureSensor.json +0 -30
  444. package/nodes/locales/it/knxUltimateHueZigbeeConnectivity.html +0 -31
  445. package/nodes/locales/it/knxUltimateHueZigbeeConnectivity.json +0 -30
  446. package/nodes/locales/it/knxUltimateHuedevice_software_update.html +0 -27
  447. package/nodes/locales/it/knxUltimateHuedevice_software_update.json +0 -30
  448. package/nodes/locales/it/knxUltimateLoadControl.html +0 -68
  449. package/nodes/locales/it/knxUltimateLoadControl.json +0 -28
  450. package/nodes/locales/it/knxUltimateLogger.html +0 -124
  451. package/nodes/locales/it/knxUltimateLogger.json +0 -31
  452. package/nodes/locales/it/knxUltimateMatterBridge.html +0 -57
  453. package/nodes/locales/it/knxUltimateMatterBridge.json +0 -123
  454. package/nodes/locales/it/knxUltimateMatterControllerDevice.html +0 -49
  455. package/nodes/locales/it/knxUltimateMatterControllerDevice.json +0 -146
  456. package/nodes/locales/it/knxUltimateSceneController.html +0 -93
  457. package/nodes/locales/it/knxUltimateSceneController.json +0 -32
  458. package/nodes/locales/it/knxUltimateStaircase.html +0 -69
  459. package/nodes/locales/it/knxUltimateStaircase.json +0 -62
  460. package/nodes/locales/it/knxUltimateWatchDog.html +0 -186
  461. package/nodes/locales/it/knxUltimateWatchDog.json +0 -27
  462. package/nodes/locales/it/matter-config.html +0 -39
  463. package/nodes/locales/it/matter-config.json +0 -48
  464. package/nodes/locales/it/matterbridge-config.html +0 -37
  465. package/nodes/locales/it/matterbridge-config.json +0 -25
  466. package/nodes/locales/zh-CN/hue-config.html +0 -25
  467. package/nodes/locales/zh-CN/hue-config.json +0 -21
  468. package/nodes/locales/zh-CN/knxUltimateAI.html +0 -5
  469. package/nodes/locales/zh-CN/knxUltimateAI.json +0 -231
  470. package/nodes/locales/zh-CN/knxUltimateAlerter.html +0 -151
  471. package/nodes/locales/zh-CN/knxUltimateAlerter.json +0 -27
  472. package/nodes/locales/zh-CN/knxUltimateAutoResponder.html +0 -86
  473. package/nodes/locales/zh-CN/knxUltimateAutoResponder.json +0 -8
  474. package/nodes/locales/zh-CN/knxUltimateDateTime.html +0 -38
  475. package/nodes/locales/zh-CN/knxUltimateDateTime.json +0 -32
  476. package/nodes/locales/zh-CN/knxUltimateGarage.html +0 -71
  477. package/nodes/locales/zh-CN/knxUltimateGarage.json +0 -51
  478. package/nodes/locales/zh-CN/knxUltimateGlobalContext.html +0 -69
  479. package/nodes/locales/zh-CN/knxUltimateGlobalContext.json +0 -24
  480. package/nodes/locales/zh-CN/knxUltimateHATranslator.html +0 -17
  481. package/nodes/locales/zh-CN/knxUltimateHATranslator.json +0 -8
  482. package/nodes/locales/zh-CN/knxUltimateHueAreaMotion.html +0 -36
  483. package/nodes/locales/zh-CN/knxUltimateHueAreaMotion.json +0 -31
  484. package/nodes/locales/zh-CN/knxUltimateHueBattery.html +0 -29
  485. package/nodes/locales/zh-CN/knxUltimateHueBattery.json +0 -30
  486. package/nodes/locales/zh-CN/knxUltimateHueButton.html +0 -44
  487. package/nodes/locales/zh-CN/knxUltimateHueButton.json +0 -34
  488. package/nodes/locales/zh-CN/knxUltimateHueCameraMotion.html +0 -30
  489. package/nodes/locales/zh-CN/knxUltimateHueCameraMotion.json +0 -30
  490. package/nodes/locales/zh-CN/knxUltimateHueContactSensor.html +0 -27
  491. package/nodes/locales/zh-CN/knxUltimateHueContactSensor.json +0 -26
  492. package/nodes/locales/zh-CN/knxUltimateHueController.html +0 -685
  493. package/nodes/locales/zh-CN/knxUltimateHueController.json +0 -64
  494. package/nodes/locales/zh-CN/knxUltimateHueHumiditySensor.html +0 -30
  495. package/nodes/locales/zh-CN/knxUltimateHueHumiditySensor.json +0 -30
  496. package/nodes/locales/zh-CN/knxUltimateHueLight.html +0 -118
  497. package/nodes/locales/zh-CN/knxUltimateHueLight.json +0 -86
  498. package/nodes/locales/zh-CN/knxUltimateHueLightSensor.html +0 -30
  499. package/nodes/locales/zh-CN/knxUltimateHueLightSensor.json +0 -9
  500. package/nodes/locales/zh-CN/knxUltimateHueMotion.html +0 -33
  501. package/nodes/locales/zh-CN/knxUltimateHueMotion.json +0 -27
  502. package/nodes/locales/zh-CN/knxUltimateHuePlug.html +0 -42
  503. package/nodes/locales/zh-CN/knxUltimateHuePlug.json +0 -33
  504. package/nodes/locales/zh-CN/knxUltimateHueScene.html +0 -37
  505. package/nodes/locales/zh-CN/knxUltimateHueScene.json +0 -41
  506. package/nodes/locales/zh-CN/knxUltimateHueTapDial.html +0 -32
  507. package/nodes/locales/zh-CN/knxUltimateHueTapDial.json +0 -28
  508. package/nodes/locales/zh-CN/knxUltimateHueTemperatureSensor.html +0 -30
  509. package/nodes/locales/zh-CN/knxUltimateHueTemperatureSensor.json +0 -30
  510. package/nodes/locales/zh-CN/knxUltimateHueZigbeeConnectivity.html +0 -31
  511. package/nodes/locales/zh-CN/knxUltimateHueZigbeeConnectivity.json +0 -30
  512. package/nodes/locales/zh-CN/knxUltimateHuedevice_software_update.html +0 -28
  513. package/nodes/locales/zh-CN/knxUltimateHuedevice_software_update.json +0 -30
  514. package/nodes/locales/zh-CN/knxUltimateLoadControl.html +0 -68
  515. package/nodes/locales/zh-CN/knxUltimateLoadControl.json +0 -28
  516. package/nodes/locales/zh-CN/knxUltimateLogger.html +0 -118
  517. package/nodes/locales/zh-CN/knxUltimateLogger.json +0 -31
  518. package/nodes/locales/zh-CN/knxUltimateMatterBridge.html +0 -57
  519. package/nodes/locales/zh-CN/knxUltimateMatterBridge.json +0 -123
  520. package/nodes/locales/zh-CN/knxUltimateMatterControllerDevice.html +0 -49
  521. package/nodes/locales/zh-CN/knxUltimateMatterControllerDevice.json +0 -146
  522. package/nodes/locales/zh-CN/knxUltimateSceneController.html +0 -90
  523. package/nodes/locales/zh-CN/knxUltimateSceneController.json +0 -32
  524. package/nodes/locales/zh-CN/knxUltimateStaircase.html +0 -69
  525. package/nodes/locales/zh-CN/knxUltimateStaircase.json +0 -62
  526. package/nodes/locales/zh-CN/knxUltimateWatchDog.html +0 -170
  527. package/nodes/locales/zh-CN/knxUltimateWatchDog.json +0 -27
  528. package/nodes/locales/zh-CN/matter-config.html +0 -39
  529. package/nodes/locales/zh-CN/matter-config.json +0 -47
  530. package/nodes/locales/zh-CN/matterbridge-config.html +0 -37
  531. package/nodes/locales/zh-CN/matterbridge-config.json +0 -25
  532. package/nodes/matter-config.html +0 -572
  533. package/nodes/matter-config.js +0 -387
  534. package/nodes/matterbridge-config.html +0 -192
  535. package/nodes/matterbridge-config.js +0 -261
  536. package/nodes/plugins/knxUltimate-cerebrum-runtime-plugin.js +0 -79
  537. package/nodes/plugins/knxUltimate-migration-notice-plugin.html +0 -19
  538. package/nodes/plugins/knxUltimateAI-vue/assets/app.css +0 -1
  539. package/nodes/plugins/knxUltimateAI-vue/assets/app.js +0 -13
  540. package/nodes/plugins/knxUltimateAI-vue/assets/chunk-html2canvas.esm.js +0 -5
  541. package/nodes/plugins/knxUltimateAI-vue/assets/chunk-index.es.js +0 -5
  542. package/nodes/plugins/knxUltimateAI-vue/assets/chunk-jspdf.es.min.js +0 -79
  543. package/nodes/plugins/knxUltimateAI-vue/assets/chunk-purify.es.js +0 -3
  544. package/nodes/plugins/knxUltimateAI-vue/index.html +0 -13
  545. package/nodes/utils/HueEventStream.mjs +0 -176
  546. package/nodes/utils/colorManipulators/XYFromRGB_Supergiovane.js +0 -113
  547. package/nodes/utils/colorManipulators/hueColorConverter.js +0 -521
  548. package/nodes/utils/http.js +0 -291
  549. package/nodes/utils/hueControllerProfileAdapter.js +0 -104
  550. package/nodes/utils/hueControllerProfiles/runtime/area_motion.js +0 -221
  551. package/nodes/utils/hueControllerProfiles/runtime/button.js +0 -295
  552. package/nodes/utils/hueControllerProfiles/runtime/camera_motion.js +0 -221
  553. package/nodes/utils/hueControllerProfiles/runtime/contact.js +0 -191
  554. package/nodes/utils/hueControllerProfiles/runtime/device_power.js +0 -185
  555. package/nodes/utils/hueControllerProfiles/runtime/device_software_update.js +0 -185
  556. package/nodes/utils/hueControllerProfiles/runtime/humidity.js +0 -204
  557. package/nodes/utils/hueControllerProfiles/runtime/light.js +0 -1585
  558. package/nodes/utils/hueControllerProfiles/runtime/light_level.js +0 -180
  559. package/nodes/utils/hueControllerProfiles/runtime/motion.js +0 -185
  560. package/nodes/utils/hueControllerProfiles/runtime/plug.js +0 -344
  561. package/nodes/utils/hueControllerProfiles/runtime/relative_rotary.js +0 -271
  562. package/nodes/utils/hueControllerProfiles/runtime/scene.js +0 -352
  563. package/nodes/utils/hueControllerProfiles/runtime/temperature.js +0 -187
  564. package/nodes/utils/hueControllerProfiles/runtime/zigbee_connectivity.js +0 -185
  565. package/nodes/utils/hueControllerResourceCatalog.js +0 -71
  566. package/nodes/utils/hueEngine.mjs +0 -469
  567. package/nodes/utils/knxAiCamera.js +0 -302
  568. package/nodes/utils/knxAiCatalogRetrieval.js +0 -349
  569. package/nodes/utils/knxAiCerebrum.js +0 -406
  570. package/nodes/utils/knxAiChatContext.js +0 -496
  571. package/nodes/utils/knxAiEventHistory.js +0 -521
  572. package/nodes/utils/knxAiHomeMemory.js +0 -1021
  573. package/nodes/utils/knxAiScheduler.js +0 -445
  574. package/nodes/utils/knxAiSemanticContext.js +0 -662
  575. package/nodes/utils/knxAiTelegramVoice.js +0 -545
  576. package/nodes/utils/knxAiWebAccess.js +0 -631
  577. package/nodes/utils/lightEngines/canonicalLight.js +0 -75
  578. package/nodes/utils/lightEngines/hueLightEngine.js +0 -51
  579. package/nodes/utils/lightEngines/index.js +0 -25
  580. package/nodes/utils/lightEngines/knxLightCommand.js +0 -79
  581. package/nodes/utils/lightEngines/lightEngine.js +0 -46
  582. package/nodes/utils/lightEngines/matterHueShim.js +0 -59
  583. package/nodes/utils/lightEngines/matterLightEngine.js +0 -117
  584. package/nodes/utils/matterBridgeDeviceFactory.mjs +0 -780
  585. package/nodes/utils/matterBridgeEngine.mjs +0 -297
  586. package/nodes/utils/matterControllerCommandGate.js +0 -47
  587. package/nodes/utils/matterControllerProfiles/doorLock.js +0 -258
  588. package/nodes/utils/matterControllerProfiles/fan.js +0 -19
  589. package/nodes/utils/matterControllerProfiles/index.js +0 -34
  590. package/nodes/utils/matterControllerProfiles/mappedEndpoint.js +0 -217
  591. package/nodes/utils/matterControllerProfiles/switch.js +0 -13
  592. package/nodes/utils/matterControllerProfiles/thermostat.js +0 -19
  593. package/nodes/utils/matterControllerProfiles/universal.js +0 -462
  594. package/nodes/utils/matterControllerProfiles/windowCovering.js +0 -19
  595. package/nodes/utils/matterControllerSemanticInput.js +0 -212
  596. package/nodes/utils/matterEngine.mjs +0 -894
  597. package/nodes/utils/matterEnvironmentLock.mjs +0 -32
  598. package/nodes/utils/matterKnxConverter.js +0 -204
  599. package/nodes/utils/matterStorageBackup.js +0 -100
  600. package/resources/HA-icon.png +0 -0
  601. package/resources/dim.png +0 -0
  602. package/resources/rgb.png +0 -0
  603. package/resources/tunablewhite.png +0 -0
  604. package/resources/zxing-browser-0.2.0.min.js +0 -1
  605. package/resources/zxing-browser-LICENSE.txt +0 -21
package/CHANGELOG.md CHANGED
@@ -6,13 +6,26 @@
6
6
 
7
7
  # CHANGELOG
8
8
 
9
- **Version 7.1.3** - September 2026
9
+ **Version 8.0.1-beta.0** - September 2026
10
10
 
11
- -Quick fix: Matter Controller and Matter Bridge are available in the palette again.
11
+ - Published under the `beta` dist-tag as the exact install target for the version 7 one-click upgrade.
12
+ - Made the version 7 migration warning and optional integration packages much more visible in the README.
13
+ - Keeps the version 7 one-click upgrade resource loadable while version 8 is waiting for the mandatory Node-RED restart.
14
+ - Added an editor recovery bridge and inert runtime placeholders for direct upgrades from older version 7 installations; compatible unknown nodes can be backed up, converted and deployed without reinstalling KNX Ultimate 8.
15
+ - Requires Matter Ultimate 1.0.3 when Matter nodes are migrated so protected door-lock PIN credentials remain registered across the Deploy.
16
+ - Treats `preinstall` as a read-only, best-effort diagnostic because modern Node-RED/npm installations may skip dependency lifecycle scripts; the editor bridge is the authoritative recovery path.
17
+
18
+ **Version 8.0.0** - September 2026
19
+
20
+ - The editor stays accessible after upgrading from version 7 and reminds you to restart Node-RED.
21
+ - KNX Ultimate 8 ships only the current KNX nodes.
22
+ - Installation checks saved flows and blocks the upgrade if old HUE or Matter nodes still need migration.
23
+ - HUE and Matter use their separate packages; old KNX utility nodes are replaced by KNX Utility.
24
+ - Removed the old AI nodes and unused dependencies. Migrate existing flows before upgrading: see [upgrade steps](https://github.com/Supergiovane/node-red-contrib-knx-ultimate/blob/main/MIGRATION.md).
12
25
 
13
26
  **Version 7.1.2** - September 2026
14
27
 
15
- - HUE Controller, Matter Controller and Matter Bridge are available in the palette again.
28
+ - HUE Controller is available in the palette again.
16
29
 
17
30
  **Version 7.1.1** - September 2026
18
31
 
package/MIGRATION.md ADDED
@@ -0,0 +1,40 @@
1
+ # Upgrading to KNX Ultimate 8
2
+
3
+ Version 8 contains the current KNX nodes and gateway. HUE and Matter are provided by `node-red-contrib-hue-ultimate` and `node-red-contrib-matter-ultimate`; the old dedicated KNX utility nodes are replaced by KNX Utility.
4
+
5
+ ## Recommended path from version 7
6
+
7
+ Install KNX Ultimate 7.1.4 first, open any KNX Ultimate node and press **Upgrade to v8**. The guided operation backs up the flows, installs the required HUE/Matter packages, converts compatible nodes, performs and verifies a full Deploy, and installs version 8. Restart the Node-RED service when requested.
8
+
9
+ This is the preferred route because the legacy nodes remain operational until the converted flow has been safely deployed.
10
+
11
+ ## Direct upgrade from an older version 7
12
+
13
+ Every version 8 also includes a recovery bridge for users who reach it without passing through 7.1.4:
14
+
15
+ 1. Install version 8 and restart the Node-RED service.
16
+ 2. Open the Node-RED editor. A migration prompt appears when legacy nodes or configuration nodes are found, including nodes displayed as unknown.
17
+ 3. Start the guided migration. It downloads a JSON backup, installs HUE Ultimate and/or Matter Ultimate when needed, converts supported nodes in place, performs a full Deploy and reads the saved flows back for verification.
18
+ 4. Reload the editor when prompted so converted configuration nodes are re-indexed from the saved flow before any further editing.
19
+
20
+ IDs, wires, groups and configuration references are preserved. Existing Node-RED credentials remain associated with the same configuration-node IDs, and Matter storage under `knxultimatestorage` is not deleted.
21
+
22
+ Version 8 registers hidden, inert compatibility runtimes for removed types so that their presence does not stop every unrelated flow from starting. Those legacy nodes do not perform their old automation while they are awaiting conversion. Complete the migration immediately after the restart and do not manually Deploy unknown nodes first.
23
+
24
+ ## Legacy KNX AI nodes
25
+
26
+ `knxUltimateAI` and `knxUltimateAIHomeAssistant` cannot be converted automatically to Cerebrum Ultimate. The guided process stops before changing flows when it finds either type. Replace or remove those nodes manually, then start the migration again. Their credential schema remains registered during the transition so saved secrets are not discarded merely because version 8 was installed.
27
+
28
+ ## Safety behaviour
29
+
30
+ The migration stops before changing anything if it finds a locked flow, an unrelated unknown/invalid node, insufficient editor permissions or disabled Palette Manager installation. A flow backup is requested before conversion. Package installation happens through the authenticated Node-RED Admin API, not through a nested npm process.
31
+
32
+ If HUE Ultimate or Matter Ultimate is installed or updated in a way that requires a restart, the bridge asks for that restart before changing flows. After conversion it validates the editor graph, performs a revision-aware full Deploy and verifies the persisted result. Package timeouts and ambiguous Deploy responses are treated as uncertain rather than guessed.
33
+
34
+ Node-RED can use custom storage and can contain undeployed browser changes, so an npm lifecycle script cannot safely perform this conversion. The version 8 `preinstall` hook is diagnostic only: when npm allows lifecycle scripts it scans common saved-flow locations and prints a migration warning, but it never edits a flow or starts a nested package installation. Some npm/Node-RED policies disable dependency lifecycle scripts entirely, so the editor bridge is the authoritative migration path.
35
+
36
+ ## Using the separate packages
37
+
38
+ HUE Ultimate and Matter Ultimate provide their own configuration nodes and device connections. Select the existing `knxUltimate-config` gateway in their editors to enable KNX integration. They can also work without KNX Ultimate.
39
+
40
+ Keep the same Node-RED user directory and do not delete `knxultimatestorage`. The separate Matter package uses the existing pairing identity, fabrics and device storage.
package/README.md CHANGED
@@ -6,9 +6,31 @@
6
6
 
7
7
  ## The most popular KNX node for Node-RED
8
8
 
9
- KNX Ultimate is the most advanced KNX integration for Node-RED, providing secure KNX/IP communication, routing, ETS project import, ETS diagnostics, virtual devices, and powerful automation nodes. Build professional, reliable, and scalable smart home and building automation projects with minimal effort. ù
10
- You can optionally increase the power of KNX, by installing node-red-contrig-hue-ultimate for Philips Hue and installing node-red-contrig-matter-ultimate form Matter Controller and Matter Bridge (control matter device via KNX and expose KNX GA via Matter).
11
- These optional nodes will detect KNX-Ultimate and seamlessy integrate with KNX, without further configurations.
9
+ KNX Ultimate provides KNX/IP and KNX Secure communication, ETS project import, routing, diagnostics, virtual devices and automation utilities.
10
+
11
+ The palette contains KNX Device, KNX Utility, KNX Viewer, KNX IoT Bridge, KNX Multi Routing and KNX Router Filter.
12
+
13
+ ---
14
+
15
+ ## 🚨 IMPORTANT — UPGRADING FROM VERSION 7.1.4 🚨
16
+
17
+ > ### Preferred: migrate before installing version 8
18
+ >
19
+ > Install version 7.1.4 first, then use **Upgrade to v8** from any KNX Ultimate node.
20
+ >
21
+ > ### The migration is fully automated with the push of a button
22
+ >
23
+ > If version 8 was installed directly from an older v7, restart Node-RED and open the editor: the built-in recovery bridge offers the same protected backup, package installation, conversion and Deploy. Legacy KNX AI nodes still require manual replacement or removal.
24
+ >
25
+ > **Follow the [upgrade steps](https://supergiovane.github.io/node-red-contrib-knx-ultimate/wiki/Migration-8) to keep your flows working.**
26
+
27
+ ### Native seamless integrations
28
+
29
+ - **Philips Hue:** install `node-red-contrib-hue-ultimate`.
30
+ - **Matter Controller and Matter Bridge:** install `node-red-contrib-matter-ultimate`. Select your existing KNX gateway in those nodes to enable KNX integration. The package can also work without KNX Ultimate.
31
+ - **AI-driven KNX control, on-field diagnostics and unit testing for KNX installers:** install `node-red-contrib-cerebrum-ultimate`.
32
+
33
+ ---
12
34
 
13
35
  <br/>
14
36
  <br/>
@@ -40,7 +62,7 @@ These optional nodes will detect KNX-Ultimate and seamlessy integrate with KNX,
40
62
  </p>
41
63
 
42
64
  <p align="left" style="font-size:2.25rem;font-weight:700;line-height:1.9;">
43
- <a href="https://github.com/Supergiovane/node-red-contrib-knx-ultimate/blob/master/CHANGELOG.md"
65
+ <a href="https://github.com/Supergiovane/node-red-contrib-knx-ultimate/blob/main/CHANGELOG.md"
44
66
  style="display:inline-flex;align-items:center;gap:10px;padding:12px 24px;border-radius:999px;background:#ffc439;color:#111;font-weight:700;text-decoration:none;box-shadow:0 16px 30px rgba(255,196,57,0.32);">
45
67
  CHANGELOG
46
68
  </a>
@@ -49,7 +71,7 @@ These optional nodes will detect KNX-Ultimate and seamlessy integrate with KNX,
49
71
  </br>
50
72
 
51
73
  [license-image]: https://img.shields.io/github/license/Supergiovane/node-red-contrib-knx-ultimate?color=blue
52
- [license-url]: https://github.com/Supergiovane/node-red-contrib-knx-ultimate/blob/master/LICENSE
74
+ [license-url]: https://github.com/Supergiovane/node-red-contrib-knx-ultimate/blob/main/LICENSE
53
75
  [npm-url]: https://npmjs.org/package/node-red-contrib-knx-ultimate
54
76
  [npm-version-image]: https://img.shields.io/npm/v/node-red-contrib-knx-ultimate.svg
55
77
  [node-version-image]: https://img.shields.io/node/v/node-red-contrib-knx-ultimate?logo=node.js&logoColor=white
@@ -72,3 +94,9 @@ These optional nodes will detect KNX-Ultimate and seamlessy integrate with KNX,
72
94
  [paypal-image]: https://img.shields.io/badge/Support-PayPal-blue
73
95
  [paypal-url]: https://www.paypal.com/donate/?hosted_button_id=S8SKPUBSPK758
74
96
  [docs-button-image]: https://img.shields.io/badge/Docs-Open%20Documentation-0d4c70?style=for-the-badge&logo=book&logoColor=f4fbff
97
+
98
+ ---
99
+
100
+ <p align="center">
101
+ <img src="docs/assets/brand/made-in-italy.svg" alt="Made in Italy — Designed and developed in Italy" width="260">
102
+ </p>
package/docs/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # Documentation for KNX Ultimate 8
2
+
3
+ The site uses GitHub Pages/Jekyll and keeps the existing URLs and six languages: English, Italian, German, French, Spanish and Simplified Chinese.
4
+
5
+ - `docs/_data/knx8.json`: translated home-page content and version notices.
6
+ - `docs/_includes/homepage/content.html`: shared home-page structure.
7
+ - `docs/wiki/`: node reference, getting started, migration and examples. Use the same `translation_key` for translations and preserve existing `permalink` values.
8
+ - `scripts/wiki-menu.json`: navigation source. `npm run docs:prepare` regenerates `docs/_data/wiki-nav.json` and copies the package examples to `docs/examples/`.
9
+ - `examples/`: the maintained importable flows. The copies in `docs/examples/` are generated and ignored by Git.
10
+
11
+ The old HUE and Matter pages are version 7 references, marked by `legacy_package` and a visible notice linking to the new packages. Utility reference pages describe functions of **KNX Utility**, not separate palette nodes. Historical pages with duplicated language prefixes redirect to the real translated page.
12
+
13
+ ## Local preview
14
+
15
+ Install the Ruby/Jekyll dependencies from `docs/Gemfile`, then run from the repository root with `jekyll` available on PATH:
16
+
17
+ ```sh
18
+ npm run docs:build
19
+ npm run docs:serve
20
+ ```
21
+
22
+ Open `http://127.0.0.1:4000/node-red-contrib-knx-ultimate/`. The preview uses the same Liquid templates as the real site.
23
+
24
+ `npm run wiki:refresh` imports help for the current Device, Gateway, Viewer, IoT Bridge and routing nodes. It preserves page metadata and archive notices. Getting started, migration, Utility overview/function references and examples are maintained directly in `docs/wiki/`.
25
+
26
+ The `Documentation` GitHub Actions workflow prepares the downloads and builds the site. A push to `8.0.0` only builds an artifact; it does not replace the published version 7 documentation. Publishing runs after a push to `main`, or when the workflow is explicitly started manually. GitHub Pages uses **Settings → Pages → Source → GitHub Actions**.
27
+
28
+ Language pages use explicit permalinks and translation keys, so no extra translation plugin is needed on GitHub Pages. For any other Pages build, run `npm run docs:prepare` before Jekyll so downloadable examples are included.
29
+
30
+ ## Repository branches
31
+
32
+ - `main` is the default branch for KNX Ultimate 8 and its documentation.
33
+ - `7.x` preserves the 7.1.4 code, including the Matter palette fix and one-click version 8 upgrade, for version 7 maintenance. Apply version 7 fixes there and do not merge the KNX 8 node removals into it.
34
+ - The old `master` reference remains available for existing links. New development belongs on `main`; version 7 fixes belong on `7.x`.
@@ -0,0 +1,12 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 112" width="400" height="112" role="img" aria-labelledby="title desc">
2
+ <title id="title">Made in Italy</title>
3
+ <desc id="desc">Designed and developed in Italy. Original project badge with the Italian tricolour.</desc>
4
+ <!-- Original artwork for this project; not a ministerial emblem or certification mark. -->
5
+ <defs><clipPath id="flag"><rect x="28" y="29" width="54" height="54" rx="27"/></clipPath></defs>
6
+ <rect x="1" y="1" width="398" height="110" rx="18" fill="#FCFCFA" stroke="#DFE5DF" stroke-width="2"/>
7
+ <g clip-path="url(#flag)"><path d="M28 29h18v54H28Z" fill="#008C45"/><path d="M46 29h18v54H46Z" fill="#F4F5F0"/><path d="M64 29h18v54H64Z" fill="#CD212A"/></g>
8
+ <g font-family="Arial, Helvetica, sans-serif" fill="#142B29">
9
+ <text x="103" y="52" font-size="24" font-weight="700" letter-spacing="1.5">MADE IN ITALY</text>
10
+ <text x="104" y="75" font-size="10" font-weight="700" letter-spacing="1.7">DESIGNED &amp; DEVELOPED</text>
11
+ </g>
12
+ </svg>
@@ -31,7 +31,7 @@
31
31
  },
32
32
  {
33
33
  "id": "al_node",
34
- "type": "knxUltimateAlerter",
34
+ "type": "knxUltimateUtility",
35
35
  "z": "al_tab",
36
36
  "server": "al_cfg",
37
37
  "name": "KNX Alerter",
@@ -64,7 +64,10 @@
64
64
  [
65
65
  "al_dbg3"
66
66
  ]
67
- ]
67
+ ],
68
+ "utilityType": "alerter",
69
+ "inputs": 1,
70
+ "outputs": 3
68
71
  },
69
72
  {
70
73
  "id": "al_on",
@@ -31,13 +31,16 @@
31
31
  },
32
32
  {
33
33
  "id": "ar_node",
34
- "type": "knxUltimateAutoResponder",
34
+ "type": "knxUltimateUtility",
35
35
  "z": "ar_tab",
36
36
  "server": "ar_cfg",
37
37
  "name": "Auto responder",
38
38
  "commandText": "[{\"ga\":\"2/7/1\",\"default\":true},{\"ga\":\"2/7/2\",\"dpt\":\"5.001\",\"default\":25},{\"ga\":\"2/7/3\",\"dpt\":\"16.001\",\"default\":\"Ready\"}]",
39
39
  "x": 420,
40
40
  "y": 170,
41
- "wires": []
41
+ "wires": [],
42
+ "utilityType": "autoresponder",
43
+ "inputs": 0,
44
+ "outputs": 0
42
45
  }
43
46
  ]
@@ -31,7 +31,7 @@
31
31
  },
32
32
  {
33
33
  "id": "ga_node",
34
- "type": "knxUltimateGarage",
34
+ "type": "knxUltimateUtility",
35
35
  "z": "ga_tab",
36
36
  "server": "ga_cfg",
37
37
  "name": "Garage Door",
@@ -66,7 +66,10 @@
66
66
  [
67
67
  "ga_dbg"
68
68
  ]
69
- ]
69
+ ],
70
+ "utilityType": "garage",
71
+ "inputs": 1,
72
+ "outputs": 1
70
73
  },
71
74
  {
72
75
  "id": "ga_inj_on",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  {
33
33
  "id": "gc_node",
34
- "type": "knxUltimateGlobalContext",
34
+ "type": "knxUltimateUtility",
35
35
  "z": "gc_tab",
36
36
  "server": "gc_cfg",
37
37
  "name": "KNXGlobalContext",
@@ -40,6 +40,9 @@
40
40
  "contextStorage": "",
41
41
  "x": 350,
42
42
  "y": 140,
43
- "wires": []
43
+ "wires": [],
44
+ "utilityType": "globalcontext",
45
+ "inputs": 0,
46
+ "outputs": 0
44
47
  }
45
48
  ]
@@ -1,89 +1,111 @@
1
- [{
2
- "id": "dt_cfg_1",
3
- "type": "knxUltimate-config",
4
- "z": "",
5
- "host": "224.0.23.12",
6
- "port": "3671",
7
- "physAddr": "15.15.202",
8
- "suppressACKRequest": false,
9
- "csv": "",
10
- "KNXEthInterface": "Auto",
11
- "KNXEthInterfaceManuallyInput": "",
12
- "autoReconnect": "yes"
13
- },
14
- {
15
- "id": "dt_inj_now",
16
- "type": "inject",
17
- "z": "flow_dt",
18
- "name": "Send NOW",
19
- "props": [
20
- { "p": "payload" }
21
- ],
22
- "repeat": "",
23
- "crontab": "",
24
- "once": false,
25
- "onceDelay": 0.1,
26
- "topic": "",
27
- "payloadType": "date",
28
- "x": 150,
29
- "y": 160,
30
- "wires": [["dt_node"]]
31
- },
32
- {
33
- "id": "dt_inj_custom",
34
- "type": "inject",
35
- "z": "flow_dt",
36
- "name": "Send fixed ISO date",
37
- "props": [
38
- { "p": "payload", "v": "2026-03-02T10:00:00+01:00", "vt": "str" }
39
- ],
40
- "repeat": "",
41
- "crontab": "",
42
- "once": false,
43
- "onceDelay": 0.1,
44
- "topic": "",
45
- "x": 170,
46
- "y": 220,
47
- "wires": [["dt_node"]]
48
- },
49
- {
50
- "id": "dt_node",
51
- "type": "knxUltimateDateTime",
52
- "z": "flow_dt",
53
- "server": "dt_cfg_1",
54
- "name": "KNX Clock",
55
- "outputtopic": "events/knx/datetime",
56
- "gaDateTime": "1/7/1",
57
- "nameDateTime": "Bus DateTime",
58
- "dptDateTime": "19.001",
59
- "gaDate": "",
60
- "nameDate": "",
61
- "dptDate": "11.001",
62
- "gaTime": "",
63
- "nameTime": "",
64
- "dptTime": "10.001",
65
- "sendOnDeploy": true,
66
- "sendOnDeployDelay": 2,
67
- "periodicSend": false,
68
- "periodicSendInterval": 60,
69
- "periodicSendUnit": "m",
70
- "x": 420,
71
- "y": 190,
72
- "wires": [["dt_dbg"]]
73
- },
74
- {
75
- "id": "dt_dbg",
76
- "type": "debug",
77
- "z": "flow_dt",
78
- "name": "DateTime out",
79
- "active": true,
80
- "tosidebar": true,
81
- "console": false,
82
- "tostatus": true,
83
- "complete": "true",
84
- "targetType": "full",
85
- "x": 640,
86
- "y": 190,
87
- "wires": []
88
- }]
89
-
1
+ [
2
+ {
3
+ "id": "dt_cfg_1",
4
+ "type": "knxUltimate-config",
5
+ "z": "",
6
+ "host": "224.0.23.12",
7
+ "port": "3671",
8
+ "physAddr": "15.15.202",
9
+ "suppressACKRequest": false,
10
+ "csv": "",
11
+ "KNXEthInterface": "Auto",
12
+ "KNXEthInterfaceManuallyInput": "",
13
+ "autoReconnect": "yes"
14
+ },
15
+ {
16
+ "id": "dt_inj_now",
17
+ "type": "inject",
18
+ "z": "flow_dt",
19
+ "name": "Send NOW",
20
+ "props": [
21
+ {
22
+ "p": "payload"
23
+ }
24
+ ],
25
+ "repeat": "",
26
+ "crontab": "",
27
+ "once": false,
28
+ "onceDelay": 0.1,
29
+ "topic": "",
30
+ "payloadType": "date",
31
+ "x": 150,
32
+ "y": 160,
33
+ "wires": [
34
+ [
35
+ "dt_node"
36
+ ]
37
+ ]
38
+ },
39
+ {
40
+ "id": "dt_inj_custom",
41
+ "type": "inject",
42
+ "z": "flow_dt",
43
+ "name": "Send fixed ISO date",
44
+ "props": [
45
+ {
46
+ "p": "payload",
47
+ "v": "2026-03-02T10:00:00+01:00",
48
+ "vt": "str"
49
+ }
50
+ ],
51
+ "repeat": "",
52
+ "crontab": "",
53
+ "once": false,
54
+ "onceDelay": 0.1,
55
+ "topic": "",
56
+ "x": 170,
57
+ "y": 220,
58
+ "wires": [
59
+ [
60
+ "dt_node"
61
+ ]
62
+ ]
63
+ },
64
+ {
65
+ "id": "dt_node",
66
+ "type": "knxUltimateUtility",
67
+ "z": "flow_dt",
68
+ "server": "dt_cfg_1",
69
+ "name": "KNX Clock",
70
+ "outputtopic": "events/knx/datetime",
71
+ "gaDateTime": "1/7/1",
72
+ "nameDateTime": "Bus DateTime",
73
+ "dptDateTime": "19.001",
74
+ "gaDate": "",
75
+ "nameDate": "",
76
+ "dptDate": "11.001",
77
+ "gaTime": "",
78
+ "nameTime": "",
79
+ "dptTime": "10.001",
80
+ "sendOnDeploy": true,
81
+ "sendOnDeployDelay": 2,
82
+ "periodicSend": false,
83
+ "periodicSendInterval": 60,
84
+ "periodicSendUnit": "m",
85
+ "x": 420,
86
+ "y": 190,
87
+ "wires": [
88
+ [
89
+ "dt_dbg"
90
+ ]
91
+ ],
92
+ "utilityType": "datetime",
93
+ "inputs": 0,
94
+ "outputs": 0
95
+ },
96
+ {
97
+ "id": "dt_dbg",
98
+ "type": "debug",
99
+ "z": "flow_dt",
100
+ "name": "DateTime out",
101
+ "active": true,
102
+ "tosidebar": true,
103
+ "console": false,
104
+ "tostatus": true,
105
+ "complete": "true",
106
+ "targetType": "full",
107
+ "x": 640,
108
+ "y": 190,
109
+ "wires": []
110
+ }
111
+ ]
@@ -31,7 +31,7 @@
31
31
  },
32
32
  {
33
33
  "id": "lc_node",
34
- "type": "knxUltimateLoadControl",
34
+ "type": "knxUltimateUtility",
35
35
  "z": "lc_tab",
36
36
  "server": "lc_cfg",
37
37
  "name": "Load Control",
@@ -82,7 +82,10 @@
82
82
  [
83
83
  "lc_dbg"
84
84
  ]
85
- ]
85
+ ],
86
+ "utilityType": "loadcontrol",
87
+ "inputs": 1,
88
+ "outputs": 1
86
89
  },
87
90
  {
88
91
  "id": "lc_shed",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  {
16
16
  "id": "logger_1",
17
- "type": "knxUltimateLogger",
17
+ "type": "knxUltimateUtility",
18
18
  "z": "flow5",
19
19
  "server": "log_cfg_1",
20
20
  "topic": "",
@@ -26,7 +26,15 @@
26
26
  "intervalTelegramCount": 60,
27
27
  "x": 320,
28
28
  "y": 180,
29
- "wires": [["logger_dbg_ets"],[]]
29
+ "wires": [
30
+ [
31
+ "logger_dbg_ets"
32
+ ],
33
+ []
34
+ ],
35
+ "utilityType": "logger",
36
+ "inputs": 1,
37
+ "outputs": 2
30
38
  },
31
39
  {
32
40
  "id": "logger_dbg_ets",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  {
16
16
  "id": "scene_ctrl_1",
17
- "type": "knxUltimateSceneController",
17
+ "type": "knxUltimateUtility",
18
18
  "z": "flow4",
19
19
  "server": "sc_cfg_1",
20
20
  "name": "Scene Recall/Save",
@@ -30,33 +30,60 @@
30
30
  "rules": [],
31
31
  "x": 410,
32
32
  "y": 200,
33
- "wires": [["sc_dbg"]]
33
+ "wires": [
34
+ [
35
+ "sc_dbg"
36
+ ]
37
+ ],
38
+ "utilityType": "scenecontroller",
39
+ "inputs": 1,
40
+ "outputs": 1
34
41
  },
35
42
  {
36
43
  "id": "inj_recall",
37
44
  "type": "inject",
38
45
  "z": "flow4",
39
46
  "name": "Recall Scene 2",
40
- "props": [{"p":"payload","v":"true","vt":"bool"}],
47
+ "props": [
48
+ {
49
+ "p": "payload",
50
+ "v": "true",
51
+ "vt": "bool"
52
+ }
53
+ ],
41
54
  "repeat": "",
42
55
  "once": false,
43
56
  "onceDelay": 0.1,
44
57
  "x": 180,
45
58
  "y": 180,
46
- "wires": [["scene_ctrl_1"]]
59
+ "wires": [
60
+ [
61
+ "scene_ctrl_1"
62
+ ]
63
+ ]
47
64
  },
48
65
  {
49
66
  "id": "inj_save",
50
67
  "type": "inject",
51
68
  "z": "flow4",
52
69
  "name": "Save Scene 2",
53
- "props": [{"p":"payload","v":"true","vt":"bool"}],
70
+ "props": [
71
+ {
72
+ "p": "payload",
73
+ "v": "true",
74
+ "vt": "bool"
75
+ }
76
+ ],
54
77
  "repeat": "",
55
78
  "once": false,
56
79
  "onceDelay": 0.1,
57
80
  "x": 170,
58
81
  "y": 240,
59
- "wires": [["scene_ctrl_1"]]
82
+ "wires": [
83
+ [
84
+ "scene_ctrl_1"
85
+ ]
86
+ ]
60
87
  },
61
88
  {
62
89
  "id": "sc_dbg",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  {
33
33
  "id": "stair_node_1",
34
- "type": "knxUltimateStaircase",
34
+ "type": "knxUltimateUtility",
35
35
  "z": "stair_flow_1",
36
36
  "server": "stair_cfg_1",
37
37
  "name": "Staircase Light",
@@ -66,7 +66,10 @@
66
66
  [
67
67
  "stair_dbg_1"
68
68
  ]
69
- ]
69
+ ],
70
+ "utilityType": "staircase",
71
+ "inputs": 1,
72
+ "outputs": 1
70
73
  },
71
74
  {
72
75
  "id": "stair_inj_on",