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.
38 lines (29 loc) • 2.88 kB
HTML
<script type="text/markdown" data-help-name="knxUltimateMultiRouting">
Questo nodo serve per **collegare tra loro più gateway KNX Ultimate** (più `knxUltimate-config`) tramite i collegamenti di Node-RED.
In output emette un oggetto con le informazioni **RAW** del telegramma (APDU + cEMI hex + indirizzi) per ogni telegramma ricevuto dal BUS KNX del gateway selezionato.
In input può ricevere gli stessi oggetti RAW e inoltrarli sul BUS KNX del gateway selezionato.
## Modalità Server KNX/IP
Imposta **Modalità** su **Server KNX/IP** per avviare un server KNXnet/IP tunneling (UDP). I telegrammi ricevuti dai client vengono emessi nello stesso formato RAW usato dal MultiRouting.
Il nodo accetta anche in input gli oggetti RAW e li inietta verso i client tunneling connessi.
**Importante (Host annunciato):** i client KNXnet/IP inviano i dati all’IP annunciato dal server nella CONNECT_RESPONSE. Se il client risulta *connesso* ma il server non riceve telegrammi, imposta **Host annunciato** con l’IP LAN del server raggiungibile dal client (soprattutto se Node-RED gira in Docker/VM o se il PC ha più schede di rete).
## Formato messaggio in output
`msg.payload` contiene:
- `knx.event`: `GroupValue_Write` / `GroupValue_Response` / `GroupValue_Read`
- `knx.source`: indirizzo fisico (es. `1.1.10`)
- `knx.destination`: group address (es. `0/0/1`)
- `knx.apdu.data`: payload APDU grezzo come `Buffer` (solo per Write/Response)
- `knx.apdu.bitlength`: bitlength del payload (`<=6` significa codificato nei bit bassi dell’APCI)
- `knx.cemi.hex`: cEMI completo in esadecimale (stile ETS)
- `knx.echoed`: `true` se telegramma echoed dal gateway
- `knxMultiRouting.gateway`: info gateway (`id`, `name`, `physAddr`)
## Routing counter (hop count)
MultiRouting può usare il routing counter (hop count) presente in `knx.cemi.hex` per prevenire loop di telegrammi.
- **Rispetta routing counter (scarta se 0)**: i telegrammi con routing counter `0` non vengono inoltrati.
- **Decrementa routing counter durante l'inoltro**: il nodo decrementa il routing counter durante l'inoltro. Quando arriva a `0`, il telegramma viene scartato.
Il valore corrente è disponibile come `knx.routingCounter` (e come `knx.cemi.hopCount` quando `knx.cemi` è un oggetto).
## Riscrittura telegrammi
Se nel flow riscrivi `knx.source` / `knx.destination`, devi mantenere coerente anche `knx.cemi.hex`. Consigliato: inserisci **KNX Router Filter** tra i nodi MultiRouting: manterrà automaticamente coerente `knx.cemi.hex` durante il rewrite.
## Nota
Quando inoltri su un altro gateway, l’**indirizzo fisico sorgente cambia** (diventa l’indirizzo fisico del gateway che invia). Usa `knx.source` e/o `knxMultiRouting.gateway` per filtrare i loop.
L’opzione **Scarta messaggi già marcati per questo gateway** aiuta a prevenire loop semplici quando colleghi più router tra loro.
</script>