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, KNX AI for diagnosticsand KNX routing between interfaces. Easy to use and highly configurable.
72 lines (51 loc) • 2.59 kB
HTML
<script type="text/markdown" data-help-name="knxUltimateGlobalContext">
# 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. |
| Nome variabile (no spazi, solo [a-z]) | 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. |
| Esponi come variabile globale | Se e come esporre la variabile globale. Se non devi scrivere sul BUS, imposta "read only”. |
| Intervallo scrittura su BUS | Intervallo con cui il nodo controlla `<Nome>_WRITE` per inviare comandi al BUS. |
## Proprietà msg (oggetti nella variabile)
```javascript
{
address: "0/0/1",
dpt: "1.001",
payload: true,
devicename: "Dinning Room->Table Light"
}
```
## Utilizzo rapido
### Leggere la variabile
```javascript
// 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
```javascript
// 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);
```
## Esempio completo
<a href="https://supergiovane.github.io/node-red-contrib-knx-ultimate/wiki/SampleGlobalContextNode" target="_blank"><i class="fa fa-info-circle"></i> Vedi questo esempio</a>
</script>