UNPKG

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