node-red-contrib-knx-ultimate 5.0.4 → 5.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/nodes/commonFunctions.js +93 -0
- package/nodes/icons/node-matter-icon.svg +12 -0
- package/nodes/knxUltimateMatterBridge.html +342 -0
- package/nodes/knxUltimateMatterBridge.js +313 -0
- package/nodes/knxUltimateMatterDevice.html +632 -0
- package/nodes/knxUltimateMatterDevice.js +308 -0
- package/nodes/locales/de/knxUltimateMatterBridge.html +53 -0
- package/nodes/locales/de/knxUltimateMatterBridge.json +83 -0
- package/nodes/locales/de/knxUltimateMatterDevice.html +56 -0
- package/nodes/locales/de/knxUltimateMatterDevice.json +109 -0
- package/nodes/locales/de/matter-config.html +25 -0
- package/nodes/locales/de/matter-config.json +26 -0
- package/nodes/locales/de/matterbridge-config.html +34 -0
- package/nodes/locales/de/matterbridge-config.json +20 -0
- package/nodes/locales/en/knxUltimateMatterBridge.html +53 -0
- package/nodes/locales/en/knxUltimateMatterBridge.json +83 -0
- package/nodes/locales/en/knxUltimateMatterDevice.html +56 -0
- package/nodes/locales/en/knxUltimateMatterDevice.json +109 -0
- package/nodes/locales/en/matter-config.html +25 -0
- package/nodes/locales/en/matter-config.json +26 -0
- package/nodes/locales/en/matterbridge-config.html +34 -0
- package/nodes/locales/en/matterbridge-config.json +20 -0
- package/nodes/locales/es/knxUltimateMatterBridge.html +53 -0
- package/nodes/locales/es/knxUltimateMatterBridge.json +83 -0
- package/nodes/locales/es/knxUltimateMatterDevice.html +56 -0
- package/nodes/locales/es/knxUltimateMatterDevice.json +109 -0
- package/nodes/locales/es/matter-config.html +25 -0
- package/nodes/locales/es/matter-config.json +26 -0
- package/nodes/locales/es/matterbridge-config.html +34 -0
- package/nodes/locales/es/matterbridge-config.json +20 -0
- package/nodes/locales/fr/knxUltimateMatterBridge.html +53 -0
- package/nodes/locales/fr/knxUltimateMatterBridge.json +83 -0
- package/nodes/locales/fr/knxUltimateMatterDevice.html +56 -0
- package/nodes/locales/fr/knxUltimateMatterDevice.json +109 -0
- package/nodes/locales/fr/matter-config.html +25 -0
- package/nodes/locales/fr/matter-config.json +26 -0
- package/nodes/locales/fr/matterbridge-config.html +34 -0
- package/nodes/locales/fr/matterbridge-config.json +20 -0
- package/nodes/locales/it/knxUltimateMatterBridge.html +53 -0
- package/nodes/locales/it/knxUltimateMatterBridge.json +83 -0
- package/nodes/locales/it/knxUltimateMatterDevice.html +56 -0
- package/nodes/locales/it/knxUltimateMatterDevice.json +109 -0
- package/nodes/locales/it/matter-config.html +25 -0
- package/nodes/locales/it/matter-config.json +26 -0
- package/nodes/locales/it/matterbridge-config.html +34 -0
- package/nodes/locales/it/matterbridge-config.json +20 -0
- package/nodes/locales/zh-CN/knxUltimateMatterBridge.html +53 -0
- package/nodes/locales/zh-CN/knxUltimateMatterBridge.json +83 -0
- package/nodes/locales/zh-CN/knxUltimateMatterDevice.html +56 -0
- package/nodes/locales/zh-CN/knxUltimateMatterDevice.json +109 -0
- package/nodes/locales/zh-CN/matter-config.html +25 -0
- package/nodes/locales/zh-CN/matter-config.json +26 -0
- package/nodes/locales/zh-CN/matterbridge-config.html +34 -0
- package/nodes/locales/zh-CN/matterbridge-config.json +20 -0
- package/nodes/matter-config.html +226 -0
- package/nodes/matter-config.js +242 -0
- package/nodes/matterbridge-config.html +121 -0
- package/nodes/matterbridge-config.js +220 -0
- package/nodes/utils/matterBridgeDeviceFactory.mjs +511 -0
- package/nodes/utils/matterBridgeEngine.mjs +290 -0
- package/nodes/utils/matterEngine.mjs +475 -0
- package/nodes/utils/matterKnxConverter.js +204 -0
- package/package.json +8 -2
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="knxUltimateMatterDevice">
|
|
2
|
+
# Dispositivo Matter (BETA)
|
|
3
|
+
|
|
4
|
+
> Este nodo está en **BETA**: funciona, pero algunos detalles pueden cambiar entre versiones.
|
|
5
|
+
|
|
6
|
+
## Descripción general
|
|
7
|
+
|
|
8
|
+
El nodo Matter Device hace de puente entre un **dispositivo Matter** y las **direcciones de grupo KNX**. El nodo opera a través del nodo de configuración *Controlador Matter*, que comisiona los dispositivos en su propia fabric Matter.
|
|
9
|
+
|
|
10
|
+
- **Controla** cualquier dispositivo Matter emparejado desde el bus KNX (on/off, regulación, persianas, termostatos, cerraduras, ...).
|
|
11
|
+
- **Sigue** cada atributo del dispositivo en direcciones de grupo KNX (estados, sensores, medición de potencia, batería...).
|
|
12
|
+
- Totalmente genérico: la lista de mapeos se construye a partir de los **endpoints/clústeres reales** que expone el dispositivo.
|
|
13
|
+
|
|
14
|
+
## Configuración
|
|
15
|
+
|
|
16
|
+
|Campo|Descripción|
|
|
17
|
+
|--|--|
|
|
18
|
+
| GW KNX | Gateway KNX usado para los telegramas |
|
|
19
|
+
| Ctrl Matter | El nodo de configuración Controlador Matter (donde se emparejan los dispositivos) |
|
|
20
|
+
| Dispositivo | Elige el dispositivo Matter emparejado desde el autocompletado |
|
|
21
|
+
| Mapeos | Una fila por cada mapeo dirección de grupo ↔ clúster Matter |
|
|
22
|
+
| Leer estado al inicio | Si está activo, el nodo emite los valores actuales en caché al hacer deploy/conectar |
|
|
23
|
+
| PINes de entrada/salida | Habilita los pines de Node-RED para el acceso Matter en bruto |
|
|
24
|
+
|
|
25
|
+
## Mapeos
|
|
26
|
+
|
|
27
|
+
La lista de destinos muestra las funciones soportadas con nombres comprensibles como *"Interruptor On/Off"* o *"Potencia instantánea (W)"*, filtradas según lo que el dispositivo realmente expone y con el valor actual entre corchetes.
|
|
28
|
+
|
|
29
|
+
Cada fila de mapeo tiene una **dirección**:
|
|
30
|
+
|
|
31
|
+
- **KNX → Matter (comando)**: un telegrama recibido en la dirección de grupo invoca un comando del clúster Matter o escribe un atributo. Ejemplo: GA `1/1/1` DPT 1.001 → `OnOff.on/off` (el valor booleano elige automáticamente on u off).
|
|
32
|
+
- **Matter → KNX (estado)**: cuando cambia el atributo Matter suscrito, su valor se convierte y se escribe en la dirección de grupo. Las peticiones `GroupValue_Read` se responden con el valor en caché.
|
|
33
|
+
|
|
34
|
+
Los clústeres más comunes se convierten automáticamente en valores aptos para KNX:
|
|
35
|
+
|
|
36
|
+
|Clúster|Conversión|
|
|
37
|
+
|--|--|
|
|
38
|
+
| OnOff | booleano (DPT 1.001) |
|
|
39
|
+
| LevelControl | 0-254 ↔ porcentaje (DPT 5.001) |
|
|
40
|
+
| WindowCovering | percent100ths ↔ porcentaje (DPT 5.001), subir/bajar (DPT 1.008) |
|
|
41
|
+
| ColorControl | mireds ↔ Kelvin (DPT 7.600) |
|
|
42
|
+
| Thermostat | centi-°C ↔ °C (DPT 9.001) |
|
|
43
|
+
| Temperatura/Humedad | centi-unidades ↔ unidades (DPT 9.001/9.007) |
|
|
44
|
+
| Iluminancia | escala logarítmica ↔ Lux (DPT 9.004) |
|
|
45
|
+
| PowerSource | medio-porcentaje ↔ porcentaje de batería (DPT 5.001) |
|
|
46
|
+
| Potencia/Energía eléctrica | mW ↔ W (DPT 14.056), mWh ↔ kWh (DPT 13.013) |
|
|
47
|
+
|
|
48
|
+
Los demás clústeres/atributos pasan sin conversión; el DPT elegido realiza la codificación KNX final.
|
|
49
|
+
|
|
50
|
+
## PINes del nodo
|
|
51
|
+
|
|
52
|
+
Si habilitas los PINes del nodo:
|
|
53
|
+
|
|
54
|
+
- **Entrada**: envía comandos en bruto: `msg.payload = { endpointId: 1, clusterId: 6, command: "toggle" }` o escrituras de atributos: `msg.payload = { endpointId: 1, clusterId: 8, attribute: "onLevel", value: 128 }`
|
|
55
|
+
- **Salida**: recibe cada cambio de atributo (`msg.matter` contiene el evento completo) y cada evento de clúster (pulsaciones de botones, etc.).
|
|
56
|
+
</script>
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"knxUltimateMatterDevice": {
|
|
3
|
+
"title": "Dispositivo Matter (BETA)",
|
|
4
|
+
"paletteLabel": "Matter Device (BETA)",
|
|
5
|
+
"matter_controller": "Ctrl Matter",
|
|
6
|
+
"matter_device": "Dispositivo",
|
|
7
|
+
"device_placeholder": "Haz clic para elegir un dispositivo Matter emparejado",
|
|
8
|
+
"mapping_help": "Añade una fila por cada mapeo. \"KNX → Matter\" invoca un comando del clúster (o escribe un atributo) cuando llega un telegrama a la dirección de grupo. \"Matter → KNX\" escribe el valor del atributo en la dirección de grupo cada vez que cambia (las peticiones de lectura se responden con el valor en caché).",
|
|
9
|
+
"select_target": "-- selecciona el destino Matter --",
|
|
10
|
+
"stored_target": "Guardado",
|
|
11
|
+
"read_status_startup": "Leer estado al inicio",
|
|
12
|
+
"opt_yes_emit": "Sí, y emitir telegramas KNX.",
|
|
13
|
+
"opt_no": "No",
|
|
14
|
+
"node_pins": "PINes de entrada/salida del nodo",
|
|
15
|
+
"node_pins_hide": "Ocultar",
|
|
16
|
+
"node_pins_show": "Mostrar PINes de entrada/salida",
|
|
17
|
+
"direction": {
|
|
18
|
+
"command": "KNX → Matter (comando)",
|
|
19
|
+
"status": "Matter → KNX (estado)"
|
|
20
|
+
},
|
|
21
|
+
"fields": {
|
|
22
|
+
"direction": "Dirección",
|
|
23
|
+
"target": "Endpoint / clúster / destino Matter",
|
|
24
|
+
"ga": "Dirección de grupo",
|
|
25
|
+
"dpt": "DPT",
|
|
26
|
+
"ganame": "Nombre"
|
|
27
|
+
},
|
|
28
|
+
"no_simple_targets": "No se encontraron funciones compatibles en este dispositivo (o el dispositivo aún no está conectado).",
|
|
29
|
+
"endpoint": "Endpoint",
|
|
30
|
+
"friendly": {
|
|
31
|
+
"onoff_switch": "Interruptor On/Off (encender/apagar)",
|
|
32
|
+
"onoff_toggle": "Invertir estado (toggle)",
|
|
33
|
+
"onoff_state": "Estado On/Off",
|
|
34
|
+
"level_set": "Ajustar brillo / nivel (%)",
|
|
35
|
+
"level_state": "Brillo / nivel actual (%)",
|
|
36
|
+
"colortemp_set": "Ajustar temperatura de color (Kelvin)",
|
|
37
|
+
"colortemp_state": "Temperatura de color actual (Kelvin)",
|
|
38
|
+
"cover_updown": "Persiana Subir/Bajar",
|
|
39
|
+
"cover_stop": "Persiana Stop",
|
|
40
|
+
"cover_position_set": "Mover persiana a posición (%)",
|
|
41
|
+
"cover_position_state": "Posición actual de la persiana (%)",
|
|
42
|
+
"cover_tilt_set": "Inclinar lamas (%)",
|
|
43
|
+
"cover_tilt_state": "Inclinación actual de lamas (%)",
|
|
44
|
+
"thermo_localtemp": "Temperatura ambiente (°C)",
|
|
45
|
+
"thermo_heatsp_set": "Ajustar consigna calefacción (°C)",
|
|
46
|
+
"thermo_coolsp_set": "Ajustar consigna refrigeración (°C)",
|
|
47
|
+
"thermo_heatsp_state": "Consigna calefacción (°C)",
|
|
48
|
+
"thermo_coolsp_state": "Consigna refrigeración (°C)",
|
|
49
|
+
"fan_speed_set": "Ajustar velocidad ventilador (%)",
|
|
50
|
+
"fan_speed_state": "Velocidad actual ventilador (%)",
|
|
51
|
+
"lock_cmd": "Bloquear/Desbloquear cerradura",
|
|
52
|
+
"lock_state": "Estado cerradura (bloqueada)",
|
|
53
|
+
"temp_measured": "Temperatura medida (°C)",
|
|
54
|
+
"humidity_measured": "Humedad relativa (%)",
|
|
55
|
+
"illuminance_measured": "Iluminancia (Lux)",
|
|
56
|
+
"occupancy_state": "Presencia detectada",
|
|
57
|
+
"contact_state": "Estado contacto (cerrado/abierto)",
|
|
58
|
+
"battery_percent": "Nivel de batería (%)",
|
|
59
|
+
"power_active": "Potencia instantánea (W)",
|
|
60
|
+
"power_voltage": "Tensión (V)",
|
|
61
|
+
"power_current": "Corriente (A)",
|
|
62
|
+
"energy_imported": "Energía consumida (kWh)",
|
|
63
|
+
"identify_cmd": "Identificar dispositivo (parpadeo)",
|
|
64
|
+
"switch_position": "Posición del botón"
|
|
65
|
+
},
|
|
66
|
+
"devtype": {
|
|
67
|
+
"onofflight": "Luz On/Off",
|
|
68
|
+
"dimmablelight": "Luz regulable",
|
|
69
|
+
"colortemperaturelight": "Luz de temperatura de color",
|
|
70
|
+
"extendedcolorlight": "Luz de color",
|
|
71
|
+
"onoffpluginunit": "Enchufe (on/off)",
|
|
72
|
+
"dimmablepluginunit": "Enchufe (regulable)",
|
|
73
|
+
"smartplug": "Enchufe inteligente",
|
|
74
|
+
"contactsensor": "Sensor de contacto",
|
|
75
|
+
"lightsensor": "Sensor de luz",
|
|
76
|
+
"occupancysensor": "Sensor de presencia",
|
|
77
|
+
"temperaturesensor": "Sensor de temperatura",
|
|
78
|
+
"humiditysensor": "Sensor de humedad",
|
|
79
|
+
"pressuresensor": "Sensor de presión",
|
|
80
|
+
"flowsensor": "Sensor de caudal",
|
|
81
|
+
"doorlock": "Cerradura",
|
|
82
|
+
"windowcovering": "Persiana/Cortina",
|
|
83
|
+
"thermostat": "Termostato",
|
|
84
|
+
"fan": "Ventilador",
|
|
85
|
+
"genericswitch": "Botón/Interruptor",
|
|
86
|
+
"airqualitysensor": "Sensor de calidad del aire",
|
|
87
|
+
"smokecoalarm": "Alarma humo/CO",
|
|
88
|
+
"waterleakdetector": "Detector de fugas de agua",
|
|
89
|
+
"roomairconditioner": "Aire acondicionado",
|
|
90
|
+
"airpurifier": "Purificador de aire",
|
|
91
|
+
"speaker": "Altavoz",
|
|
92
|
+
"pumpcontroller": "Bomba",
|
|
93
|
+
"onofflightswitch": "Interruptor de luz",
|
|
94
|
+
"dimmerswitch": "Interruptor regulador",
|
|
95
|
+
"colordimmerswitch": "Interruptor regulador de color",
|
|
96
|
+
"powersource": "Alimentación",
|
|
97
|
+
"electricalsensor": "Sensor eléctrico",
|
|
98
|
+
"bridgednode": "Dispositivo puenteado",
|
|
99
|
+
"aggregator": "Bridge/Agregador",
|
|
100
|
+
"rootnode": "Nodo raíz"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"common": {
|
|
104
|
+
"ga": "GA",
|
|
105
|
+
"dpt": "DPT",
|
|
106
|
+
"name": "Nombre",
|
|
107
|
+
"knx_gw": "GW KNX"
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="matter-config">
|
|
2
|
+
# Controlador Matter
|
|
3
|
+
|
|
4
|
+
## Descripción general
|
|
5
|
+
|
|
6
|
+
Este nodo de configuración es un **controlador Matter** completo: crea su propia *fabric* Matter y empareja (comisiona) tus dispositivos Matter. Los dispositivos emparejados quedan disponibles para los nodos **Matter Device**, que los mapean a direcciones de grupo KNX.
|
|
7
|
+
|
|
8
|
+
El controlador se comunica con los dispositivos a través de la **red IP** (WiFi, Ethernet o Thread mediante un border router). El emparejamiento por Bluetooth no está soportado: el dispositivo debe estar ya accesible en la red.
|
|
9
|
+
|
|
10
|
+
## Emparejar un dispositivo
|
|
11
|
+
|
|
12
|
+
1. Haz primero el **deploy** de este nodo de configuración (el controlador debe estar en ejecución).
|
|
13
|
+
2. Vuelve a abrir el nodo e introduce el **código de emparejamiento**: el código manual de 11 dígitos (p.ej. `3497-011-2332`) o el contenido del código QR (`MT:....`).
|
|
14
|
+
3. Pulsa **EMPAREJAR**. El comisionado puede tardar hasta un minuto.
|
|
15
|
+
|
|
16
|
+
Si el dispositivo es nuevo de fábrica y solo admite emparejamiento por Bluetooth, emparéjalo primero con la app del fabricante o con otro controlador Matter (Alexa, Google Home, Apple Home) y usa después su función **"compartir / emparejar con otro hub"** para generar un nuevo código para KNX-Ultimate. Así el dispositivo se une a varias fabrics a la vez.
|
|
17
|
+
|
|
18
|
+
## Almacenamiento
|
|
19
|
+
|
|
20
|
+
Las credenciales de la fabric y los dispositivos emparejados se guardan en la carpeta `knxultimatestorage/matter` dentro del directorio de usuario de Node-RED. Borrar esa carpeta elimina todos los emparejamientos.
|
|
21
|
+
|
|
22
|
+
## Eliminar un dispositivo
|
|
23
|
+
|
|
24
|
+
Usa el botón de la papelera en la lista de dispositivos emparejados. El controlador intenta retirar el dispositivo correctamente; si no está accesible, se elimina igualmente de la fabric (puede ser necesario un reset de fábrica del dispositivo).
|
|
25
|
+
</script>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"matter-config": {
|
|
3
|
+
"properties": {
|
|
4
|
+
"title": "Controlador Matter",
|
|
5
|
+
"intro": "Este nodo es un controlador Matter (con su propia fabric). Empareja aquí tus dispositivos Matter y usa el nodo \"Matter Device\" para mapearlos a direcciones de grupo KNX. Haz deploy primero y vuelve aquí para emparejar dispositivos.",
|
|
6
|
+
"node-config-input-name": "Nombre",
|
|
7
|
+
"fabric_label": "Etiqueta de fabric",
|
|
8
|
+
"pairing_title": "Emparejar un nuevo dispositivo",
|
|
9
|
+
"pairing_help": "Introduce el código de emparejamiento manual de 11 dígitos (p.ej. 3497-011-2332) o el contenido del código QR (MT:....). El dispositivo debe estar accesible en la red IP (WiFi/Ethernet o Thread mediante border router). Si ya está emparejado con otro controlador (Alexa, Google, Apple), usa su función \"compartir/emparejar con otro hub\" para obtener un nuevo código.",
|
|
10
|
+
"pairing_code": "Código de emparejamiento",
|
|
11
|
+
"pair_button": "EMPAREJAR",
|
|
12
|
+
"devices_title": "Dispositivos emparejados",
|
|
13
|
+
"col_name": "Nombre",
|
|
14
|
+
"col_product": "Producto",
|
|
15
|
+
"col_state": "Estado",
|
|
16
|
+
"no_devices": "Aún no hay dispositivos emparejados.",
|
|
17
|
+
"unpair_confirm": "Eliminar (retirar) el dispositivo",
|
|
18
|
+
"unpair_ok": "Dispositivo eliminado.",
|
|
19
|
+
"deploy_first": "Haz deploy de este nodo de configuración primero e inténtalo de nuevo.",
|
|
20
|
+
"pairing_code_missing": "Introduce un código de emparejamiento.",
|
|
21
|
+
"pairing_wait": "Emparejamiento en curso. Puede tardar hasta un minuto...",
|
|
22
|
+
"pairing_failed": "Emparejamiento fallido",
|
|
23
|
+
"pairing_ok": "¡Dispositivo emparejado correctamente!"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="matterbridge-config">
|
|
2
|
+
# Bridge Matter (BETA)
|
|
3
|
+
|
|
4
|
+
> Este nodo está en **BETA**: funciona, pero algunos detalles pueden cambiar entre versiones.
|
|
5
|
+
|
|
6
|
+
## Descripción general
|
|
7
|
+
|
|
8
|
+
Este nodo de configuración es el **bridge Matter en sí**: ejecuta el servidor Matter que Alexa, Google Home, Apple Home (o cualquier controlador Matter) emparejan **una sola vez**. Cada nodo **Matter Bridge device** de tus flows apunta aquí y aparece en las apps como un dispositivo del bridge.
|
|
9
|
+
|
|
10
|
+
## Configuración
|
|
11
|
+
|
|
12
|
+
|Campo|Descripción|
|
|
13
|
+
|--|--|
|
|
14
|
+
| Nombre | El nombre de este nodo de configuración en Node-RED |
|
|
15
|
+
| Nombre del bridge Matter | Cómo se llama el bridge en las apps Matter |
|
|
16
|
+
| Puerto | Puerto UDP del servidor Matter (por defecto 5540). Cada bridge necesita su propio puerto, por lo que puedes ejecutar **varios bridges independientes** |
|
|
17
|
+
|
|
18
|
+
## Emparejamiento
|
|
19
|
+
|
|
20
|
+
1. Haz **deploy**, espera unos segundos y vuelve a abrir este nodo.
|
|
21
|
+
2. El panel de emparejamiento muestra el **código QR** y el **código manual**: escanéalo o escríbelo en Alexa / Google Home / Apple Home ("añadir dispositivo Matter").
|
|
22
|
+
3. Se pueden emparejar varios controladores con el mismo bridge (multi-fabric Matter).
|
|
23
|
+
|
|
24
|
+
El botón **Restablecer emparejamiento** elimina todos los controladores emparejados y reinicia el anuncio de emparejamiento.
|
|
25
|
+
|
|
26
|
+
## Identidad y almacenamiento
|
|
27
|
+
|
|
28
|
+
La identidad del bridge está ligada a este nodo de configuración y se guarda en `knxultimatestorage/matter` dentro del directorio de usuario de Node-RED: los re-deploys (incluso cambiando puerto o nombre) **NO** requieren un nuevo emparejamiento. Solo borrar este nodo de configuración y crear uno nuevo cambia la identidad — en ese caso elimina el bridge antiguo de la app Matter y vuelve a emparejar.
|
|
29
|
+
|
|
30
|
+
## Notas
|
|
31
|
+
|
|
32
|
+
- El host de Node-RED debe tener **IPv6 link-local** habilitado (requisito estándar de Matter) y ser accesible desde los controladores en la red local.
|
|
33
|
+
- Los nodos de dispositivo añadidos/renombrados/eliminados se detectan en pocos segundos, sin volver a emparejar.
|
|
34
|
+
</script>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"matterbridge-config": {
|
|
3
|
+
"properties": {
|
|
4
|
+
"title": "Bridge Matter",
|
|
5
|
+
"intro": "Este nodo de configuración es el bridge Matter en sí: Alexa, Google Home, Apple Home (o cualquier controlador Matter) lo emparejan una vez y ven todos los dispositivos KNX que le conectes. Añade nodos \"Matter Bridge device\" en tus flows y apúntalos aquí. Haz deploy primero y vuelve a abrir para obtener el código.",
|
|
6
|
+
"node-config-input-name": "Nombre",
|
|
7
|
+
"bridge_name": "Nombre del bridge Matter",
|
|
8
|
+
"port": "Puerto",
|
|
9
|
+
"pairing_title": "Emparejamiento (Alexa, Google Home, Apple Home...)",
|
|
10
|
+
"not_running": "El bridge Matter aún no está en ejecución. Haz deploy, espera unos segundos y pulsa actualizar.",
|
|
11
|
+
"commissioned": "Bridge emparejado con estos controladores:",
|
|
12
|
+
"awaiting": "Esperando emparejamiento. Escanea el código QR o introduce el código manual en tu app Matter:",
|
|
13
|
+
"qr_link": "Abrir el código QR en el navegador",
|
|
14
|
+
"deploy_first": "Haz deploy de este nodo de configuración primero y pulsa actualizar.",
|
|
15
|
+
"reset_button": "Restablecer emparejamiento",
|
|
16
|
+
"reset_confirm": "¿Eliminar TODOS los controladores emparejados y reiniciar el emparejamiento? Los dispositivos desaparecerán de Alexa/Google/Apple.",
|
|
17
|
+
"reset_ok": "Emparejamiento restablecido. El bridge vuelve a estar en espera de emparejamiento."
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="knxUltimateMatterBridge">
|
|
2
|
+
# Matter Bridge device (BETA)
|
|
3
|
+
|
|
4
|
+
> Ce nœud est en **BETA** : il fonctionne, mais des détails peuvent encore changer entre les versions.
|
|
5
|
+
|
|
6
|
+
## Vue d'ensemble
|
|
7
|
+
|
|
8
|
+
Chaque nœud Matter Bridge device expose **un appareil KNX comme appareil Matter** : les contrôleurs appairés (Alexa, Google Home, Apple Home...) le voient, avec le nom que vous avez choisi, prêt pour le contrôle par app et à la voix. Pointez-le vers un nœud de configuration **Bridge Matter** (le bridge lui-même, appairé une seule fois - le QR d'appairage vit là-bas) et ajoutez autant de nœuds d'appareil que vous voulez, n'importe où dans vos flux.
|
|
9
|
+
|
|
10
|
+
C'est la direction opposée du nœud *Matter Device* : là-bas KNX contrôle un appareil Matter, ici les contrôleurs Matter contrôlent KNX.
|
|
11
|
+
|
|
12
|
+
## Configuration
|
|
13
|
+
|
|
14
|
+
|Champ|Description|
|
|
15
|
+
|--|--|
|
|
16
|
+
| Bridge Matter | Le nœud de configuration Bridge Matter auquel appartient cet appareil |
|
|
17
|
+
| GW KNX | Passerelle KNX utilisée pour les télégrammes. **Optionnel** : sans elle, l'appareil fonctionne en mode flow uniquement via les PIN du nœud. Sélectionnée automatiquement si le projet n'a qu'une passerelle |
|
|
18
|
+
| Nom | Ce qu'Alexa & Co. affichent et utilisent pour les commandes vocales |
|
|
19
|
+
| Type d'appareil | Le type d'appareil Matter (voir ci-dessous) ; il détermine quels champs d'adresse de groupe apparaissent |
|
|
20
|
+
| Lire l'état au démarrage | Envoie un `GroupValue_Read` aux GA d'état au démarrage, pour peupler les attributs Matter |
|
|
21
|
+
|
|
22
|
+
## Types d'appareil et adresses de groupe
|
|
23
|
+
|
|
24
|
+
|Type|Adresses de groupe|
|
|
25
|
+
|--|--|
|
|
26
|
+
| Lumière On/Off, Prise | GA commande On/Off, GA état On/Off (DPT 1.001) |
|
|
27
|
+
| Lumière variable | + GA commande/état variation % (DPT 5.001) |
|
|
28
|
+
| Lumière RGB (couleur) | + GA commande/état couleur RGB (DPT 232.600). La couleur Matter (hue/saturation ou XY, depuis la roue de couleur de l'app) est convertie depuis/vers le triplet RGB KNX |
|
|
29
|
+
| Lumière blanc dynamique | + GA commande/état température de couleur en Kelvin (DPT 7.600) |
|
|
30
|
+
| Volet / Store | Monter/Descendre (DPT 1.008), Stop (DPT 1.017), position % commande/état (DPT 5.001), inversion de position optionnelle |
|
|
31
|
+
| Thermostat (chauffage) | GA température actuelle, GA commande/état consigne (DPT 9.001) |
|
|
32
|
+
| Ventilateur / VMC | GA commande/état vitesse % (DPT 5.001) |
|
|
33
|
+
| Capteurs (température, humidité, lumière, présence, contact) | Une GA d'état chacun |
|
|
34
|
+
| Détecteur fumée/CO | GA état alarme fumée + GA état alarme CO optionnelle (DPT 1.005) : notifications critiques sur le téléphone |
|
|
35
|
+
| Détecteur de fuite d'eau | GA état fuite (DPT 1.005) |
|
|
36
|
+
| Capteur de qualité d'air (CO2) | GA état CO2 en ppm (DPT 9.008) ; la classe de qualité d'air (bonne/correcte/modérée/mauvaise...) est dérivée automatiquement |
|
|
37
|
+
| Robot aspirateur | **Flow uniquement** : pas d'adresses de groupe. Activez les PIN du nœud : les commandes de l'assistant (« lance le nettoyage », pause/reprendre/retour à la base) arrivent sur la sortie comme `rvcmode`/`rvccommand` ; renvoyez l'état avec `msg.payload = { function: "rvcstate", value: "running"\|"docked"\|"charging"\|"paused"\|"error" }` et le mode avec `function: "rvcmode", value: "cleaning"\|"idle"` |
|
|
38
|
+
|
|
39
|
+
- **GA de commande** : écrite sur le bus KNX quand l'assistant envoie une commande.
|
|
40
|
+
- **GA d'état** : lue depuis le bus pour tenir à jour les attributs Matter (et les apps).
|
|
41
|
+
|
|
42
|
+
## PIN du nœud
|
|
43
|
+
|
|
44
|
+
Si vous activez les PIN entrée/sortie du nœud :
|
|
45
|
+
|
|
46
|
+
- **Entrée** : mettez à jour l'état Matter depuis le flux, sans passer par le bus KNX : `msg.payload = { function: "onoff", value: true }` (`function` est l'une de `onoff`, `level`, `rgb`, `colortemp`, `position`, `temperature`, `humidity`, `illuminance`, `occupancy`, `contact`, `currenttemp`, `setpoint`, `fanspeed`, `smoke`, `co`, `leak`, `co2`, `rvcstate`, `rvcmode`). Utile pour exposer à Alexa & Co. des valeurs calculées dans le flux (ex. un capteur virtuel).
|
|
47
|
+
- **Sortie** : chaque commande reçue d'un contrôleur Matter est transmise au flux : `msg.topic` = nom de l'appareil, `msg.payload` = valeur, `msg.matter` = la commande brute. Un appareil sans GA de commande devient un **appareil flow uniquement**.
|
|
48
|
+
|
|
49
|
+
## Notes
|
|
50
|
+
|
|
51
|
+
- L'identité Matter de l'appareil est liée à ce nœud : supprimer le nœud et en créer un nouveau fait apparaître un tout nouvel appareil dans les apps.
|
|
52
|
+
- Les nœuds d'appareil ajoutés/renommés/supprimés sont pris en compte en quelques secondes, sans réappairer le bridge.
|
|
53
|
+
</script>
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"knxUltimateMatterBridge": {
|
|
3
|
+
"title": "Matter Bridge (BETA)",
|
|
4
|
+
"bridge_name": "Nom du bridge Matter",
|
|
5
|
+
"port": "Port",
|
|
6
|
+
"devices_help": "Ajoutez les appareils KNX à exposer sur Matter. Le \"Nom\" est celui qu'Alexa/Google/Apple affichent et utilisent pour les commandes vocales. GA de commande = écrite quand l'assistant envoie une commande ; GA d'état = lue depuis le bus pour tenir l'app à jour.",
|
|
7
|
+
"read_status_startup": "Lire les adresses de groupe d'état au démarrage",
|
|
8
|
+
"opt_yes": "Oui",
|
|
9
|
+
"opt_no": "Non",
|
|
10
|
+
"node_pins": "PIN entrée/sortie du nœud",
|
|
11
|
+
"node_pins_hide": "Masquer",
|
|
12
|
+
"node_pins_show": "Afficher les PIN entrée/sortie",
|
|
13
|
+
"fields": {
|
|
14
|
+
"type": "Type d'appareil",
|
|
15
|
+
"name": "Nom (affiché par Alexa & Co.)",
|
|
16
|
+
"name_placeholder": "ex. Lumière cuisine",
|
|
17
|
+
"invert": "Inverser la position %"
|
|
18
|
+
},
|
|
19
|
+
"functions": {
|
|
20
|
+
"fn_onoff_cmd": "GA commande On/Off",
|
|
21
|
+
"fn_onoff_status": "GA état On/Off",
|
|
22
|
+
"fn_level_cmd": "GA commande variation %",
|
|
23
|
+
"fn_level_status": "GA état variation %",
|
|
24
|
+
"fn_sensor_ga": "GA état du capteur",
|
|
25
|
+
"fn_updown": "GA commande Monter/Descendre",
|
|
26
|
+
"fn_stop": "GA commande Stop",
|
|
27
|
+
"fn_position_cmd": "GA commande position %",
|
|
28
|
+
"fn_position_status": "GA état position %",
|
|
29
|
+
"fn_currenttemp": "GA température actuelle",
|
|
30
|
+
"fn_setpoint_cmd": "GA commande consigne",
|
|
31
|
+
"fn_setpoint_status": "GA état consigne",
|
|
32
|
+
"fn_rgb_cmd": "GA commande couleur RGB (DPT 232.600)",
|
|
33
|
+
"fn_rgb_status": "GA état couleur RGB (DPT 232.600)",
|
|
34
|
+
"fn_ct_cmd": "GA commande température de couleur (Kelvin)",
|
|
35
|
+
"fn_ct_status": "GA état température de couleur (Kelvin)",
|
|
36
|
+
"fn_smoke_ga": "GA état alarme fumée",
|
|
37
|
+
"fn_co_ga": "GA état alarme CO (optionnel)",
|
|
38
|
+
"fn_leak_ga": "GA état fuite d'eau",
|
|
39
|
+
"fn_co2_ga": "GA état CO2 (ppm, DPT 9.008)",
|
|
40
|
+
"fn_fanspeed_cmd": "GA commande vitesse ventilateur %",
|
|
41
|
+
"fn_fanspeed_status": "GA état vitesse ventilateur %"
|
|
42
|
+
},
|
|
43
|
+
"types": {
|
|
44
|
+
"onofflight": "Lumière On/Off",
|
|
45
|
+
"dimmablelight": "Lumière variable",
|
|
46
|
+
"rgblight": "Lumière RGB (couleur)",
|
|
47
|
+
"colortemperaturelight": "Lumière blanc dynamique (température de couleur)",
|
|
48
|
+
"onoffplug": "Prise (on/off)",
|
|
49
|
+
"temperaturesensor": "Capteur de température",
|
|
50
|
+
"humiditysensor": "Capteur d'humidité",
|
|
51
|
+
"lightsensor": "Capteur de lumière (Lux)",
|
|
52
|
+
"occupancysensor": "Capteur de présence",
|
|
53
|
+
"contactsensor": "Capteur de contact",
|
|
54
|
+
"windowcovering": "Volet / Store",
|
|
55
|
+
"thermostat": "Thermostat (chauffage)",
|
|
56
|
+
"fan": "Ventilateur / VMC",
|
|
57
|
+
"smokecoalarm": "Détecteur fumée/CO",
|
|
58
|
+
"waterleakdetector": "Détecteur de fuite d'eau",
|
|
59
|
+
"airqualitysensor": "Capteur de qualité d'air (CO2)",
|
|
60
|
+
"robotvacuum": "Robot aspirateur (flow uniquement, via les PIN du nœud)"
|
|
61
|
+
},
|
|
62
|
+
"pairing": {
|
|
63
|
+
"title": "Appairage (Alexa, Google Home, Apple Home...)",
|
|
64
|
+
"not_running": "Le bridge Matter n'est pas encore démarré. Déployez, attendez quelques secondes puis cliquez sur actualiser.",
|
|
65
|
+
"commissioned": "Bridge appairé avec ces contrôleurs :",
|
|
66
|
+
"awaiting": "En attente d'appairage. Scannez le QR code ou saisissez le code manuel dans votre app Matter :",
|
|
67
|
+
"qr_link": "Ouvrir le QR code dans le navigateur",
|
|
68
|
+
"deploy_first": "Déployez d'abord ce nœud, puis cliquez sur actualiser.",
|
|
69
|
+
"reset_button": "Réinitialiser l'appairage",
|
|
70
|
+
"reset_confirm": "Supprimer TOUS les contrôleurs appairés et relancer l'appairage ? Les appareils disparaîtront d'Alexa/Google/Apple.",
|
|
71
|
+
"reset_ok": "Appairage réinitialisé. Le bridge attend de nouveau un appairage."
|
|
72
|
+
},
|
|
73
|
+
"bridge": "Bridge Matter",
|
|
74
|
+
"device_name": "Nom (affiché par Alexa & Co.)",
|
|
75
|
+
"device_help": "Choisissez le type d'appareil et donnez-lui le nom que l'assistant vocal utilisera, puis remplissez les adresses de groupe. La passerelle KNX est optionnelle : sans elle, activez les PIN du nœud et pilotez l'appareil depuis le flux."
|
|
76
|
+
},
|
|
77
|
+
"common": {
|
|
78
|
+
"ga": "GA",
|
|
79
|
+
"dpt": "DPT",
|
|
80
|
+
"name": "Nom",
|
|
81
|
+
"knx_gw": "GW KNX"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="knxUltimateMatterDevice">
|
|
2
|
+
# Appareil Matter (BETA)
|
|
3
|
+
|
|
4
|
+
> Ce nœud est en **BETA** : il fonctionne, mais des détails peuvent encore changer entre les versions.
|
|
5
|
+
|
|
6
|
+
## Vue d'ensemble
|
|
7
|
+
|
|
8
|
+
Le nœud Matter Device fait le pont entre un **appareil Matter** et les **adresses de groupe KNX**. Le nœud opère via le nœud de configuration *Contrôleur Matter*, qui commissionne les appareils dans sa propre fabric Matter.
|
|
9
|
+
|
|
10
|
+
- **Contrôlez** n'importe quel appareil Matter appairé depuis le bus KNX (on/off, variation, volets, thermostats, serrures, ...).
|
|
11
|
+
- **Suivez** chaque attribut de l'appareil sur des adresses de groupe KNX (états, capteurs, mesure de puissance, batterie...).
|
|
12
|
+
- Totalement générique : la liste des mappages est construite à partir des **endpoints/clusters réels** exposés par l'appareil.
|
|
13
|
+
|
|
14
|
+
## Configuration
|
|
15
|
+
|
|
16
|
+
|Champ|Description|
|
|
17
|
+
|--|--|
|
|
18
|
+
| GW KNX | Passerelle KNX utilisée pour les télégrammes |
|
|
19
|
+
| Ctrl Matter | Le nœud de configuration Contrôleur Matter (où l'on appaire les appareils) |
|
|
20
|
+
| Appareil | Choisissez l'appareil Matter appairé via l'autocomplétion |
|
|
21
|
+
| Mappages | Une ligne par mappage adresse de groupe ↔ cluster Matter |
|
|
22
|
+
| Lire l'état au démarrage | Si activé, le nœud émet les valeurs en cache au deploy/à la connexion |
|
|
23
|
+
| PIN entrée/sortie | Active les broches Node-RED pour l'accès Matter brut |
|
|
24
|
+
|
|
25
|
+
## Mappages
|
|
26
|
+
|
|
27
|
+
La liste des cibles montre les fonctions prises en charge avec des noms compréhensibles comme *« Interrupteur On/Off »* ou *« Puissance instantanée (W) »*, filtrées selon ce que l'appareil expose réellement, avec la valeur actuelle entre crochets.
|
|
28
|
+
|
|
29
|
+
Chaque ligne de mappage a une **direction** :
|
|
30
|
+
|
|
31
|
+
- **KNX → Matter (commande)** : un télégramme reçu sur l'adresse de groupe invoque une commande du cluster Matter ou écrit un attribut. Exemple : GA `1/1/1` DPT 1.001 → `OnOff.on/off` (la valeur booléenne choisit automatiquement on ou off).
|
|
32
|
+
- **Matter → KNX (état)** : quand l'attribut Matter souscrit change, sa valeur est convertie et écrite sur l'adresse de groupe. Les requêtes `GroupValue_Read` reçoivent la valeur en cache.
|
|
33
|
+
|
|
34
|
+
Les clusters courants sont convertis automatiquement en valeurs adaptées à KNX :
|
|
35
|
+
|
|
36
|
+
|Cluster|Conversion|
|
|
37
|
+
|--|--|
|
|
38
|
+
| OnOff | booléen (DPT 1.001) |
|
|
39
|
+
| LevelControl | 0-254 ↔ pourcentage (DPT 5.001) |
|
|
40
|
+
| WindowCovering | percent100ths ↔ pourcentage (DPT 5.001), monter/descendre (DPT 1.008) |
|
|
41
|
+
| ColorControl | mireds ↔ Kelvin (DPT 7.600) |
|
|
42
|
+
| Thermostat | centi-°C ↔ °C (DPT 9.001) |
|
|
43
|
+
| Température/Humidité | centi-unités ↔ unités (DPT 9.001/9.007) |
|
|
44
|
+
| Éclairement | échelle logarithmique ↔ Lux (DPT 9.004) |
|
|
45
|
+
| PowerSource | demi-pourcent ↔ pourcentage batterie (DPT 5.001) |
|
|
46
|
+
| Puissance/Énergie électrique | mW ↔ W (DPT 14.056), mWh ↔ kWh (DPT 13.013) |
|
|
47
|
+
|
|
48
|
+
Les autres clusters/attributs passent tels quels ; le DPT choisi effectue l'encodage KNX final.
|
|
49
|
+
|
|
50
|
+
## PIN du nœud
|
|
51
|
+
|
|
52
|
+
Si vous activez les PIN du nœud :
|
|
53
|
+
|
|
54
|
+
- **Entrée** : envoyez des commandes brutes : `msg.payload = { endpointId: 1, clusterId: 6, command: "toggle" }` ou des écritures d'attributs : `msg.payload = { endpointId: 1, clusterId: 8, attribute: "onLevel", value: 128 }`
|
|
55
|
+
- **Sortie** : reçoit chaque changement d'attribut (`msg.matter` contient l'événement complet) et chaque événement de cluster (appuis de boutons, etc.).
|
|
56
|
+
</script>
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"knxUltimateMatterDevice": {
|
|
3
|
+
"title": "Appareil Matter (BETA)",
|
|
4
|
+
"paletteLabel": "Matter Device (BETA)",
|
|
5
|
+
"matter_controller": "Ctrl Matter",
|
|
6
|
+
"matter_device": "Appareil",
|
|
7
|
+
"device_placeholder": "Cliquez pour choisir un appareil Matter appairé",
|
|
8
|
+
"mapping_help": "Ajoutez une ligne par mappage. \"KNX → Matter\" invoque une commande du cluster (ou écrit un attribut) à l'arrivée d'un télégramme sur l'adresse de groupe. \"Matter → KNX\" écrit la valeur de l'attribut sur l'adresse de groupe à chaque changement (les demandes de lecture reçoivent la valeur en cache).",
|
|
9
|
+
"select_target": "-- sélectionnez la cible Matter --",
|
|
10
|
+
"stored_target": "Enregistré",
|
|
11
|
+
"read_status_startup": "Lire l'état au démarrage",
|
|
12
|
+
"opt_yes_emit": "Oui, et émettre les télégrammes KNX.",
|
|
13
|
+
"opt_no": "Non",
|
|
14
|
+
"node_pins": "PIN entrée/sortie du nœud",
|
|
15
|
+
"node_pins_hide": "Masquer",
|
|
16
|
+
"node_pins_show": "Afficher les PIN entrée/sortie",
|
|
17
|
+
"direction": {
|
|
18
|
+
"command": "KNX → Matter (commande)",
|
|
19
|
+
"status": "Matter → KNX (état)"
|
|
20
|
+
},
|
|
21
|
+
"fields": {
|
|
22
|
+
"direction": "Direction",
|
|
23
|
+
"target": "Endpoint / cluster / cible Matter",
|
|
24
|
+
"ga": "Adresse de groupe",
|
|
25
|
+
"dpt": "DPT",
|
|
26
|
+
"ganame": "Nom"
|
|
27
|
+
},
|
|
28
|
+
"no_simple_targets": "Aucune fonction prise en charge trouvée sur cet appareil (ou l'appareil n'est pas encore connecté).",
|
|
29
|
+
"endpoint": "Endpoint",
|
|
30
|
+
"friendly": {
|
|
31
|
+
"onoff_switch": "Interrupteur On/Off (allumer/éteindre)",
|
|
32
|
+
"onoff_toggle": "Inverser l'état (toggle)",
|
|
33
|
+
"onoff_state": "État On/Off",
|
|
34
|
+
"level_set": "Régler la luminosité / le niveau (%)",
|
|
35
|
+
"level_state": "Luminosité / niveau actuel (%)",
|
|
36
|
+
"colortemp_set": "Régler la température de couleur (Kelvin)",
|
|
37
|
+
"colortemp_state": "Température de couleur actuelle (Kelvin)",
|
|
38
|
+
"cover_updown": "Volet Monter/Descendre",
|
|
39
|
+
"cover_stop": "Volet Stop",
|
|
40
|
+
"cover_position_set": "Amener le volet en position (%)",
|
|
41
|
+
"cover_position_state": "Position actuelle du volet (%)",
|
|
42
|
+
"cover_tilt_set": "Incliner les lamelles (%)",
|
|
43
|
+
"cover_tilt_state": "Inclinaison actuelle des lamelles (%)",
|
|
44
|
+
"thermo_localtemp": "Température ambiante (°C)",
|
|
45
|
+
"thermo_heatsp_set": "Régler la consigne chauffage (°C)",
|
|
46
|
+
"thermo_coolsp_set": "Régler la consigne climatisation (°C)",
|
|
47
|
+
"thermo_heatsp_state": "Consigne chauffage (°C)",
|
|
48
|
+
"thermo_coolsp_state": "Consigne climatisation (°C)",
|
|
49
|
+
"fan_speed_set": "Régler la vitesse du ventilateur (%)",
|
|
50
|
+
"fan_speed_state": "Vitesse actuelle du ventilateur (%)",
|
|
51
|
+
"lock_cmd": "Verrouiller/Déverrouiller la serrure",
|
|
52
|
+
"lock_state": "État de la serrure (verrouillée)",
|
|
53
|
+
"temp_measured": "Température mesurée (°C)",
|
|
54
|
+
"humidity_measured": "Humidité relative (%)",
|
|
55
|
+
"illuminance_measured": "Éclairement (Lux)",
|
|
56
|
+
"occupancy_state": "Présence détectée",
|
|
57
|
+
"contact_state": "État du contact (fermé/ouvert)",
|
|
58
|
+
"battery_percent": "Niveau de batterie (%)",
|
|
59
|
+
"power_active": "Puissance instantanée (W)",
|
|
60
|
+
"power_voltage": "Tension (V)",
|
|
61
|
+
"power_current": "Courant (A)",
|
|
62
|
+
"energy_imported": "Énergie consommée (kWh)",
|
|
63
|
+
"identify_cmd": "Identifier l'appareil (clignotement)",
|
|
64
|
+
"switch_position": "Position du bouton"
|
|
65
|
+
},
|
|
66
|
+
"devtype": {
|
|
67
|
+
"onofflight": "Lumière On/Off",
|
|
68
|
+
"dimmablelight": "Lumière variable",
|
|
69
|
+
"colortemperaturelight": "Lumière à température de couleur",
|
|
70
|
+
"extendedcolorlight": "Lumière couleur",
|
|
71
|
+
"onoffpluginunit": "Prise (on/off)",
|
|
72
|
+
"dimmablepluginunit": "Prise (variable)",
|
|
73
|
+
"smartplug": "Prise connectée",
|
|
74
|
+
"contactsensor": "Capteur de contact",
|
|
75
|
+
"lightsensor": "Capteur de lumière",
|
|
76
|
+
"occupancysensor": "Capteur de présence",
|
|
77
|
+
"temperaturesensor": "Capteur de température",
|
|
78
|
+
"humiditysensor": "Capteur d'humidité",
|
|
79
|
+
"pressuresensor": "Capteur de pression",
|
|
80
|
+
"flowsensor": "Capteur de débit",
|
|
81
|
+
"doorlock": "Serrure",
|
|
82
|
+
"windowcovering": "Volet/Store",
|
|
83
|
+
"thermostat": "Thermostat",
|
|
84
|
+
"fan": "Ventilateur",
|
|
85
|
+
"genericswitch": "Bouton/Interrupteur",
|
|
86
|
+
"airqualitysensor": "Capteur de qualité d'air",
|
|
87
|
+
"smokecoalarm": "Détecteur fumée/CO",
|
|
88
|
+
"waterleakdetector": "Détecteur de fuite d'eau",
|
|
89
|
+
"roomairconditioner": "Climatiseur",
|
|
90
|
+
"airpurifier": "Purificateur d'air",
|
|
91
|
+
"speaker": "Haut-parleur",
|
|
92
|
+
"pumpcontroller": "Pompe",
|
|
93
|
+
"onofflightswitch": "Interrupteur",
|
|
94
|
+
"dimmerswitch": "Interrupteur variateur",
|
|
95
|
+
"colordimmerswitch": "Variateur couleur",
|
|
96
|
+
"powersource": "Alimentation",
|
|
97
|
+
"electricalsensor": "Capteur électrique",
|
|
98
|
+
"bridgednode": "Appareil ponté",
|
|
99
|
+
"aggregator": "Bridge/Agrégateur",
|
|
100
|
+
"rootnode": "Nœud racine"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"common": {
|
|
104
|
+
"ga": "GA",
|
|
105
|
+
"dpt": "DPT",
|
|
106
|
+
"name": "Nom",
|
|
107
|
+
"knx_gw": "GW KNX"
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="matter-config">
|
|
2
|
+
# Contrôleur Matter
|
|
3
|
+
|
|
4
|
+
## Vue d'ensemble
|
|
5
|
+
|
|
6
|
+
Ce nœud de configuration est un **contrôleur Matter** complet : il crée sa propre *fabric* Matter et y appaire (commissionne) vos appareils Matter. Les appareils appairés sont ensuite disponibles pour les nœuds **Matter Device**, qui les mappent sur des adresses de groupe KNX.
|
|
7
|
+
|
|
8
|
+
Le contrôleur communique avec les appareils via le **réseau IP** (WiFi, Ethernet ou Thread via un border router). L'appairage Bluetooth n'est pas pris en charge : l'appareil doit déjà être joignable sur le réseau.
|
|
9
|
+
|
|
10
|
+
## Appairer un appareil
|
|
11
|
+
|
|
12
|
+
1. **Déployez** d'abord ce nœud de configuration (le contrôleur doit être en fonction).
|
|
13
|
+
2. Rouvrez le nœud et saisissez le **code d'appairage** : le code manuel à 11 chiffres (ex. `3497-011-2332`) ou le contenu du QR code (`MT:....`).
|
|
14
|
+
3. Cliquez sur **APPAIRER**. Le commissionnement peut prendre jusqu'à une minute.
|
|
15
|
+
|
|
16
|
+
Si l'appareil est neuf et ne prend en charge que l'appairage Bluetooth, appairez-le d'abord avec l'app du fabricant ou un autre contrôleur Matter (Alexa, Google Home, Apple Home), puis utilisez sa fonction **« partager / appairer avec un autre hub »** pour générer un nouveau code pour KNX-Ultimate. L'appareil rejoint ainsi plusieurs fabrics à la fois.
|
|
17
|
+
|
|
18
|
+
## Stockage
|
|
19
|
+
|
|
20
|
+
Les identifiants de la fabric et les appareils appairés sont enregistrés dans le dossier `knxultimatestorage/matter` du répertoire utilisateur de Node-RED. Supprimer ce dossier efface tous les appairages.
|
|
21
|
+
|
|
22
|
+
## Supprimer un appareil
|
|
23
|
+
|
|
24
|
+
Utilisez le bouton corbeille dans la liste des appareils appairés. Le contrôleur essaie de retirer l'appareil proprement ; s'il est injoignable, il est quand même supprimé de la fabric (une réinitialisation d'usine de l'appareil peut alors être nécessaire).
|
|
25
|
+
</script>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"matter-config": {
|
|
3
|
+
"properties": {
|
|
4
|
+
"title": "Contrôleur Matter",
|
|
5
|
+
"intro": "Ce nœud est un contrôleur Matter (avec sa propre fabric). Appairez ici vos appareils Matter, puis utilisez le nœud \"Matter Device\" pour les mapper sur des adresses de groupe KNX. Déployez d'abord le nœud, puis revenez ici pour appairer les appareils.",
|
|
6
|
+
"node-config-input-name": "Nom",
|
|
7
|
+
"fabric_label": "Étiquette de fabric",
|
|
8
|
+
"pairing_title": "Appairer un nouvel appareil",
|
|
9
|
+
"pairing_help": "Saisissez le code d'appairage manuel à 11 chiffres (ex. 3497-011-2332) ou le contenu du QR code (MT:....). L'appareil doit être joignable sur le réseau IP (WiFi/Ethernet ou Thread via border router). S'il est déjà appairé à un autre contrôleur (Alexa, Google, Apple), utilisez sa fonction \"partager/appairer avec un autre hub\" pour obtenir un nouveau code.",
|
|
10
|
+
"pairing_code": "Code d'appairage",
|
|
11
|
+
"pair_button": "APPAIRER",
|
|
12
|
+
"devices_title": "Appareils appairés",
|
|
13
|
+
"col_name": "Nom",
|
|
14
|
+
"col_product": "Produit",
|
|
15
|
+
"col_state": "État",
|
|
16
|
+
"no_devices": "Aucun appareil appairé pour le moment.",
|
|
17
|
+
"unpair_confirm": "Supprimer (retirer) l'appareil",
|
|
18
|
+
"unpair_ok": "Appareil supprimé.",
|
|
19
|
+
"deploy_first": "Déployez d'abord ce nœud de configuration, puis réessayez.",
|
|
20
|
+
"pairing_code_missing": "Veuillez saisir un code d'appairage.",
|
|
21
|
+
"pairing_wait": "Appairage en cours. Cela peut prendre jusqu'à une minute...",
|
|
22
|
+
"pairing_failed": "Échec de l'appairage",
|
|
23
|
+
"pairing_ok": "Appareil appairé avec succès !"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|