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 en 0/0
    • 0 equivale a 0/*/*
  • Patrones de Source (dirección física) con * por nivel:
    • 1.1.* coincide con todos los dispositivos en área 1, línea 1
    • 1 equivale a 1.*.*
  • 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

  1. Pasados (para reenviar)
  2. 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 telegramas GroupValue_Write.
  • allowResponse: permite telegramas GroupValue_Response.
  • allowRead: permite telegramas GroupValue_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 por gaMode (uno por línea, soporta * y re:<regex>).
  • srcMode: modo de filtro para el source (dirección física) (off/allow/block).
  • srcPatterns: patrones source usados por srcMode (uno por línea, soporta * y re:<regex>).
  • rewriteGA: habilita la reescritura de knx.destination en los telegramas que pasan.
  • gaRewriteRules: reglas de reescritura GA (de => a, primera coincidencia gana; soporta * y re:<regex>).
  • rewriteSource: habilita la reescritura de knx.source en los telegramas que pasan.
  • srcRewriteRules: reglas de reescritura source (de => a, primera coincidencia gana; soporta * y re:<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;