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, and 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>