it KNX Node Configuration - Supergiovane/node-red-contrib-knx-ultimate GitHub Wiki
🌐 Language: EN | IT | DE | FR | ES | 简体中文
Navigazione: Home Panoramica: Changelog • FAQ • Sicurezza • Docs: Barra lingue Nodo KNX Dispositivo: Gateway • Dispositivo • Protezioni Altri Nodi KNX: Scene Controller • WatchDog • Logger • Global Context • Alerter • Controllo Carico • Viewer • Auto Responder • Traduttore HA • IoT Bridge HUE: Bridge • Luce • Batteria • Pulsante • Contatto • Aggiornamento SW • Sensore Luce • Movimento • Scena • Tap Dial • Temperatura • Connettività Zigbee Esempi: Logger • Switch Light • Dimming • RGB color • RGBW color + White • Command a scene actuator • Datapoint 213.x 4x Setpoint • Datapoint 222.x 3x Setpoint • Datapoint 237.x DALI diags • Datapoint 2.x 1 bit proprity • Datapoint 22.x RCHH Status • Datetime to BUS • Read Status • Virtual Device • Subtype decoded • Alexa • Apple Homekit • Google Home • Switch on/off POE port of Unifi switch • Set configuration by msg • Scene Controller node • WatchDog node • Global Context node • Alerter node • Load control node • Viewer node • MySQL, InfluxDB, MQTT Sample Contribuisci alla Wiki: Link
Questo nodo controlla un Indirizzo di Gruppo KNX; è il nodo più utilizzato.
Configurazione
Proprietà | Descrizione |
---|---|
Gateway | Seleziona il gateway KNX da utilizzare |
Elenco a discesa tipo GA | Tipo di indirizzo di gruppo. 3‑Livelli ** è il default, dove puoi digitare il GA a 3 livelli o il nome GA (se hai caricato il file ETS);Global ** legge il GA da una variabile globale all'avvio;Flow ** fa lo stesso a livello di flow. Seleziona$Env variable ** per leggere il GA da una variabile d'ambiente. SelezionaModalità universale (ascolta tutti gli Indirizzi di Gruppo) per reagire a TUTTI i GA. |
Group Addr. | L'indirizzo di gruppo KNX da controllare. Se hai importato il file ETS, puoi iniziare a digitare il nome del dispositivo. Puoi lasciarlo vuoto se intendi impostarlo tramite messaggio di ingresso msg.setConfig . |
Datapoint | Il Datapoint associato al nodo. |
L’editor può mostrare, per ogni nodo, un pulsante che invia manualmente un comando KNX senza dover aggiungere nodi Inject.
Proprietà | Descrizione |
---|---|
Mostra pulsante manuale | Se attivo, il piccolo pulsante viene visualizzato sul nodo nel workspace e nel pannello dei nodi. |
Azione del pulsante | Definisce l’operazione eseguita al click. Invia lettura KNX invia un telegramma di lettura standard. Inverti booleano (scrittura) è disponibile per i datapoint di tipo 1.x e alterna i valori true/false a ogni click. Scrivi valore personalizzato invia il valore inserito dall’utente (deve essere compatibile con il Datapoint configurato). |
Stato iniziale del toggle | (Solo datapoint booleani) Imposta il valore iniziale utilizzato dalla modalità toggle. Lo stato viene aggiornato automaticamente in base ai telegrammi che il nodo riceve dal BUS. |
Valore personalizzato | Payload utilizzato dalla modalità “Scrivi valore personalizzato”. È possibile inserire qualsiasi letterale JSON, ad esempio 42 , true , "testo" oppure { "red": 255 } . |
Il pulsante è visibile soltanto se l’opzione è attiva. In modalità universale l’azione di lettura è disabilitata perché l’indirizzo di gruppo sarebbe sconosciuto.
Proprietà | Descrizione |
---|---|
Proprietà generali | |
Nome del nodo | Autoesplicativo. |
Topic | Il topic del messaggio in uscita. Lascia vuoto per usare l'Indirizzo di Gruppo. |
Passthrough | Se attivo, inoltra sul PIN di uscita il msg di ingresso. |
Dal PIN di INGRESSO del nodo verso il BUS KNX | |
Tipo telegramma |
write per inviare un telegramma di scrittura (in genere è ciò che vuoi); in alternativa puoi scegliere a quale tipo di telegramma reagire. |
Filtro RBE | Filtro "Report by change”. Se attivo, invia al BUS solo messaggi di ingresso con valore diverso dal precedente. Se devi inviare sempre lo stesso valore, disattivalo. Se attivo, verrà aggiunta l'indicazione "rbe” al nome del nodo. |
Dal BUS KNX verso il PIN di USCITA del nodo | |
Read status on start | Legge lo stato del GA ad ogni avvio di Node‑RED e a ogni riconnessione al Gateway KNX. Il nodo memorizza i valori su file, quindi puoi scegliere se leggere da file o dal BUS KNX. |
Filtro RBE | Filtro "Report by change” sull'uscita: invia al flow solo quando il valore cambia. Se vuoi inviare anche valori ripetuti, lascialo disattivo. Se attivo, aggiunge "rbe” al nome del nodo. |
React to write telegrams | Il nodo invia un msg al flow ogni volta che riceve un telegramma di tipo write dal BUS KNX. |
React to response telegrams | Il nodo invia un msg al flow alla ricezione di un telegramma di risposta. Utile in scenari specifici. |
React to read telegrams | Il nodo invia un msg al flow alla ricezione di un telegramma di lettura. Utile quando vuoi rispondere con un valore personalizzato al BUS. |
Multiply | Moltiplica o divide il valore del payload. Funziona solo con numeri. |
Decimals | Arrotonda o gestisce i decimali. Solo numeri. |
Negatives | Gestisce i valori negativi. Solo numeri. |
Puoi usare JavaScript per modificare il comportamento del msg in ingresso (dal flow) e del telegramma in uscita (verso il BUS KNX). L'editor integrato espone oggetti e funzioni utili per leggere il valore di qualsiasi GA, con o senza file ETS (in questo caso specificando il Datapoint). Lo script viene eseguito a ogni msg in ingresso o a ogni telegramma ricevuto dal BUS. Se attivo, al nome del nodo viene aggiunta l'indicazione "f(x)”.
Proprietà | Descrizione |
---|---|
Search GA | Disponibile solo se hai importato il file ETS. Inizia a digitare e seleziona il GA da inserire nel codice, poi incolla il campo completo nella funzione getGAValue . getGAValue('0/0/1 table nord lamp') |
Oggetto/Funzione | Descrizione |
---|---|
msg (object) |
Il msg corrente ricevuto dal nodo. |
getGAValue (string GA, string DPT opz.) |
Restituisce il valore del GA, ad es. '1/0/1' o '1/0/1 Bed table light' (tutto dopo lo spazio viene ignorato). Con ETS importato, DPT è opzionale; altrimenti va specificato, per es. '1.001' . |
setGAValue (string GA, any value, string DPT opz.) |
Imposta il valore del GA indicato. Valgono le stesse regole di notazione del GA; il valore può essere boolean/number/string; DPT opzionale con ETS, altrimenti obbligatorio. |
self (any) |
Imposta il valore del nodo corrente e lo invia anche al BUS KNX (es.: self(false) ). Attenzione nell'handler "From KNX BUS to OUTPUT”, per evitare loop. |
toggle () |
Inverte il valore del nodo e lo invia al BUS. Stesse cautele di self . |
node |
Oggetto nodo. |
RED |
Oggetto RED di Node‑RED. |
return (msg) |
È necessario return msg; per emettere il messaggio; return; non emette niente. |
Invia al BUS solo se un altro GA ha valore opposto:
const statusGA = getGAValue('0/0/09','1.001');
if (msg.payload !== statusGA){
return msg;
} else {
return;
}
Se qualcuno accende una luce, accendi 0/1/8 e dopo 2 s spegni il nodo:
if (msg.payload){
setGAValue('0/1/8', true)
setTimeout(function() { self(off); }, 2000);
}
return msg;
Allega all'output anche la temperatura esterna letta da un altro GA:
// msg.payload contiene la temperatura interna; aggiungi la esterna
msg.externalTemperature = getGAValue('0/0/10'); // senza ETS: getGAValue('0/0/10','9.001')
return msg;
Non emettere nulla se msg.payload
e un altro GA sono entrambi false:
if (msg.payload === false && getGAValue('0/0/11','1.001') === false){
return; // non emettere
} else {
return msg;
}
**destination (string) ** : indirizzo di gruppo di destinazione (solo 3‑livelli), es. 1/1/0
.**payload (any) ** : valore da inviare (true/false/numero/stringa/oggetto).**event (string) ** : GroupValue_Write
(scrive sul BUS), GroupValue_Response
(risponde sul BUS), Update_NoWrite
(non invia al BUS, aggiorna solo il valore interno del nodo).**readstatus (boolean) ** : invia un "Read” al BUS (usa sempre true
).**dpt (string) ** : per es. 1.001
. Imposta il Datapoint.writeraw (buffer) ** ebitlenght (int) ** : invio RAW verso il BUS (vedi esempio). bitlenght
è la lunghezza in bit del dato RAW.**resetRBE (boolean) ** : resetta i filtri RBE interni (msg.resetRBE = true
).setConfig (json) : cambia via msg il GA e il DPT del nodo (vedi sotto).
Puoi cambiare la configurazione del nodo inviando msg.setConfig
.
Rimane attiva fino al prossimo setConfig
o fino a riavvio/redeploy.
Le proprietà setGroupAddress
e setDPT
sono entrambe obbligatorie.
Impostare GA e DPT
var config= { setGroupAddress: "0/1/2", setDPT: "1.001" };
msg.setConfig = config;
return msg;
Impostare GA e leggere il DPT dal file ETS
var config= { setGroupAddress: "0/1/2", setDPT: "auto" };
msg.setConfig = config;
return msg;
- Uscita standard:
payload (string|number|object)
sul PIN 1. - Errori:
error (object)
sul PIN 2 con il dettaglio dell'errore.
msg.payload
contiene il valore del GA (valore dell'indirizzo di gruppo).
Esempio di msg completo:
msg = {
topic: "0/1/2",
payload: false,
previouspayload: true,
payloadmeasureunit: "%",
payloadsubtypevalue: "Start",
devicename: "Lampada tavolo pranzo",
gainfo: {
maingroupname: "Light actuators",
middlegroupname: "First flow lights",
ganame: "Table Light",
maingroupnumber: "1",
middlegroupnumber: "1",
ganumber: "0"
},
echoed: true,
knx: {
event: "GroupValue_Write",
dpt: "1.001",
dptdesc: "Humidity",
source: "15.15.22",
destination: "0/1/2",
rawValue: "<buffer>"
}
}
Il nodo accetta msg dal flow da inviare al BUS KNX e invia msg al flow quando riceve telegrammi dal BUS.
Se hai impostato GA e DPT (manualmente o tramite autocompilazione da ETS), puoi anche sovrascrivere via msg alcuni parametri della finestra di configurazione.
Tutte le proprietà sotto sono opzionali, tranne payload
.
**msg.destination ** : ad es. 0/0/1
. GA a 3 livelli da aggiornare.**msg.payload ** : ad es. true/false/21/"Hello"
. Valore da inviare al BUS.msg.event :
GroupValue_Write
: scrive sul BUS.
GroupValue_Response
: invia una risposta sul BUS.
Update_NoWrite
: non invia sul BUS, aggiorna solo il valore interno del nodo.
ATTENZIONE: con msg.event = "Update_NoWrite"
tutti i nodi con lo stesso GA emetteranno un msg con event: 'Update_NoWrite'
e eventdesc
descrittivo.
Se vuoi emettere un "read”, usa msg.readstatus = true
.
**msg.readstatus = true ** : emette un comando di lettura verso il BUS.**msg.dpt ** : per es. 1.001
(accetta anche 9
, "9"
, "DPT9.001"
).msg.writeraw ** emsg.bitlenght ** : invio RAW al BUS (vedi esempio sotto). Se usi writeraw
, il DPT impostato nel nodo viene ignorato.msg.resetRBE = true : resetta i filtri RBE di input e output del nodo.
Puoi cambiare la configurazione del nodo inviando msg.setConfig
.
Vedi la pagina di esempio.
Altri esempi qui
ACCENDERE UNA LAMPADA
msg.payload = true;
return msg;
DIMMER ASSOLUTO DI UNA LAMPADA
msg.payload = 30;
return msg;
INVIARE TESTO A UN DISPLAY
msg.payload = "Output Tem. 35°C";
return msg;
LEGGERE LO STATO DI UNA LAVATRICE
// Invia una richiesta di lettura al BUS; seleziona l'opzione
// "React to response telegrams" per ricevere la risposta.
msg.readstatus = true;
return msg;
INVIARE UN VALORE RAW AL BUS Inserisci un function node prima del nodo KNX‑Ultimate e usa questo codice:
// Esempio DPT 1: luce ON = Buffer<01> con bitlength = 1
msg.writeraw = Buffer.from('01', 'hex');
msg.bitlenght = 1;
return msg;
// Esempio temperatura (DPT 9): 18.4 °C = Buffer<0730>
// msg.writeraw = Buffer.from('0730', 'hex');
// return msg;