Filtra objetos de telegramas RAW (normalmente producidos por KNX Multi Routing) antes de reenviarlos a otro gateway.
Sintaxis de patrones
- Patrones de Dirección de Grupo (GA) con
*por nivel:0/0/*coincide con todas las GA en0/00equivale a0/*/*
- Patrones de Source (dirección física) con
*por nivel:1.1.*coincide con todos los dispositivos en área1, línea11equivale a1.*.*
- Avanzado:
re:<regex>para usar una expresión regular directamente.
Modo (GA / Source)
- Off: sin filtro
- Allow only matching: permite solo lo que coincida
- Block matching: bloquea lo que coincida
Salidas
- Pasados (para reenviar)
- Descartados (debug opcional)
Reescritura (Rewrite)
Puedes reescribir opcionalmente:
- destino (Group Address)
knx.destination - origen (dirección física)
knx.source
Durante la reescritura, el nodo también actualiza knx.cemi.hex para reflejar los valores reescritos de knx.source/knx.destination (cuando knx.cemi.hex está presente).
Las reglas se evalúan de arriba hacia abajo (la primera coincidencia gana).
Ejemplos:
- Wildcards:
0/0/* => 2/0/*(el*se captura y se reutiliza) - Regex:
re:^1/2/(\\d+)$ => 3/2/$1
Metadatos
El nodo añade msg.payload.knxRouterFilter:
- descartados:
{ dropped: true, reason: 'event'|'ga'|'source', ... } - pasados:
{ dropped: false, rewritten: <bool>, cemiSynced: <bool>, rewrite: { ... }, original: { ... } }
msg.setConfig
Puedes cambiar la configuración del nodo en tiempo de ejecución enviando un objeto msg.setConfig a la entrada.
Claves soportadas: allowWrite, allowResponse, allowRead, gaMode, gaPatterns, srcMode, srcPatterns, rewriteGA, gaRewriteRules, rewriteSource, srcRewriteRules.
La configuración se mantiene hasta el siguiente msg.setConfig o hasta redeploy/reinicio. Los mensajes de configuración no se reenvían.
Significado de las propiedades:
allowWrite: permite telegramasGroupValue_Write.allowResponse: permite telegramasGroupValue_Response.allowRead: permite telegramasGroupValue_Read.gaMode: modo de filtro para la GA de destino (off= sin filtro,allow= permitir solo coincidencias,block= descartar coincidencias).gaPatterns: patrones GA de destino usados porgaMode(uno por línea, soporta*yre:<regex>).srcMode: modo de filtro para el source (dirección física) (off/allow/block).srcPatterns: patrones source usados porsrcMode(uno por línea, soporta*yre:<regex>).rewriteGA: habilita la reescritura deknx.destinationen los telegramas que pasan.gaRewriteRules: reglas de reescritura GA (de => a, primera coincidencia gana; soporta*yre:<regex>).rewriteSource: habilita la reescritura deknx.sourceen los telegramas que pasan.srcRewriteRules: reglas de reescritura source (de => a, primera coincidencia gana; soporta*yre:<regex>).
Ejemplo:
msg.setConfig = {
allowWrite: true,
allowResponse: true,
allowRead: true,
gaMode: "allow",
gaPatterns: "1/1/*\n1/2/3",
srcMode: "off",
srcPatterns: "",
rewriteGA: true,
gaRewriteRules: "5/5/1 => 1/1/1",
rewriteSource: true,
srcRewriteRules: "15.*.* => 1.1.254"
};
return msg;