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.06 kB
<script type="text/markdown" data-help-name="knxUltimateRouterFilter"> 在将 RAW 电报对象(通常由 **KNX Multi Routing** 产生)转发到其它网关之前,对其进行过滤。 ## Pattern 语法 - 组地址(GA)支持每级 `*` - `0/0/*` 匹配 `0/0` 下的所有组地址 - `0` 等同于 `0/*/*` - 源物理地址(Source)支持每级 `*` - `1.1.*` 匹配区域 `1`、线路 `1` 下的所有设备 - `1` 等同于 `1.*.*` - 高级:`re:<regex>` 直接使用正则表达式。 ## 模式(GA / Source) - **Off**:不启用过滤 - **Allow only matching**:仅放行匹配项 - **Block matching**:阻止匹配项 ## 输出 1. **通过**(用于转发) 2. **丢弃**(可选调试) ## 重写(Rewrite) 可选重写: - 目的组地址 `knx.destination` - 源物理地址 `knx.source` 在重写时,节点也会更新 `knx.cemi.hex` 以匹配重写后的 `knx.source`/`knx.destination`(当 `knx.cemi.hex` 存在时)。 规则自上而下匹配(先匹配先执行)。 示例: - 通配:`0/0/* => 2/0/*``*` 会被捕获并复用) - 正则:`re:^1/2/(\\d+)$ => 3/2/$1` ## 元数据 节点会在输出中添加 `msg.payload.knxRouterFilter`- 丢弃:`{ dropped: true, reason: 'event'|'ga'|'source', ... }` - 通过:`{ dropped: false, rewritten: <bool>, cemiSynced: <bool>, rewrite: { ... }, original: { ... } }` ## msg.setConfig 你可以通过向输入端发送 `msg.setConfig` 对象来在运行时修改节点配置。 支持的键:`allowWrite`, `allowResponse`, `allowRead`, `gaMode`, `gaPatterns`, `srcMode`, `srcPatterns`, `rewriteGA`, `gaRewriteRules`, `rewriteSource`, `srcRewriteRules`。 新配置会保持到下一次 `msg.setConfig` 或 redeploy/重启。配置消息不会被转发。 各属性含义: - `allowWrite`:允许 `GroupValue_Write` 电报。 - `allowResponse`:允许 `GroupValue_Response` 电报。 - `allowRead`:允许 `GroupValue_Read` 电报。 - `gaMode`:目的组地址过滤模式(`off`=不启用过滤,`allow`=仅放行匹配项,`block`=丢弃匹配项)。 - `gaPatterns``gaMode` 使用的目的 GA pattern(每行一个,支持 `*``re:<regex>`)。 - `srcMode`:源物理地址过滤模式(`off`/`allow`/`block`)。 - `srcPatterns``srcMode` 使用的 source pattern(每行一个,支持 `*``re:<regex>`)。 - `rewriteGA`:对通过的电报启用 `knx.destination` 重写。 - `gaRewriteRules`:目的 GA 重写规则(`from => to`,先匹配先执行;支持 `*``re:<regex>`)。 - `rewriteSource`:对通过的电报启用 `knx.source` 重写。 - `srcRewriteRules`:源 PA 重写规则(`from => to`,先匹配先执行;支持 `*``re:<regex>`)。 示例: ```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>