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.33 kB
HTML
<script type="text/markdown" data-help-name="knxUltimateRouterFilter">
Filtert RAW-Telegramm-Objekte (typischerweise vom **KNX Multi Routing** Node), bevor sie an ein anderes Gateway weitergeleitet werden.
## Muster-Syntax
- Gruppenadresse (GA) unterstützt `*` pro Ebene:
- `0/0/*` matcht alle GAs in `0/0`
- `0` entspricht `0/*/*`
- Source (physikalische Adresse) unterstützt `*` pro Ebene:
- `1.1.*` matcht alle Geräte in Bereich `1`, Linie `1`
- `1` entspricht `1.*.*`
- Erweitert: `re:<regex>` um direkt eine Regex zu verwenden.
## Modus (GA / Source)
- **Off**: kein Filter
- **Allow only matching**: lässt nur passende durch
- **Block matching**: verwirft passende
## Ausgänge
1. **Passed** (weiterleiten)
2. **Dropped** (optional zum Debuggen)
## Rewrite (Umschreiben)
Optionales Umschreiben von:
- Ziel-Gruppenadresse (`knx.destination`)
- Source-PA (`knx.source`)
Beim Umschreiben aktualisiert der Node auch `knx.cemi.hex`, damit es zu den umgeschriebenen Werten von `knx.source`/`knx.destination` passt (wenn `knx.cemi.hex` vorhanden ist).
Regeln werden von oben nach unten ausgewertet (first match wins).
Beispiele:
- Wildcards: `0/0/* => 2/0/*` (das `*` wird „gecaptured“ und wiederverwendet)
- Regex: `re:^1/2/(\\d+)$ => 3/2/$1`
## Metadaten
Der Node fügt `msg.payload.knxRouterFilter` hinzu:
- verworfen: `{ dropped: true, reason: 'event'|'ga'|'source', ... }`
- durchgelassen: `{ dropped: false, rewritten: <bool>, cemiSynced: <bool>, rewrite: { ... }, original: { ... } }`
## msg.setConfig
Du kannst die Node-Konfiguration zur Laufzeit ändern, indem du ein `msg.setConfig` Objekt an den Eingang sendest.
Unterstützte Keys: `allowWrite`, `allowResponse`, `allowRead`, `gaMode`, `gaPatterns`, `srcMode`, `srcPatterns`, `rewriteGA`, `gaRewriteRules`, `rewriteSource`, `srcRewriteRules`.
Die Konfiguration bleibt bis zum nächsten `msg.setConfig` oder bis Redeploy/Neustart erhalten. Konfigurationsnachrichten werden nicht weitergeleitet.
Bedeutung der Properties:
- `allowWrite`: erlaubt `GroupValue_Write` Telegramme.
- `allowResponse`: erlaubt `GroupValue_Response` Telegramme.
- `allowRead`: erlaubt `GroupValue_Read` Telegramme.
- `gaMode`: Filtermodus für die Ziel-GA (`off` = kein Filter, `allow` = nur Matches durchlassen, `block` = Matches verwerfen).
- `gaPatterns`: Ziel-GA Patterns für `gaMode` (eine pro Zeile, unterstützt `*` und `re:<regex>`).
- `srcMode`: Filtermodus für die Source-PA (`off`/`allow`/`block`).
- `srcPatterns`: Source-Patterns für `srcMode` (eine pro Zeile, unterstützt `*` und `re:<regex>`).
- `rewriteGA`: aktiviert Umschreiben von `knx.destination` für durchgelassene Telegramme.
- `gaRewriteRules`: Umschreibregeln für Ziel-GA (`von => nach`, first match wins; unterstützt `*` und `re:<regex>`).
- `rewriteSource`: aktiviert Umschreiben von `knx.source` für durchgelassene Telegramme.
- `srcRewriteRules`: Umschreibregeln für Source-PA (`von => nach`, first match wins; unterstützt `*` und `re:<regex>`).
Beispiel:
```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>