node-red-contrib-knx-ultimate 6.2.3-beta.2 → 6.2.3-beta.4
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 +6 -4
- package/nodes/commonFunctions.js +46 -2
- package/nodes/knxUltimateHueAreaMotion.html +5 -1
- package/nodes/knxUltimateHueBattery.html +5 -1
- package/nodes/knxUltimateHueButton.html +5 -1
- package/nodes/knxUltimateHueCameraMotion.html +5 -1
- package/nodes/knxUltimateHueContactSensor.html +5 -1
- package/nodes/knxUltimateHueController.html +5 -1
- package/nodes/knxUltimateHueHumiditySensor.html +5 -1
- package/nodes/knxUltimateHueLight.html +5 -1
- package/nodes/knxUltimateHueLightSensor.html +5 -1
- package/nodes/knxUltimateHueMotion.html +5 -1
- package/nodes/knxUltimateHuePlug.html +5 -1
- package/nodes/knxUltimateHueScene.html +5 -1
- package/nodes/knxUltimateHueTapDial.html +5 -1
- package/nodes/knxUltimateHueTemperatureSensor.html +5 -1
- package/nodes/knxUltimateHueZigbeeConnectivity.html +5 -1
- package/nodes/knxUltimateHuedevice_software_update.html +5 -1
- package/nodes/locales/de/knxUltimateHueAreaMotion.html +1 -1
- package/nodes/locales/de/knxUltimateHueBattery.html +1 -1
- package/nodes/locales/de/knxUltimateHueButton.html +1 -1
- package/nodes/locales/de/knxUltimateHueCameraMotion.html +1 -1
- package/nodes/locales/de/knxUltimateHueContactSensor.html +1 -1
- package/nodes/locales/de/knxUltimateHueController.html +3 -3
- package/nodes/locales/de/knxUltimateHueController.json +7 -4
- package/nodes/locales/de/knxUltimateHueHumiditySensor.html +1 -1
- package/nodes/locales/de/knxUltimateHueLight.html +1 -1
- package/nodes/locales/de/knxUltimateHueLightSensor.html +1 -1
- package/nodes/locales/de/knxUltimateHueMotion.html +1 -1
- package/nodes/locales/de/knxUltimateHuePlug.html +1 -1
- package/nodes/locales/de/knxUltimateHueScene.html +1 -1
- package/nodes/locales/de/knxUltimateHueTapDial.html +1 -1
- package/nodes/locales/de/knxUltimateHueTemperatureSensor.html +1 -1
- package/nodes/locales/de/knxUltimateHueZigbeeConnectivity.html +1 -1
- package/nodes/locales/de/knxUltimateHuedevice_software_update.html +1 -1
- package/nodes/locales/de/matter-config.html +1 -1
- package/nodes/locales/en/knxUltimateHueAreaMotion.html +1 -1
- package/nodes/locales/en/knxUltimateHueBattery.html +1 -1
- package/nodes/locales/en/knxUltimateHueButton.html +1 -1
- package/nodes/locales/en/knxUltimateHueCameraMotion.html +1 -1
- package/nodes/locales/en/knxUltimateHueContactSensor.html +1 -1
- package/nodes/locales/en/knxUltimateHueController.html +3 -3
- package/nodes/locales/en/knxUltimateHueController.json +7 -4
- package/nodes/locales/en/knxUltimateHueHumiditySensor.html +1 -1
- package/nodes/locales/en/knxUltimateHueLight.html +1 -1
- package/nodes/locales/en/knxUltimateHueLightSensor.html +1 -1
- package/nodes/locales/en/knxUltimateHueMotion.html +1 -1
- package/nodes/locales/en/knxUltimateHuePlug.html +1 -1
- package/nodes/locales/en/knxUltimateHueScene.html +1 -1
- package/nodes/locales/en/knxUltimateHueTapDial.html +1 -1
- package/nodes/locales/en/knxUltimateHueTemperatureSensor.html +1 -1
- package/nodes/locales/en/knxUltimateHueZigbeeConnectivity.html +1 -1
- package/nodes/locales/en/knxUltimateHuedevice_software_update.html +1 -1
- package/nodes/locales/en/matter-config.html +1 -1
- package/nodes/locales/es/knxUltimateHueAreaMotion.html +1 -1
- package/nodes/locales/es/knxUltimateHueBattery.html +1 -1
- package/nodes/locales/es/knxUltimateHueButton.html +1 -1
- package/nodes/locales/es/knxUltimateHueCameraMotion.html +1 -1
- package/nodes/locales/es/knxUltimateHueContactSensor.html +1 -1
- package/nodes/locales/es/knxUltimateHueController.html +3 -3
- package/nodes/locales/es/knxUltimateHueController.json +7 -4
- package/nodes/locales/es/knxUltimateHueHumiditySensor.html +1 -1
- package/nodes/locales/es/knxUltimateHueLight.html +1 -1
- package/nodes/locales/es/knxUltimateHueLightSensor.html +1 -1
- package/nodes/locales/es/knxUltimateHueMotion.html +1 -1
- package/nodes/locales/es/knxUltimateHuePlug.html +1 -1
- package/nodes/locales/es/knxUltimateHueScene.html +1 -1
- package/nodes/locales/es/knxUltimateHueTapDial.html +1 -1
- package/nodes/locales/es/knxUltimateHueTemperatureSensor.html +1 -1
- package/nodes/locales/es/knxUltimateHueZigbeeConnectivity.html +1 -1
- package/nodes/locales/es/knxUltimateHuedevice_software_update.html +1 -1
- package/nodes/locales/es/matter-config.html +1 -1
- package/nodes/locales/fr/knxUltimateHueAreaMotion.html +1 -1
- package/nodes/locales/fr/knxUltimateHueBattery.html +1 -1
- package/nodes/locales/fr/knxUltimateHueButton.html +1 -1
- package/nodes/locales/fr/knxUltimateHueCameraMotion.html +1 -1
- package/nodes/locales/fr/knxUltimateHueContactSensor.html +1 -1
- package/nodes/locales/fr/knxUltimateHueController.html +3 -3
- package/nodes/locales/fr/knxUltimateHueController.json +7 -4
- package/nodes/locales/fr/knxUltimateHueHumiditySensor.html +1 -1
- package/nodes/locales/fr/knxUltimateHueLight.html +1 -1
- package/nodes/locales/fr/knxUltimateHueLightSensor.html +1 -1
- package/nodes/locales/fr/knxUltimateHueMotion.html +1 -1
- package/nodes/locales/fr/knxUltimateHuePlug.html +1 -1
- package/nodes/locales/fr/knxUltimateHueScene.html +1 -1
- package/nodes/locales/fr/knxUltimateHueTapDial.html +1 -1
- package/nodes/locales/fr/knxUltimateHueTemperatureSensor.html +1 -1
- package/nodes/locales/fr/knxUltimateHueZigbeeConnectivity.html +1 -1
- package/nodes/locales/fr/knxUltimateHuedevice_software_update.html +1 -1
- package/nodes/locales/fr/matter-config.html +1 -1
- package/nodes/locales/it/knxUltimateHueAreaMotion.html +1 -1
- package/nodes/locales/it/knxUltimateHueBattery.html +1 -1
- package/nodes/locales/it/knxUltimateHueButton.html +1 -1
- package/nodes/locales/it/knxUltimateHueCameraMotion.html +1 -1
- package/nodes/locales/it/knxUltimateHueContactSensor.html +1 -1
- package/nodes/locales/it/knxUltimateHueController.html +3 -3
- package/nodes/locales/it/knxUltimateHueController.json +7 -4
- package/nodes/locales/it/knxUltimateHueHumiditySensor.html +1 -1
- package/nodes/locales/it/knxUltimateHueLight.html +1 -1
- package/nodes/locales/it/knxUltimateHueLightSensor.html +1 -1
- package/nodes/locales/it/knxUltimateHueMotion.html +1 -1
- package/nodes/locales/it/knxUltimateHuePlug.html +1 -1
- package/nodes/locales/it/knxUltimateHueScene.html +1 -1
- package/nodes/locales/it/knxUltimateHueTapDial.html +1 -1
- package/nodes/locales/it/knxUltimateHueTemperatureSensor.html +1 -1
- package/nodes/locales/it/knxUltimateHueZigbeeConnectivity.html +1 -1
- package/nodes/locales/it/knxUltimateHuedevice_software_update.html +1 -1
- package/nodes/locales/it/matter-config.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueAreaMotion.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueBattery.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueButton.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueCameraMotion.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueContactSensor.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueController.html +3 -3
- package/nodes/locales/zh-CN/knxUltimateHueController.json +7 -4
- package/nodes/locales/zh-CN/knxUltimateHueHumiditySensor.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueLight.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueLightSensor.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueMotion.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHuePlug.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueScene.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueTapDial.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueTemperatureSensor.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHueZigbeeConnectivity.html +1 -1
- package/nodes/locales/zh-CN/knxUltimateHuedevice_software_update.html +1 -1
- package/nodes/locales/zh-CN/matter-config.html +1 -1
- package/nodes/matter-config.html +67 -6
- package/nodes/matter-config.js +51 -0
- package/nodes/utils/matterEngine.mjs +111 -2
- package/package.json +1 -1
- package/resources/hueControllerMigrationDialog.js +45 -40
package/CHANGELOG.md
CHANGED
|
@@ -6,16 +6,18 @@
|
|
|
6
6
|
|
|
7
7
|
# CHANGELOG
|
|
8
8
|
|
|
9
|
-
**Version 6.2.3-beta.
|
|
9
|
+
**Version 6.2.3-beta.4** - August 2026<br/>
|
|
10
10
|
|
|
11
|
-
- **
|
|
11
|
+
- **Matter Controller — live commissioning progress**: replaced the pairing overlay spinner with a milestone-based progress bar driven by the actual matter.js commissioning flow. The blocking panel now describes the active discovery, PASE, device-information, fail-safe, regulatory, time-sync, attestation, credential, access-control, CASE reconnect and completion phase in English; when exposed by the commissionee, its product name, Vendor ID and Product ID appear below the current operation. Progress polling is local to the Node-RED editor, stops with the pairing request and is isolated by operation ID across editor tabs.<br/>
|
|
12
|
+
- **HUE Controller — unified Hue API v2 node**: added one controller node covering the complete set of existing Hue functions: lights and grouped lights, plugs, buttons, Tap dial, motion and camera motion, contacts, light level, temperature, humidity, scenes, battery, Zigbee connectivity and device software update. The compact device-function selector uses one third of the available width and opens the established dedicated editor with its localized labels; KNX mapping fields are hidden whenever no **KNX Gateway** is selected, including `none`, an empty value and **Add new...**. The YouTube tutorial playlist now appears once at the top of the editor, while routine inline `form-tips` are removed from the unified UI and a compact migration privacy disclaimer remains directly below the conversion button. The migration action runs entirely inside the browser and changes only the legacy HUE nodes requiring conversion, preserving every existing property, config reference, group, position and link; no flow or node data leaves the editor and the workspace remains undeployed for user review. After a successful conversion, an editable email draft addressed to the author opens without navigating the top-level Node-RED page and contains only the converted-node count and space for optional notes; the user decides whether to send it and nothing is sent automatically. The final Node-RED message offers an optional support button, and the PayPal donation page opens only when the user clicks it. Each profile executes the same mature runtime contract, preserving KNX telegram types, Hue event/status direction, flow pins and loop protection. Runtime implementations, editor definitions, templates and all six translation catalogs are embedded as package-internal HUE Controller profiles; registration order no longer matters, the KNX and Hue gateway fields remain real config-node selectors, and the controller has no runtime or editor dependency on deprecated node types. The original Hue Light node remains unchanged. Existing dedicated Hue nodes remain fully compatible and registered, use Node-RED's special `deprecated` category so they no longer appear in the palette, retain the lighter `#E7E9F6` color and `(deprecated)` canvas suffix without changing saved names, and show a localized HUE Controller migration notice at the top of their editors.<br/>
|
|
12
13
|
- **HUE Controller — complete per-function help**: the established help of every dedicated Hue node is now incorporated under the corresponding HUE Controller function key, with an anchor index and automatic sidebar focus when the function changes. The same 15-section reference is included in the Controller wiki documentation in EN, IT, DE, FR, ES and zh-CN; legacy deprecation notices are deliberately excluded from the embedded copies.<br/>
|
|
13
14
|
- **HUE Controller — legacy-independent maintenance boundary**: private runtime profiles and the private editor/template/translation sources are now the canonical implementation of HUE Controller. Its generator and consistency check read only those private sources and never inspect the frozen legacy nodes, so future Controller fixes remain isolated and the dedicated deprecated nodes can eventually be removed without breaking either runtime or UI. Added detailed architecture and lifecycle comments around runtime constructor capture, RED facades, editor mounting, profile drafts, dynamic pins, translations and the Hue Light bootstrap path.<br/>
|
|
14
15
|
- **HUE Controller — consolidated documentation**: removed all dedicated legacy Hue nodes from the multilingual documentation home cards and HUE navigation, leaving only Hue Bridge configuration and HUE Controller. Reworked the Controller page in EN, IT, DE, FR, ES and zh-CN with a responsive visual overview, the complete 15-function capability map, common Controller behavior, a four-step setup path, optional-KNX guidance, migration details and the full per-function reference inherited from the former dedicated nodes.<br/>
|
|
15
|
-
- **HUE Controller — visible migration action**:
|
|
16
|
+
- **HUE Controller — visible migration action**: added a localized YouTube guide link immediately before every legacy-flow migration button, pointing to `https://youtu.be/f0Evf2QFI7c` in HUE Controller and all 15 legacy editors. The action uses a high-contrast orange treatment, forced white text and icon colors that cannot be overridden by Node-RED's button theme, darker hover/active states and an accessible keyboard focus ring so it remains immediately recognizable and readable in light and dark editor themes.<br/>
|
|
16
17
|
- **HUE Controller documentation routing**: added canonical Jekyll front matter and localized permalinks to every HUE Controller wiki page, fixing the GitHub Pages `404` and restoring correct links between EN, IT, DE, FR, ES and zh-CN.<br/>
|
|
17
18
|
- **Matter documentation visual refresh**: redesigned the Matter Controller, Matter Bridge configuration and Expose KNX to Matter wiki introductions in EN, IT, DE, FR, ES and zh-CN. The responsive visual overviews now surface the controller lifecycle, commissioning and backup workflow, persistent multi-fabric bridge identity, live endpoint reconciliation, the complete 17-profile device map and concise setup paths while retaining the established technical reference below.<br/>
|
|
18
|
-
- **HUE Controller — contextual migration action**: the highlighted legacy-flow migration button now appears in HUE Controller only when the Node-RED editor finds at least one registered legacy HUE node in the current flows, and the same orange action is available directly below the deprecation notice in every dedicated legacy HUE editor. All 15 legacy editors share one delegated confirmation dialog with the original pale-yellow backup warning before the fully local conversion and a separate safety notice requiring users to inspect every modified HUE node—function, configuration references, pins and wiring—before Deploy. Locked or changed flows and local conversion errors leave the workspace untouched; successful conversion creates one undoable editor change, opens an editable usage email draft without navigating away from Node-RED
|
|
19
|
+
- **HUE Controller — contextual migration action**: the highlighted legacy-flow migration button now appears in HUE Controller only when the Node-RED editor finds at least one registered legacy HUE node in the current flows, and the same orange action is available directly below the deprecation notice in every dedicated legacy HUE editor. All 15 legacy editors share one delegated confirmation dialog with the original pale-yellow backup warning before the fully local conversion and a separate safety notice requiring users to inspect every modified HUE node—function, configuration references, pins and wiring—before Deploy. Locked or changed flows and local conversion errors leave the workspace untouched; successful conversion creates one undoable editor change, opens an editable usage email draft without navigating away from Node-RED, and never deploys or sends email automatically. When these steps finish, a fixed modal Node-RED success message remains visible until the user clicks **OK**.<br/>
|
|
20
|
+
- **HUE Controller — voluntary donation action**: removed the automatic PayPal window after legacy conversion. The fixed completion message now offers a localized optional **Support KNX Ultimate** button alongside **OK**; the donation page opens in a new browser tab only after the user deliberately clicks that button, and the completion message remains available for flow-review guidance.<br/>
|
|
19
21
|
- **HUE Controller — legacy KNX mapping preservation**: fixed asynchronous DPT selectors overwriting an existing value when a converted node was inspected and saved before their options had finished loading. Conversion now treats every GA and DPT already stored by all 15 legacy HUE node types as authoritative and preserves those values unchanged; it does not infer, replace or recover missing DPTs.<br/>
|
|
20
22
|
- **HUE Controller — light capability discovery**: fixed single lights losing their Dim, Tunable White, RGB/HSV and native-effects KNX sections while the embedded Light editor was bootstrapping. Capability discovery now resolves the persisted Hue Bridge configuration instead of Node-RED's temporary `_ADD_` selector sentinel, so Hue API v2 `dimming`, `color_temperature`, `color` and `effects` capabilities enable the corresponding mappings correctly. The legacy Hue Light node remains unchanged.<br/>
|
|
21
23
|
- **HUE Controller — bounded Hue Bridge wait**: restored the Light editor's spinning-hourglass dialog while the selected Hue Bridge is still loading resources. Readiness is polled every 500 ms and the editor is always released after about 10 seconds with a localized error; Save, Cancel, Close and function changes cancel the timer. Removed the Controller wrapper overrides that had forced the wait icon hidden, and replaced the legacy global-`this` timer with strict-mode-safe private state. The legacy Hue Light node remains unchanged.<br/>
|
package/nodes/commonFunctions.js
CHANGED
|
@@ -800,18 +800,51 @@ module.exports = (RED) => {
|
|
|
800
800
|
}
|
|
801
801
|
})
|
|
802
802
|
|
|
803
|
+
// MATTER: current commissioning milestone for the blocking editor overlay.
|
|
804
|
+
// The operation id keeps simultaneous editor tabs from displaying each other's progress.
|
|
805
|
+
RED.httpAdmin.get('/KNXUltimateMatterPairProgress', RED.auth.needsPermission('matter-config.read'), (req, res) => {
|
|
806
|
+
try {
|
|
807
|
+
const matterServer = RED.nodes.getNode(req.query.serverId)
|
|
808
|
+
if (matterServer === null || matterServer === undefined) {
|
|
809
|
+
res.json({ active: false, percent: 0, error: 'PLEASE DEPLOY FIRST: then try again.' })
|
|
810
|
+
return
|
|
811
|
+
}
|
|
812
|
+
res.json(matterServer.getCommissioningProgress(req.query.operationId))
|
|
813
|
+
} catch (error) {
|
|
814
|
+
RED.log.error(`Err KNXUltimateMatterPairProgress: ${error.message}`)
|
|
815
|
+
res.json({ active: false, percent: 0, error: error.message })
|
|
816
|
+
}
|
|
817
|
+
})
|
|
818
|
+
|
|
803
819
|
// MATTER: commissions (pairs) a new Matter device using a pairing code or QR code string
|
|
804
820
|
RED.httpAdmin.get('/KNXUltimateMatterPair', RED.auth.needsPermission('matter-config.write'), async (req, res) => {
|
|
821
|
+
let matterServer
|
|
822
|
+
const requestedOperationId = String(req.query.operationId || '').replace(/[^a-zA-Z0-9_-]/g, '').slice(0, 80)
|
|
823
|
+
// Keep direct callers of the pre-progress endpoint backward compatible. The editor
|
|
824
|
+
// supplies its own id so it can poll; legacy callers receive a server-only id.
|
|
825
|
+
const operationId = requestedOperationId || `server-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`
|
|
805
826
|
try {
|
|
806
|
-
|
|
827
|
+
matterServer = RED.nodes.getNode(req.query.serverId)
|
|
807
828
|
if (matterServer === null || matterServer === undefined) {
|
|
808
829
|
res.json({ error: 'PLEASE DEPLOY FIRST: then try again.' })
|
|
809
830
|
return
|
|
810
831
|
}
|
|
811
|
-
|
|
832
|
+
if (!matterServer.beginCommissioningProgress(operationId)) {
|
|
833
|
+
res.json({ error: 'Another Matter commissioning operation is already in progress.' })
|
|
834
|
+
return
|
|
835
|
+
}
|
|
836
|
+
const nodeId = await matterServer.commission(req.query.code, {
|
|
837
|
+
targetHost: req.query.targetHost,
|
|
838
|
+
onProgress: (progress) => matterServer.reportCommissioningProgress(operationId, progress)
|
|
839
|
+
})
|
|
812
840
|
const requestedName = String(req.query.name || '').trim()
|
|
813
841
|
let renameError = null
|
|
814
842
|
if (requestedName !== '') {
|
|
843
|
+
matterServer.reportCommissioningProgress(operationId, {
|
|
844
|
+
phase: 'naming',
|
|
845
|
+
percent: 99,
|
|
846
|
+
message: 'Applying the requested device name…'
|
|
847
|
+
})
|
|
815
848
|
try {
|
|
816
849
|
await matterServer.renameCommissionedNode(nodeId, requestedName)
|
|
817
850
|
} catch (error) {
|
|
@@ -823,8 +856,19 @@ module.exports = (RED) => {
|
|
|
823
856
|
try {
|
|
824
857
|
device = matterServer.getCommissionedNodesDetails().find((item) => String(item.nodeId) === String(nodeId)) || null
|
|
825
858
|
} catch (error) { /* empty */ }
|
|
859
|
+
matterServer.endCommissioningProgress(operationId, {
|
|
860
|
+
phase: 'complete',
|
|
861
|
+
percent: 100,
|
|
862
|
+
message: 'Matter commissioning completed successfully.'
|
|
863
|
+
})
|
|
826
864
|
res.json({ nodeId, name: device?.name, productName: device?.productName, vendorName: device?.vendorName, renameError })
|
|
827
865
|
} catch (error) {
|
|
866
|
+
try {
|
|
867
|
+
matterServer?.endCommissioningProgress(operationId, {
|
|
868
|
+
phase: 'error',
|
|
869
|
+
message: `Commissioning failed: ${error.message}`
|
|
870
|
+
})
|
|
871
|
+
} catch (progressError) { /* empty */ }
|
|
828
872
|
const targetHost = req.query.targetHost ? ` targetHost=${req.query.targetHost}` : ''
|
|
829
873
|
RED.log.error(`Err KNXUltimateMatterPair:${targetHost} ${error.stack || error.message}`)
|
|
830
874
|
res.json({ error: error.message })
|
|
@@ -524,7 +524,11 @@
|
|
|
524
524
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
525
525
|
</div>
|
|
526
526
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
527
|
-
<
|
|
527
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
528
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
529
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
530
|
+
</a>
|
|
531
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
528
532
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
529
533
|
</button>
|
|
530
534
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -503,7 +503,11 @@
|
|
|
503
503
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
504
504
|
</div>
|
|
505
505
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
506
|
-
<
|
|
506
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
507
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
508
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
509
|
+
</a>
|
|
510
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
507
511
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
508
512
|
</button>
|
|
509
513
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -621,7 +621,11 @@
|
|
|
621
621
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
622
622
|
</div>
|
|
623
623
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
624
|
-
<
|
|
624
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
625
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
626
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
627
|
+
</a>
|
|
628
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
625
629
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
626
630
|
</button>
|
|
627
631
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -534,7 +534,11 @@
|
|
|
534
534
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
535
535
|
</div>
|
|
536
536
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
537
|
-
<
|
|
537
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
538
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
539
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
540
|
+
</a>
|
|
541
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
538
542
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
539
543
|
</button>
|
|
540
544
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -494,7 +494,11 @@
|
|
|
494
494
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
495
495
|
</div>
|
|
496
496
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
497
|
-
<
|
|
497
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
498
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
499
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
500
|
+
</a>
|
|
501
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
498
502
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
499
503
|
</button>
|
|
500
504
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -527,6 +527,10 @@
|
|
|
527
527
|
<a target="_blank" rel="noopener noreferrer" href="https://www.youtube.com/playlist?list=PL9Yh1bjbLAYrU8PsVhW4xzEug2WtVFv3E"><b>KNX-Ultimate video tutorials (YouTube playlist)</b></a>
|
|
528
528
|
</div>
|
|
529
529
|
<div class="form-row" id="hue-controller-migrate-legacy-flow-row" style="display:none; margin-bottom:14px;">
|
|
530
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]knxUltimateHueController.migration_video_title">
|
|
531
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
532
|
+
<span data-i18n="knxUltimateHueController.migration_video"></span>
|
|
533
|
+
</a>
|
|
530
534
|
<button type="button" id="hue-controller-migrate-legacy-flow" class="red-ui-button" data-i18n="[title]knxUltimateHueController.migration_button_title">
|
|
531
535
|
<i class="fa fa-exchange"></i>
|
|
532
536
|
<span data-i18n="knxUltimateHueController.migration_button"></span>
|
|
@@ -598,7 +602,7 @@ Node-RED intentionally excludes credentials from flow exports. When importing in
|
|
|
598
602
|
|
|
599
603
|
Each function uses its private mature runtime contract. Hue events remain status updates and are never reflected to Hue or KNX as new commands unless the selected function explicitly maps them to a KNX output. The Controller owns its Light implementation without modifying the original legacy Hue Light node.
|
|
600
604
|
|
|
601
|
-
Dedicated legacy HUE nodes remain registered for existing flows, but are frozen and receive no new features or maintenance updates. Node-RED hides their special `deprecated` category from the palette, while existing instances remain editable, deployable, lighter than HUE Controller and visibly marked `(deprecated)` on the canvas. They also show a migration notice at the top of their editor. Use HUE Controller for new work or migrate them with the fully local conversion button; afterwards, the browser opens an editable usage email draft without navigating away from Node-RED
|
|
605
|
+
Dedicated legacy HUE nodes remain registered for existing flows, but are frozen and receive no new features or maintenance updates. Node-RED hides their special `deprecated` category from the palette, while existing instances remain editable, deployable, lighter than HUE Controller and visibly marked `(deprecated)` on the canvas. They also show a migration notice at the top of their editor. Before starting, [watch the explanatory migration video on YouTube](https://youtu.be/f0Evf2QFI7c). Use HUE Controller for new work or migrate them with the fully local conversion button; afterwards, the browser opens only an editable usage email draft without navigating away from Node-RED. The email is never sent automatically. Before Deploy, inspect every modified HUE node and verify its function, configuration references, pins and wiring. A fixed Node-RED completion message remains visible until you click **OK** and offers an optional support button; the donation page opens only when that button is clicked.
|
|
602
606
|
|
|
603
607
|
When no **KNX Gateway** is selected (including **none** and **Add new...**), the KNX mapping fields are hidden. Hue resource selection and flow-only options remain available.
|
|
604
608
|
|
|
@@ -504,7 +504,11 @@
|
|
|
504
504
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
505
505
|
</div>
|
|
506
506
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
507
|
-
<
|
|
507
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
508
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
509
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
510
|
+
</a>
|
|
511
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
508
512
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
509
513
|
</button>
|
|
510
514
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -1766,7 +1766,11 @@
|
|
|
1766
1766
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
1767
1767
|
</div>
|
|
1768
1768
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
1769
|
-
<
|
|
1769
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
1770
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
1771
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
1772
|
+
</a>
|
|
1773
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
1770
1774
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
1771
1775
|
</button>
|
|
1772
1776
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -492,7 +492,11 @@
|
|
|
492
492
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
493
493
|
</div>
|
|
494
494
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
495
|
-
<
|
|
495
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
496
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
497
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
498
|
+
</a>
|
|
499
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
496
500
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
497
501
|
</button>
|
|
498
502
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -496,7 +496,11 @@
|
|
|
496
496
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
497
497
|
</div>
|
|
498
498
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
499
|
-
<
|
|
499
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
500
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
501
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
502
|
+
</a>
|
|
503
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
500
504
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
501
505
|
</button>
|
|
502
506
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -434,7 +434,11 @@
|
|
|
434
434
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
435
435
|
</div>
|
|
436
436
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
437
|
-
<
|
|
437
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
438
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
439
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
440
|
+
</a>
|
|
441
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
438
442
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
439
443
|
</button>
|
|
440
444
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -775,7 +775,11 @@
|
|
|
775
775
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
776
776
|
</div>
|
|
777
777
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
778
|
-
<
|
|
778
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
779
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
780
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
781
|
+
</a>
|
|
782
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
779
783
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
780
784
|
</button>
|
|
781
785
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -503,7 +503,11 @@
|
|
|
503
503
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
504
504
|
</div>
|
|
505
505
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
506
|
-
<
|
|
506
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
507
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
508
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
509
|
+
</a>
|
|
510
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
507
511
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
508
512
|
</button>
|
|
509
513
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -495,7 +495,11 @@
|
|
|
495
495
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
496
496
|
</div>
|
|
497
497
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
498
|
-
<
|
|
498
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
499
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
500
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
501
|
+
</a>
|
|
502
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
499
503
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
500
504
|
</button>
|
|
501
505
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -503,7 +503,11 @@
|
|
|
503
503
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
504
504
|
</div>
|
|
505
505
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
506
|
-
<
|
|
506
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
507
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
508
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
509
|
+
</a>
|
|
510
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
507
511
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
508
512
|
</button>
|
|
509
513
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -508,7 +508,11 @@
|
|
|
508
508
|
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.legacy_node_notice"></span>
|
|
509
509
|
</div>
|
|
510
510
|
<div class="form-row hue-legacy-migration-action" style="margin-top:-6px; margin-bottom:14px;">
|
|
511
|
-
<
|
|
511
|
+
<a class="hue-legacy-migration-video" href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer" style="display:inline-flex; align-items:center; gap:5px; margin-right:10px;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video_title">
|
|
512
|
+
<i class="fa fa-youtube-play" aria-hidden="true" style="color:#ff0000;"></i>
|
|
513
|
+
<span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_video"></span>
|
|
514
|
+
</a>
|
|
515
|
+
<button type="button" class="red-ui-button hue-legacy-migrate-flow" style="background:#d97706; border-color:#b45309; color:#fff !important; font-weight:700;" data-i18n="[title]node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button_title">
|
|
512
516
|
<i class="fa fa-exchange"></i> <span data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_button"></span>
|
|
513
517
|
</button>
|
|
514
518
|
<div class="form-tips hue-controller-migration-disclaimer" style="margin-top:8px;" data-i18n="node-red-contrib-knx-ultimate/knxUltimateHueController:knxUltimateHueController.migration_disclaimer"></div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script type="text/markdown" data-help-name="knxUltimateHueAreaMotion">
|
|
2
|
-
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der orange Migrationsbutton konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er einen bearbeitbaren E-Mail-Entwurf
|
|
2
|
+
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der kontrastreiche orange Migrationsbutton mit weißer Beschriftung konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er nur einen bearbeitbaren E-Mail-Entwurf. Die E-Mail wird niemals automatisch gesendet. Nach Abschluss des Vorgangs bleibt eine feste Node-RED-Meldung sichtbar, bis Sie auf OK klicken, und bietet eine optionale Unterstützungsschaltfläche; die Spendenseite öffnet sich nur nach einem Klick darauf. Sehen Sie sich vor dem Start die <a href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer">Videoanleitung auf YouTube</a> an.</p>
|
|
3
3
|
<p>Der Hue Bewegungsbereich-Node lauscht auf MotionAware-Bereichsereignisse (Hue Bridge Pro) und spiegelt den aggregierten Bewegung / keine-Bewegung-Status nach KNX bzw. in Ihren Node-RED-Flow.</p>
|
|
4
4
|
|
|
5
5
|
Geben Sie im GA-Feld (Name oder Gruppenadresse) die gewünschte KNX-GA ein; passende Einträge werden während der Eingabe vorgeschlagen.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script type="text/markdown" data-help-name="knxUltimateHueBattery">
|
|
2
|
-
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der orange Migrationsbutton konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er einen bearbeitbaren E-Mail-Entwurf
|
|
2
|
+
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der kontrastreiche orange Migrationsbutton mit weißer Beschriftung konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er nur einen bearbeitbaren E-Mail-Entwurf. Die E-Mail wird niemals automatisch gesendet. Nach Abschluss des Vorgangs bleibt eine feste Node-RED-Meldung sichtbar, bis Sie auf OK klicken, und bietet eine optionale Unterstützungsschaltfläche; die Spendenseite öffnet sich nur nach einem Klick darauf. Sehen Sie sich vor dem Start die <a href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer">Videoanleitung auf YouTube</a> an.</p>
|
|
3
3
|
<p>Dieser Node spiegelt den Batteriestand eines Hue-Geräts nach KNX und löst Ereignisse aus, sobald sich der Wert ändert.</p>
|
|
4
4
|
|
|
5
5
|
Im GA-Feld den KNX-Gerätenamen oder die Gruppenadresse eingeben; beim Tippen erscheinen Vorschläge. Über das Aktualisieren-Symbol neben "Hue Sensor" lässt sich die Geräteliste der Hue-Bridge neu laden.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script type="text/markdown" data-help-name="knxUltimateHueButton">
|
|
2
|
-
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der orange Migrationsbutton konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er einen bearbeitbaren E-Mail-Entwurf
|
|
2
|
+
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der kontrastreiche orange Migrationsbutton mit weißer Beschriftung konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er nur einen bearbeitbaren E-Mail-Entwurf. Die E-Mail wird niemals automatisch gesendet. Nach Abschluss des Vorgangs bleibt eine feste Node-RED-Meldung sichtbar, bis Sie auf OK klicken, und bietet eine optionale Unterstützungsschaltfläche; die Spendenseite öffnet sich nur nach einem Klick darauf. Sehen Sie sich vor dem Start die <a href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer">Videoanleitung auf YouTube</a> an.</p>
|
|
3
3
|
<p>Der Hue-Taster-Node spiegelt Hue-Taster-Ereignisse auf KNX und den Flow-Ausgang und nutzt das Attribut <code>button.button_report.event</code>.</p>
|
|
4
4
|
|
|
5
5
|
Tippen Sie im GA-Feld (Name oder Gruppenadresse), um die KNX-GA zu verknüpfen; passende Einträge erscheinen während der Eingabe.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script type="text/markdown" data-help-name="knxUltimateHueCameraMotion">
|
|
2
|
-
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der orange Migrationsbutton konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er einen bearbeitbaren E-Mail-Entwurf
|
|
2
|
+
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der kontrastreiche orange Migrationsbutton mit weißer Beschriftung konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er nur einen bearbeitbaren E-Mail-Entwurf. Die E-Mail wird niemals automatisch gesendet. Nach Abschluss des Vorgangs bleibt eine feste Node-RED-Meldung sichtbar, bis Sie auf OK klicken, und bietet eine optionale Unterstützungsschaltfläche; die Spendenseite öffnet sich nur nach einem Klick darauf. Sehen Sie sich vor dem Start die <a href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer">Videoanleitung auf YouTube</a> an.</p>
|
|
3
3
|
<p>Der Hue Camera Motion Node lauscht auf Bewegungsereignisse der Philips-Hue-Kameras und spiegelt den erkannt/nicht-erkannt-Status in KNX.</p>
|
|
4
4
|
|
|
5
5
|
Geben Sie im GA-Feld (Name oder Gruppenadresse) den gewünschten Wert ein; passende Geräte werden während der Eingabe vorgeschlagen.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script type="text/markdown" data-help-name="knxUltimateHueContactSensor">
|
|
2
|
-
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der orange Migrationsbutton konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er einen bearbeitbaren E-Mail-Entwurf
|
|
2
|
+
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der kontrastreiche orange Migrationsbutton mit weißer Beschriftung konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er nur einen bearbeitbaren E-Mail-Entwurf. Die E-Mail wird niemals automatisch gesendet. Nach Abschluss des Vorgangs bleibt eine feste Node-RED-Meldung sichtbar, bis Sie auf OK klicken, und bietet eine optionale Unterstützungsschaltfläche; die Spendenseite öffnet sich nur nach einem Klick darauf. Sehen Sie sich vor dem Start die <a href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer">Videoanleitung auf YouTube</a> an.</p>
|
|
3
3
|
<p>Dieser Node leitet Ereignisse eines HUE-Kontaktsensors weiter und ordnet sie KNX-Gruppenadressen zu.</p>
|
|
4
4
|
|
|
5
5
|
Tippen Sie in das Feld GA, die Name oder die Gruppenadresse Ihres KNX -Geräts, die avabaren Geräte werden beim Eingeben angezeigt.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script type="text/markdown" data-help-name="knxUltimateHueController">
|
|
2
|
-
<p><a href="https://www.youtube.com/playlist?list=PL9Yh1bjbLAYrU8PsVhW4xzEug2WtVFv3E" target="_blank" rel="noopener noreferrer"><strong>KNX-Ultimate video tutorials (YouTube playlist)</strong></a
|
|
2
|
+
<p><a href="https://www.youtube.com/playlist?list=PL9Yh1bjbLAYrU8PsVhW4xzEug2WtVFv3E" target="_blank" rel="noopener noreferrer"><strong>KNX-Ultimate video tutorials (YouTube playlist)</strong></a> Sehen Sie sich vor dem Start die <a href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer">Videoanleitung auf YouTube</a> an.</p>
|
|
3
3
|
<p><strong>HUE Controller</strong> ist der einheitliche Knoten für Hue-API-v2-Ressourcen.</p>
|
|
4
4
|
<p>Wählen Sie die Gerätefunktion und konfigurieren Sie anschließend dieselbe KNX-Zuordnung und dasselbe Verhalten wie im bewährten dedizierten Hue-Knoten.</p>
|
|
5
5
|
<p>Die Auswahl der Gerätefunktion verwendet ein Drittel der verfügbaren Breite, damit der Editor kompakt bleibt.</p>
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
<p>Bei einer einzelnen Leuchte richten sich die Bereiche <strong>Dimmen</strong>, <strong>Abstimmbares Weiß</strong>, <strong>RGB/HSV</strong> und native Effekte nach den Live-Fähigkeiten der ausgewählten Hue-API-v2-Ressource. Die zugehörigen KNX-Zuordnungen erscheinen automatisch, wenn die Leuchte <code>dimming</code>, <code>color_temperature</code> oder <code>color</code> bereitstellt.</p>
|
|
10
10
|
<p>Während die Hue Bridge ihre Ressourcen lädt, zeigt der Leuchteneditor eine animierte Sanduhr und prüft die Bereitschaft alle 500 ms. Nach etwa 10 Sekunden wird der Editor freigegeben, die Zuordnungsregister bleiben verborgen und ein lokalisierter Fehler wird angezeigt. Speichern, Schließen oder ein Funktionswechsel beendet die ausstehende Wartezeit.</p>
|
|
11
11
|
<p>Wenn ein Gateway ausgewählt ist, akzeptieren die Zuordnungsfelder eine KNX-Gruppenadresse oder einen importierten ETS-Namen; passende Datenpunkte werden von diesem Gateway geladen.</p>
|
|
12
|
-
<p>Der Migrationsbutton wird nur angezeigt, wenn der Node-RED-Editor mindestens einen Legacy-HUE-Knoten in den aktuellen Flows erkennt. Derselbe orange Button steht unter dem Deprecated-Hinweis in jedem Legacy-HUE-Editor bereit.</p>
|
|
13
|
-
<p><strong>Legacy-HUE-Knoten konvertieren</strong> führt die gesamte Konvertierung im Browser aus und sendet keinerlei Flow- oder Knotendaten. Nach erfolgreicher lokaler Konvertierung öffnet der Browser einen bearbeitbaren E-Mail-Entwurf an den Autor, ohne Node-RED zu verlassen
|
|
12
|
+
<p>Der Migrationsbutton wird nur angezeigt, wenn der Node-RED-Editor mindestens einen Legacy-HUE-Knoten in den aktuellen Flows erkennt. Derselbe kontrastreiche orange Button mit weißer Beschriftung steht unter dem Deprecated-Hinweis in jedem Legacy-HUE-Editor bereit.</p>
|
|
13
|
+
<p><strong>Legacy-HUE-Knoten konvertieren</strong> führt die gesamte Konvertierung im Browser aus und sendet keinerlei Flow- oder Knotendaten. Nach erfolgreicher lokaler Konvertierung öffnet der Browser nur einen bearbeitbaren E-Mail-Entwurf an den Autor, ohne Node-RED zu verlassen. Der Entwurf enthält nur die Anzahl konvertierter Knoten und Platz für optionale Hinweise und wird niemals automatisch gesendet. Die abschließende Node-RED-Meldung bietet eine optionale Unterstützungsschaltfläche; die Spendenseite öffnet sich nur nach einem Klick darauf.</p>
|
|
14
14
|
<p>Exportieren Sie vor dem Start eine Sicherung Ihrer Flows. Der Editor ändert ausschließlich die erkannten Legacy-HUE-Knoten in HUE-Controller-Instanzen. Vorhandene Eigenschaften, Konfigurationsreferenzen, Positionen, Gruppen und Verbindungen bleiben unverändert. Der Flow wird als geändert markiert, aber nicht automatisch deployt: Prüfen Sie ihn und klicken Sie selbst auf <strong>Deploy</strong>. Bei einem geänderten Knoten, einem gesperrten Flow oder einem lokalen Konvertierungsfehler bleibt der Flow unverändert. <strong>Sicherheitsprüfung:</strong> Prüfen Sie vor dem Deploy jeden geänderten HUE-Knoten einschließlich Funktion, Konfigurationsreferenzen, Ein-/Ausgangsanschlüssen und Verbindungen. Nach Abschluss bleibt eine feste Node-RED-Meldung sichtbar, bis Sie auf <strong>OK</strong> klicken.</p>
|
|
15
15
|
<p>Hue-Ereignisse bleiben Statusaktualisierungen und werden nicht zu neuen Hue-Befehlen. HUE Controller enthält private Profile für Runtime, Editor, Vorlagen und Übersetzungen und ist daher nicht vom Laden der veralteten Knotentypen abhängig. Der ursprüngliche Hue-Light-Knoten bleibt unverändert. Die dedizierten Hue-Knoten bleiben für bestehende Flows registriert, sind jedoch eingefroren und erhalten keine neuen Funktionen oder Wartungsupdates. Node-RED blendet ihre spezielle Kategorie <code>deprecated</code> aus der Palette aus; vorhandene Instanzen bleiben bearbeitbar und einsatzfähig, verwenden eine hellere Farbe als HUE Controller, sind auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet und zeigen oben im Editor einen Migrationshinweis.</p>
|
|
16
16
|
|
|
@@ -8,21 +8,24 @@
|
|
|
8
8
|
"legacy_node_notice": "Dieser Legacy-HUE-Knoten ist veraltet. Verwenden Sie für neue Flows den neuen HUE Controller-Knoten.",
|
|
9
9
|
"migration_button": "Legacy-HUE-Knoten konvertieren",
|
|
10
10
|
"migration_button_title": "Alle Legacy-HUE-Knoten im Editor konvertieren",
|
|
11
|
-
"
|
|
11
|
+
"migration_video": "Videoanleitung",
|
|
12
|
+
"migration_video_title": "Videoanleitung zur Legacy-HUE-Konvertierung auf YouTube ansehen",
|
|
13
|
+
"migration_disclaimer": "Die Konvertierung erfolgt vollständig im Browser. Es werden keinerlei Flow- oder Knotendaten versendet. Anschließend öffnet sich nur ein bearbeitbarer E-Mail-Entwurf; nichts wird automatisch gesendet. Die Spendenseite öffnet sich nur, wenn Sie im Abschlussfenster die optionale Unterstützungsschaltfläche wählen.",
|
|
12
14
|
"migration_title": "Legacy-HUE-Knoten konvertieren",
|
|
13
15
|
"migration_confirm": "{{count}} Legacy-HUE-Knoten werden direkt im Editor konvertiert.",
|
|
14
16
|
"migration_privacy": "Die Konvertierung erfolgt vollständig in diesem Browser. Es werden keine Flow-, Knoten-, Konfigurations-, Zugangs-, Gruppenadress- oder Verbindungsdaten übertragen oder gespeichert.",
|
|
15
|
-
"migration_email_notice": "Nach der Konvertierung öffnet Ihre E-Mail-Anwendung einen bearbeitbaren Entwurf an den Autor, ohne die Node-RED-Seite zu verlassen
|
|
17
|
+
"migration_email_notice": "Nach der Konvertierung öffnet Ihre E-Mail-Anwendung einen bearbeitbaren Entwurf an den Autor, ohne die Node-RED-Seite zu verlassen. Der Entwurf enthält nur die Anzahl der konvertierten Knoten und Platz für optionale Hinweise; nichts wird automatisch gesendet. Die abschließende Node-RED-Meldung bietet eine optionale Schaltfläche zur Unterstützung von KNX Ultimate.",
|
|
16
18
|
"migration_email_subject": "KNX Ultimate - Legacy-HUE-Konvertierung verwendet",
|
|
17
19
|
"migration_email_body": "Hallo Massimo,\n\nich habe die Konvertierungsschaltfläche für Legacy-HUE-Knoten verwendet.\nKonvertierte Legacy-HUE-Knoten: {{count}}.\n\nOptionale Hinweise:\n",
|
|
18
20
|
"migration_email_failed": "Die Knoten wurden konvertiert, aber der E-Mail-Entwurf konnte nicht geöffnet werden.",
|
|
19
|
-
"migration_donation_failed": "Die
|
|
21
|
+
"migration_donation_failed": "Die Spendenseite konnte nicht geöffnet werden. Sie können es erneut versuchen.",
|
|
20
22
|
"migration_deploy_notice": "Exportieren Sie vor dem Fortfahren eine Sicherung Ihrer Flows. Der aktuelle Editor wird geschlossen. Nur Legacy-HUE-Knoten werden geändert; Konfigurationsknoten und Verbindungen bleiben unverändert. Prüfen Sie das Ergebnis und klicken Sie anschließend selbst auf Deploy.",
|
|
21
23
|
"migration_review_notice": "Sicherheitsprüfung: Prüfen Sie nach der Konvertierung jeden geänderten HUE-Knoten im Flow. Kontrollieren Sie vor dem Deploy die gewählte Funktion, Konfigurationsreferenzen, Ein-/Ausgangsanschlüsse und Verbindungen.",
|
|
22
24
|
"migration_convert": "HUE-Knoten konvertieren",
|
|
23
25
|
"migration_close": "Abbrechen",
|
|
26
|
+
"migration_donate": "KNX Ultimate unterstützen ❤️",
|
|
24
27
|
"migration_ok": "OK",
|
|
25
|
-
"migration_success": "Vorgang abgeschlossen. {{count}} Legacy-HUE-Knoten wurden konvertiert. Prüfen Sie vor dem Deploy jeden geänderten Knoten einschließlich Funktion, Konfiguration, Anschlüssen und Verbindungen.",
|
|
28
|
+
"migration_success": "Vorgang abgeschlossen. {{count}} Legacy-HUE-Knoten wurden konvertiert. Prüfen Sie vor dem Deploy jeden geänderten Knoten einschließlich Funktion, Konfiguration, Anschlüssen und Verbindungen. Wenn Ihnen diese Konvertierung Zeit gespart hat, können Sie die weitere Entwicklung von KNX Ultimate über die optionale Schaltfläche unten unterstützen.",
|
|
26
29
|
"migration_failed": "Lokale HUE-Migration fehlgeschlagen; der Flow wurde nicht geändert:",
|
|
27
30
|
"migration_none": "Keine Legacy-HUE-Knoten gefunden.",
|
|
28
31
|
"migration_unavailable": "Das HUE-Migrationswerkzeug ist nicht verfügbar. Starten Sie Node-RED nach der Paketaktualisierung neu.",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script type="text/markdown" data-help-name="knxUltimateHueHumiditySensor">
|
|
2
|
-
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der orange Migrationsbutton konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er einen bearbeitbaren E-Mail-Entwurf
|
|
2
|
+
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der kontrastreiche orange Migrationsbutton mit weißer Beschriftung konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er nur einen bearbeitbaren E-Mail-Entwurf. Die E-Mail wird niemals automatisch gesendet. Nach Abschluss des Vorgangs bleibt eine feste Node-RED-Meldung sichtbar, bis Sie auf OK klicken, und bietet eine optionale Unterstützungsschaltfläche; die Spendenseite öffnet sich nur nach einem Klick darauf. Sehen Sie sich vor dem Start die <a href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer">Videoanleitung auf YouTube</a> an.</p>
|
|
3
3
|
<p>Dieser Knoten liest die relative Luftfeuchtigkeit (%) von einem HUE-Sensor und überträgt sie auf KNX.</p>
|
|
4
4
|
|
|
5
5
|
Beginne im GA-Feld (Name oder Gruppenadresse) zu tippen, um die KNX-GA zu verknüpfen; während der Eingabe werden passende Geräte angezeigt.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script type="text/markdown" data-help-name="knxUltimateHueLight">
|
|
2
|
-
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der orange Migrationsbutton konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er einen bearbeitbaren E-Mail-Entwurf
|
|
2
|
+
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der kontrastreiche orange Migrationsbutton mit weißer Beschriftung konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er nur einen bearbeitbaren E-Mail-Entwurf. Die E-Mail wird niemals automatisch gesendet. Nach Abschluss des Vorgangs bleibt eine feste Node-RED-Meldung sichtbar, bis Sie auf OK klicken, und bietet eine optionale Unterstützungsschaltfläche; die Spendenseite öffnet sich nur nach einem Klick darauf. Sehen Sie sich vor dem Start die <a href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer">Videoanleitung auf YouTube</a> an.</p>
|
|
3
3
|
<p>Dieser Node steuert HUE-Leuchten (einzeln oder gruppiert) und ordnet Befehle/Zustände KNX-Gruppenadressen zu.</p>
|
|
4
4
|
|
|
5
5
|
**Allgemein**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script type="text/markdown" data-help-name="knxUltimateHueLightSensor">
|
|
2
|
-
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der orange Migrationsbutton konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er einen bearbeitbaren E-Mail-Entwurf
|
|
2
|
+
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der kontrastreiche orange Migrationsbutton mit weißer Beschriftung konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er nur einen bearbeitbaren E-Mail-Entwurf. Die E-Mail wird niemals automatisch gesendet. Nach Abschluss des Vorgangs bleibt eine feste Node-RED-Meldung sichtbar, bis Sie auf OK klicken, und bietet eine optionale Unterstützungsschaltfläche; die Spendenseite öffnet sich nur nach einem Klick darauf. Sehen Sie sich vor dem Start die <a href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer">Videoanleitung auf YouTube</a> an.</p>
|
|
3
3
|
<p>Dieser Node liest Lux-Ereignisse eines HUE-Lichtsensors und spiegelt sie nach KNX.</p>
|
|
4
4
|
|
|
5
5
|
Es wird die Umgebungshelligkeit (Lux) bei Änderungen ausgegeben. Im GA-Feld den KNX-Gerätenamen oder die GA eingeben (Autocomplete), um die GA zu verknüpfen.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script type="text/markdown" data-help-name="knxUltimateHueMotion">
|
|
2
|
-
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der orange Migrationsbutton konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er einen bearbeitbaren E-Mail-Entwurf
|
|
2
|
+
<p><strong>Veraltet:</strong> Dieser dedizierte HUE-Knoten bleibt für bestehende Flows verfügbar. Verwenden Sie <strong>HUE Controller</strong> für neue Projekte. Der Legacy-Knoten ist in der Palette und auf der Arbeitsfläche mit <code>(deprecated)</code> gekennzeichnet, verwendet eine hellere Farbe als HUE Controller und sein Editor zeigt oben einen Migrationshinweis. Der kontrastreiche orange Migrationsbutton mit weißer Beschriftung konvertiert alle Legacy-HUE-Knoten lokal; anschließend öffnet er nur einen bearbeitbaren E-Mail-Entwurf. Die E-Mail wird niemals automatisch gesendet. Nach Abschluss des Vorgangs bleibt eine feste Node-RED-Meldung sichtbar, bis Sie auf OK klicken, und bietet eine optionale Unterstützungsschaltfläche; die Spendenseite öffnet sich nur nach einem Klick darauf. Sehen Sie sich vor dem Start die <a href="https://youtu.be/f0Evf2QFI7c" target="_blank" rel="noopener noreferrer">Videoanleitung auf YouTube</a> an.</p>
|
|
3
3
|
<p>Dieser Node empfängt Bewegungsereignisse eines Hue-Bewegungssensors und leitet sie an KNX bzw. den Node-RED-Flow weiter.</p>
|
|
4
4
|
|
|
5
5
|
Im GA-Feld den KNX-Gerätenamen oder die Gruppenadresse eingeben; beim Tippen erscheinen Vorschläge. Über das Aktualisieren-Symbol neben "Hue Sensor" lässt sich die Geräteliste der Hue-Bridge neu laden.
|