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.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>