node-red-contrib-knx-ultimate
Version:
Control your KNX and KNX Secure intallation via Node-Red! A bunch of KNX nodes, with integrated Philips HUE control, ETS group address importer, KNX AI for diagnosticsand KNX routing between interfaces. Easy to use and highly configurable.
76 lines (64 loc) • 3.39 kB
HTML
<script type="text/markdown" data-help-name="knxUltimateRouterFilter">
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:
```js
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;
```
</script>