node-red-contrib-knx-ultimate 6.3.6 → 6.3.8
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 +9 -0
- package/nodes/hue-config.js +12 -2
- package/nodes/knxUltimateHueController.html +279 -31
- package/nodes/locales/de/knxUltimateHueController.html +8 -1
- package/nodes/locales/de/knxUltimateHueController.json +4 -1
- package/nodes/locales/en/knxUltimateHueController.html +8 -1
- package/nodes/locales/en/knxUltimateHueController.json +4 -1
- package/nodes/locales/es/knxUltimateHueController.html +8 -1
- package/nodes/locales/es/knxUltimateHueController.json +4 -1
- package/nodes/locales/fr/knxUltimateHueController.html +8 -1
- package/nodes/locales/fr/knxUltimateHueController.json +4 -1
- package/nodes/locales/it/knxUltimateHueController.html +8 -1
- package/nodes/locales/it/knxUltimateHueController.json +4 -1
- package/nodes/locales/zh-CN/knxUltimateHueController.html +8 -1
- package/nodes/locales/zh-CN/knxUltimateHueController.json +4 -1
- package/package.json +1 -1
- package/resources/hueControllerEditorSelection.js +32 -0
- package/resources/hueControllerProfiles.js +75 -29
|
@@ -5,13 +5,16 @@
|
|
|
5
5
|
},
|
|
6
6
|
"knxUltimateHueController": {
|
|
7
7
|
"device_function": "Device function",
|
|
8
|
-
"hue_section": "Philips Hue",
|
|
9
8
|
"hue_device": "Hue device",
|
|
10
9
|
"hue_device_placeholder": "Search your Hue device or resource",
|
|
10
|
+
"loading_hue_devices": "Connecting to the Hue Bridge and loading devices…",
|
|
11
|
+
"hue_bridge_unreachable": "Hue Bridge is not reachable.",
|
|
11
12
|
"device_type": "Device type",
|
|
12
13
|
"refresh_devices": "Refresh Hue devices",
|
|
13
14
|
"locate_device": "Locate selected Hue light",
|
|
14
15
|
"no_devices": "No Hue resources found. Check the Hue Bridge and press refresh.",
|
|
16
|
+
"hue_bridge_not_ready": "The Hue Bridge did not become ready. Check its connection and reopen the editor.",
|
|
17
|
+
"knx_gateway_required_for_mappings": "To display the group-address mappings, select a KNX gateway. Without one, this node can only be controlled by input messages from the flow.",
|
|
15
18
|
"legacy_node_notice": "This legacy HUE node is deprecated. Use the new HUE Controller node for new flows.",
|
|
16
19
|
"migration_button": "Convert legacy HUE nodes",
|
|
17
20
|
"migration_button_title": "Convert all legacy HUE nodes in the editor",
|
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
<p>Selecciona un dispositivo o recurso Hue. HUE Controller detecta automáticamente su tipo y abre el editor correspondiente para mapeos KNX, comportamiento y puertos del nodo.</p>
|
|
5
5
|
<p>El selector de dispositivo, la actualización y el tipo detectado comparten la misma fila compacta, como en Matter Controller.</p>
|
|
6
6
|
<p>Al hacer clic o enfocar el campo del dispositivo siempre se abre la lista completa de recursos Hue, aunque ya haya un dispositivo seleccionado. Al escribir, la lista sigue filtrándose.</p>
|
|
7
|
+
<p>Seleccionar otro recurso Hue es solo una vista previa hasta que se guarda el editor. Al pulsar <code>Cancelar</code> se restauran el dispositivo, la función y los mapeos guardados anteriormente.</p>
|
|
8
|
+
<p>El selector de dispositivos Hue permanece oculto hasta que se selecciona y conecta un Hue Bridge y se carga su catálogo de recursos. Durante la espera se muestra un indicador de carga. Al volver a poner el bridge en <code>none</code>, el indicador, el selector y el editor del dispositivo se ocultan de nuevo.</p>
|
|
9
|
+
<p>Si el nodo ya tiene un dispositivo Hue guardado, su selector permanece visible pero deshabilitado mientras el bridge seleccionado está desconectado, y las pestañas de mapeo KNX siguen disponibles. Tras 15 segundos, la etiqueta de espera indica que no se puede acceder a Hue Bridge. La búsqueda de recursos continúa en segundo plano y finalmente aparece un error rojo fijo si el bridge no llega a estar disponible.</p>
|
|
7
10
|
<p>Las filas de mapeo KNX mantienen GA, DPT y Nombre en una sola línea. Los campos DPT y Nombre usan anchos compactos; Nombre puede reducirse aún más en editores estrechos sin modificar el texto guardado. Los valores DPT guardados se conservan mientras las opciones del selector se cargan de forma asíncrona.</p>
|
|
8
11
|
<p>Admite luces y grupos de luces, enchufes, botones, Tap dial, movimiento y movimiento de cámara, contactos, nivel de luz, temperatura, humedad, escenas, batería, conectividad Zigbee y actualización de software.</p>
|
|
9
|
-
<p>Cuando no hay ningún <strong>Gateway KNX</strong> seleccionado (incluidos <code>none</code> y <em>Añadir nuevo...</em>), se ocultan
|
|
12
|
+
<p>Cuando no hay ningún <strong>Gateway KNX</strong> seleccionado (incluidos <code>none</code> y <em>Añadir nuevo...</em>), se ocultan las pestañas de mapeo de Luz; la selección del recurso Hue y las opciones exclusivas del flujo siguen disponibles. Sus campos GA, DPT y Nombre permanecen montados y conservan sus valores cuando se vuelve a seleccionar el gateway, restaurando también sin cambios el diseño vertical de las pestañas.</p>
|
|
13
|
+
<p>Los valores temporales emitidos mediante programación por Node-RED mientras se inicializan los selectores de configuración KNX y Hue no sustituyen los gateways guardados. Solo una selección explícita de <code>none</code> oculta las pestañas de mapeo de Luz.</p>
|
|
14
|
+
<p>Las pestañas de mapeo de Luz contienen únicamente los controles de configuración; se han eliminado las imágenes decorativas de Regulación, Blanco regulable y RGB.</p>
|
|
10
15
|
<p>Para una luz individual, las secciones <strong>Regulación</strong>, <strong>Blanco regulable</strong>, <strong>RGB/HSV</strong> y efectos nativos siguen las capacidades en vivo declaradas por el recurso Hue API v2 seleccionado. Los mapeos KNX correspondientes aparecen automáticamente cuando la luz expone <code>dimming</code>, <code>color_temperature</code> o <code>color</code>.</p>
|
|
11
16
|
<p>El editor de Luz muestra inmediatamente los mapeos guardados sin esperar a la caché de recursos Hue del runtime. Las capacidades actuales se cargan en segundo plano; si la solicitud falla, los mapeos y el selector de pines siguen disponibles y un error rojo fijo de Node-RED informa del fallo.</p>
|
|
12
17
|
<p>Locate y el contenedor de mapeo de Luz se inicializan antes que los widgets opcionales de Efectos y pestañas. Un gateway KNX guardado sigue siendo válido si Node-RED muestra temporalmente un selector vacío al iniciar el editor. Los fallos del navegador y un primer comando Locate rechazado generan un error rojo fijo de Node-RED con el detalle técnico, en lugar de dejar el editor en silencio.</p>
|
|
@@ -42,6 +47,8 @@
|
|
|
42
47
|
|
|
43
48
|
<p> Este nodo controla las luces de Hue Philips (single o agrupada) y mapea sus comandos/estados a KNX. </p>
|
|
44
49
|
|
|
50
|
+
<p>Sin una pasarela KNX, aparece un aviso de uso exclusivo mediante el flujo en lugar del encabezado duplicado «Philips HUE».</p>
|
|
51
|
+
|
|
45
52
|
<p><strong>Grupos de luces:</strong> cuando hay una pasarela KNX configurada, al seleccionar un <code>grouped_light</code> siempre se muestran todas las asignaciones de Interruptor, Regulación, Blanco ajustable, RGB/HSV, Efectos y Comportamiento. El editor no limita estos campos según las luces incluidas actualmente en el grupo.</p>
|
|
46
53
|
|
|
47
54
|
**General**
|
|
@@ -5,13 +5,16 @@
|
|
|
5
5
|
},
|
|
6
6
|
"knxUltimateHueController": {
|
|
7
7
|
"device_function": "Función del dispositivo",
|
|
8
|
-
"hue_section": "Philips Hue",
|
|
9
8
|
"hue_device": "Dispositivo Hue",
|
|
10
9
|
"hue_device_placeholder": "Buscar dispositivo o recurso Hue",
|
|
10
|
+
"loading_hue_devices": "Conectando con Hue Bridge y cargando los dispositivos…",
|
|
11
|
+
"hue_bridge_unreachable": "Hue Bridge no está accesible.",
|
|
11
12
|
"device_type": "Tipo de dispositivo",
|
|
12
13
|
"refresh_devices": "Actualizar dispositivos Hue",
|
|
13
14
|
"locate_device": "Localizar la luz Hue seleccionada",
|
|
14
15
|
"no_devices": "No se encontraron recursos Hue. Comprueba Hue Bridge y actualiza la lista.",
|
|
16
|
+
"hue_bridge_not_ready": "Hue Bridge no llegó a estar disponible. Comprueba la conexión y vuelve a abrir el editor.",
|
|
17
|
+
"knx_gateway_required_for_mappings": "Selecciona una pasarela KNX para mostrar las asociaciones de direcciones de grupo. Sin pasarela, este nodo solo puede controlarse mediante mensajes de entrada del flujo.",
|
|
15
18
|
"legacy_node_notice": "Este nodo HUE legacy está obsoleto. Usa el nuevo nodo HUE Controller para los flujos nuevos.",
|
|
16
19
|
"migration_button": "Convertir nodos HUE legacy",
|
|
17
20
|
"migration_button_title": "Convertir todos los nodos HUE legacy del editor",
|
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
<p>Sélectionnez un appareil ou une ressource Hue. HUE Controller détecte automatiquement son type et ouvre l'éditeur correspondant pour le mappage KNX, le comportement et les ports du nœud.</p>
|
|
5
5
|
<p>Le sélecteur d'appareil, l'actualisation et le type détecté partagent la même ligne compacte, comme dans Matter Controller.</p>
|
|
6
6
|
<p>Un clic ou le focus sur le champ de l'appareil ouvre toujours la liste complète des ressources Hue, même si un appareil est déjà sélectionné. La saisie continue de filtrer la liste.</p>
|
|
7
|
+
<p>La sélection d'une autre ressource Hue reste un aperçu tant que l'éditeur n'est pas enregistré. Appuyer sur <code>Annuler</code> restaure l'appareil, la fonction et les mappages précédemment enregistrés.</p>
|
|
8
|
+
<p>Le sélecteur d'appareil Hue reste masqué tant qu'un Hue Bridge n'est pas sélectionné, connecté et que son catalogue de ressources n'est pas chargé. Un indicateur de chargement est affiché pendant l'attente. Remettre le sélecteur du bridge sur <code>none</code> masque à nouveau l'indicateur, le sélecteur et l'éditeur de l'appareil.</p>
|
|
9
|
+
<p>Si le nœud possède déjà un appareil Hue enregistré, son sélecteur reste visible mais désactivé lorsque le bridge sélectionné est hors ligne, tandis que les onglets de mappage KNX restent disponibles. Après 15 secondes, le libellé d'attente indique que le Hue Bridge est inaccessible. La recherche des ressources continue en arrière-plan et une erreur rouge fixe finit par apparaître si le bridge ne devient pas disponible.</p>
|
|
7
10
|
<p>Les lignes de mappage KNX conservent GA, DPT et Nom sur une seule ligne. Les champs DPT et Nom utilisent des largeurs compactes ; le champ Nom peut encore se réduire dans un éditeur étroit sans modifier le texte enregistré. Les valeurs DPT enregistrées sont conservées pendant le chargement asynchrone des options du sélecteur.</p>
|
|
8
11
|
<p>Fonctions prises en charge : lampes et groupes, prises, boutons, Tap dial, mouvement et mouvement de caméra, contacts, niveau de lumière, température, humidité, scènes, batterie, connectivité Zigbee et mise à jour logicielle.</p>
|
|
9
|
-
<p>Lorsqu'aucune <strong>Passerelle KNX</strong> n'est sélectionnée (y compris <code>none</code> et <em>Ajouter...</em>), les
|
|
12
|
+
<p>Lorsqu'aucune <strong>Passerelle KNX</strong> n'est sélectionnée (y compris <code>none</code> et <em>Ajouter...</em>), les onglets de mappage Lampe sont masqués ; la sélection de la ressource Hue et les options réservées au flow restent disponibles. Leurs champs GA, DPT et Nom restent montés et conservent leurs valeurs lorsque la passerelle est à nouveau sélectionnée, tout comme la disposition verticale des onglets.</p>
|
|
13
|
+
<p>Les valeurs temporaires émises par programmation par Node-RED pendant l'initialisation des sélecteurs de configuration KNX et Hue ne remplacent pas les passerelles enregistrées. Seule une sélection explicite de <code>none</code> masque les onglets de mappage Lampe.</p>
|
|
14
|
+
<p>Les onglets de mappage Lampe contiennent uniquement les contrôles de configuration ; les images décoratives Variation, Blanc réglable et RGB ont été supprimées.</p>
|
|
10
15
|
<p>Pour une lampe individuelle, les sections <strong>Variation</strong>, <strong>Blanc réglable</strong>, <strong>RGB/HSV</strong> et effets natifs suivent les capacités live déclarées par la ressource Hue API v2 sélectionnée. Les mappages KNX correspondants apparaissent automatiquement lorsque la lampe expose <code>dimming</code>, <code>color_temperature</code> ou <code>color</code>.</p>
|
|
11
16
|
<p>L'éditeur Lampe affiche immédiatement les mappages enregistrés sans attendre le cache de ressources Hue de la runtime. Les capacités actuelles sont chargées en arrière-plan ; si la requête échoue, les mappages et le sélecteur de broches restent disponibles et une erreur Node-RED rouge et fixe signale l'échec.</p>
|
|
12
17
|
<p>Locate et le conteneur de mappage Lampe sont initialisés avant les widgets facultatifs Effets et onglets. Une passerelle KNX enregistrée reste valide si Node-RED affiche temporairement un sélecteur vide au démarrage de l'éditeur. Les erreurs du navigateur et le rejet de la première commande Locate produisent une erreur Node-RED rouge et fixe avec le détail technique, au lieu de laisser l'éditeur silencieux.</p>
|
|
@@ -42,6 +47,8 @@
|
|
|
42
47
|
|
|
43
48
|
<p> Ce nœud contrôle les lumières de Hue Philips (simple ou groupées) et mappe leurs commandes / états à KNX. </p>
|
|
44
49
|
|
|
50
|
+
<p>Sans passerelle KNX, un avis d'utilisation par le flow uniquement remplace le titre « Philips HUE » dupliqué.</p>
|
|
51
|
+
|
|
45
52
|
<p><strong>Groupes de lampes :</strong> lorsqu'une passerelle KNX est configurée, la sélection d'un <code>grouped_light</code> affiche toujours toutes les associations Interrupteur, Variation, Blanc réglable, RGB/HSV, Effets et Comportement. L'éditeur ne limite pas ces champs selon les lampes actuellement présentes dans le groupe.</p>
|
|
46
53
|
|
|
47
54
|
**Général**
|
|
@@ -5,13 +5,16 @@
|
|
|
5
5
|
},
|
|
6
6
|
"knxUltimateHueController": {
|
|
7
7
|
"device_function": "Fonction de l'appareil",
|
|
8
|
-
"hue_section": "Philips Hue",
|
|
9
8
|
"hue_device": "Appareil Hue",
|
|
10
9
|
"hue_device_placeholder": "Rechercher un appareil ou une ressource Hue",
|
|
10
|
+
"loading_hue_devices": "Connexion au Hue Bridge et chargement des appareils…",
|
|
11
|
+
"hue_bridge_unreachable": "Le Hue Bridge est inaccessible.",
|
|
11
12
|
"device_type": "Type d'appareil",
|
|
12
13
|
"refresh_devices": "Actualiser les appareils Hue",
|
|
13
14
|
"locate_device": "Localiser la lampe Hue sélectionnée",
|
|
14
15
|
"no_devices": "Aucune ressource Hue trouvée. Vérifiez le Hue Bridge et actualisez la liste.",
|
|
16
|
+
"hue_bridge_not_ready": "Le Hue Bridge n'est pas devenu disponible. Vérifiez sa connexion et rouvrez l'éditeur.",
|
|
17
|
+
"knx_gateway_required_for_mappings": "Sélectionnez une passerelle KNX pour afficher les associations d'adresses de groupe. Sans passerelle, ce nœud peut uniquement être commandé par des messages d'entrée du flow.",
|
|
15
18
|
"legacy_node_notice": "Ce nœud HUE legacy est obsolète. Utilisez le nouveau nœud HUE Controller pour les nouveaux flows.",
|
|
16
19
|
"migration_button": "Convertir les nœuds HUE legacy",
|
|
17
20
|
"migration_button_title": "Convertir tous les nœuds HUE legacy présents dans l'éditeur",
|
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
<p>Seleziona un dispositivo o una risorsa Hue. HUE Controller ne rileva automaticamente il tipo e apre l'editor corretto per mappature KNX, comportamento e pin del nodo.</p>
|
|
5
5
|
<p>Selettore del dispositivo, pulsante di aggiornamento e tipo rilevato condividono la stessa riga compatta, come nel workflow del Matter Controller.</p>
|
|
6
6
|
<p>Un click o il focus sul campo dispositivo apre sempre l'elenco completo delle risorse Hue, anche quando un dispositivo è già selezionato. Digitando, l'elenco continua a essere filtrato.</p>
|
|
7
|
+
<p>La selezione di un'altra risorsa Hue resta soltanto un'anteprima finché l'editor non viene salvato. Premendo <code>Annulla</code> vengono ripristinati il dispositivo, la funzione e le mappature salvati in precedenza.</p>
|
|
8
|
+
<p>Il selettore del dispositivo Hue resta nascosto finché Hue Bridge non è selezionato, connesso e ha caricato il catalogo delle risorse. Durante l'attesa viene mostrato un indicatore di caricamento. Riportando il bridge su <code>none</code>, indicatore, selettore ed editor del dispositivo vengono nuovamente nascosti.</p>
|
|
9
|
+
<p>Se il nodo possiede già un dispositivo Hue salvato, il relativo selettore resta visibile ma disabilitato mentre il bridge selezionato è offline, e le TAB delle mappature KNX restano disponibili. Dopo 15 secondi, l'etichetta di attesa segnala che Hue Bridge non è raggiungibile. La ricerca delle risorse continua in background e, se il bridge non diventa disponibile, compare infine un errore rosso fisso.</p>
|
|
7
10
|
<p>Le righe di mappatura KNX mantengono GA, DPT e Nome sulla stessa linea. I campi DPT e Nome usano larghezze compatte e Nome può restringersi ulteriormente negli editor più stretti senza modificare il testo memorizzato. I valori DPT salvati vengono conservati mentre le opzioni del selettore si caricano in modo asincrono.</p>
|
|
8
11
|
<p>Funzioni supportate: luci e gruppi di luci, prese, pulsanti, Tap dial, movimento e movimento telecamera, contatti, livello luce, temperatura, umidità, scene, batteria, connettività Zigbee e aggiornamento software.</p>
|
|
9
|
-
<p>Quando non è selezionato alcun <strong>Gateway KNX</strong> (inclusi <code>none</code> e <em>Aggiungi nuovo...</em>),
|
|
12
|
+
<p>Quando non è selezionato alcun <strong>Gateway KNX</strong> (inclusi <code>none</code> e <em>Aggiungi nuovo...</em>), vengono nascoste le TAB delle mappature Luce, mentre la selezione della risorsa Hue e le opzioni per il solo flow restano disponibili. I relativi campi GA, DPT e Nome rimangono montati e conservano i valori quando il gateway viene riselezionato, ripristinando invariato anche il layout verticale delle TAB.</p>
|
|
13
|
+
<p>I valori segnaposto temporanei emessi programmaticamente da Node-RED durante l'inizializzazione dei selettori KNX e Hue non sostituiscono i gateway salvati. Soltanto la selezione esplicita di <code>none</code> nasconde le TAB delle mappature Luce.</p>
|
|
14
|
+
<p>Le TAB delle mappature Luce contengono soltanto i controlli di configurazione; le immagini decorative Dimmer, Bianco regolabile e RGB sono state eliminate.</p>
|
|
10
15
|
<p>Per una luce singola, le sezioni <strong>Dimmer</strong>, <strong>Bianco regolabile</strong>, <strong>RGB/HSV</strong> ed effetti nativi seguono le capacità live dichiarate dalla risorsa Hue API v2 selezionata. Le relative mappature KNX appaiono automaticamente quando la luce espone <code>dimming</code>, <code>color_temperature</code> o <code>color</code>.</p>
|
|
11
16
|
<p>L'editor Luce mostra subito le mappature salvate senza attendere la cache delle risorse Hue del runtime. Le capability correnti vengono caricate in background; se la richiesta fallisce, mappature e selettore dei pin restano disponibili e un errore Node-RED rosso e fisso segnala il problema.</p>
|
|
12
17
|
<p>Locate e il contenitore delle mappature Luce vengono inizializzati prima dei widget opzionali Effetti e schede. Un gateway KNX salvato resta valido se Node-RED mostra temporaneamente un selettore vuoto durante l'avvio dell'editor. Gli errori del browser e il rifiuto del primo comando Locate producono un errore Node-RED rosso e fisso con il dettaglio tecnico, invece di lasciare l'editor silenzioso.</p>
|
|
@@ -42,6 +47,8 @@
|
|
|
42
47
|
|
|
43
48
|
<p>Questo nodo controlla le luci HUE (singole o raggruppate) e mappa comandi/stati su KNX.</p>
|
|
44
49
|
|
|
50
|
+
<p>Senza un gateway KNX, al posto dell'intestazione duplicata “Philips HUE” compare l'avviso per l'uso tramite input del flow.</p>
|
|
51
|
+
|
|
45
52
|
<p><strong>Gruppi di luci:</strong> quando è configurato un gateway KNX, selezionando un <code>grouped_light</code> vengono sempre mostrate tutte le mappature Switch, Dim, Tunable White, RGB/HSV, Effetti e Comportamento. L'editor non limita questi campi in base alle luci attualmente incluse nel gruppo.</p>
|
|
46
53
|
|
|
47
54
|
**Generale**
|
|
@@ -5,13 +5,16 @@
|
|
|
5
5
|
},
|
|
6
6
|
"knxUltimateHueController": {
|
|
7
7
|
"device_function": "Funzione dispositivo",
|
|
8
|
-
"hue_section": "Philips Hue",
|
|
9
8
|
"hue_device": "Dispositivo Hue",
|
|
10
9
|
"hue_device_placeholder": "Cerca il dispositivo o la risorsa Hue",
|
|
10
|
+
"loading_hue_devices": "Connessione a Hue Bridge e caricamento dei dispositivi…",
|
|
11
|
+
"hue_bridge_unreachable": "Hue Bridge non è raggiungibile.",
|
|
11
12
|
"device_type": "Tipo dispositivo",
|
|
12
13
|
"refresh_devices": "Aggiorna dispositivi Hue",
|
|
13
14
|
"locate_device": "Localizza la luce Hue selezionata",
|
|
14
15
|
"no_devices": "Nessuna risorsa Hue trovata. Controlla Hue Bridge e premi aggiorna.",
|
|
16
|
+
"hue_bridge_not_ready": "Hue Bridge non è diventato disponibile. Controlla la connessione e riapri l'editor.",
|
|
17
|
+
"knx_gateway_required_for_mappings": "Per visualizzare le associazioni con gli indirizzi di gruppo, seleziona un gateway KNX. Senza gateway, questo nodo può essere comandato soltanto tramite messaggi di input del flow.",
|
|
15
18
|
"legacy_node_notice": "Questo nodo HUE legacy è deprecato. Per i nuovi flow usa il nuovo nodo HUE Controller.",
|
|
16
19
|
"migration_button": "Converti nodi HUE legacy",
|
|
17
20
|
"migration_button_title": "Converti tutti i nodi HUE legacy presenti nell'editor",
|
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
<p>选择 Hue 设备或资源后,HUE Controller 会自动检测设备类型,并打开对应的 KNX 映射、行为和节点端口编辑器。</p>
|
|
5
5
|
<p>设备选择、刷新操作和检测到的类型显示在同一紧凑行中,与 Matter Controller 的工作流程一致。</p>
|
|
6
6
|
<p>单击设备字段或使其获得焦点时,即使已经选择了设备,也会始终打开完整的 Hue 资源列表;输入文字仍可筛选列表。</p>
|
|
7
|
+
<p>在保存编辑器之前,选择其他 Hue 资源仅作为预览。按下<code>取消</code>会恢复之前保存的设备、功能和映射。</p>
|
|
8
|
+
<p>只有在选择 Hue Bridge、成功连接并加载其资源目录后,Hue 设备选择器才会显示。等待期间会显示加载指示器。将 bridge 重新设为 <code>none</code> 时,加载指示器、设备选择器和设备编辑器会再次隐藏。</p>
|
|
9
|
+
<p>如果节点已经保存了 Hue 设备,则在所选 bridge 离线时,设备选择器仍会显示但处于禁用状态,KNX 映射选项卡仍然可用。15 秒后,等待标签会提示无法访问 Hue Bridge。资源发现会在后台继续;如果 bridge 始终未能就绪,最终会显示固定的红色错误消息。</p>
|
|
7
10
|
<p>KNX 映射行会将 GA、DPT 和名称保持在同一行。DPT 与名称字段采用紧凑宽度;在较窄的编辑器中,名称字段还可继续收缩,而不会更改已保存的文本。选择器选项异步加载时,已保存的 DPT 值会被保留。</p>
|
|
8
11
|
<p>支持灯和灯组、插座、按钮、Tap dial、运动和摄像机运动、接触、光照度、温度、湿度、场景、电池、Zigbee 连接和设备软件更新。</p>
|
|
9
|
-
<p>未选择<strong>KNX 网关</strong>时(包括 <code>none</code>
|
|
12
|
+
<p>未选择<strong>KNX 网关</strong>时(包括 <code>none</code> 和“新增...”),灯光映射选项卡会隐藏,而 Hue 资源选择和仅用于流程的选项仍然可用。相关的 GA、DPT 和名称字段会保持挂载,并在重新选择网关时保留原值,同时完整恢复垂直选项卡布局。</p>
|
|
13
|
+
<p>Node-RED 在初始化 KNX 和 Hue 配置选择器时以编程方式产生的临时占位值不会覆盖已保存的网关。只有用户明确选择 <code>none</code> 时才会隐藏灯光映射选项卡。</p>
|
|
14
|
+
<p>灯光映射选项卡现在只包含配置控件;调光、可调白光和 RGB 装饰图片已移除。</p>
|
|
10
15
|
<p>对于单灯,<strong>调光</strong>、<strong>可调白光</strong>、<strong>RGB/HSV</strong> 和原生效果部分会根据所选 Hue API v2 资源实时报告的能力显示。当灯具提供 <code>dimming</code>、<code>color_temperature</code> 或 <code>color</code> 时,相应的 KNX 映射会自动出现。</p>
|
|
11
16
|
<p>灯光编辑器会立即显示已保存的映射,而无需等待运行时 Hue 资源缓存。当前能力在后台加载;如果请求失败,映射和引脚选择器仍然可用,并由固定的红色 Node-RED 错误消息报告失败。</p>
|
|
12
17
|
<p>Locate 和灯光映射容器会先于可选的效果与选项卡控件初始化。如果编辑器启动时 Node-RED 暂时显示空的网关选择值,已保存的 KNX 网关仍保持有效。浏览器端错误或首次 Locate 命令被拒绝时,Node-RED 会显示固定的红色错误消息和技术详情,而不会让编辑器无提示地保持沉默。</p>
|
|
@@ -42,6 +47,8 @@
|
|
|
42
47
|
|
|
43
48
|
<p>此节点使您可以控制飞利浦色调灯和分组的灯光,还可以将此灯的状态发送到KNX巴士。</p>
|
|
44
49
|
|
|
50
|
+
<p>未选择 KNX 网关时,将以仅通过流程输入使用的提示替换重复的“Philips HUE”标题。</p>
|
|
51
|
+
|
|
45
52
|
<p><strong>灯组:</strong>配置 KNX 网关后,选择 <code>grouped_light</code> 将始终显示完整的开关、调光、可调白光、RGB/HSV、效果和行为映射。编辑器不会根据灯组当前包含的灯具限制这些字段。</p>
|
|
46
53
|
|
|
47
54
|
**一般的**
|
|
@@ -5,13 +5,16 @@
|
|
|
5
5
|
},
|
|
6
6
|
"knxUltimateHueController": {
|
|
7
7
|
"device_function": "设备功能",
|
|
8
|
-
"hue_section": "Philips Hue",
|
|
9
8
|
"hue_device": "Hue 设备",
|
|
10
9
|
"hue_device_placeholder": "搜索 Hue 设备或资源",
|
|
10
|
+
"loading_hue_devices": "正在连接 Hue Bridge 并加载设备…",
|
|
11
|
+
"hue_bridge_unreachable": "无法访问 Hue Bridge。",
|
|
11
12
|
"device_type": "设备类型",
|
|
12
13
|
"refresh_devices": "刷新 Hue 设备",
|
|
13
14
|
"locate_device": "定位所选 Hue 灯",
|
|
14
15
|
"no_devices": "未找到 Hue 资源。请检查 Hue Bridge 并刷新列表。",
|
|
16
|
+
"hue_bridge_not_ready": "Hue Bridge 未能就绪。请检查连接并重新打开编辑器。",
|
|
17
|
+
"knx_gateway_required_for_mappings": "要显示组地址关联,请选择 KNX 网关。未选择网关时,此节点只能通过流程输入消息进行控制。",
|
|
15
18
|
"legacy_node_notice": "此旧版 HUE 节点已弃用。新流程请使用新的 HUE Controller 节点。",
|
|
16
19
|
"migration_button": "转换旧版 HUE 节点",
|
|
17
20
|
"migration_button_title": "转换编辑器中的所有旧版 HUE 节点",
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"engines": {
|
|
4
4
|
"node": ">=20.18.1"
|
|
5
5
|
},
|
|
6
|
-
"version": "6.3.
|
|
6
|
+
"version": "6.3.8",
|
|
7
7
|
"description": "KNX Ultimate is the most advanced KNX integration for Node-RED, providing secure KNX/IP communication, routing, ETS project import, Philips Hue, Matter Controller and Matter Bridge (control matter device via KNX and expose KNX GA via Matter), MQTT, diagnostics with AI, virtual devices, and powerful automation nodes. Build professional, reliable, and scalable smart home and building automation projects with minimal effort.",
|
|
8
8
|
"files": [
|
|
9
9
|
"nodes/",
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
(function (root, factory) {
|
|
2
|
+
const api = factory()
|
|
3
|
+
if (typeof module === 'object' && module.exports) module.exports = api
|
|
4
|
+
if (root) root.KNXUltimateHueControllerEditorSelection = api
|
|
5
|
+
}(typeof window !== 'undefined' ? window : globalThis, function () {
|
|
6
|
+
const DEFAULT_EMPTY_VALUES = new Set(['', 'none', '_add_', '__none__'])
|
|
7
|
+
|
|
8
|
+
function normalizeSelection (value, emptyValues = DEFAULT_EMPTY_VALUES) {
|
|
9
|
+
const normalized = value === undefined || value === null ? '' : String(value).trim()
|
|
10
|
+
const normalizedEmptyValues = emptyValues instanceof Set
|
|
11
|
+
? emptyValues
|
|
12
|
+
: new Set(Array.isArray(emptyValues) ? emptyValues : DEFAULT_EMPTY_VALUES)
|
|
13
|
+
return normalizedEmptyValues.has(normalized.toLowerCase()) ? '' : normalized
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function shouldPreserveStoredSelection (event, nextValue, storedValue, emptyValues = DEFAULT_EMPTY_VALUES) {
|
|
17
|
+
const programmaticChange = !event || !event.originalEvent
|
|
18
|
+
return programmaticChange &&
|
|
19
|
+
normalizeSelection(nextValue, emptyValues) === '' &&
|
|
20
|
+
normalizeSelection(storedValue, emptyValues) !== ''
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function resolveSelectedOrStoredSelection (selectedValue, storedValue, emptyValues = DEFAULT_EMPTY_VALUES) {
|
|
24
|
+
return normalizeSelection(selectedValue, emptyValues) || normalizeSelection(storedValue, emptyValues)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
normalizeSelection,
|
|
29
|
+
resolveSelectedOrStoredSelection,
|
|
30
|
+
shouldPreserveStoredSelection
|
|
31
|
+
}
|
|
32
|
+
}))
|