VARIABILE GLOBALE KNX
Questo nodo espone gli indirizzi di gruppo ricevuti dal BUS a una variabile di contesto globale.
Puoi anche scrivere sul BUS KNX aggiornando la variabile globale dedicata.
Panoramica
- Inserisci il nodo Global Context nel flow e assegnagli un nome. Il nome del nodo diventa il nome base della variabile globale.
- La lettura avviene tramite il suffisso
_READ(es.MiaVar_READ). - La scrittura avviene tramite il suffisso
_WRITE(es.MiaVar_WRITE). - Dalla finestra di configurazione puoi esporre la variabile come sola lettura o lettura/scrittura.
- Per sicurezza, cambia sempre il nome predefinito della variabile.
Nota: dopo lâesecuzione dei comandi, la variabile con suffisso _WRITE viene svuotata automaticamente, per evitare cicli di scrittura infiniti.
Impostazioni
| ProprietĂ | Descrizione |
|---|---|
| Gateway | Gateway KNX. |
| Variable Name | Nome base del contesto globale. Verranno create due variabili: <Nome>_READ (lettura) e <Nome>_WRITE (scrittura). Scegli un nome non predefinito per motivi di sicurezza. |
| Expose as Global variable | Se e come esporre la variabile globale. Se non devi scrivere sul BUS, imposta âread onlyâ. |
| BUS write interval | Intervallo con cui il nodo controlla <Nome>_WRITE per inviare comandi al BUS. |
ProprietĂ msg (oggetti nella variabile)
{
address: "0/0/1",
dpt: "1.001",
payload: true,
devicename: "Dinning Room->Table Light"
}
Utilizzo rapido
Leggere la variabile
// Legge l'array di oggetti GA dalla variabile globale
let list = global.get("KNXContextBanana_READ") || [];
node.send({ payload: list });
// Trova una GA specifica
let ga = list.find(a => a.address === "0/0/10");
if (ga && ga.payload === true) return { payload: "FOUND AND TRUE" };
if (ga && ga.payload === false) return { payload: "FOUND AND FALSE" };
Scrivere sul BUS tramite variabile
// Prepara comandi da inviare al BUS
let toSend = [];
toSend.push({ address: "0/0/10", dpt: "1.001", payload: msg.payload });
// Con ETS importato si può omettere dpt: verrà dedotto
toSend.push({ address: "0/0/11", payload: msg.payload });
// Scrittura: usa il suffisso _WRITE
global.set("KNXContextBanana_WRITE", toSend);