es IoT Bridge Configuration - Supergiovane/node-red-contrib-knx-ultimate GitHub Wiki
🌐 Language: EN | IT | DE | FR | ES | 简体中文
Navigation: Home Overview: Changelog • FAQ • Security • Docs: Language bar KNX Device: Gateway • Device • Protections Other KNX Nodes: Scene Controller • WatchDog • Logger • Global Context • Alerter • Load Control • Viewer • Auto Responder • HA Translator • IoT Bridge HUE: Bridge • Light • Battery • Button • Contact • Device SW update • Light sensor • Motion • Scene • Tap Dial • Temperature • Zigbee connectivity Samples: Logger • Switch Light • Dimming • RGB color • RGBW color + White • Command a scene actuator • Datapoint 213.x 4x Setpoint • Datapoint 222.x 3x Setpoint • Datapoint 237.x DALI diags • Datapoint 2.x 1 bit proprity • Datapoint 22.x RCHH Status • Datetime to BUS • Read Status • Virtual Device • Subtype decoded • Alexa • Apple Homekit • Google Home • Switch on/off POE port of Unifi switch • Set configuration by msg • Scene Controller node • WatchDog node • Global Context node • Alerter node • Load control node • Viewer node • MySQL, InfluxDB, MQTT Sample Contribute to Wiki: Link
Puente KNX ↔ IoT
El puente normaliza los telegramas KNX en mensajes estructurados listos para transportes IoT (MQTT, REST, Modbus) y acepta entradas del flow para escribir de vuelta en el bus KNX. Esta guía resume la configuración y cómo enlazarla con nodos de terceros.
Resumen de campos
Campo | Propósito | Notas |
---|---|---|
Label | Nombre amigable | Aparece en el estado y en msg.bridge.label . |
GA / DPT | Dirección de grupo y datapoint | Configúralos manualmente o usando el autocompletado ETS. |
Dirección | KNX→IoT, IoT→KNX, Bidireccional | Determina qué salidas se utilizan. |
Tipo de canal | MQTT / REST / Modbus | Cambia el significado de Target . |
Target | Topic, URL base o registro | Vacío = usa outputtopic del nodo. |
Template | Formato de cadena | Placeholders {{value}} , {{ga}} , {{type}} , {{target}} , {{label}} , {{isoTimestamp}} . |
Escala / Offset | Conversión numérica | Se aplica en KNX→IoT; el sentido inverso se usa para IoT→KNX. |
Timeout / Reintentos | Hints de reintento | Los nodos posteriores pueden usarlos para controlar reenvíos. |
Transportes habituales
Broker MQTT
- Publicar: conecta la salida 1 al nodo core
mqtt out
. El bridge ya rellenamsg.topic
ymsg.payload
. - Suscribirse: conecta un nodo
mqtt in
a la entrada del bridge para convertir mensajes MQTT en escrituras KNX. El pin 2 devuelve un ack.
API REST
- Envía la salida 1 al nodo core
http request
(o contrib comonode-red-contrib-http-request
). - El bridge copia
bridge.method
amsg.method
y el template al payload, ideal para webhooks JSON.
Registros Modbus
- Úsalo con
node-red-contrib-modbus
(modbus-flex-write
,modbus-write
). - El
Target
marca el registro;msg.payload
contiene el valor ya transformado.
Flujos de ejemplo
Estado KNX → MQTT
[
{
"id": "bridge1",
"type": "knxUltimateIoTBridge",
"z": "flow1",
"server": "gateway1",
"name": "Bridge luces",
"emitOnChangeOnly": true,
"readOnDeploy": true,
"acceptFlowInput": true,
"mappings": [
{
"id": "map-luz",
"enabled": true,
"label": "Luz salón",
"ga": "1/1/10",
"dpt": "1.001",
"direction": "bidirectional",
"iotType": "mqtt",
"target": "knx/light/living",
"method": "POST",
"modbusFunction": "writeHoldingRegister",
"scale": 1,
"offset": 0,
"template": "{{value}}",
"property": "",
"timeout": 0,
"retry": 0
}
],
"wires": ["mqttOut"],["debugAck"](/Supergiovane/node-red-contrib-knx-ultimate/wiki/"mqttOut"],["debugAck")
},
{
"id": "mqttOut",
"type": "mqtt out",
"name": "MQTT estado",
"topic": "",
"qos": "0",
"retain": "false",
"broker": "mqttBroker",
"x": 520,
"y": 120,
"wires": []
},
{
"id": "debugAck",
"type": "debug",
"name": "Ack KNX",
"active": true,
"tosidebar": true,
"complete": "true",
"x": 520,
"y": 180,
"wires": []
}
]
Comando MQTT → KNX
[
{
"id": "mqttIn",
"type": "mqtt in",
"name": "MQTT comando",
"topic": "knx/light/living/set",
"qos": "1",
"datatype": "auto",
"broker": "mqttBroker",
"x": 140,
"y": 200,
"wires": ["bridge1"](/Supergiovane/node-red-contrib-knx-ultimate/wiki/"bridge1")
}
]
Combina ambos fragmentos para tener ida y vuelta KNX ↔ MQTT con confirmaciones.
Snapshot REST
{
"id": "bridge-rest",
"type": "knxUltimateIoTBridge",
"name": "Bridge contador",
"mappings": [
{
"label": "Potencia activa",
"ga": "2/1/20",
"dpt": "9.024",
"direction": "knx-to-iot",
"iotType": "rest",
"target": "https://example/api/knx/power",
"method": "POST",
"template": "{\"value\":{{value}},\"ga\":\"{{ga}}\",\"ts\":\"{{isoTimestamp}}\"}"
}
]
}
Dirige la salida 1 a http request
y usa la respuesta junto con bridge.retry
para decidir reintentos.
Escritura Modbus
- Configura
Target = 40010
,Tipo = Modbus
,Dirección = Bidireccional
. - Conecta la salida 1 a
modbus-flex-write
y asignamsg.payload
al valor del nodo Modbus. - Usa el ack para confirmar cuándo KNX se sincroniza tras la actualización del registro.
Consejos
- Deja
Target
vacío si quieres reutilizaroutputtopic
para varios mapeos. emitOnChangeOnly
reduce el ruido de sensores; desactívalo si necesitas todos los telegramas.- El pin 2 replica el payload IoT original y facilita el debug de escalados.
- Para float Modbus específicos, añade un
function
que prepare el formato (16/32 bits, orden de bytes, etc.).
¡Feliz bridge!