node-red-contrib-knx-ultimate 4.0.10 → 4.0.11
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 +14 -1
- package/nodes/hue-config.html +2 -2
- package/nodes/hue-config.js +56 -0
- package/nodes/knxUltimate.html +87 -2
- package/nodes/knxUltimateAlerter.html +6 -5
- package/nodes/knxUltimateAutoResponder.html +1 -2
- package/nodes/knxUltimateGlobalContext.html +1 -2
- package/nodes/knxUltimateHueBattery.html +549 -222
- package/nodes/knxUltimateHueBattery.js +28 -8
- package/nodes/knxUltimateHueButton.html +688 -452
- package/nodes/knxUltimateHueButton.js +31 -17
- package/nodes/knxUltimateHueCameraMotion.html +631 -0
- package/nodes/knxUltimateHueCameraMotion.js +215 -0
- package/nodes/knxUltimateHueContactSensor.html +512 -212
- package/nodes/knxUltimateHueContactSensor.js +15 -3
- package/nodes/knxUltimateHueHumiditySensor.html +601 -0
- package/nodes/knxUltimateHueHumiditySensor.js +198 -0
- package/nodes/knxUltimateHueLight.html +788 -199
- package/nodes/knxUltimateHueLight.js +307 -66
- package/nodes/knxUltimateHueLightSensor.html +538 -224
- package/nodes/knxUltimateHueLightSensor.js +28 -10
- package/nodes/knxUltimateHueMotion.html +536 -215
- package/nodes/knxUltimateHueMotion.js +22 -3
- package/nodes/knxUltimateHuePlug.html +539 -0
- package/nodes/knxUltimateHuePlug.js +251 -0
- package/nodes/knxUltimateHueScene.html +863 -577
- package/nodes/knxUltimateHueScene.js +16 -4
- package/nodes/knxUltimateHueTapDial.html +543 -217
- package/nodes/knxUltimateHueTapDial.js +63 -22
- package/nodes/knxUltimateHueTemperatureSensor.html +541 -222
- package/nodes/knxUltimateHueTemperatureSensor.js +29 -9
- package/nodes/knxUltimateHueZigbeeConnectivity.html +549 -222
- package/nodes/knxUltimateHueZigbeeConnectivity.js +27 -7
- package/nodes/knxUltimateHuedevice_software_update.html +554 -222
- package/nodes/knxUltimateHuedevice_software_update.js +33 -6
- package/nodes/knxUltimateLoadControl.html +17 -6
- package/nodes/knxUltimateLogger.html +1 -2
- package/nodes/knxUltimateSceneController.html +7 -4
- package/nodes/knxUltimateViewer.html +1 -2
- package/nodes/knxUltimateWatchDog.html +1 -1
- package/nodes/locales/{de-DE → de}/hue-config.html +2 -2
- package/nodes/locales/{de-DE → de}/knxUltimate-config.html +10 -19
- package/nodes/locales/{de-DE → de}/knxUltimate.html +24 -30
- package/nodes/locales/{de-DE → de}/knxUltimateAlerter.html +6 -10
- package/nodes/locales/{de-DE → de}/knxUltimateAutoResponder.html +22 -25
- package/nodes/locales/de/knxUltimateGarageDoorBarrierOpener.html +27 -0
- package/nodes/locales/{de-DE → de}/knxUltimateGlobalContext.html +10 -12
- package/nodes/locales/{de-DE → de}/knxUltimateHATranslator.html +1 -2
- package/nodes/locales/de/knxUltimateHueBattery.html +25 -0
- package/nodes/locales/de/knxUltimateHueBattery.json +18 -6
- package/nodes/locales/de/knxUltimateHueButton.html +53 -0
- package/nodes/locales/de/knxUltimateHueButton.json +21 -2
- package/nodes/locales/de/knxUltimateHueCameraMotion.html +41 -0
- package/nodes/locales/de/knxUltimateHueCameraMotion.json +30 -0
- package/nodes/locales/{de-DE → de}/knxUltimateHueContactSensor.html +1 -1
- package/nodes/locales/de/knxUltimateHueContactSensor.json +13 -2
- package/nodes/locales/de/knxUltimateHueHumiditySensor.html +27 -0
- package/nodes/locales/de/knxUltimateHueHumiditySensor.json +30 -0
- package/nodes/locales/{de-DE → de}/knxUltimateHueLight.html +17 -16
- package/nodes/locales/de/knxUltimateHueLight.json +13 -3
- package/nodes/locales/{de-DE → de}/knxUltimateHueLightSensor.html +1 -1
- package/nodes/locales/de/knxUltimateHueMotion.html +29 -0
- package/nodes/locales/de/knxUltimateHueMotion.json +16 -5
- package/nodes/locales/de/knxUltimateHuePlug.html +41 -0
- package/nodes/locales/de/knxUltimateHuePlug.json +33 -0
- package/nodes/locales/de/knxUltimateHueScene.html +50 -0
- package/nodes/locales/de/knxUltimateHueScene.json +16 -3
- package/nodes/locales/de/knxUltimateHueTapDial.html +45 -0
- package/nodes/locales/de/knxUltimateHueTapDial.json +14 -2
- package/nodes/locales/{de-DE → de}/knxUltimateHueTemperatureSensor.html +1 -1
- package/nodes/locales/de/knxUltimateHueTemperatureSensor.json +18 -5
- package/nodes/locales/{de-DE → de}/knxUltimateHueZigbeeConnectivity.html +4 -4
- package/nodes/locales/de/knxUltimateHueZigbeeConnectivity.json +18 -6
- package/nodes/locales/{de-DE → de}/knxUltimateHuedevice_software_update.html +4 -4
- package/nodes/locales/de/knxUltimateHuedevice_software_update.json +12 -0
- package/nodes/locales/{de-DE → de}/knxUltimateLoadControl.html +2 -2
- package/nodes/locales/{de-DE → de}/knxUltimateLogger.html +8 -3
- package/nodes/locales/{de-DE → de}/knxUltimateSceneController.html +8 -6
- package/nodes/locales/{de-DE → de}/knxUltimateViewer.html +7 -10
- package/nodes/locales/de/knxUltimateWatchDog.html +158 -0
- package/nodes/locales/{en-US → en}/hue-config.html +2 -3
- package/nodes/locales/{en-US → en}/knxUltimate-config.html +21 -33
- package/nodes/locales/{en-US → en}/knxUltimate.html +91 -98
- package/nodes/locales/{en-US → en}/knxUltimateAlerter.html +2 -11
- package/nodes/locales/{en-US → en}/knxUltimateAutoResponder.html +23 -30
- package/nodes/locales/en/knxUltimateGarageDoorBarrierOpener.html +27 -0
- package/nodes/locales/{en-US → en}/knxUltimateGlobalContext.html +13 -22
- package/nodes/locales/{en-US → en}/knxUltimateHATranslator.html +1 -2
- package/nodes/locales/en/knxUltimateHueBattery.html +25 -0
- package/nodes/locales/en/knxUltimateHueBattery.json +30 -0
- package/nodes/locales/en/knxUltimateHueButton.html +39 -0
- package/nodes/locales/en/knxUltimateHueButton.json +34 -0
- package/nodes/locales/en/knxUltimateHueCameraMotion.html +27 -0
- package/nodes/locales/en/knxUltimateHueCameraMotion.json +30 -0
- package/nodes/locales/en/knxUltimateHueContactSensor.json +26 -0
- package/nodes/locales/en/knxUltimateHueHumiditySensor.html +27 -0
- package/nodes/locales/en/knxUltimateHueHumiditySensor.json +30 -0
- package/nodes/locales/en/knxUltimateHueLight.html +101 -0
- package/nodes/locales/{en-US → en}/knxUltimateHueLight.json +13 -3
- package/nodes/locales/{en-US → en}/knxUltimateHueLightSensor.html +1 -1
- package/nodes/locales/en/knxUltimateHueMotion.html +29 -0
- package/nodes/locales/en/knxUltimateHueMotion.json +27 -0
- package/nodes/locales/en/knxUltimateHuePlug.html +41 -0
- package/nodes/locales/en/knxUltimateHuePlug.json +33 -0
- package/nodes/locales/en/knxUltimateHueScene.html +36 -0
- package/nodes/locales/en/knxUltimateHueScene.json +41 -0
- package/nodes/locales/en/knxUltimateHueTapDial.html +31 -0
- package/nodes/locales/en/knxUltimateHueTapDial.json +28 -0
- package/nodes/locales/{en-US → en}/knxUltimateHueTemperatureSensor.html +1 -1
- package/nodes/locales/en/knxUltimateHueTemperatureSensor.json +30 -0
- package/nodes/locales/{en-US → en}/knxUltimateHueZigbeeConnectivity.html +4 -4
- package/nodes/locales/en/knxUltimateHueZigbeeConnectivity.json +30 -0
- package/nodes/locales/{en-US → en}/knxUltimateHuedevice_software_update.html +4 -4
- package/nodes/locales/en/knxUltimateHuedevice_software_update.json +30 -0
- package/nodes/locales/{en-US → en}/knxUltimateLoadControl.html +5 -6
- package/nodes/locales/{en-US → en}/knxUltimateLogger.html +6 -15
- package/nodes/locales/{en-US → en}/knxUltimateSceneController.html +15 -23
- package/nodes/locales/{en-US → en}/knxUltimateViewer.html +11 -13
- package/nodes/locales/en/knxUltimateWatchDog.html +233 -0
- package/nodes/locales/es/common.json +12 -0
- package/nodes/locales/es/hue-config.html +20 -0
- package/nodes/locales/es/hue-config.json +19 -0
- package/nodes/locales/es/knxUltimate-config.html +138 -0
- package/nodes/locales/es/knxUltimate-config.json +104 -0
- package/nodes/locales/es/knxUltimate.html +545 -0
- package/nodes/locales/es/knxUltimate.json +105 -0
- package/nodes/locales/es/knxUltimateAlerter.html +124 -0
- package/nodes/locales/es/knxUltimateAlerter.json +24 -0
- package/nodes/locales/es/knxUltimateAutoResponder.html +55 -0
- package/nodes/locales/es/knxUltimateAutoResponder.json +5 -0
- package/nodes/locales/es/knxUltimateGarageDoorBarrierOpener.json +11 -0
- package/nodes/locales/es/knxUltimateGlobalContext.html +114 -0
- package/nodes/locales/es/knxUltimateGlobalContext.json +21 -0
- package/nodes/locales/es/knxUltimateHATranslator.html +15 -0
- package/nodes/locales/es/knxUltimateHATranslator.json +5 -0
- package/nodes/locales/es/knxUltimateHueBattery.html +25 -0
- package/nodes/locales/es/knxUltimateHueBattery.json +30 -0
- package/nodes/locales/es/knxUltimateHueButton.html +39 -0
- package/nodes/locales/es/knxUltimateHueButton.json +34 -0
- package/nodes/locales/es/knxUltimateHueCameraMotion.html +27 -0
- package/nodes/locales/es/knxUltimateHueCameraMotion.json +30 -0
- package/nodes/locales/es/knxUltimateHueContactSensor.html +25 -0
- package/nodes/locales/es/knxUltimateHueContactSensor.json +26 -0
- package/nodes/locales/es/knxUltimateHueHumiditySensor.html +27 -0
- package/nodes/locales/es/knxUltimateHueHumiditySensor.json +30 -0
- package/nodes/locales/es/knxUltimateHueLight.html +101 -0
- package/nodes/locales/es/knxUltimateHueLight.json +84 -0
- package/nodes/locales/es/knxUltimateHueLightSensor.html +27 -0
- package/nodes/locales/es/knxUltimateHueLightSensor.json +19 -0
- package/nodes/locales/es/knxUltimateHueMotion.html +29 -0
- package/nodes/locales/es/knxUltimateHueMotion.json +27 -0
- package/nodes/locales/es/knxUltimateHuePlug.html +41 -0
- package/nodes/locales/es/knxUltimateHuePlug.json +33 -0
- package/nodes/locales/es/knxUltimateHueScene.html +36 -0
- package/nodes/locales/es/knxUltimateHueScene.json +41 -0
- package/nodes/locales/es/knxUltimateHueTapDial.html +31 -0
- package/nodes/locales/es/knxUltimateHueTapDial.json +28 -0
- package/nodes/locales/es/knxUltimateHueTemperatureSensor.html +27 -0
- package/nodes/locales/es/knxUltimateHueTemperatureSensor.json +30 -0
- package/nodes/locales/es/knxUltimateHueZigbeeConnectivity.html +28 -0
- package/nodes/locales/es/knxUltimateHueZigbeeConnectivity.json +30 -0
- package/nodes/locales/es/knxUltimateHuedevice_software_update.html +25 -0
- package/nodes/locales/es/knxUltimateHuedevice_software_update.json +30 -0
- package/nodes/locales/es/knxUltimateLoadControl.html +61 -0
- package/nodes/locales/es/knxUltimateLoadControl.json +21 -0
- package/nodes/locales/es/knxUltimateLogger.html +120 -0
- package/nodes/locales/es/knxUltimateLogger.json +19 -0
- package/nodes/locales/es/knxUltimateSceneController.html +85 -0
- package/nodes/locales/es/knxUltimateSceneController.json +29 -0
- package/nodes/locales/es/knxUltimateViewer.html +441 -0
- package/nodes/locales/es/knxUltimateViewer.json +11 -0
- package/nodes/locales/es/knxUltimateWatchDog.html +179 -0
- package/nodes/locales/es/knxUltimateWatchDog.json +23 -0
- package/nodes/locales/fr/common.json +12 -0
- package/nodes/locales/fr/hue-config.html +20 -0
- package/nodes/locales/fr/hue-config.json +19 -0
- package/nodes/locales/fr/knxUltimate-config.html +149 -0
- package/nodes/locales/fr/knxUltimate-config.json +104 -0
- package/nodes/locales/fr/knxUltimate.html +543 -0
- package/nodes/locales/fr/knxUltimate.json +105 -0
- package/nodes/locales/fr/knxUltimateAlerter.html +124 -0
- package/nodes/locales/fr/knxUltimateAlerter.json +24 -0
- package/nodes/locales/fr/knxUltimateAutoResponder.html +67 -0
- package/nodes/locales/fr/knxUltimateAutoResponder.json +5 -0
- package/nodes/locales/fr/knxUltimateGarageDoorBarrierOpener.json +11 -0
- package/nodes/locales/fr/knxUltimateGlobalContext.html +113 -0
- package/nodes/locales/fr/knxUltimateGlobalContext.json +21 -0
- package/nodes/locales/fr/knxUltimateHATranslator.html +15 -0
- package/nodes/locales/fr/knxUltimateHATranslator.json +5 -0
- package/nodes/locales/fr/knxUltimateHueBattery.html +25 -0
- package/nodes/locales/fr/knxUltimateHueBattery.json +30 -0
- package/nodes/locales/fr/knxUltimateHueButton.html +39 -0
- package/nodes/locales/fr/knxUltimateHueButton.json +34 -0
- package/nodes/locales/fr/knxUltimateHueCameraMotion.html +27 -0
- package/nodes/locales/fr/knxUltimateHueCameraMotion.json +30 -0
- package/nodes/locales/fr/knxUltimateHueContactSensor.html +25 -0
- package/nodes/locales/fr/knxUltimateHueContactSensor.json +26 -0
- package/nodes/locales/fr/knxUltimateHueHumiditySensor.html +27 -0
- package/nodes/locales/fr/knxUltimateHueHumiditySensor.json +30 -0
- package/nodes/locales/fr/knxUltimateHueLight.html +101 -0
- package/nodes/locales/fr/knxUltimateHueLight.json +84 -0
- package/nodes/locales/fr/knxUltimateHueLightSensor.html +27 -0
- package/nodes/locales/fr/knxUltimateHueLightSensor.json +19 -0
- package/nodes/locales/fr/knxUltimateHueMotion.html +29 -0
- package/nodes/locales/fr/knxUltimateHueMotion.json +27 -0
- package/nodes/locales/fr/knxUltimateHuePlug.html +41 -0
- package/nodes/locales/fr/knxUltimateHuePlug.json +33 -0
- package/nodes/locales/fr/knxUltimateHueScene.html +36 -0
- package/nodes/locales/fr/knxUltimateHueScene.json +41 -0
- package/nodes/locales/fr/knxUltimateHueTapDial.html +31 -0
- package/nodes/locales/fr/knxUltimateHueTapDial.json +28 -0
- package/nodes/locales/fr/knxUltimateHueTemperatureSensor.html +27 -0
- package/nodes/locales/fr/knxUltimateHueTemperatureSensor.json +30 -0
- package/nodes/locales/fr/knxUltimateHueZigbeeConnectivity.html +28 -0
- package/nodes/locales/fr/knxUltimateHueZigbeeConnectivity.json +30 -0
- package/nodes/locales/fr/knxUltimateHuedevice_software_update.html +25 -0
- package/nodes/locales/fr/knxUltimateHuedevice_software_update.json +30 -0
- package/nodes/locales/fr/knxUltimateLoadControl.html +61 -0
- package/nodes/locales/fr/knxUltimateLoadControl.json +21 -0
- package/nodes/locales/fr/knxUltimateLogger.html +118 -0
- package/nodes/locales/fr/knxUltimateLogger.json +19 -0
- package/nodes/locales/fr/knxUltimateSceneController.html +87 -0
- package/nodes/locales/fr/knxUltimateSceneController.json +29 -0
- package/nodes/locales/fr/knxUltimateViewer.html +441 -0
- package/nodes/locales/fr/knxUltimateViewer.json +11 -0
- package/nodes/locales/fr/knxUltimateWatchDog.html +177 -0
- package/nodes/locales/fr/knxUltimateWatchDog.json +23 -0
- package/nodes/locales/{it-IT → it}/hue-config.html +6 -6
- package/nodes/locales/{it-IT → it}/knxUltimate-config.html +21 -29
- package/nodes/locales/{it-IT → it}/knxUltimate.html +33 -40
- package/nodes/locales/{it-IT → it}/knxUltimateAlerter.html +13 -17
- package/nodes/locales/{it-IT → it}/knxUltimateAutoResponder.html +23 -26
- package/nodes/locales/it/knxUltimateGarageDoorBarrierOpener.html +27 -0
- package/nodes/locales/{it-IT → it}/knxUltimateGlobalContext.html +12 -14
- package/nodes/locales/{it-IT → it}/knxUltimateHATranslator.html +1 -2
- package/nodes/locales/it/knxUltimateHueBattery.html +25 -0
- package/nodes/locales/it/knxUltimateHueBattery.json +18 -6
- package/nodes/locales/it/knxUltimateHueButton.html +53 -0
- package/nodes/locales/it/knxUltimateHueButton.json +21 -2
- package/nodes/locales/it/knxUltimateHueCameraMotion.html +41 -0
- package/nodes/locales/it/knxUltimateHueCameraMotion.json +30 -0
- package/nodes/locales/{it-IT → it}/knxUltimateHueContactSensor.html +3 -3
- package/nodes/locales/it/knxUltimateHueContactSensor.json +13 -2
- package/nodes/locales/it/knxUltimateHueHumiditySensor 2.html +11 -0
- package/nodes/locales/it/knxUltimateHueHumiditySensor.html +27 -0
- package/nodes/locales/it/knxUltimateHueHumiditySensor.json +30 -0
- package/nodes/locales/{it-IT → it}/knxUltimateHueLight.html +28 -29
- package/nodes/locales/it/knxUltimateHueLight.json +13 -3
- package/nodes/locales/{it-IT → it}/knxUltimateHueLightSensor.html +2 -2
- package/nodes/locales/it/knxUltimateHueMotion.html +29 -0
- package/nodes/locales/it/knxUltimateHueMotion.json +16 -5
- package/nodes/locales/it/knxUltimateHuePlug.html +41 -0
- package/nodes/locales/it/knxUltimateHuePlug.json +33 -0
- package/nodes/locales/it/knxUltimateHueScene.html +50 -0
- package/nodes/locales/it/knxUltimateHueScene.json +16 -3
- package/nodes/locales/it/knxUltimateHueTapDial.html +45 -0
- package/nodes/locales/it/knxUltimateHueTapDial.json +14 -2
- package/nodes/locales/{it-IT → it}/knxUltimateHueTemperatureSensor.html +2 -2
- package/nodes/locales/it/knxUltimateHueTemperatureSensor.json +18 -6
- package/nodes/locales/{it-IT → it}/knxUltimateHueZigbeeConnectivity.html +5 -5
- package/nodes/locales/it/knxUltimateHueZigbeeConnectivity.json +18 -6
- package/nodes/locales/{it-IT → it}/knxUltimateHuedevice_software_update.html +4 -4
- package/nodes/locales/it/knxUltimateHuedevice_software_update.json +12 -0
- package/nodes/locales/{it-IT → it}/knxUltimateLoadControl.html +6 -7
- package/nodes/locales/{it-IT → it}/knxUltimateLogger.html +13 -8
- package/nodes/locales/{it-IT → it}/knxUltimateSceneController.html +14 -12
- package/nodes/locales/{it-IT → it}/knxUltimateViewer.html +7 -10
- package/nodes/locales/it/knxUltimateWatchDog.html +173 -0
- package/nodes/locales/zh-CN/hue-config.html +2 -2
- package/nodes/locales/zh-CN/knxUltimate-config.html +11 -20
- package/nodes/locales/zh-CN/knxUltimate.html +25 -31
- package/nodes/locales/zh-CN/knxUltimateAlerter.html +5 -9
- package/nodes/locales/zh-CN/knxUltimateAutoResponder.html +22 -27
- package/nodes/locales/zh-CN/knxUltimateGarageDoorBarrierOpener.html +6 -42
- package/nodes/locales/zh-CN/knxUltimateGlobalContext.html +9 -11
- package/nodes/locales/zh-CN/knxUltimateHATranslator.html +2 -3
- package/nodes/locales/zh-CN/knxUltimateHueBattery.html +14 -7
- package/nodes/locales/zh-CN/knxUltimateHueBattery.json +18 -6
- package/nodes/locales/zh-CN/knxUltimateHueButton.html +39 -23
- package/nodes/locales/zh-CN/knxUltimateHueButton.json +21 -2
- package/nodes/locales/zh-CN/knxUltimateHueCameraMotion.html +41 -0
- package/nodes/locales/zh-CN/knxUltimateHueCameraMotion.json +30 -0
- package/nodes/locales/zh-CN/knxUltimateHueContactSensor.html +2 -2
- package/nodes/locales/zh-CN/knxUltimateHueContactSensor.json +13 -2
- package/nodes/locales/zh-CN/knxUltimateHueHumiditySensor.html +27 -0
- package/nodes/locales/zh-CN/knxUltimateHueHumiditySensor.json +30 -0
- package/nodes/locales/zh-CN/knxUltimateHueLight.html +33 -32
- package/nodes/locales/zh-CN/knxUltimateHueLight.json +13 -3
- package/nodes/locales/zh-CN/knxUltimateHueLightSensor.html +3 -3
- package/nodes/locales/zh-CN/knxUltimateHueMotion.html +17 -14
- package/nodes/locales/zh-CN/knxUltimateHueMotion.json +16 -5
- package/nodes/locales/zh-CN/knxUltimateHuePlug.html +41 -0
- package/nodes/locales/zh-CN/knxUltimateHuePlug.json +33 -0
- package/nodes/locales/zh-CN/knxUltimateHueScene.html +48 -42
- package/nodes/locales/zh-CN/knxUltimateHueScene.json +15 -2
- package/nodes/locales/zh-CN/knxUltimateHueTapDial.html +33 -18
- package/nodes/locales/zh-CN/knxUltimateHueTapDial.json +14 -2
- package/nodes/locales/zh-CN/knxUltimateHueTemperatureSensor.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueTemperatureSensor.json +19 -6
- package/nodes/locales/zh-CN/knxUltimateHueZigbeeConnectivity.html +4 -4
- package/nodes/locales/zh-CN/knxUltimateHueZigbeeConnectivity.json +18 -6
- package/nodes/locales/zh-CN/knxUltimateHuedevice_software_update.html +5 -5
- package/nodes/locales/zh-CN/knxUltimateHuedevice_software_update.json +12 -0
- package/nodes/locales/zh-CN/knxUltimateLoadControl.html +8 -9
- package/nodes/locales/zh-CN/knxUltimateLogger.html +8 -3
- package/nodes/locales/zh-CN/knxUltimateSceneController.html +8 -6
- package/nodes/locales/zh-CN/knxUltimateViewer.html +9 -13
- package/nodes/locales/zh-CN/knxUltimateWatchDog.html +158 -0
- package/nodes/utils/hueEngine.mjs +14 -8
- package/package.json +6 -3
- package/resources/htmlUtils.js +27 -0
- package/scripts/manual_translate_fr_es.py +149 -0
- package/scripts/sync-help-from-wiki.js +98 -0
- package/scripts/update-help-from-wiki.js +116 -0
- package/tutorial/HUE Api/Hue CLIP API.html +47356 -0
- package/tutorial/HUE Api/Hue CLIP API_files/bootstrap.min.css +6 -0
- package/tutorial/HUE Api/Hue CLIP API_files/bootstrap.min.js +6 -0
- package/tutorial/HUE Api/Hue CLIP API_files/default.min.css +1 -0
- package/tutorial/HUE Api/Hue CLIP API_files/highlight.min.js +1296 -0
- package/tutorial/HUE Api/Hue CLIP API_files/jquery-3.5.1.min.js +2 -0
- package/nodes/locales/de-DE/knxUltimateGarageDoorBarrierOpener.html +0 -63
- package/nodes/locales/de-DE/knxUltimateHueBattery.html +0 -18
- package/nodes/locales/de-DE/knxUltimateHueButton.html +0 -37
- package/nodes/locales/de-DE/knxUltimateHueMotion.html +0 -26
- package/nodes/locales/de-DE/knxUltimateHueScene.html +0 -44
- package/nodes/locales/de-DE/knxUltimateHueTapDial.html +0 -30
- package/nodes/locales/en-US/knxUltimateGarageDoorBarrierOpener.html +0 -63
- package/nodes/locales/en-US/knxUltimateHueBattery.html +0 -18
- package/nodes/locales/en-US/knxUltimateHueBattery.json +0 -18
- package/nodes/locales/en-US/knxUltimateHueButton.html +0 -37
- package/nodes/locales/en-US/knxUltimateHueButton.json +0 -15
- package/nodes/locales/en-US/knxUltimateHueContactSensor.json +0 -15
- package/nodes/locales/en-US/knxUltimateHueLight.html +0 -102
- package/nodes/locales/en-US/knxUltimateHueMotion.html +0 -26
- package/nodes/locales/en-US/knxUltimateHueMotion.json +0 -16
- package/nodes/locales/en-US/knxUltimateHueScene.html +0 -44
- package/nodes/locales/en-US/knxUltimateHueScene.json +0 -28
- package/nodes/locales/en-US/knxUltimateHueTapDial.html +0 -30
- package/nodes/locales/en-US/knxUltimateHueTapDial.json +0 -16
- package/nodes/locales/en-US/knxUltimateHueTemperatureSensor.json +0 -18
- package/nodes/locales/en-US/knxUltimateHueZigbeeConnectivity.json +0 -18
- package/nodes/locales/en-US/knxUltimateHuedevice_software_update.json +0 -18
- package/nodes/locales/it-IT/knxUltimateGarageDoorBarrierOpener.html +0 -63
- package/nodes/locales/it-IT/knxUltimateHueBattery.html +0 -18
- package/nodes/locales/it-IT/knxUltimateHueButton.html +0 -36
- package/nodes/locales/it-IT/knxUltimateHueMotion.html +0 -26
- package/nodes/locales/it-IT/knxUltimateHueScene.html +0 -44
- package/nodes/locales/it-IT/knxUltimateHueTapDial.html +0 -30
- /package/nodes/locales/{en-US → en}/common.json +0 -0
- /package/nodes/locales/{en-US → en}/hue-config.json +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimate-config.json +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimate.json +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimateAlerter.json +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimateAutoResponder.json +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimateGarageDoorBarrierOpener.json +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimateGlobalContext.json +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimateHATranslator.json +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimateHueContactSensor.html +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimateHueLightSensor.json +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimateLoadControl.json +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimateLogger.json +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimateSceneController.json +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimateViewer.json +0 -0
- /package/nodes/locales/{en-US → en}/knxUltimateWatchDog.json +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,20 @@
|
|
|
6
6
|
|
|
7
7
|
# CHANGELOG
|
|
8
8
|
|
|
9
|
+
**Version 4.0.11** - October 2025<br/>
|
|
10
|
+
- HUE nodes: hardened KNX telegram handling with a shared safe-send guard so editor events no longer ceases to function, when the KNX gateway is offline.<br/>
|
|
11
|
+
- HUE Contact Sensor node: placeholders now leverage i18n translations with graceful fallback when translation keys are missing.<br/>
|
|
12
|
+
- Editor polish: unified the default width of the `name` input across KNX and Hue nodes for a consistent layout.<br/>
|
|
13
|
+
- KNX Scene Controller, Alerter and Load Control nodes: GA autocompletes now open their suggestion list immediately on focus/click to speed up GA selection.<br/>
|
|
14
|
+
- Docs: audited external links; Hue API references require developer login but all other anchors resolve correctly.<br/>
|
|
15
|
+
- HUE Light node: added configuration UI and runtime support for Hue lamp dynamic effects (candle, fireplace, etc.) with KNX mappings and status feedback.<br/>
|
|
16
|
+
- NEW: Added Hue Plug/Outlet node to map KNX on/off control to Philips Hue smart plugs.<br/>
|
|
17
|
+
- NEW: Added Hue Humidity Sensor node to expose relative humidity readings from Hue bridges to KNX.<br/>
|
|
18
|
+
- NEW: Added Hue Camera Motion node to forward Hue camera motion detections to KNX, with optional flow output pins.<br/>
|
|
19
|
+
- Hue Button node: refreshed editor layout and switched to Hue `button.button_report.event` instead of the deprecated `last_event`.<br/>
|
|
20
|
+
- Hue Battery, Motion, Temperature, Light Sensor and Zigbee Connectivity nodes now share the unified editor layout with refresh icon, KNX-aware tabs and optional flow pin toggles.<br/>
|
|
21
|
+
- Docs: cleaned bold markdown spacing across KNX Ultimate help translations to avoid rendering glitches.<br/>
|
|
22
|
+
|
|
9
23
|
**Version 4.0.10** - October 2025<br/>
|
|
10
24
|
- KNX Config node: you can now choose wether to display only the errors in the node statuses only errors.<br/>
|
|
11
25
|
|
|
@@ -1961,4 +1975,3 @@ This is an interim version, to quick fix some issues. Please report any issue wi
|
|
|
1961
1975
|
|
|
1962
1976
|
**Version 0.0.1 BETA**<br/>
|
|
1963
1977
|
- Initial release<br/>
|
|
1964
|
-
|
package/nodes/hue-config.html
CHANGED
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
<div id="waitWindow" hidden>
|
|
169
169
|
<br/><br/>
|
|
170
170
|
<p align="center">
|
|
171
|
-
<i class="fa-solid fa-hourglass-start fa-spin-pulse fa-
|
|
171
|
+
<i class="fa-solid fa-hourglass-start fa-spin-pulse fa-2x"></i><br/><br/>
|
|
172
172
|
<span data-i18n="hue-config.properties.wait_message"></span>
|
|
173
173
|
</p>
|
|
174
174
|
</div>
|
|
@@ -231,4 +231,4 @@
|
|
|
231
231
|
</div>
|
|
232
232
|
|
|
233
233
|
|
|
234
|
-
</script>
|
|
234
|
+
</script>
|
package/nodes/hue-config.js
CHANGED
|
@@ -246,6 +246,9 @@ module.exports = (RED) => {
|
|
|
246
246
|
let allResources;
|
|
247
247
|
if (_rtype === "light" || _rtype === "grouped_light") {
|
|
248
248
|
allResources = node.hueAllResources.filter((a) => a.type === "light" || a.type === "grouped_light");
|
|
249
|
+
} else if (_rtype === "plug") {
|
|
250
|
+
allResources = node.hueAllResources.filter((a) => a.type === "plug" || a.type === "smartplug" || a.type === "smart_plug");
|
|
251
|
+
console.log('getResources plug raw resources', allResources.map((res) => ({ id: res.id, type: res.type, owner: res.owner?.rtype })));
|
|
249
252
|
} else {
|
|
250
253
|
allResources = node.hueAllResources.filter((a) => a.type === _rtype);
|
|
251
254
|
}
|
|
@@ -324,6 +327,19 @@ module.exports = (RED) => {
|
|
|
324
327
|
id: resource.id,
|
|
325
328
|
});
|
|
326
329
|
}
|
|
330
|
+
if (_rtype === "plug") {
|
|
331
|
+
const linkedDevice = node.hueAllResources.find((dev) => dev.type === "device" && dev.services.find((serv) => serv.rid === resource.id));
|
|
332
|
+
const room = node.hueAllRooms?.find((roomItem) => roomItem.children?.find((child) => child.rid === linkedDevice?.id));
|
|
333
|
+
const plugName = linkedDevice?.metadata?.name || resource.metadata?.name || "Unnamed Plug";
|
|
334
|
+
const stateLabel = resource?.on?.on === true ? "on" : "off";
|
|
335
|
+
console.log('getResources plug direct resource', { id: resource.id, type: resource.type, name: plugName, linkedDevice: linkedDevice?.id });
|
|
336
|
+
retArray.push({
|
|
337
|
+
name: `Plug: ${plugName}${room !== undefined ? `, room ${room.metadata.name}` : ""} [${stateLabel}]`,
|
|
338
|
+
id: resource.id,
|
|
339
|
+
type: resource.type,
|
|
340
|
+
deviceObject: resource,
|
|
341
|
+
});
|
|
342
|
+
}
|
|
327
343
|
if (_rtype === "temperature") {
|
|
328
344
|
const Room = node.hueAllRooms.find((room) => room.children.find((child) => child.rid === resource.owner.rid));
|
|
329
345
|
const linkedDevName = node.hueAllResources.find((dev) => dev.type === "device" && dev.services.find((serv) => serv.rid === resource.id)).metadata.name || "";
|
|
@@ -332,6 +348,14 @@ module.exports = (RED) => {
|
|
|
332
348
|
id: resource.id,
|
|
333
349
|
});
|
|
334
350
|
}
|
|
351
|
+
if (_rtype === "humidity") {
|
|
352
|
+
const Room = node.hueAllRooms.find((room) => room.children.find((child) => child.rid === resource.owner.rid));
|
|
353
|
+
const linkedDevName = node.hueAllResources.find((dev) => dev.type === "device" && dev.services.find((serv) => serv.rid === resource.id)).metadata.name || "";
|
|
354
|
+
retArray.push({
|
|
355
|
+
name: `Humidity: ${linkedDevName}${Room !== undefined ? `, room ${Room.metadata.name}` : ""}`,
|
|
356
|
+
id: resource.id,
|
|
357
|
+
});
|
|
358
|
+
}
|
|
335
359
|
if (_rtype === "device_power") {
|
|
336
360
|
const Room = node.hueAllRooms.find((room) => room.children.find((child) => child.rid === resource.owner.rid));
|
|
337
361
|
const linkedDevName = node.hueAllResources.find((dev) => dev.type === "device" && dev.services.find((serv) => serv.rid === resource.id)).metadata.name || "";
|
|
@@ -379,6 +403,38 @@ module.exports = (RED) => {
|
|
|
379
403
|
});
|
|
380
404
|
}
|
|
381
405
|
}
|
|
406
|
+
if (_rtype === "plug" && retArray.length === 0) {
|
|
407
|
+
const plugDevices = node.hueAllResources.filter((dev) => {
|
|
408
|
+
if (dev.type !== "device" || !Array.isArray(dev.services)) return false;
|
|
409
|
+
const archetypePlug = dev.product_data?.product_archetype === 'plug' || dev.metadata?.archetype === 'plug' || /plug/i.test(dev.product_data?.product_name || '') || /plug/i.test(dev.metadata?.name || '');
|
|
410
|
+
const hasService = dev.services.some((serv) => ['plug', 'smartplug', 'smart_plug', 'light'].includes(serv.rtype || ''));
|
|
411
|
+
return archetypePlug && hasService;
|
|
412
|
+
});
|
|
413
|
+
plugDevices.forEach((device) => {
|
|
414
|
+
try {
|
|
415
|
+
const plugService = device.services.find((serv) => ['plug', 'smartplug', 'smart_plug', 'light'].includes(serv.rtype || ''));
|
|
416
|
+
if (!plugService) return;
|
|
417
|
+
const plugResource = node.hueAllResources.find((res) => res.id === plugService.rid) || {};
|
|
418
|
+
const room = node.hueAllRooms?.find((roomItem) => roomItem.children?.find((child) => child.rid === device.id));
|
|
419
|
+
const plugName = device.metadata?.name || plugResource.metadata?.name || "Unnamed Plug";
|
|
420
|
+
const stateLabel = plugResource?.on?.on === true ? "on" : (plugResource?.on?.on === false ? "off" : "");
|
|
421
|
+
retArray.push({
|
|
422
|
+
name: `Plug: ${plugName}${room !== undefined ? `, room ${room.metadata.name}` : ""}${stateLabel ? ` [${stateLabel}]` : ""}`,
|
|
423
|
+
id: plugService.rid || device.id,
|
|
424
|
+
type: plugService.rtype || plugResource.type || 'light',
|
|
425
|
+
deviceObject: plugResource.on ? plugResource : {
|
|
426
|
+
id: plugService.rid || device.id,
|
|
427
|
+
type: plugService.rtype || plugResource.type || 'light',
|
|
428
|
+
on: plugResource.on,
|
|
429
|
+
owner: { rid: device.id, rtype: 'device' },
|
|
430
|
+
},
|
|
431
|
+
});
|
|
432
|
+
} catch (err) {
|
|
433
|
+
node.sysLogger?.warn(`KNXUltimateHue: getResources plug fallback error ${err.message}`);
|
|
434
|
+
}
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
node.sysLogger?.debug(`getResources plug returning ${retArray.length}`);
|
|
382
438
|
return { devices: retArray };
|
|
383
439
|
} catch (error) {
|
|
384
440
|
node.sysLogger?.error(`KNXUltimateHue: hueEngine: classHUE: getResources: error ${error.message}`);
|
package/nodes/knxUltimate.html
CHANGED
|
@@ -161,16 +161,97 @@
|
|
|
161
161
|
})
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
+
const applyEditorOptions = (editor) => {
|
|
165
|
+
try {
|
|
166
|
+
if (!editor) return;
|
|
167
|
+
if (typeof editor.updateOptions === 'function') {
|
|
168
|
+
editor.updateOptions({ lineNumbers: 'off', minimap: { enabled: false }, scrollbar: { verticalScrollbarSize: 8, horizontalScrollbarSize: 8 } });
|
|
169
|
+
} else if (editor.renderer && typeof editor.renderer.setShowGutter === 'function') {
|
|
170
|
+
editor.renderer.setShowGutter(false);
|
|
171
|
+
}
|
|
172
|
+
if (typeof editor.setShowPrintMargin === 'function') editor.setShowPrintMargin(false);
|
|
173
|
+
} catch (error) { }
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
const highlightEditor = (editor, active) => {
|
|
177
|
+
if (!editor) return;
|
|
178
|
+
try {
|
|
179
|
+
if (editor.renderer && editor.renderer.scroller) {
|
|
180
|
+
editor.renderer.scroller.style.backgroundColor = active ? '#e6ffe6' : '';
|
|
181
|
+
}
|
|
182
|
+
if (editor.renderer && editor.renderer.content) {
|
|
183
|
+
editor.renderer.content.style.backgroundColor = active ? '#e6ffe6' : '';
|
|
184
|
+
}
|
|
185
|
+
if (typeof editor.getDomNode === 'function') {
|
|
186
|
+
const dom = editor.getDomNode();
|
|
187
|
+
if (dom) dom.style.backgroundColor = active ? '#e6ffe6' : '';
|
|
188
|
+
} else if (editor.container) {
|
|
189
|
+
editor.container.style.backgroundColor = active ? '#e6ffe6' : '';
|
|
190
|
+
}
|
|
191
|
+
} catch (error) { }
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
const attachFocusHandlers = (editor) => {
|
|
195
|
+
if (!editor) return;
|
|
196
|
+
try {
|
|
197
|
+
if (typeof editor.on === 'function' && editor.renderer) {
|
|
198
|
+
editor.on('focus', () => { node.activeCodeEditor = editor; highlightEditor(editor, true); });
|
|
199
|
+
editor.on('blur', () => highlightEditor(editor, false));
|
|
200
|
+
} else if (typeof editor.onDidFocusEditorWidget === 'function') {
|
|
201
|
+
editor.onDidFocusEditorWidget(() => { node.activeCodeEditor = editor; highlightEditor(editor, true); });
|
|
202
|
+
if (typeof editor.onDidBlurEditorWidget === 'function') {
|
|
203
|
+
editor.onDidBlurEditorWidget(() => highlightEditor(editor, false));
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
} catch (error) { }
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
const insertTextIntoEditor = (editor, text) => {
|
|
210
|
+
if (!editor || !text) return;
|
|
211
|
+
try {
|
|
212
|
+
if (editor.session && typeof editor.session.insert === 'function') {
|
|
213
|
+
editor.focus();
|
|
214
|
+
editor.session.insert(editor.getCursorPosition(), text);
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
if (typeof editor.executeEdits === 'function' && typeof editor.getPosition === 'function' && typeof monaco !== 'undefined') {
|
|
218
|
+
const position = editor.getPosition();
|
|
219
|
+
if (!position) return;
|
|
220
|
+
const range = new monaco.Range(position.lineNumber, position.column, position.lineNumber, position.column);
|
|
221
|
+
editor.executeEdits('knxInsertGA', [{ range, text, forceMoveMarkers: true }]);
|
|
222
|
+
editor.setPosition({ lineNumber: position.lineNumber, column: position.column + text.length });
|
|
223
|
+
editor.focus();
|
|
224
|
+
}
|
|
225
|
+
} catch (error) { }
|
|
226
|
+
};
|
|
227
|
+
|
|
164
228
|
node.sendMsgToKNXCodeEditor = RED.editor.createEditor({
|
|
165
229
|
id: 'sendMsgToKNXCode-editor',
|
|
166
230
|
mode: 'ace/mode/nrjavascript',
|
|
167
231
|
value: node.sendMsgToKNXCode
|
|
168
232
|
});
|
|
233
|
+
applyEditorOptions(node.sendMsgToKNXCodeEditor);
|
|
169
234
|
node.receiveMsgFromKNXCodeEditor = RED.editor.createEditor({
|
|
170
235
|
id: 'receiveMsgFromKNXCode-editor',
|
|
171
236
|
mode: 'ace/mode/nrjavascript',
|
|
172
237
|
value: node.receiveMsgFromKNXCode
|
|
173
238
|
});
|
|
239
|
+
applyEditorOptions(node.receiveMsgFromKNXCodeEditor);
|
|
240
|
+
node.activeCodeEditor = null;
|
|
241
|
+
attachFocusHandlers(node.sendMsgToKNXCodeEditor);
|
|
242
|
+
attachFocusHandlers(node.receiveMsgFromKNXCodeEditor);
|
|
243
|
+
|
|
244
|
+
$("#btn-insert-knxFunctionGA").off('click').on('click', function () {
|
|
245
|
+
const value = $("#node-input-knxFunctionHelperGAList").val();
|
|
246
|
+
if (!value || value.trim() === '') {
|
|
247
|
+
$("#node-input-knxFunctionHelperGAList").focus();
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const editor = node.activeCodeEditor || node.sendMsgToKNXCodeEditor || node.receiveMsgFromKNXCodeEditor;
|
|
251
|
+
if (!editor) return;
|
|
252
|
+
insertTextIntoEditor(editor, value);
|
|
253
|
+
});
|
|
254
|
+
|
|
174
255
|
const configureSnippetPicker = (snippets, inputSelector, datalistSelector, applySnippet) => {
|
|
175
256
|
const inputEl = $(inputSelector)
|
|
176
257
|
const datalistEl = $(datalistSelector)
|
|
@@ -718,7 +799,7 @@
|
|
|
718
799
|
<i class="fa fa-tag"></i>
|
|
719
800
|
<span data-i18n="knxUltimate.properties.node-input-name"></span>
|
|
720
801
|
</label>
|
|
721
|
-
<input style="width:
|
|
802
|
+
<input style="flex:1 1 240px; min-width:240px; max-width:240px;" type="text" id="node-input-name"
|
|
722
803
|
data-i18n="[placeholder]knxUltimate.properties.node-input-name" />
|
|
723
804
|
</div>
|
|
724
805
|
<div class="form-row" id="divTopic">
|
|
@@ -897,7 +978,11 @@
|
|
|
897
978
|
<i class="fa fa-search"></i> <span data-i18n="knxUltimate.snippets.searchGA"></span>
|
|
898
979
|
</label>
|
|
899
980
|
<input type="text" id="node-input-knxFunctionHelperGAList"
|
|
900
|
-
data-i18n="[placeholder]knxUltimate.placeholder.search" />
|
|
981
|
+
data-i18n="[placeholder]knxUltimate.placeholder.search" style="max-width:260px;" />
|
|
982
|
+
<button type="button" class="red-ui-button" id="btn-insert-knxFunctionGA" title="Insert"
|
|
983
|
+
style="margin-left:4px;">
|
|
984
|
+
<i class="fa fa-level-down"></i>
|
|
985
|
+
</button>
|
|
901
986
|
</div>
|
|
902
987
|
|
|
903
988
|
|
|
@@ -119,8 +119,11 @@
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
}
|
|
122
|
-
})
|
|
123
|
-
|
|
122
|
+
});
|
|
123
|
+
oTopicField.on('focus.knxUltimateAlerter click.knxUltimateAlerter', function () {
|
|
124
|
+
try {
|
|
125
|
+
$(this).autocomplete('search', '');
|
|
126
|
+
} catch (error) { /* empty */ }
|
|
124
127
|
});
|
|
125
128
|
try { if (oNodeServer && oNodeServer.id) KNX_enableSecureFormatting(oTopicField, oNodeServer.id); } catch (e) {}
|
|
126
129
|
|
|
@@ -202,7 +205,7 @@
|
|
|
202
205
|
|
|
203
206
|
<div class="form-row">
|
|
204
207
|
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="knxUltimateAlerter.properties.node-input-name"></span> </label>
|
|
205
|
-
<input type="text" id="node-input-name" data-i18n="[placeholder]knxUltimateAlerter.properties.node-input-name">
|
|
208
|
+
<input type="text" id="node-input-name" data-i18n="[placeholder]knxUltimateAlerter.properties.node-input-name" style="flex:1 1 240px; min-width:240px; max-width:240px;">
|
|
206
209
|
</div>
|
|
207
210
|
|
|
208
211
|
<div class="form-row">
|
|
@@ -242,5 +245,3 @@
|
|
|
242
245
|
</div>
|
|
243
246
|
|
|
244
247
|
</script>
|
|
245
|
-
|
|
246
|
-
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
<label for="node-input-name" >
|
|
88
88
|
<i class="fa fa-tag"></i> Name
|
|
89
89
|
</label>
|
|
90
|
-
<input type="text" id="node-input-name" data-i18n="[placeholder]knxUltimateAutoResponder.node-input-name" />
|
|
90
|
+
<input type="text" id="node-input-name" data-i18n="[placeholder]knxUltimateAutoResponder.node-input-name" style="flex:1 1 240px; min-width:240px; max-width:240px;" />
|
|
91
91
|
</div>
|
|
92
92
|
|
|
93
93
|
<div class="form-row">
|
|
@@ -97,4 +97,3 @@
|
|
|
97
97
|
|
|
98
98
|
</script>
|
|
99
99
|
|
|
100
|
-
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
<i class="fa fa-tag"></i>
|
|
87
87
|
<span data-i18n="knxUltimateGlobalContext.node-input-name"></span>
|
|
88
88
|
</label>
|
|
89
|
-
<input style="width:
|
|
89
|
+
<input style="flex:1 1 240px; min-width:240px; max-width:240px;" type="text" id="node-input-name" data-i18n="[placeholder]knxUltimateGlobalContext.node-input-name" />
|
|
90
90
|
</div>
|
|
91
91
|
|
|
92
92
|
<div class="form-row">
|
|
@@ -123,4 +123,3 @@
|
|
|
123
123
|
</div>
|
|
124
124
|
|
|
125
125
|
</script>
|
|
126
|
-
|