node-red-contrib-knx-ultimate 7.1.4 → 8.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -10
- package/MIGRATION.md +40 -0
- package/README.md +32 -6
- package/docs/README.md +34 -0
- package/docs/assets/brand/made-in-italy.svg +12 -0
- package/examples/Alerter - Device Alert Aggregation.json +5 -2
- package/examples/Auto Responder - Read Request Defaults.json +5 -2
- package/examples/Garage - Door Controller.json +5 -2
- package/examples/Global Context - Expose KNX Values.json +5 -2
- package/examples/KNX DateTime - Set Date and Time to Bus.json +111 -89
- package/examples/Load Control - Manual Shedding Mode.json +5 -2
- package/examples/Logger ETS File and Telegram Count.json +10 -2
- package/examples/Scene Controller Recall and Save.json +33 -6
- package/examples/Staircase - Timer, Override and Block.json +5 -2
- package/examples/WatchDog Connect Disconnect.json +98 -70
- package/nodes/commonFunctions.js +0 -587
- package/nodes/knxUltimate-config.html +0 -14
- package/nodes/knxUltimate-config.js +1 -18
- package/nodes/knxUltimate.html +1 -6
- package/nodes/knxUltimateIoTBridge.html +0 -14
- package/nodes/knxUltimateLegacyMigration.js +75 -0
- package/nodes/knxUltimateMultiRouting.html +1 -7
- package/nodes/knxUltimateRouterFilter.html +1 -7
- package/nodes/knxUltimateUtility.html +0 -6
- package/nodes/knxUltimateViewer.html +0 -6
- package/nodes/locales/de/knxUltimate-config.html +0 -8
- package/nodes/locales/de/knxUltimate.html +0 -8
- package/nodes/locales/de/knxUltimateIoTBridge.html +0 -8
- package/nodes/locales/de/knxUltimateMultiRouting.html +0 -8
- package/nodes/locales/de/knxUltimateRouterFilter.html +0 -8
- package/nodes/locales/de/knxUltimateUtility.html +0 -8
- package/nodes/locales/de/knxUltimateUtility.json +16 -1
- package/nodes/locales/de/knxUltimateViewer.html +0 -8
- package/nodes/locales/en/knxUltimate-config.html +0 -8
- package/nodes/locales/en/knxUltimate.html +0 -8
- package/nodes/locales/en/knxUltimateIoTBridge.html +0 -8
- package/nodes/locales/en/knxUltimateMultiRouting.html +0 -8
- package/nodes/locales/en/knxUltimateRouterFilter.html +0 -8
- package/nodes/locales/en/knxUltimateUtility.html +0 -8
- package/nodes/locales/en/knxUltimateUtility.json +16 -1
- package/nodes/locales/en/knxUltimateViewer.html +0 -8
- package/nodes/locales/es/knxUltimate-config.html +0 -8
- package/nodes/locales/es/knxUltimate.html +0 -8
- package/nodes/locales/es/knxUltimateIoTBridge.html +0 -8
- package/nodes/locales/es/knxUltimateMultiRouting.html +0 -8
- package/nodes/locales/es/knxUltimateRouterFilter.html +0 -8
- package/nodes/locales/es/knxUltimateUtility.html +0 -8
- package/nodes/locales/es/knxUltimateUtility.json +17 -2
- package/nodes/locales/es/knxUltimateViewer.html +0 -8
- package/nodes/locales/fr/knxUltimate-config.html +0 -8
- package/nodes/locales/fr/knxUltimate.html +0 -8
- package/nodes/locales/fr/knxUltimateIoTBridge.html +0 -8
- package/nodes/locales/fr/knxUltimateMultiRouting.html +0 -8
- package/nodes/locales/fr/knxUltimateRouterFilter.html +0 -8
- package/nodes/locales/fr/knxUltimateUtility.html +0 -8
- package/nodes/locales/fr/knxUltimateUtility.json +16 -1
- package/nodes/locales/fr/knxUltimateViewer.html +0 -8
- package/nodes/locales/it/knxUltimate-config.html +0 -8
- package/nodes/locales/it/knxUltimate.html +0 -8
- package/nodes/locales/it/knxUltimateIoTBridge.html +0 -8
- package/nodes/locales/it/knxUltimateMultiRouting.html +0 -8
- package/nodes/locales/it/knxUltimateRouterFilter.html +0 -8
- package/nodes/locales/it/knxUltimateUtility.html +0 -8
- package/nodes/locales/it/knxUltimateUtility.json +16 -1
- package/nodes/locales/it/knxUltimateViewer.html +0 -8
- package/nodes/locales/zh-CN/knxUltimate-config.html +0 -8
- package/nodes/locales/zh-CN/knxUltimate.html +0 -8
- package/nodes/locales/zh-CN/knxUltimateIoTBridge.html +0 -8
- package/nodes/locales/zh-CN/knxUltimateMultiRouting.html +0 -8
- package/nodes/locales/zh-CN/knxUltimateRouterFilter.html +0 -8
- package/nodes/locales/zh-CN/knxUltimateUtility.html +0 -8
- package/nodes/locales/zh-CN/knxUltimateUtility.json +16 -1
- package/nodes/locales/zh-CN/knxUltimateViewer.html +0 -8
- package/nodes/plugins/knxUltimate-v8-migration-recovery-plugin.html +140 -0
- package/package.json +22 -69
- package/resources/11f26b4500.js +2 -2
- package/resources/KNXAIChatAdapterMappings.js +2 -416
- package/resources/configNodeEditorSelection.js +2 -32
- package/resources/hueControllerEditorSelection.js +2 -32
- package/resources/hueControllerMigrationDialog.js +2 -254
- package/resources/hueControllerProfiles.js +2 -9319
- package/resources/knxUtilityProfiles.js +2041 -2082
- package/resources/legacyMigrationNotice.js +23 -111
- package/resources/matterQrScanner.js +2 -98
- package/resources/upgradeToV8.js +94 -26
- package/scripts/check-legacy-flows.js +142 -0
- package/examples/Hue Area Motion - Zone Presence.json +0 -77
- package/examples/Hue Battery - Level Status.json +0 -77
- package/examples/Hue Button - Short and Dim Commands.json +0 -83
- package/examples/Hue Camera Motion - Presence.json +0 -77
- package/examples/Hue Config - Bridge Template.json +0 -27
- package/examples/Hue Contact Sensor - Open Closed.json +0 -75
- package/examples/Hue Device Software Update - Availability.json +0 -77
- package/examples/Hue Humidity Sensor - Relative Humidity.json +0 -77
- package/examples/Hue Light - Switch and Brightness.json +0 -67
- package/examples/Hue Light Sensor - Lux to KNX.json +0 -77
- package/examples/Hue Motion - Presence Sensor.json +0 -76
- package/examples/Hue Plug - Switch and State.json +0 -63
- package/examples/Hue Scene - Recall from KNX.json +0 -63
- package/examples/Hue Tap Dial - Relative Dimming.json +0 -76
- package/examples/Hue Temperature Sensor - Celsius to KNX.json +0 -77
- package/examples/Hue Zigbee Connectivity - Online Status.json +0 -77
- package/examples/Matter Controller - Semantic Flow Input.json +0 -248
- package/nodes/hue-config.html +0 -378
- package/nodes/hue-config.js +0 -846
- package/nodes/icons/node-alerter-icon.png +0 -0
- package/nodes/icons/node-homekit-icon.png +0 -0
- package/nodes/icons/node-homekit-icon.svg +0 -10
- package/nodes/icons/node-hue-icon.svg +0 -10
- package/nodes/icons/node-knx-icon.png +0 -0
- package/nodes/icons/node-logger-icon.png +0 -0
- package/nodes/icons/node-logger2-icon.png +0 -0
- package/nodes/icons/node-logger2-icon.svg +0 -32
- package/nodes/icons/node-matter-bridge-icon.svg +0 -6
- package/nodes/icons/node-matter-controller-icon.svg +0 -6
- package/nodes/icons/node-matter-icon.svg +0 -12
- package/nodes/icons/node-scene-icon.png +0 -0
- package/nodes/icons/node-watchdog-icon.png +0 -0
- package/nodes/knxUltimateAI.html +0 -1826
- package/nodes/knxUltimateAI.js +0 -16797
- package/nodes/knxUltimateAIHomeAssistant.html +0 -54
- package/nodes/knxUltimateAIHomeAssistant.js +0 -152
- package/nodes/knxUltimateAlerter.html +0 -267
- package/nodes/knxUltimateAlerter.js +0 -300
- package/nodes/knxUltimateAutoResponder.html +0 -128
- package/nodes/knxUltimateAutoResponder.js +0 -264
- package/nodes/knxUltimateDateTime.html +0 -579
- package/nodes/knxUltimateDateTime.js +0 -282
- package/nodes/knxUltimateGarage.html +0 -337
- package/nodes/knxUltimateGarage.js +0 -504
- package/nodes/knxUltimateGlobalContext.html +0 -145
- package/nodes/knxUltimateGlobalContext.js +0 -208
- package/nodes/knxUltimateHATranslator.html +0 -85
- package/nodes/knxUltimateHATranslator.js +0 -83
- package/nodes/knxUltimateHueAreaMotion.html +0 -670
- package/nodes/knxUltimateHueAreaMotion.js +0 -218
- package/nodes/knxUltimateHueBattery.html +0 -646
- package/nodes/knxUltimateHueBattery.js +0 -182
- package/nodes/knxUltimateHueButton.html +0 -804
- package/nodes/knxUltimateHueButton.js +0 -292
- package/nodes/knxUltimateHueCameraMotion.html +0 -671
- package/nodes/knxUltimateHueCameraMotion.js +0 -218
- package/nodes/knxUltimateHueContactSensor.html +0 -609
- package/nodes/knxUltimateHueContactSensor.js +0 -188
- package/nodes/knxUltimateHueController.html +0 -1765
- package/nodes/knxUltimateHueController.js +0 -28
- package/nodes/knxUltimateHueHumiditySensor.html +0 -641
- package/nodes/knxUltimateHueHumiditySensor.js +0 -201
- package/nodes/knxUltimateHueLight.html +0 -2516
- package/nodes/knxUltimateHueLight.js +0 -1582
- package/nodes/knxUltimateHueLightSensor.html +0 -636
- package/nodes/knxUltimateHueLightSensor.js +0 -177
- package/nodes/knxUltimateHueMotion.html +0 -634
- package/nodes/knxUltimateHueMotion.js +0 -182
- package/nodes/knxUltimateHuePlug.html +0 -576
- package/nodes/knxUltimateHuePlug.js +0 -341
- package/nodes/knxUltimateHueScene.html +0 -967
- package/nodes/knxUltimateHueScene.js +0 -349
- package/nodes/knxUltimateHueTapDial.html +0 -640
- package/nodes/knxUltimateHueTapDial.js +0 -268
- package/nodes/knxUltimateHueTemperatureSensor.html +0 -639
- package/nodes/knxUltimateHueTemperatureSensor.js +0 -184
- package/nodes/knxUltimateHueZigbeeConnectivity.html +0 -648
- package/nodes/knxUltimateHueZigbeeConnectivity.js +0 -182
- package/nodes/knxUltimateHuedevice_software_update.html +0 -650
- package/nodes/knxUltimateHuedevice_software_update.js +0 -182
- package/nodes/knxUltimateLoadControl.html +0 -425
- package/nodes/knxUltimateLoadControl.js +0 -443
- package/nodes/knxUltimateLogger.html +0 -197
- package/nodes/knxUltimateLogger.js +0 -224
- package/nodes/knxUltimateMatterBridge.html +0 -689
- package/nodes/knxUltimateMatterBridge.js +0 -464
- package/nodes/knxUltimateMatterControllerDevice.html +0 -2851
- package/nodes/knxUltimateMatterControllerDevice.js +0 -1747
- package/nodes/knxUltimateSceneController.html +0 -529
- package/nodes/knxUltimateSceneController.js +0 -437
- package/nodes/knxUltimateStaircase.html +0 -346
- package/nodes/knxUltimateStaircase.js +0 -463
- package/nodes/knxUltimateWatchDog.html +0 -241
- package/nodes/knxUltimateWatchDog.js +0 -230
- package/nodes/locales/de/hue-config.html +0 -33
- package/nodes/locales/de/hue-config.json +0 -21
- package/nodes/locales/de/knxUltimateAI.html +0 -13
- package/nodes/locales/de/knxUltimateAI.json +0 -231
- package/nodes/locales/de/knxUltimateAIHomeAssistant.html +0 -11
- package/nodes/locales/de/knxUltimateAlerter.html +0 -159
- package/nodes/locales/de/knxUltimateAlerter.json +0 -27
- package/nodes/locales/de/knxUltimateAutoResponder.html +0 -96
- package/nodes/locales/de/knxUltimateAutoResponder.json +0 -8
- package/nodes/locales/de/knxUltimateDateTime.html +0 -45
- package/nodes/locales/de/knxUltimateDateTime.json +0 -32
- package/nodes/locales/de/knxUltimateGarage.html +0 -79
- package/nodes/locales/de/knxUltimateGarage.json +0 -51
- package/nodes/locales/de/knxUltimateGlobalContext.html +0 -76
- package/nodes/locales/de/knxUltimateGlobalContext.json +0 -24
- package/nodes/locales/de/knxUltimateHATranslator.html +0 -25
- package/nodes/locales/de/knxUltimateHATranslator.json +0 -8
- package/nodes/locales/de/knxUltimateHueAreaMotion.html +0 -44
- package/nodes/locales/de/knxUltimateHueAreaMotion.json +0 -31
- package/nodes/locales/de/knxUltimateHueBattery.html +0 -37
- package/nodes/locales/de/knxUltimateHueBattery.json +0 -30
- package/nodes/locales/de/knxUltimateHueButton.html +0 -52
- package/nodes/locales/de/knxUltimateHueButton.json +0 -34
- package/nodes/locales/de/knxUltimateHueCameraMotion.html +0 -38
- package/nodes/locales/de/knxUltimateHueCameraMotion.json +0 -30
- package/nodes/locales/de/knxUltimateHueContactSensor.html +0 -35
- package/nodes/locales/de/knxUltimateHueContactSensor.json +0 -26
- package/nodes/locales/de/knxUltimateHueController.html +0 -690
- package/nodes/locales/de/knxUltimateHueController.json +0 -64
- package/nodes/locales/de/knxUltimateHueHumiditySensor.html +0 -38
- package/nodes/locales/de/knxUltimateHueHumiditySensor.json +0 -30
- package/nodes/locales/de/knxUltimateHueLight.html +0 -121
- package/nodes/locales/de/knxUltimateHueLight.json +0 -94
- package/nodes/locales/de/knxUltimateHueLightSensor.html +0 -38
- package/nodes/locales/de/knxUltimateHueLightSensor.json +0 -19
- package/nodes/locales/de/knxUltimateHueMotion.html +0 -41
- package/nodes/locales/de/knxUltimateHueMotion.json +0 -27
- package/nodes/locales/de/knxUltimateHuePlug.html +0 -50
- package/nodes/locales/de/knxUltimateHuePlug.json +0 -33
- package/nodes/locales/de/knxUltimateHueScene.html +0 -45
- package/nodes/locales/de/knxUltimateHueScene.json +0 -41
- package/nodes/locales/de/knxUltimateHueTapDial.html +0 -40
- package/nodes/locales/de/knxUltimateHueTapDial.json +0 -28
- package/nodes/locales/de/knxUltimateHueTemperatureSensor.html +0 -38
- package/nodes/locales/de/knxUltimateHueTemperatureSensor.json +0 -30
- package/nodes/locales/de/knxUltimateHueZigbeeConnectivity.html +0 -39
- package/nodes/locales/de/knxUltimateHueZigbeeConnectivity.json +0 -30
- package/nodes/locales/de/knxUltimateHuedevice_software_update.html +0 -36
- package/nodes/locales/de/knxUltimateHuedevice_software_update.json +0 -30
- package/nodes/locales/de/knxUltimateLoadControl.html +0 -69
- package/nodes/locales/de/knxUltimateLoadControl.json +0 -28
- package/nodes/locales/de/knxUltimateLogger.html +0 -126
- package/nodes/locales/de/knxUltimateLogger.json +0 -31
- package/nodes/locales/de/knxUltimateMatterBridge.html +0 -65
- package/nodes/locales/de/knxUltimateMatterBridge.json +0 -123
- package/nodes/locales/de/knxUltimateMatterControllerDevice.html +0 -57
- package/nodes/locales/de/knxUltimateMatterControllerDevice.json +0 -146
- package/nodes/locales/de/knxUltimateSceneController.html +0 -98
- package/nodes/locales/de/knxUltimateSceneController.json +0 -32
- package/nodes/locales/de/knxUltimateStaircase.html +0 -77
- package/nodes/locales/de/knxUltimateStaircase.json +0 -62
- package/nodes/locales/de/knxUltimateWatchDog.html +0 -178
- package/nodes/locales/de/knxUltimateWatchDog.json +0 -27
- package/nodes/locales/de/matter-config.html +0 -47
- package/nodes/locales/de/matter-config.json +0 -47
- package/nodes/locales/de/matterbridge-config.html +0 -45
- package/nodes/locales/de/matterbridge-config.json +0 -25
- package/nodes/locales/en/hue-config.html +0 -31
- package/nodes/locales/en/hue-config.json +0 -21
- package/nodes/locales/en/knxUltimateAI.html +0 -13
- package/nodes/locales/en/knxUltimateAI.json +0 -234
- package/nodes/locales/en/knxUltimateAIHomeAssistant.html +0 -11
- package/nodes/locales/en/knxUltimateAlerter.html +0 -164
- package/nodes/locales/en/knxUltimateAlerter.json +0 -27
- package/nodes/locales/en/knxUltimateAutoResponder.html +0 -94
- package/nodes/locales/en/knxUltimateAutoResponder.json +0 -8
- package/nodes/locales/en/knxUltimateDateTime.html +0 -67
- package/nodes/locales/en/knxUltimateDateTime.json +0 -32
- package/nodes/locales/en/knxUltimateGarage.html +0 -79
- package/nodes/locales/en/knxUltimateGarage.json +0 -51
- package/nodes/locales/en/knxUltimateGlobalContext.html +0 -124
- package/nodes/locales/en/knxUltimateGlobalContext.json +0 -24
- package/nodes/locales/en/knxUltimateHATranslator.html +0 -25
- package/nodes/locales/en/knxUltimateHATranslator.json +0 -8
- package/nodes/locales/en/knxUltimateHueAreaMotion.html +0 -44
- package/nodes/locales/en/knxUltimateHueAreaMotion.json +0 -31
- package/nodes/locales/en/knxUltimateHueBattery.html +0 -37
- package/nodes/locales/en/knxUltimateHueBattery.json +0 -30
- package/nodes/locales/en/knxUltimateHueButton.html +0 -52
- package/nodes/locales/en/knxUltimateHueButton.json +0 -34
- package/nodes/locales/en/knxUltimateHueCameraMotion.html +0 -38
- package/nodes/locales/en/knxUltimateHueCameraMotion.json +0 -30
- package/nodes/locales/en/knxUltimateHueContactSensor.html +0 -35
- package/nodes/locales/en/knxUltimateHueContactSensor.json +0 -26
- package/nodes/locales/en/knxUltimateHueController.html +0 -691
- package/nodes/locales/en/knxUltimateHueController.json +0 -64
- package/nodes/locales/en/knxUltimateHueHumiditySensor.html +0 -38
- package/nodes/locales/en/knxUltimateHueHumiditySensor.json +0 -30
- package/nodes/locales/en/knxUltimateHueLight.html +0 -124
- package/nodes/locales/en/knxUltimateHueLight.json +0 -94
- package/nodes/locales/en/knxUltimateHueLightSensor.html +0 -38
- package/nodes/locales/en/knxUltimateHueLightSensor.json +0 -19
- package/nodes/locales/en/knxUltimateHueMotion.html +0 -41
- package/nodes/locales/en/knxUltimateHueMotion.json +0 -27
- package/nodes/locales/en/knxUltimateHuePlug.html +0 -50
- package/nodes/locales/en/knxUltimateHuePlug.json +0 -33
- package/nodes/locales/en/knxUltimateHueScene.html +0 -45
- package/nodes/locales/en/knxUltimateHueScene.json +0 -41
- package/nodes/locales/en/knxUltimateHueTapDial.html +0 -40
- package/nodes/locales/en/knxUltimateHueTapDial.json +0 -28
- package/nodes/locales/en/knxUltimateHueTemperatureSensor.html +0 -38
- package/nodes/locales/en/knxUltimateHueTemperatureSensor.json +0 -30
- package/nodes/locales/en/knxUltimateHueZigbeeConnectivity.html +0 -39
- package/nodes/locales/en/knxUltimateHueZigbeeConnectivity.json +0 -30
- package/nodes/locales/en/knxUltimateHuedevice_software_update.html +0 -36
- package/nodes/locales/en/knxUltimateHuedevice_software_update.json +0 -30
- package/nodes/locales/en/knxUltimateLoadControl.html +0 -76
- package/nodes/locales/en/knxUltimateLoadControl.json +0 -28
- package/nodes/locales/en/knxUltimateLogger.html +0 -161
- package/nodes/locales/en/knxUltimateLogger.json +0 -31
- package/nodes/locales/en/knxUltimateMatterBridge.html +0 -65
- package/nodes/locales/en/knxUltimateMatterBridge.json +0 -123
- package/nodes/locales/en/knxUltimateMatterControllerDevice.html +0 -57
- package/nodes/locales/en/knxUltimateMatterControllerDevice.json +0 -146
- package/nodes/locales/en/knxUltimateSceneController.html +0 -117
- package/nodes/locales/en/knxUltimateSceneController.json +0 -32
- package/nodes/locales/en/knxUltimateStaircase.html +0 -77
- package/nodes/locales/en/knxUltimateStaircase.json +0 -62
- package/nodes/locales/en/knxUltimateWatchDog.html +0 -244
- package/nodes/locales/en/knxUltimateWatchDog.json +0 -27
- package/nodes/locales/en/matter-config.html +0 -47
- package/nodes/locales/en/matter-config.json +0 -48
- package/nodes/locales/en/matterbridge-config.html +0 -45
- package/nodes/locales/en/matterbridge-config.json +0 -25
- package/nodes/locales/es/hue-config.html +0 -31
- package/nodes/locales/es/hue-config.json +0 -21
- package/nodes/locales/es/knxUltimateAI.html +0 -13
- package/nodes/locales/es/knxUltimateAI.json +0 -231
- package/nodes/locales/es/knxUltimateAIHomeAssistant.html +0 -11
- package/nodes/locales/es/knxUltimateAlerter.html +0 -164
- package/nodes/locales/es/knxUltimateAlerter.json +0 -27
- package/nodes/locales/es/knxUltimateAutoResponder.html +0 -81
- package/nodes/locales/es/knxUltimateAutoResponder.json +0 -8
- package/nodes/locales/es/knxUltimateDateTime.html +0 -45
- package/nodes/locales/es/knxUltimateDateTime.json +0 -32
- package/nodes/locales/es/knxUltimateGarage.html +0 -79
- package/nodes/locales/es/knxUltimateGarage.json +0 -51
- package/nodes/locales/es/knxUltimateGlobalContext.html +0 -128
- package/nodes/locales/es/knxUltimateGlobalContext.json +0 -24
- package/nodes/locales/es/knxUltimateHATranslator.html +0 -25
- package/nodes/locales/es/knxUltimateHATranslator.json +0 -8
- package/nodes/locales/es/knxUltimateHueAreaMotion.html +0 -44
- package/nodes/locales/es/knxUltimateHueAreaMotion.json +0 -31
- package/nodes/locales/es/knxUltimateHueBattery.html +0 -37
- package/nodes/locales/es/knxUltimateHueBattery.json +0 -30
- package/nodes/locales/es/knxUltimateHueButton.html +0 -52
- package/nodes/locales/es/knxUltimateHueButton.json +0 -34
- package/nodes/locales/es/knxUltimateHueCameraMotion.html +0 -38
- package/nodes/locales/es/knxUltimateHueCameraMotion.json +0 -30
- package/nodes/locales/es/knxUltimateHueContactSensor.html +0 -35
- package/nodes/locales/es/knxUltimateHueContactSensor.json +0 -26
- package/nodes/locales/es/knxUltimateHueController.html +0 -691
- package/nodes/locales/es/knxUltimateHueController.json +0 -64
- package/nodes/locales/es/knxUltimateHueHumiditySensor.html +0 -38
- package/nodes/locales/es/knxUltimateHueHumiditySensor.json +0 -30
- package/nodes/locales/es/knxUltimateHueLight.html +0 -124
- package/nodes/locales/es/knxUltimateHueLight.json +0 -94
- package/nodes/locales/es/knxUltimateHueLightSensor.html +0 -38
- package/nodes/locales/es/knxUltimateHueLightSensor.json +0 -19
- package/nodes/locales/es/knxUltimateHueMotion.html +0 -41
- package/nodes/locales/es/knxUltimateHueMotion.json +0 -27
- package/nodes/locales/es/knxUltimateHuePlug.html +0 -50
- package/nodes/locales/es/knxUltimateHuePlug.json +0 -33
- package/nodes/locales/es/knxUltimateHueScene.html +0 -45
- package/nodes/locales/es/knxUltimateHueScene.json +0 -41
- package/nodes/locales/es/knxUltimateHueTapDial.html +0 -40
- package/nodes/locales/es/knxUltimateHueTapDial.json +0 -28
- package/nodes/locales/es/knxUltimateHueTemperatureSensor.html +0 -38
- package/nodes/locales/es/knxUltimateHueTemperatureSensor.json +0 -30
- package/nodes/locales/es/knxUltimateHueZigbeeConnectivity.html +0 -39
- package/nodes/locales/es/knxUltimateHueZigbeeConnectivity.json +0 -30
- package/nodes/locales/es/knxUltimateHuedevice_software_update.html +0 -36
- package/nodes/locales/es/knxUltimateHuedevice_software_update.json +0 -30
- package/nodes/locales/es/knxUltimateLoadControl.html +0 -76
- package/nodes/locales/es/knxUltimateLoadControl.json +0 -28
- package/nodes/locales/es/knxUltimateLogger.html +0 -162
- package/nodes/locales/es/knxUltimateLogger.json +0 -31
- package/nodes/locales/es/knxUltimateMatterBridge.html +0 -65
- package/nodes/locales/es/knxUltimateMatterBridge.json +0 -123
- package/nodes/locales/es/knxUltimateMatterControllerDevice.html +0 -57
- package/nodes/locales/es/knxUltimateMatterControllerDevice.json +0 -146
- package/nodes/locales/es/knxUltimateSceneController.html +0 -115
- package/nodes/locales/es/knxUltimateSceneController.json +0 -32
- package/nodes/locales/es/knxUltimateStaircase.html +0 -77
- package/nodes/locales/es/knxUltimateStaircase.json +0 -62
- package/nodes/locales/es/knxUltimateWatchDog.html +0 -230
- package/nodes/locales/es/knxUltimateWatchDog.json +0 -27
- package/nodes/locales/es/matter-config.html +0 -47
- package/nodes/locales/es/matter-config.json +0 -47
- package/nodes/locales/es/matterbridge-config.html +0 -45
- package/nodes/locales/es/matterbridge-config.json +0 -25
- package/nodes/locales/fr/hue-config.html +0 -31
- package/nodes/locales/fr/hue-config.json +0 -21
- package/nodes/locales/fr/knxUltimateAI.html +0 -13
- package/nodes/locales/fr/knxUltimateAI.json +0 -231
- package/nodes/locales/fr/knxUltimateAIHomeAssistant.html +0 -11
- package/nodes/locales/fr/knxUltimateAlerter.html +0 -164
- package/nodes/locales/fr/knxUltimateAlerter.json +0 -27
- package/nodes/locales/fr/knxUltimateAutoResponder.html +0 -92
- package/nodes/locales/fr/knxUltimateAutoResponder.json +0 -8
- package/nodes/locales/fr/knxUltimateDateTime.html +0 -45
- package/nodes/locales/fr/knxUltimateDateTime.json +0 -32
- package/nodes/locales/fr/knxUltimateGarage.html +0 -79
- package/nodes/locales/fr/knxUltimateGarage.json +0 -51
- package/nodes/locales/fr/knxUltimateGlobalContext.html +0 -122
- package/nodes/locales/fr/knxUltimateGlobalContext.json +0 -24
- package/nodes/locales/fr/knxUltimateHATranslator.html +0 -25
- package/nodes/locales/fr/knxUltimateHATranslator.json +0 -8
- package/nodes/locales/fr/knxUltimateHueAreaMotion.html +0 -44
- package/nodes/locales/fr/knxUltimateHueAreaMotion.json +0 -31
- package/nodes/locales/fr/knxUltimateHueBattery.html +0 -37
- package/nodes/locales/fr/knxUltimateHueBattery.json +0 -30
- package/nodes/locales/fr/knxUltimateHueButton.html +0 -52
- package/nodes/locales/fr/knxUltimateHueButton.json +0 -34
- package/nodes/locales/fr/knxUltimateHueCameraMotion.html +0 -38
- package/nodes/locales/fr/knxUltimateHueCameraMotion.json +0 -30
- package/nodes/locales/fr/knxUltimateHueContactSensor.html +0 -35
- package/nodes/locales/fr/knxUltimateHueContactSensor.json +0 -26
- package/nodes/locales/fr/knxUltimateHueController.html +0 -691
- package/nodes/locales/fr/knxUltimateHueController.json +0 -64
- package/nodes/locales/fr/knxUltimateHueHumiditySensor.html +0 -38
- package/nodes/locales/fr/knxUltimateHueHumiditySensor.json +0 -30
- package/nodes/locales/fr/knxUltimateHueLight.html +0 -124
- package/nodes/locales/fr/knxUltimateHueLight.json +0 -86
- package/nodes/locales/fr/knxUltimateHueLightSensor.html +0 -38
- package/nodes/locales/fr/knxUltimateHueLightSensor.json +0 -19
- package/nodes/locales/fr/knxUltimateHueMotion.html +0 -41
- package/nodes/locales/fr/knxUltimateHueMotion.json +0 -27
- package/nodes/locales/fr/knxUltimateHuePlug.html +0 -50
- package/nodes/locales/fr/knxUltimateHuePlug.json +0 -33
- package/nodes/locales/fr/knxUltimateHueScene.html +0 -45
- package/nodes/locales/fr/knxUltimateHueScene.json +0 -41
- package/nodes/locales/fr/knxUltimateHueTapDial.html +0 -40
- package/nodes/locales/fr/knxUltimateHueTapDial.json +0 -28
- package/nodes/locales/fr/knxUltimateHueTemperatureSensor.html +0 -38
- package/nodes/locales/fr/knxUltimateHueTemperatureSensor.json +0 -30
- package/nodes/locales/fr/knxUltimateHueZigbeeConnectivity.html +0 -39
- package/nodes/locales/fr/knxUltimateHueZigbeeConnectivity.json +0 -30
- package/nodes/locales/fr/knxUltimateHuedevice_software_update.html +0 -36
- package/nodes/locales/fr/knxUltimateHuedevice_software_update.json +0 -30
- package/nodes/locales/fr/knxUltimateLoadControl.html +0 -76
- package/nodes/locales/fr/knxUltimateLoadControl.json +0 -28
- package/nodes/locales/fr/knxUltimateLogger.html +0 -160
- package/nodes/locales/fr/knxUltimateLogger.json +0 -31
- package/nodes/locales/fr/knxUltimateMatterBridge.html +0 -65
- package/nodes/locales/fr/knxUltimateMatterBridge.json +0 -123
- package/nodes/locales/fr/knxUltimateMatterControllerDevice.html +0 -57
- package/nodes/locales/fr/knxUltimateMatterControllerDevice.json +0 -146
- package/nodes/locales/fr/knxUltimateSceneController.html +0 -117
- package/nodes/locales/fr/knxUltimateSceneController.json +0 -32
- package/nodes/locales/fr/knxUltimateStaircase.html +0 -77
- package/nodes/locales/fr/knxUltimateStaircase.json +0 -62
- package/nodes/locales/fr/knxUltimateWatchDog.html +0 -228
- package/nodes/locales/fr/knxUltimateWatchDog.json +0 -27
- package/nodes/locales/fr/matter-config.html +0 -47
- package/nodes/locales/fr/matter-config.json +0 -47
- package/nodes/locales/fr/matterbridge-config.html +0 -45
- package/nodes/locales/fr/matterbridge-config.json +0 -25
- package/nodes/locales/it/hue-config.html +0 -33
- package/nodes/locales/it/hue-config.json +0 -21
- package/nodes/locales/it/knxUltimateAI.html +0 -13
- package/nodes/locales/it/knxUltimateAI.json +0 -234
- package/nodes/locales/it/knxUltimateAIHomeAssistant.html +0 -11
- package/nodes/locales/it/knxUltimateAlerter.html +0 -159
- package/nodes/locales/it/knxUltimateAlerter.json +0 -27
- package/nodes/locales/it/knxUltimateAutoResponder.html +0 -96
- package/nodes/locales/it/knxUltimateAutoResponder.json +0 -8
- package/nodes/locales/it/knxUltimateDateTime.html +0 -67
- package/nodes/locales/it/knxUltimateDateTime.json +0 -32
- package/nodes/locales/it/knxUltimateGarage.html +0 -79
- package/nodes/locales/it/knxUltimateGarage.json +0 -51
- package/nodes/locales/it/knxUltimateGlobalContext.html +0 -81
- package/nodes/locales/it/knxUltimateGlobalContext.json +0 -24
- package/nodes/locales/it/knxUltimateHATranslator.html +0 -24
- package/nodes/locales/it/knxUltimateHATranslator.json +0 -8
- package/nodes/locales/it/knxUltimateHueAreaMotion.html +0 -44
- package/nodes/locales/it/knxUltimateHueAreaMotion.json +0 -31
- package/nodes/locales/it/knxUltimateHueBattery.html +0 -37
- package/nodes/locales/it/knxUltimateHueBattery.json +0 -30
- package/nodes/locales/it/knxUltimateHueButton.html +0 -52
- package/nodes/locales/it/knxUltimateHueButton.json +0 -34
- package/nodes/locales/it/knxUltimateHueCameraMotion.html +0 -38
- package/nodes/locales/it/knxUltimateHueCameraMotion.json +0 -30
- package/nodes/locales/it/knxUltimateHueContactSensor.html +0 -35
- package/nodes/locales/it/knxUltimateHueContactSensor.json +0 -26
- package/nodes/locales/it/knxUltimateHueController.html +0 -690
- package/nodes/locales/it/knxUltimateHueController.json +0 -64
- package/nodes/locales/it/knxUltimateHueHumiditySensor 2.html +0 -11
- package/nodes/locales/it/knxUltimateHueHumiditySensor.html +0 -38
- package/nodes/locales/it/knxUltimateHueHumiditySensor.json +0 -30
- package/nodes/locales/it/knxUltimateHueLight.html +0 -124
- package/nodes/locales/it/knxUltimateHueLight.json +0 -94
- package/nodes/locales/it/knxUltimateHueLightSensor.html +0 -38
- package/nodes/locales/it/knxUltimateHueLightSensor.json +0 -19
- package/nodes/locales/it/knxUltimateHueMotion.html +0 -41
- package/nodes/locales/it/knxUltimateHueMotion.json +0 -27
- package/nodes/locales/it/knxUltimateHuePlug.html +0 -50
- package/nodes/locales/it/knxUltimateHuePlug.json +0 -33
- package/nodes/locales/it/knxUltimateHueScene.html +0 -45
- package/nodes/locales/it/knxUltimateHueScene.json +0 -41
- package/nodes/locales/it/knxUltimateHueTapDial.html +0 -40
- package/nodes/locales/it/knxUltimateHueTapDial.json +0 -28
- package/nodes/locales/it/knxUltimateHueTemperatureSensor.html +0 -38
- package/nodes/locales/it/knxUltimateHueTemperatureSensor.json +0 -30
- package/nodes/locales/it/knxUltimateHueZigbeeConnectivity.html +0 -39
- package/nodes/locales/it/knxUltimateHueZigbeeConnectivity.json +0 -30
- package/nodes/locales/it/knxUltimateHuedevice_software_update.html +0 -35
- package/nodes/locales/it/knxUltimateHuedevice_software_update.json +0 -30
- package/nodes/locales/it/knxUltimateLoadControl.html +0 -76
- package/nodes/locales/it/knxUltimateLoadControl.json +0 -28
- package/nodes/locales/it/knxUltimateLogger.html +0 -132
- package/nodes/locales/it/knxUltimateLogger.json +0 -31
- package/nodes/locales/it/knxUltimateMatterBridge.html +0 -65
- package/nodes/locales/it/knxUltimateMatterBridge.json +0 -123
- package/nodes/locales/it/knxUltimateMatterControllerDevice.html +0 -57
- package/nodes/locales/it/knxUltimateMatterControllerDevice.json +0 -146
- package/nodes/locales/it/knxUltimateSceneController.html +0 -101
- package/nodes/locales/it/knxUltimateSceneController.json +0 -32
- package/nodes/locales/it/knxUltimateStaircase.html +0 -77
- package/nodes/locales/it/knxUltimateStaircase.json +0 -62
- package/nodes/locales/it/knxUltimateWatchDog.html +0 -194
- package/nodes/locales/it/knxUltimateWatchDog.json +0 -27
- package/nodes/locales/it/matter-config.html +0 -47
- package/nodes/locales/it/matter-config.json +0 -48
- package/nodes/locales/it/matterbridge-config.html +0 -45
- package/nodes/locales/it/matterbridge-config.json +0 -25
- package/nodes/locales/zh-CN/hue-config.html +0 -33
- package/nodes/locales/zh-CN/hue-config.json +0 -21
- package/nodes/locales/zh-CN/knxUltimateAI.html +0 -13
- package/nodes/locales/zh-CN/knxUltimateAI.json +0 -231
- package/nodes/locales/zh-CN/knxUltimateAIHomeAssistant.html +0 -11
- package/nodes/locales/zh-CN/knxUltimateAlerter.html +0 -159
- package/nodes/locales/zh-CN/knxUltimateAlerter.json +0 -27
- package/nodes/locales/zh-CN/knxUltimateAutoResponder.html +0 -94
- package/nodes/locales/zh-CN/knxUltimateAutoResponder.json +0 -8
- package/nodes/locales/zh-CN/knxUltimateDateTime.html +0 -45
- package/nodes/locales/zh-CN/knxUltimateDateTime.json +0 -32
- package/nodes/locales/zh-CN/knxUltimateGarage.html +0 -79
- package/nodes/locales/zh-CN/knxUltimateGarage.json +0 -51
- package/nodes/locales/zh-CN/knxUltimateGlobalContext.html +0 -77
- package/nodes/locales/zh-CN/knxUltimateGlobalContext.json +0 -24
- package/nodes/locales/zh-CN/knxUltimateHATranslator.html +0 -25
- package/nodes/locales/zh-CN/knxUltimateHATranslator.json +0 -8
- package/nodes/locales/zh-CN/knxUltimateHueAreaMotion.html +0 -44
- package/nodes/locales/zh-CN/knxUltimateHueAreaMotion.json +0 -31
- package/nodes/locales/zh-CN/knxUltimateHueBattery.html +0 -37
- package/nodes/locales/zh-CN/knxUltimateHueBattery.json +0 -30
- package/nodes/locales/zh-CN/knxUltimateHueButton.html +0 -52
- package/nodes/locales/zh-CN/knxUltimateHueButton.json +0 -34
- package/nodes/locales/zh-CN/knxUltimateHueCameraMotion.html +0 -38
- package/nodes/locales/zh-CN/knxUltimateHueCameraMotion.json +0 -30
- package/nodes/locales/zh-CN/knxUltimateHueContactSensor.html +0 -35
- package/nodes/locales/zh-CN/knxUltimateHueContactSensor.json +0 -26
- package/nodes/locales/zh-CN/knxUltimateHueController.html +0 -693
- package/nodes/locales/zh-CN/knxUltimateHueController.json +0 -64
- package/nodes/locales/zh-CN/knxUltimateHueHumiditySensor.html +0 -38
- package/nodes/locales/zh-CN/knxUltimateHueHumiditySensor.json +0 -30
- package/nodes/locales/zh-CN/knxUltimateHueLight.html +0 -126
- package/nodes/locales/zh-CN/knxUltimateHueLight.json +0 -86
- package/nodes/locales/zh-CN/knxUltimateHueLightSensor.html +0 -38
- package/nodes/locales/zh-CN/knxUltimateHueLightSensor.json +0 -9
- package/nodes/locales/zh-CN/knxUltimateHueMotion.html +0 -41
- package/nodes/locales/zh-CN/knxUltimateHueMotion.json +0 -27
- package/nodes/locales/zh-CN/knxUltimateHuePlug.html +0 -50
- package/nodes/locales/zh-CN/knxUltimateHuePlug.json +0 -33
- package/nodes/locales/zh-CN/knxUltimateHueScene.html +0 -45
- package/nodes/locales/zh-CN/knxUltimateHueScene.json +0 -41
- package/nodes/locales/zh-CN/knxUltimateHueTapDial.html +0 -40
- package/nodes/locales/zh-CN/knxUltimateHueTapDial.json +0 -28
- package/nodes/locales/zh-CN/knxUltimateHueTemperatureSensor.html +0 -38
- package/nodes/locales/zh-CN/knxUltimateHueTemperatureSensor.json +0 -30
- package/nodes/locales/zh-CN/knxUltimateHueZigbeeConnectivity.html +0 -39
- package/nodes/locales/zh-CN/knxUltimateHueZigbeeConnectivity.json +0 -30
- package/nodes/locales/zh-CN/knxUltimateHuedevice_software_update.html +0 -36
- package/nodes/locales/zh-CN/knxUltimateHuedevice_software_update.json +0 -30
- package/nodes/locales/zh-CN/knxUltimateLoadControl.html +0 -76
- package/nodes/locales/zh-CN/knxUltimateLoadControl.json +0 -28
- package/nodes/locales/zh-CN/knxUltimateLogger.html +0 -126
- package/nodes/locales/zh-CN/knxUltimateLogger.json +0 -31
- package/nodes/locales/zh-CN/knxUltimateMatterBridge.html +0 -65
- package/nodes/locales/zh-CN/knxUltimateMatterBridge.json +0 -123
- package/nodes/locales/zh-CN/knxUltimateMatterControllerDevice.html +0 -57
- package/nodes/locales/zh-CN/knxUltimateMatterControllerDevice.json +0 -146
- package/nodes/locales/zh-CN/knxUltimateSceneController.html +0 -98
- package/nodes/locales/zh-CN/knxUltimateSceneController.json +0 -32
- package/nodes/locales/zh-CN/knxUltimateStaircase.html +0 -77
- package/nodes/locales/zh-CN/knxUltimateStaircase.json +0 -62
- package/nodes/locales/zh-CN/knxUltimateWatchDog.html +0 -178
- package/nodes/locales/zh-CN/knxUltimateWatchDog.json +0 -27
- package/nodes/locales/zh-CN/matter-config.html +0 -47
- package/nodes/locales/zh-CN/matter-config.json +0 -47
- package/nodes/locales/zh-CN/matterbridge-config.html +0 -45
- package/nodes/locales/zh-CN/matterbridge-config.json +0 -25
- package/nodes/matter-config.html +0 -578
- package/nodes/matter-config.js +0 -387
- package/nodes/matterbridge-config.html +0 -198
- package/nodes/matterbridge-config.js +0 -261
- package/nodes/plugins/knxUltimate-cerebrum-runtime-plugin.js +0 -79
- package/nodes/plugins/knxUltimate-migration-notice-plugin.html +0 -44
- package/nodes/plugins/knxUltimateAI-vue/assets/app.css +0 -1
- package/nodes/plugins/knxUltimateAI-vue/assets/app.js +0 -13
- package/nodes/plugins/knxUltimateAI-vue/assets/chunk-html2canvas.esm.js +0 -5
- package/nodes/plugins/knxUltimateAI-vue/assets/chunk-index.es.js +0 -5
- package/nodes/plugins/knxUltimateAI-vue/assets/chunk-jspdf.es.min.js +0 -79
- package/nodes/plugins/knxUltimateAI-vue/assets/chunk-purify.es.js +0 -3
- package/nodes/plugins/knxUltimateAI-vue/index.html +0 -13
- package/nodes/utils/HueEventStream.mjs +0 -176
- package/nodes/utils/colorManipulators/XYFromRGB_Supergiovane.js +0 -113
- package/nodes/utils/colorManipulators/hueColorConverter.js +0 -521
- package/nodes/utils/http.js +0 -291
- package/nodes/utils/hueControllerProfileAdapter.js +0 -104
- package/nodes/utils/hueControllerProfiles/runtime/area_motion.js +0 -221
- package/nodes/utils/hueControllerProfiles/runtime/button.js +0 -295
- package/nodes/utils/hueControllerProfiles/runtime/camera_motion.js +0 -221
- package/nodes/utils/hueControllerProfiles/runtime/contact.js +0 -191
- package/nodes/utils/hueControllerProfiles/runtime/device_power.js +0 -185
- package/nodes/utils/hueControllerProfiles/runtime/device_software_update.js +0 -185
- package/nodes/utils/hueControllerProfiles/runtime/humidity.js +0 -204
- package/nodes/utils/hueControllerProfiles/runtime/light.js +0 -1585
- package/nodes/utils/hueControllerProfiles/runtime/light_level.js +0 -180
- package/nodes/utils/hueControllerProfiles/runtime/motion.js +0 -185
- package/nodes/utils/hueControllerProfiles/runtime/plug.js +0 -344
- package/nodes/utils/hueControllerProfiles/runtime/relative_rotary.js +0 -271
- package/nodes/utils/hueControllerProfiles/runtime/scene.js +0 -352
- package/nodes/utils/hueControllerProfiles/runtime/temperature.js +0 -187
- package/nodes/utils/hueControllerProfiles/runtime/zigbee_connectivity.js +0 -185
- package/nodes/utils/hueControllerResourceCatalog.js +0 -71
- package/nodes/utils/hueEngine.mjs +0 -469
- package/nodes/utils/knxAiCamera.js +0 -302
- package/nodes/utils/knxAiCatalogRetrieval.js +0 -349
- package/nodes/utils/knxAiCerebrum.js +0 -406
- package/nodes/utils/knxAiChatContext.js +0 -496
- package/nodes/utils/knxAiEventHistory.js +0 -521
- package/nodes/utils/knxAiHomeMemory.js +0 -1021
- package/nodes/utils/knxAiScheduler.js +0 -445
- package/nodes/utils/knxAiSemanticContext.js +0 -662
- package/nodes/utils/knxAiTelegramVoice.js +0 -545
- package/nodes/utils/knxAiWebAccess.js +0 -631
- package/nodes/utils/lightEngines/canonicalLight.js +0 -75
- package/nodes/utils/lightEngines/hueLightEngine.js +0 -51
- package/nodes/utils/lightEngines/index.js +0 -25
- package/nodes/utils/lightEngines/knxLightCommand.js +0 -79
- package/nodes/utils/lightEngines/lightEngine.js +0 -46
- package/nodes/utils/lightEngines/matterHueShim.js +0 -59
- package/nodes/utils/lightEngines/matterLightEngine.js +0 -117
- package/nodes/utils/matterBridgeDeviceFactory.mjs +0 -780
- package/nodes/utils/matterBridgeEngine.mjs +0 -297
- package/nodes/utils/matterControllerCommandGate.js +0 -47
- package/nodes/utils/matterControllerProfiles/doorLock.js +0 -258
- package/nodes/utils/matterControllerProfiles/fan.js +0 -19
- package/nodes/utils/matterControllerProfiles/index.js +0 -34
- package/nodes/utils/matterControllerProfiles/mappedEndpoint.js +0 -217
- package/nodes/utils/matterControllerProfiles/switch.js +0 -13
- package/nodes/utils/matterControllerProfiles/thermostat.js +0 -19
- package/nodes/utils/matterControllerProfiles/universal.js +0 -462
- package/nodes/utils/matterControllerProfiles/windowCovering.js +0 -19
- package/nodes/utils/matterControllerSemanticInput.js +0 -212
- package/nodes/utils/matterEngine.mjs +0 -894
- package/nodes/utils/matterEnvironmentLock.mjs +0 -32
- package/nodes/utils/matterKnxConverter.js +0 -204
- package/nodes/utils/matterStorageBackup.js +0 -100
- package/resources/HA-icon.png +0 -0
- package/resources/dim.png +0 -0
- package/resources/rgb.png +0 -0
- package/resources/tunablewhite.png +0 -0
- package/resources/zxing-browser-0.2.0.min.js +0 -1
- package/resources/zxing-browser-LICENSE.txt +0 -21
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
<script type="text/javascript" src="resources/node-red-contrib-knx-ultimate/flowMigrationBackup.js"></script>
|
|
2
|
-
<script type="text/javascript" src="resources/node-red-contrib-knx-ultimate/knxUtilityMigration.js"></script>
|
|
3
|
-
<script type="text/javascript" src="resources/node-red-contrib-knx-ultimate/htmlUtils.js"></script>
|
|
4
|
-
|
|
5
|
-
<script type="text/javascript">
|
|
6
|
-
RED.nodes.registerType('knxUltimateWatchDog', {
|
|
7
|
-
category: 'deprecated',
|
|
8
|
-
color: '#E5F0E2',
|
|
9
|
-
defaults: {
|
|
10
|
-
server: { type: "knxUltimate-config", required: true },
|
|
11
|
-
topic: { value: "12/0/0" },
|
|
12
|
-
maxRetry: { value: 6 }, // After this number is reached, throw a connection error
|
|
13
|
-
retryInterval: { value: 10 },
|
|
14
|
-
name: { value: "" },
|
|
15
|
-
autoStart: { value: true },
|
|
16
|
-
listenToKnxUltimateNodeErrors: { value: true },
|
|
17
|
-
checkLevel: { value: "Ethernet" }
|
|
18
|
-
},
|
|
19
|
-
inputs: 1,
|
|
20
|
-
outputs: 1,
|
|
21
|
-
outputLabels: ["Output"],
|
|
22
|
-
icon: "node-watchdog-icon.svg",
|
|
23
|
-
label: function () {
|
|
24
|
-
return (((this.name || "KNX Watchdog") + " " + (this.checkLevel == "Ethernet" ? "Gateway IP" : this.topic))) + " (deprecated)";
|
|
25
|
-
},
|
|
26
|
-
paletteLabel: "KNX WatchDog (deprecated)",
|
|
27
|
-
oneditprepare: function () {
|
|
28
|
-
const node = this;
|
|
29
|
-
const $knxServerInput = $("#node-input-server");
|
|
30
|
-
const $gaInput = $("#node-input-topic");
|
|
31
|
-
const KNX_EMPTY_VALUES = new Set(['', '_ADD_', '__NONE__', 'none']);
|
|
32
|
-
|
|
33
|
-
// Go to the help panel
|
|
34
|
-
try {
|
|
35
|
-
RED.sidebar.show("help");
|
|
36
|
-
} catch (error) { }
|
|
37
|
-
|
|
38
|
-
$("#advancedOptionsAccordion").accordion({
|
|
39
|
-
header: "h3",
|
|
40
|
-
heightStyle: "content",
|
|
41
|
-
collapsible: true,
|
|
42
|
-
active: false
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
const KNX_GA_CACHE = node._knxGaCache || (node._knxGaCache = new Map());
|
|
46
|
-
|
|
47
|
-
const resolveKnxServerValue = () => {
|
|
48
|
-
const domValue = $knxServerInput.val();
|
|
49
|
-
if (domValue !== undefined && domValue !== null && !KNX_EMPTY_VALUES.has(String(domValue))) {
|
|
50
|
-
return domValue;
|
|
51
|
-
}
|
|
52
|
-
if (node.server !== undefined && node.server !== null && !KNX_EMPTY_VALUES.has(String(node.server))) {
|
|
53
|
-
return node.server;
|
|
54
|
-
}
|
|
55
|
-
return '';
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
const fetchGroupAddresses = (serverId) => {
|
|
59
|
-
if (!serverId) return Promise.resolve([]);
|
|
60
|
-
if (KNX_GA_CACHE.has(serverId)) return Promise.resolve(KNX_GA_CACHE.get(serverId));
|
|
61
|
-
return new Promise((resolve) => {
|
|
62
|
-
$.getJSON(`knxUltimatecsv?nodeID=${serverId}&_=${Date.now()}`, (data) => {
|
|
63
|
-
const list = Array.isArray(data) ? data : [];
|
|
64
|
-
KNX_GA_CACHE.set(serverId, list);
|
|
65
|
-
resolve(list);
|
|
66
|
-
}).fail(() => resolve([]));
|
|
67
|
-
});
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
const ensureGaAutocomplete = () => {
|
|
71
|
-
const serverId = resolveKnxServerValue();
|
|
72
|
-
if (!serverId) {
|
|
73
|
-
if ($gaInput.data('ui-autocomplete')) {
|
|
74
|
-
$gaInput.autocomplete('disable');
|
|
75
|
-
}
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const sourceFn = (request, response) => {
|
|
80
|
-
fetchGroupAddresses(serverId).then((data) => {
|
|
81
|
-
const items = [];
|
|
82
|
-
(data || []).forEach((entry) => {
|
|
83
|
-
const dpt = typeof entry.dpt === 'string' ? entry.dpt : '';
|
|
84
|
-
if (!dpt.startsWith('1.')) return; // Watchdog only accepts boolean GAs
|
|
85
|
-
const devName = entry.devicename || '';
|
|
86
|
-
const searchStr = `${entry.ga} (${devName}) DPT${dpt}`;
|
|
87
|
-
if (!htmlUtilsfullCSVSearch(searchStr, request.term || '')) return;
|
|
88
|
-
items.push({
|
|
89
|
-
label: `${entry.ga} # ${devName} # ${dpt}`,
|
|
90
|
-
value: entry.ga
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
response(items);
|
|
94
|
-
});
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
if ($gaInput.data('knx-watchdog-ga')) {
|
|
98
|
-
$gaInput.autocomplete('option', 'source', sourceFn);
|
|
99
|
-
$gaInput.autocomplete('enable');
|
|
100
|
-
} else {
|
|
101
|
-
$gaInput.autocomplete({
|
|
102
|
-
minLength: 0,
|
|
103
|
-
source: sourceFn,
|
|
104
|
-
select: function (event, ui) {
|
|
105
|
-
event.preventDefault();
|
|
106
|
-
$(this).val(ui.item.value);
|
|
107
|
-
const parts = ui.item.label.split('#');
|
|
108
|
-
let deviceName = (parts[1] || '').trim().replace(/^\)/, '').trim();
|
|
109
|
-
if (deviceName.indexOf('/') > -1) {
|
|
110
|
-
deviceName = deviceName.split('/').pop().trim();
|
|
111
|
-
}
|
|
112
|
-
const $nameInput = $('#node-input-name');
|
|
113
|
-
if (deviceName && $nameInput.length) {
|
|
114
|
-
$nameInput.val(deviceName);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}).on('focus.knxUltimateWatchDog click.knxUltimateWatchDog', function () {
|
|
118
|
-
const currentValue = $(this).val() || '';
|
|
119
|
-
try {
|
|
120
|
-
$(this).autocomplete('search', currentValue ? `${currentValue} exactmatch` : '');
|
|
121
|
-
} catch (error) { }
|
|
122
|
-
});
|
|
123
|
-
$gaInput.data('knx-watchdog-ga', true);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
try {
|
|
127
|
-
const srv = RED.nodes.node(serverId);
|
|
128
|
-
if (srv && srv.id) KNX_enableSecureFormatting($gaInput, srv.id);
|
|
129
|
-
} catch (error) { }
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
$knxServerInput.on('change.knxUltimateWatchDog', () => {
|
|
133
|
-
KNX_GA_CACHE.clear();
|
|
134
|
-
ensureGaAutocomplete();
|
|
135
|
-
});
|
|
136
|
-
ensureGaAutocomplete();
|
|
137
|
-
|
|
138
|
-
const syncDivHost = () => {
|
|
139
|
-
const level = $("#node-input-checkLevel").val() || node.checkLevel || "Ethernet";
|
|
140
|
-
if (level === "Ethernet") {
|
|
141
|
-
$("#divHost").hide();
|
|
142
|
-
} else {
|
|
143
|
-
$("#divHost").show();
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
$("#node-input-checkLevel").on('change', function () {
|
|
148
|
-
syncDivHost();
|
|
149
|
-
});
|
|
150
|
-
syncDivHost();
|
|
151
|
-
},
|
|
152
|
-
oneditsave: function () {
|
|
153
|
-
// Return to the info tab
|
|
154
|
-
try {
|
|
155
|
-
RED.sidebar.show("info");
|
|
156
|
-
} catch (error) { }
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
})
|
|
162
|
-
|
|
163
|
-
</script>
|
|
164
|
-
|
|
165
|
-
<script type="text/markdown" data-help-name="knxUltimateWatchDog">
|
|
166
|
-
### Upgrade to KNX Ultimate 8
|
|
167
|
-
|
|
168
|
-
Version 7 shows a compact **Upgrade to v8** button at the top of this editor. It downloads a flow backup, installs the required HUE/Matter packages, converts compatible nodes, performs a full Deploy, verifies the saved flows and installs version 8. Restart the Node-RED service when prompted; reloading only the browser is not enough. Legacy KNX AI nodes stop the automatic operation.
|
|
169
|
-
|
|
170
|
-
[Full upgrade guide](https://supergiovane.github.io/node-red-contrib-knx-ultimate/wiki/Upgrade-to-v8)
|
|
171
|
-
|
|
172
|
-
<br/>
|
|
173
|
-
|
|
174
|
-
</script>
|
|
175
|
-
|
|
176
|
-
<script type="text/html" data-template-name="knxUltimateWatchDog">
|
|
177
|
-
<div class="form-row knx-ultimate-v8-upgrade-row">
|
|
178
|
-
<button type="button" class="red-ui-button knx-ultimate-v8-upgrade-button" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateUtility:knxUltimateUtility.v8_upgrade.button_title">
|
|
179
|
-
<i class="fa fa-arrow-circle-up" aria-hidden="true"></i>
|
|
180
|
-
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateUtility:knxUltimateUtility.v8_upgrade.button"></span>
|
|
181
|
-
</button>
|
|
182
|
-
</div>
|
|
183
|
-
<div class="form-row knx-utility-legacy-notice" role="note" style="box-sizing:border-box; padding:10px 12px; margin-bottom:12px; border-left:4px solid #d79b00; background:#fff8df; color:#4d3a00;">
|
|
184
|
-
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
|
|
185
|
-
<span data-i18n="knxUltimateWatchDog.legacy_notice"></span>
|
|
186
|
-
</div>
|
|
187
|
-
<div class="form-row knx-utility-legacy-migration-action" style="margin-bottom:14px;">
|
|
188
|
-
<button type="button" class="red-ui-button knx-utility-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]knxUltimateWatchDog.migration_button_title">
|
|
189
|
-
<i class="fa fa-exchange" style="color:#fff !important;"></i> <span style="color:#fff !important;" data-i18n="knxUltimateWatchDog.migration_button"></span>
|
|
190
|
-
</button>
|
|
191
|
-
</div>
|
|
192
|
-
<div class="form-row" style="margin-bottom:10px;">
|
|
193
|
-
<span style="color:#ff0000"><i class="fa fa-youtube"></i></span> <a target="_blank" href="https://www.youtube.com/playlist?list=PL9Yh1bjbLAYrU8PsVhW4xzEug2WtVFv3E"><b>KNX-Ultimate video tutorials (YouTube playlist)</b></a>
|
|
194
|
-
</div>
|
|
195
|
-
<div class="form-row">
|
|
196
|
-
<b><span data-i18n="knxUltimateWatchDog.title"></span></b>
|
|
197
|
-
<br/><br/>
|
|
198
|
-
|
|
199
|
-
<label for="node-input-server"><i class="fa fa-tag"></i> <span data-i18n="knxUltimateWatchDog.properties.node-input-server"></span> </label>
|
|
200
|
-
<input type="text" id="node-input-server">
|
|
201
|
-
</div>
|
|
202
|
-
<div class="form-row">
|
|
203
|
-
<label for="node-input-checkLevel"><i class="fa fa-search"></i> <span data-i18n="knxUltimateWatchDog.properties.node-input-checkLevel"></span> </label>
|
|
204
|
-
<select id="node-input-checkLevel">
|
|
205
|
-
<option value="Ethernet" data-i18n="knxUltimateWatchDog.selectlists.Ethernet"></option>
|
|
206
|
-
<option value="Eth+KNX" data-i18n="knxUltimateWatchDog.selectlists.EthKNX"></option>
|
|
207
|
-
</select>
|
|
208
|
-
</div>
|
|
209
|
-
<div class="form-row" id="divHost">
|
|
210
|
-
<label for="node-input-topic"><i class="fa fa-tasks"></i> <span data-i18n="knxUltimateWatchDog.properties.node-input-topic"></span></label>
|
|
211
|
-
<input style="width:90px;" type="text" id="node-input-topic" data-i18n="[placeholder]knxUltimateWatchDog.placeholder.monitor"> the DPT must be DPT1.x (Boolean)
|
|
212
|
-
</div>
|
|
213
|
-
<div class="form-row">
|
|
214
|
-
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="knxUltimateWatchDog.properties.node-input-name"></span> </label>
|
|
215
|
-
<input type="text" id="node-input-name" data-i18n="[placeholder]knxUltimateWatchDog.properties.node-input-name" style="flex:1 1 240px; min-width:240px; max-width:240px;">
|
|
216
|
-
</div>
|
|
217
|
-
<div class="form-row">
|
|
218
|
-
<input type="checkbox" id="node-input-autoStart" style="display:inline-block; width:auto; vertical-align:top;">
|
|
219
|
-
<label style="width:auto" for="node-input-autoStart"> <i class="fa fa-play-circle"></i> <span data-i18n="knxUltimateWatchDog.properties.node-input-autoStart"></span> </label>
|
|
220
|
-
</div>
|
|
221
|
-
<div class="form-row">
|
|
222
|
-
<input type="checkbox" id="node-input-listenToKnxUltimateNodeErrors" style="display:inline-block; width:auto; vertical-align:top;">
|
|
223
|
-
<label style="width:auto" for="node-input-listenToKnxUltimateNodeErrors"> <i class="fa fa-exclamation-triangle"></i> <span data-i18n="knxUltimateWatchDog.properties.node-input-listenToKnxUltimateNodeErrors"></span> </label>
|
|
224
|
-
</div>
|
|
225
|
-
|
|
226
|
-
<div id="advancedOptionsAccordion">
|
|
227
|
-
<h3><span data-i18n="knxUltimateWatchDog.properties.advancedOptionsAccordion"></span></h3>
|
|
228
|
-
<div>
|
|
229
|
-
<p>
|
|
230
|
-
<div class="form-row">
|
|
231
|
-
<label for="node-input-retryInterval"><i class="fa fa-clock-o"></i> <span data-i18n="knxUltimateWatchDog.properties.node-input-retryInterval"></span></label>
|
|
232
|
-
<input type="text" id="node-input-retryInterval">
|
|
233
|
-
</div>
|
|
234
|
-
<div class="form-row">
|
|
235
|
-
<label for="node-input-maxRetry"><i class="fa fa-undo"></i> <span data-i18n="knxUltimateWatchDog.properties.node-input-maxRetry"></span></label>
|
|
236
|
-
<input type="text" id="node-input-maxRetry">
|
|
237
|
-
</div>
|
|
238
|
-
</p>
|
|
239
|
-
</div>
|
|
240
|
-
</div>
|
|
241
|
-
</script>
|
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
const ping = require('ping')
|
|
2
|
-
|
|
3
|
-
module.exports = function (RED) {
|
|
4
|
-
function knxUltimateWatchDog (config) {
|
|
5
|
-
RED.nodes.createNode(this, config)
|
|
6
|
-
const node = this
|
|
7
|
-
node.serverKNX = RED.nodes.getNode(config.server) || undefined
|
|
8
|
-
node.dpt = '1.001'
|
|
9
|
-
node.notifyreadrequestalsorespondtobus = 'false'
|
|
10
|
-
node.notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized = ''
|
|
11
|
-
node.notifyreadrequest = true
|
|
12
|
-
node.notifyresponse = true
|
|
13
|
-
node.notifywrite = false
|
|
14
|
-
node.initialread = false
|
|
15
|
-
node.listenallga = false
|
|
16
|
-
node.outputtype = 'write'
|
|
17
|
-
node.outputRBE = 'false'
|
|
18
|
-
node.inputRBE = 'false'
|
|
19
|
-
node.currentPayload = ''
|
|
20
|
-
node.topic = config.topic !== undefined ? config.topic : ''
|
|
21
|
-
node.retryInterval = config.retryInterval !== undefined ? config.retryInterval * 1000 : 10000
|
|
22
|
-
node.maxRetry = config.maxRetry !== undefined ? config.maxRetry : 6
|
|
23
|
-
node.autoStart = config.autoStart !== undefined ? config.autoStart : true
|
|
24
|
-
// Keep existing flows compatible: before this option was exposed, KNX-Ultimate
|
|
25
|
-
// node errors were always forwarded by the gateway to every Watchdog node.
|
|
26
|
-
node.listenToKnxUltimateNodeErrors = config.listenToKnxUltimateNodeErrors !== false && config.listenToKnxUltimateNodeErrors !== 'false'
|
|
27
|
-
node.beatNumber = 0 // Telegram counter
|
|
28
|
-
node.timerWatchDog = null
|
|
29
|
-
node.isWatchDog = true
|
|
30
|
-
node.checkLevel = config.checkLevel !== undefined ? config.checkLevel : 'Ethernet'
|
|
31
|
-
node.icountMessageInWindow = 0
|
|
32
|
-
node.alreadyNotifiedArray = new Array() // 20/10/2022 array of already notified errors generated by every single KNX-Ultimate node. This prevents floading with repeated errors, in case of disconnection
|
|
33
|
-
|
|
34
|
-
const pushStatus = (status) => {
|
|
35
|
-
if (!status) return
|
|
36
|
-
const provider = node.serverKNX
|
|
37
|
-
if (provider && typeof provider.applyStatusUpdate === 'function') {
|
|
38
|
-
provider.applyStatusUpdate(node, status)
|
|
39
|
-
} else {
|
|
40
|
-
node.status(status)
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const updateStatus = (status) => {
|
|
45
|
-
if (!status) return
|
|
46
|
-
pushStatus(status)
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// Used to call the status update from the config node.
|
|
50
|
-
node.setNodeStatus = ({ fill, shape, text, payload, GA, dpt, devicename }) => {
|
|
51
|
-
try {
|
|
52
|
-
if (node.serverKNX === null) { updateStatus({ fill: 'red', shape: 'dot', text: '[NO GATEWAY SELECTED]' }); return }
|
|
53
|
-
if (node.icountMessageInWindow == -999) return // Locked out, doesn't change status.
|
|
54
|
-
const dDate = new Date()
|
|
55
|
-
const ts = (node.serverKNX && typeof node.serverKNX.formatStatusTimestamp === 'function')
|
|
56
|
-
? node.serverKNX.formatStatusTimestamp(dDate)
|
|
57
|
-
: `${dDate.getDate()}, ${dDate.toLocaleTimeString()}`
|
|
58
|
-
// 30/08/2019 Display only the things selected in the config
|
|
59
|
-
GA = (typeof GA === 'undefined' || GA == '') ? '' : '(' + GA + ') '
|
|
60
|
-
devicename = devicename || ''
|
|
61
|
-
dpt = (typeof dpt === 'undefined' || dpt == '') ? '' : ' DPT' + dpt
|
|
62
|
-
payload = typeof payload === 'object' ? JSON.stringify(payload) : payload
|
|
63
|
-
updateStatus({ fill, shape, text: GA + payload + (node.listenallga === true ? ' ' + devicename : '') + ' (' + ts + ') ' + text })
|
|
64
|
-
} catch (error) {
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
if (!node.serverKNX) return
|
|
69
|
-
|
|
70
|
-
function handleTheDog () {
|
|
71
|
-
node.beatNumber += 1
|
|
72
|
-
if (node.beatNumber > node.maxRetry) {
|
|
73
|
-
// Confirmed connection error
|
|
74
|
-
node.beatNumber = 0 // Reset Counter
|
|
75
|
-
const msg = {
|
|
76
|
-
type: 'BUSError',
|
|
77
|
-
checkPerformed: node.checkLevel,
|
|
78
|
-
nodeid: node.id,
|
|
79
|
-
payload: true,
|
|
80
|
-
description: 'Watchdog elapsed with no response.'
|
|
81
|
-
}
|
|
82
|
-
node.send(msg)
|
|
83
|
-
} else {
|
|
84
|
-
if (node.checkLevel === 'Ethernet') {
|
|
85
|
-
// 23/05/2020 using ping
|
|
86
|
-
const cfg = {
|
|
87
|
-
timeout: 2
|
|
88
|
-
}
|
|
89
|
-
ping.sys.probe(node.serverKNX.host, function (isAlive) {
|
|
90
|
-
if (isAlive) {
|
|
91
|
-
node.watchDogTimerReset()
|
|
92
|
-
} else {
|
|
93
|
-
node.setNodeStatus({ fill: 'yellow', shape: 'dot', text: 'Check level ' + node.checkLevel + ', failed ping ' + node.beatNumber + ' of ' + node.maxRetry, payload: '', GA: '', dpt: '', devicename: '' })
|
|
94
|
-
};
|
|
95
|
-
}, cfg)
|
|
96
|
-
} else {
|
|
97
|
-
// Issue a read request
|
|
98
|
-
if (node.serverKNX.knxConnection) {
|
|
99
|
-
node.serverKNX.sendKNXTelegramToKNXEngine({ grpaddr: node.topic, payload: '', dpt: '', outputtype: 'read' })
|
|
100
|
-
node.setNodeStatus({ fill: 'grey', shape: 'dot', text: 'Checking level ' + node.checkLevel + ', with beat telegram ' + node.beatNumber + ' of ' + node.maxRetry, payload: '', GA: '', dpt: '', devicename: '' })
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
// This function is called by the knx-ultimate config node.
|
|
107
|
-
node.watchDogTimerReset = () => {
|
|
108
|
-
// Resets the watchdog, means all is OK
|
|
109
|
-
if (node.checkLevel === 'Ethernet') {
|
|
110
|
-
node.beatNumber = 0 // Reset counter
|
|
111
|
-
const t = setTimeout(() => { // 21/03/2022 fixed possible memory leak. Previously was setTimeout without "let t = ".
|
|
112
|
-
node.setNodeStatus({ fill: 'green', shape: 'dot', text: 'Basic check level unicast ' + node.checkLevel + ' - Interface OK.', payload: '', GA: node.topic, dpt: '', devicename: '' })
|
|
113
|
-
}, 500)
|
|
114
|
-
} else {
|
|
115
|
-
// With this check level "Ethernet + KNX Twisted Pair", i need to obtain the "Response" from the physical device, otherwise the connection TP is broken.
|
|
116
|
-
node.beatNumber = 0 // Reset counter
|
|
117
|
-
const t = setTimeout(() => { // 21/03/2022 fixed possible memory leak. Previously was setTimeout without "let t = ".
|
|
118
|
-
node.setNodeStatus({ fill: 'green', shape: 'dot', text: 'Full check level ' + node.checkLevel + ' - KNX BUS OK.', payload: '', GA: node.topic, dpt: '', devicename: '' })
|
|
119
|
-
}, 500)
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
// 16/02/2020 This function is called by the knx-ultimate config node.
|
|
124
|
-
node.signalNodeErrorCalledByConfigNode = _oError => {
|
|
125
|
-
if (!node.listenToKnxUltimateNodeErrors) return
|
|
126
|
-
|
|
127
|
-
// Report an error from knx-ultimate node.
|
|
128
|
-
// let oError = {nodeid:node.id,topic:node.outputtopic,devicename:devicename,GA:GA,text:text};
|
|
129
|
-
const msg = {
|
|
130
|
-
type: 'NodeError',
|
|
131
|
-
checkPerformed: 'Self KNX-Ultimate node reporting a red color status',
|
|
132
|
-
nodeid: _oError.nodeid,
|
|
133
|
-
payload: true,
|
|
134
|
-
description: _oError.text,
|
|
135
|
-
completeError: _oError
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// 22/10/2022 Find in the array of notified nodes. If found and equal, don't send.
|
|
139
|
-
// Warning: to be optimized: the watchdog will not emit any "red" message anymore, unless the error's description changes.
|
|
140
|
-
const oMsg = node.alreadyNotifiedArray.find(a => a.nodeid === msg.nodeid)
|
|
141
|
-
if (oMsg === undefined) {
|
|
142
|
-
node.alreadyNotifiedArray.push({ nodeid: msg.nodeid, description: msg.description })
|
|
143
|
-
node.send(msg)
|
|
144
|
-
} else {
|
|
145
|
-
if (oMsg.description !== msg.description) {
|
|
146
|
-
node.send(msg)
|
|
147
|
-
// Delete the item from the list
|
|
148
|
-
node.alreadyNotifiedArray = node.alreadyNotifiedArray.filter(a => a.nodeid !== msg.nodeid)
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
node.StartWatchDogTimer = () => {
|
|
154
|
-
node.beatNumber = 0
|
|
155
|
-
if (node.timerWatchDog !== null) clearInterval(node.timerWatchDog)
|
|
156
|
-
node.timerWatchDog = setInterval(handleTheDog, node.retryInterval) // 02/01/2020 Start the timer that handles the queue of telegrams
|
|
157
|
-
node.setNodeStatus({ fill: 'green', shape: 'dot', text: 'WatchDog started.', payload: '', GA: '', dpt: '', devicename: '' })
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
// This function is called by the knx-ultimate config node, to output a msg.payload.
|
|
161
|
-
node.handleSend = msg => {
|
|
162
|
-
node.send(msg)
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
node.on('input', function (msg) {
|
|
166
|
-
if (typeof msg === 'undefined') return
|
|
167
|
-
|
|
168
|
-
if (msg.hasOwnProperty('start')) {
|
|
169
|
-
if (msg.start === true) {
|
|
170
|
-
node.StartWatchDogTimer()
|
|
171
|
-
} else {
|
|
172
|
-
if (node.timerWatchDog !== null) clearInterval(node.timerWatchDog)
|
|
173
|
-
node.setNodeStatus({ fill: 'grey', shape: 'ring', text: 'WatchDog stopped.', payload: '', GA: '', dpt: '', devicename: '' })
|
|
174
|
-
};
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
if (node.serverKNX === undefined) return
|
|
178
|
-
|
|
179
|
-
// 01/02/2020 Dinamic change of the KNX Gateway IP, Port and Physical Address
|
|
180
|
-
// This new thing has been requested by proServ RealKNX staff.
|
|
181
|
-
if (msg.hasOwnProperty('setGatewayConfig')) {
|
|
182
|
-
node.serverKNX.setGatewayConfig(msg.setGatewayConfig.IP, msg.setGatewayConfig.Port, msg.setGatewayConfig.PhysicalAddress, msg.setGatewayConfig.BindToEthernetInterface, msg.setGatewayConfig.Protocol, msg.setGatewayConfig.importCSV)
|
|
183
|
-
const ret = {
|
|
184
|
-
type: 'setGatewayConfig',
|
|
185
|
-
checkPerformed: 'The Watchdog node changed the gateway configuration.',
|
|
186
|
-
nodeid: node.id,
|
|
187
|
-
payload: true,
|
|
188
|
-
description: 'New Config issued to the gateway. IP:' + (msg.setGatewayConfig.IP || 'Unchanged') + ' Port:' + (msg.setGatewayConfig.Port || 'Unchanged') + ' PhysicalAddress:' + (msg.setGatewayConfig.PhysicalAddress || 'Unchanged') + ' Protocol:' + (msg.setGatewayConfig.Protocol || 'Unchanged') + ' BindLocalInterface:' + (msg.setGatewayConfig.BindToEthernetInterface || 'Unchanged' + ' importCSV:' + (msg.setGatewayConfig.importCSV || 'Unchanged')),
|
|
189
|
-
completeError: ''
|
|
190
|
-
}
|
|
191
|
-
node.send(ret)
|
|
192
|
-
};
|
|
193
|
-
|
|
194
|
-
// 05/05/2021 force connection/disconnectio of the gateway
|
|
195
|
-
if (msg.hasOwnProperty('connectGateway')) {
|
|
196
|
-
node.serverKNX.connectGateway(msg.connectGateway)
|
|
197
|
-
const ret = {
|
|
198
|
-
type: 'connectGateway',
|
|
199
|
-
checkPerformed: 'The Watchdog issued a connection/disconnection to the gateway.',
|
|
200
|
-
nodeid: node.id,
|
|
201
|
-
payload: msg.connectGateway,
|
|
202
|
-
description: 'Connection',
|
|
203
|
-
completeError: ''
|
|
204
|
-
}
|
|
205
|
-
node.send(ret)
|
|
206
|
-
}
|
|
207
|
-
})
|
|
208
|
-
|
|
209
|
-
node.on('close', function (done) {
|
|
210
|
-
if (node.timerWatchDog !== null) clearInterval(node.timerWatchDog)
|
|
211
|
-
if (node.serverKNX) {
|
|
212
|
-
node.serverKNX.removeClient(node)
|
|
213
|
-
};
|
|
214
|
-
done()
|
|
215
|
-
})
|
|
216
|
-
|
|
217
|
-
// On each deploy, unsubscribe+resubscribe
|
|
218
|
-
// Unsubscribe(Subscribe)
|
|
219
|
-
if (node.serverKNX) {
|
|
220
|
-
if (node.timerWatchDog !== null) clearInterval(node.timerWatchDog)
|
|
221
|
-
node.serverKNX.removeClient(node)
|
|
222
|
-
const hasHealthCheckTarget = node.checkLevel === 'Ethernet' || Boolean(node.topic)
|
|
223
|
-
if (hasHealthCheckTarget || node.listenToKnxUltimateNodeErrors) {
|
|
224
|
-
node.serverKNX.addClient(node)
|
|
225
|
-
if (node.autoStart && hasHealthCheckTarget) node.StartWatchDogTimer() // Autostart watchdog
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
RED.nodes.registerType('knxUltimateWatchDog', knxUltimateWatchDog)
|
|
230
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
<script type="text/markdown" data-help-name="hue-config">
|
|
2
|
-
### Upgrade auf KNX Ultimate 8
|
|
3
|
-
|
|
4
|
-
Version 7 zeigt oben in diesem Editor eine kleine Schaltfläche **Auf v8 aktualisieren**. Sie lädt eine Flow-Sicherung herunter, installiert die benötigten HUE-/Matter-Pakete, konvertiert kompatible Knoten, führt ein vollständiges Deploy aus, prüft die gespeicherten Flows und installiert Version 8. Starten Sie den Node-RED-Dienst anschließend wie aufgefordert neu; nur den Browser neu zu laden genügt nicht. Bisherige KNX-AI-Knoten stoppen den automatischen Vorgang.
|
|
5
|
-
|
|
6
|
-
[Vollständige Upgrade-Anleitung](https://supergiovane.github.io/node-red-contrib-knx-ultimate/wiki/de-Upgrade-to-v8)
|
|
7
|
-
|
|
8
|
-
<br/>
|
|
9
|
-
|
|
10
|
-
<h1><p align='center'>PHILIPS HUE NODES</p></h1>
|
|
11
|
-
<br/>
|
|
12
|
-
<p align='center'>
|
|
13
|
-
<img src='https://raw.githubusercontent.com/Supergiovane/node-red-contrib-knx-ultimate/master/img/huehub.jpg' width='40%'>
|
|
14
|
-
</p>
|
|
15
|
-
|
|
16
|
-
Dieser Node registriert Node-RED an der Hue Bridge und führt den Kopplungsvorgang jetzt automatisch aus.
|
|
17
|
-
|
|
18
|
-
Gib die IP des Bridge ein (oder wähle eine automatisch erkannte Bridge) und klicke auf **CONNECT**. Der Editor fragt die Bridge weiter an und schließt den Warte-Dialog automatisch, sobald du die physische Link-Taste gedrückt hast. Mit **CANCEL** kannst du den Vorgang jederzeit stoppen und später erneut versuchen. Die Felder für Benutzername und Client Key bleiben bearbeitbar, damit du die Zugangsdaten jederzeit kopieren oder manuell einfügen kannst.
|
|
19
|
-
|
|
20
|
-
Du hast die Zugangsdaten bereits? Klicke auf **ICH HABE BEREITS DIE ZUGANGSDATEN**, um die Felder sofort einzublenden und sie manuell einzugeben, ohne auf den Bridge-Button zu warten.
|
|
21
|
-
|
|
22
|
-
**Allgemein**
|
|
23
|
-
|
|
24
|
-
| Eigenschaft | Beschreibung |
|
|
25
|
-
|--|--|
|
|
26
|
-
| IP | Gib die feste IP deiner Hue Bridge ein oder wähle einen automatisch gefundenen Eintrag aus der Liste. |
|
|
27
|
-
| VERBINDEN | Startet die Registrierung und wartet auf den Tastendruck an der Bridge. Der Dialog schließt sich automatisch nach dem Tastendruck; mit **CANCEL** kannst du das Warten beenden. |
|
|
28
|
-
| Name | Name der Bridge, der nach erfolgreicher Verbindung von der Hue Bridge gelesen wird. |
|
|
29
|
-
| Benutzername | Von der Hue Bridge nach der Kopplung zurückgegebener Benutzername. Das Feld bleibt editierbar für Copy & Paste oder manuelle Eingaben. |
|
|
30
|
-
| Client-Schlüssel | Von der Hue Bridge nach der Kopplung zurückgegebener Client-Schlüssel. Das Feld bleibt editierbar für Copy & Paste oder manuelle Eingaben. |
|
|
31
|
-
|
|
32
|
-

|
|
33
|
-
</script>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"hue-config": {
|
|
3
|
-
"properties": {
|
|
4
|
-
"title": "Philips Hue Bridge",
|
|
5
|
-
"host": "IP",
|
|
6
|
-
"host_placeholder": "Geben Sie die IP der Hue Bridge ein, dann auf VERBINDEN klicken",
|
|
7
|
-
"node-config-input-name": "Name",
|
|
8
|
-
"getinfocam": "Mit HUB verbinden",
|
|
9
|
-
"connect": "VERBINDEN",
|
|
10
|
-
"manual_credentials": "ICH HABE BEREITS DIE ZUGANGSDATEN",
|
|
11
|
-
"bridge_id": "Bridge-ID",
|
|
12
|
-
"username": "Benutzername",
|
|
13
|
-
"client_key": "Client-Schlüssel",
|
|
14
|
-
"wait_message": "Warte, ich kommuniziere mit deiner HUE Bridge...",
|
|
15
|
-
"caution": "ACHTUNG: Andere gleichzeitig installierte HUE-Knoten von Drittanbietern können Probleme verursachen und sollten deinstalliert werden.",
|
|
16
|
-
"link_button_wait": "Bitte drücken Sie die Link-Taste an der Hue Bridge. Warte auf Bestätigung…",
|
|
17
|
-
"registration_failed": "Registrierung der Hue Bridge fehlgeschlagen.",
|
|
18
|
-
"registration_unreachable": "Hue Bridge konnte nicht erreicht werden."
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<script type="text/html" data-help-name="knxUltimateAI">
|
|
2
|
-
### Upgrade auf KNX Ultimate 8
|
|
3
|
-
|
|
4
|
-
Version 7 zeigt oben in diesem Editor eine kleine Schaltfläche **Auf v8 aktualisieren**. Sie lädt eine Flow-Sicherung herunter, installiert die benötigten HUE-/Matter-Pakete, konvertiert kompatible Knoten, führt ein vollständiges Deploy aus, prüft die gespeicherten Flows und installiert Version 8. Starten Sie den Node-RED-Dienst anschließend wie aufgefordert neu; nur den Browser neu zu laden genügt nicht. Bisherige KNX-AI-Knoten stoppen den automatischen Vorgang.
|
|
5
|
-
|
|
6
|
-
[Vollständige Upgrade-Anleitung](https://supergiovane.github.io/node-red-contrib-knx-ultimate/wiki/de-Upgrade-to-v8)
|
|
7
|
-
|
|
8
|
-
<br/>
|
|
9
|
-
|
|
10
|
-
<p><b>Dies ist ein ausgeblendeter Legacy-Knoten, der nur für vorhandene Flows erhalten bleibt.</b></p>
|
|
11
|
-
<p>Für neue Installationen verwenden Sie den eigenständigen Knoten <b>Cerebrum Ultimate</b> aus <code>node-red-contrib-cerebrum-ultimate</code>. Er ersetzt diesen Knoten und verwendet KNX Ultimate als optionale kompatible Integration.</p>
|
|
12
|
-
<p><a href="https://github.com/Supergiovane/node-red-contrib-cerebrum-ultimate#readme" target="_blank">Dokumentation zu Cerebrum Ultimate öffnen</a>.</p>
|
|
13
|
-
</script>
|