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.56 kB
HTML
<script type="text/markdown" data-help-name="knxUltimateRouterFilter">
Filtre des objets de télégrammes RAW (généralement produits par **KNX Multi Routing**) avant de les transmettre vers un autre gateway.
## Syntaxe des motifs
- Motifs d’adresse de groupe (GA) avec `*` par niveau :
- `0/0/*` correspond à toutes les GA dans `0/0`
- `0` équivaut à `0/*/*`
- Motifs Source (adresse physique) avec `*` par niveau :
- `1.1.*` correspond à tous les appareils sur zone `1`, ligne `1`
- `1` équivaut à `1.*.*`
- Avancé : `re:<regex>` pour utiliser directement une regex.
## Mode (GA / Source)
- **Off** : pas de filtrage
- **Allow only matching** : autorise uniquement ce qui correspond
- **Block matching** : bloque ce qui correspond
## Sorties
1. **Passés** (à transmettre)
2. **Rejetés** (debug optionnel)
## Réécriture (Rewrite)
Vous pouvez réécrire (optionnellement) :
- destination (adresse de groupe) `knx.destination`
- source (adresse physique) `knx.source`
Lors d’une réécriture, le nœud met aussi à jour `knx.cemi.hex` pour refléter les valeurs réécrites de `knx.source`/`knx.destination` (lorsque `knx.cemi.hex` est présent).
Les règles sont évaluées de haut en bas (première correspondance gagnante).
Exemples :
- Wildcards : `0/0/* => 2/0/*` (le `*` est capturé et réutilisé)
- Regex : `re:^1/2/(\\d+)$ => 3/2/$1`
## Métadonnées
Le nœud ajoute `msg.payload.knxRouterFilter` :
- rejetés : `{ dropped: true, reason: 'event'|'ga'|'source', ... }`
- passés : `{ dropped: false, rewritten: <bool>, cemiSynced: <bool>, rewrite: { ... }, original: { ... } }`
## msg.setConfig
Vous pouvez modifier la configuration du nœud à l’exécution en envoyant un objet `msg.setConfig` à l’entrée.
Clés prises en charge : `allowWrite`, `allowResponse`, `allowRead`, `gaMode`, `gaPatterns`, `srcMode`, `srcPatterns`, `rewriteGA`, `gaRewriteRules`, `rewriteSource`, `srcRewriteRules`.
La configuration est conservée jusqu’au prochain `msg.setConfig` ou jusqu’à un redeploy/redémarrage. Les messages de configuration ne sont pas transmis.
Signification des propriétés :
- `allowWrite` : autorise les télégrammes `GroupValue_Write`.
- `allowResponse` : autorise les télégrammes `GroupValue_Response`.
- `allowRead` : autorise les télégrammes `GroupValue_Read`.
- `gaMode` : mode de filtre GA de destination (`off` = pas de filtre, `allow` = autoriser uniquement les correspondances, `block` = bloquer les correspondances).
- `gaPatterns` : motifs GA de destination utilisés par `gaMode` (un par ligne, supporte `*` et `re:<regex>`).
- `srcMode` : mode de filtre Source (adresse physique) (`off`/`allow`/`block`).
- `srcPatterns` : motifs Source utilisés par `srcMode` (un par ligne, supporte `*` et `re:<regex>`).
- `rewriteGA` : active la réécriture de `knx.destination` sur les télégrammes passés.
- `gaRewriteRules` : règles de réécriture GA (`de => vers`, première correspondance gagnante ; supporte `*` et `re:<regex>`).
- `rewriteSource` : active la réécriture de `knx.source` sur les télégrammes passés.
- `srcRewriteRules` : règles de réécriture Source (`de => vers`, première correspondance gagnante ; supporte `*` et `re:<regex>`).
Exemple :
```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>