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.
183 lines (126 loc) • 6.15 kB
HTML
<script type="text/markdown" data-help-name="knxUltimateWatchDog">
# WatchDog
Controlla la connessione al Gateway o a uno specifico dispositivo KNX e consente azioni automatiche in caso di problemi.
**Cosa fa**
1. Verifica la salute della comunicazione KNX inviando periodicamente un telegramma, attende una risposta e invia un msg al flow se la connessione al BUS è interrotta. Due livelli di controllo (vedi sotto).
2. Modifica via messaggio i parametri del nodo di configurazione (Config-Node), quindi la connessione verso il tuo KNX/IP Router/Interface (es. switch tra due gateway per backup).
3. Forza connessione/disconnessione del gateway verso il BUS KNX.
## Verifiche a livello Ethernet e a livello KNX Twisted Pair
Il WatchDog ha due livelli di controllo.
- Primo livello: controlla solo la connessione tra KNX-Ultimate e l'interfaccia KNX/IP in modalità unicast.
- Secondo livello: controlla l'intera catena, dal nodo Gateway KNX-Ultimate alla rete Ethernet fino al KNX TP e viceversa; richiede un dispositivo fisico che risponda a richieste di lettura.
Il WatchDog è molto utile per notificare errori e problemi di connessione: puoi inviare un'email all'installatore KNX o passare automaticamente a un gateway di backup.
## Impostazioni (SETTINGS)
| Proprietà | Descrizione |
|--|--|
| Gateway | Gateway KNX selezionato. |
| Group Address da monitorare | GA a cui inviare il telegramma e da cui attendere risposta sul BUS KNX. Il Datapoint deve essere DPT 1.x (boolean). |
| Nome nodo | Nome del nodo. |
| Avvia il watchdog automaticamente | Avvio automatico del timer al deploy o all'avvio di Node-RED. |
| Livello controllo (vedi Wiki) | Vedi sotto. |
**Check level**
> Ethernet: controlla la connessione tra il Gateway KNX-Ultimate (in unicast) e la tua KNX/IP Interface.<br/>
<img src="https://raw.githubusercontent.com/Supergiovane/node-red-contrib-knx-ultimate/master/img/wiki/WatchDogEthernetLevel.png" width="90%"><br/>
> Ethernet e KNX TP: controllo completo (KNX/IP Router o Interface). Verifica la comunicazione con un dispositivo fisico inviando una richiesta di lettura e attendendo una risposta. Qualsiasi problema lato Ethernet o KNX TP viene segnalato. Riserva una GA di "Status” in ETS su un attuatore che risponda ai Read.<br/>
<img src="https://raw.githubusercontent.com/Supergiovane/node-red-contrib-knx-ultimate/master/img/wiki/WatchDogEthernetKNXTPLevel.png" width="90%"><br/>
## Opzioni avanzate
| Proprietà | Descrizione |
|--|--|
| Riprova ogni (in secondi) | Intervallo (s) tra due verifiche: il nodo invia un telegramma al BUS con questa cadenza. |
| Dopo questo numero di tentativi, segnala l'errore | Dopo questo numero di tentativi senza risposta, il nodo genera errore. |
# Messaggi in uscita dal WatchDog
Il nodo emette un messaggio quando riceve un errore da un qualsiasi nodo KNX-Ultimate nel flow, oppure quando il watchdog interno intercetta un errore di comunicazione sul BUS KNX.
**In caso di problema di connessione rilevato dal WatchDog**
<a href="https://supergiovane.github.io/node-red-contrib-knx-ultimate/wiki/WatchDog-Configuration" target="_blank">Vedi qui.</a>
```javascript
msg = {
type: "BUSError",
checkPerformed: "Ethernet" // oppure "Eth+KNX"
nodeid: "23HJ.2355",
payload: true,
description: "..."
}
```
**In caso di errore di un tuo nodo KNX-Ultimate**
```javascript
msg = {
type: "NodeError",
checkPerformed: "Self KNX-Ultimate node reporting a red color status",
nodeid: "23HJ.2355",
payload: true,
description: "...",
completeError: {
nodeid: "23HJ.2355",
topic: "0/1/1",
devicename: "Kitchen Light",
GA: "0/1/1"
}
}
```
**Se viene richiamata una nuova configurazione gateway tramite setGatewayConfig**
```javascript
msg = {
type: "setGatewayConfig",
checkPerformed: "The Watchdog node changed the gateway configuration.",
nodeid: "23HJ.2355",
payload: true,
description: "New Config issued to the gateway. IP:224.0.23.12 Port:3671 PhysicalAddress:15.15.1\nBindLocalInterface:Auto",
completeError: ""
}
```
**Connessione/Disconnessione forzata**
```javascript
msg = {
type: "connectGateway",
checkPerformed: "The Watchdog issued a connection/disconnection to the gateway.",
nodeid: "23HJ.2355",
payload: true, // true=connessione, false=disconnessione
description: "Connection",
completeError: ""
}
```
---
# Messaggi di ingresso (INPUT)
Il WatchDog accetta input dal flow ed emette output verso il flow. Di seguito il formato dei messaggi da inviare/attesi.
## Avviare e fermare il WatchDog
**START**
```javascript
msg.start = true;
return msg;
```
**STOP**
```javascript
msg.start = false;
return msg;
```
## Modificare al volo le impostazioni del KNX/IP Router/Interface
Con `msg.setGatewayConfig` puoi cambiare IP, Porta, Indirizzo Fisico, Protocollo, ecc., del gateway configurato nel Config-Node. Il Config-Node applica i parametri e si riconnette. Al riavvio di Node-RED, le impostazioni tornano a quelle del Config-Node.
Tutti i parametri sono opzionali.
```javascript
// IP, Port, PhysicalAddress, BindToEthernetInterface ("Auto" o nome scheda, es. "en0"), Protocol: "TunnelUDP"|"TunnelTCP"|"Multicast"
// importCSV: contenuto ETS CSV/ESF (vedi wiki Gateway Config)
msg.setGatewayConfig = { IP:"224.0.23.12", Port:3671, PhysicalAddress:"15.15.1", BindToEthernetInterface:"Auto",
Protocol:"Multicast", importCSV:`"Group name" "Address" "Central" "Unfiltered" "Description" "DatapointType" "Security"
"Attuatori luci" "0/-/-" "" "" "" "" "Auto"
"Luci primo piano" "0/0/-" "" "" "" "" "Auto"
"Luce camera da letto" "0/0/1" "" "" "" "DPST-1-1" "Auto"` };
return msg;
```
Per cambiare solo l'IP:
```javascript
msg.setGatewayConfig = { IP:"224.0.23.12" };
return msg;
```
**Forzare disconnessione e disabilitare i tentativi di auto-reconnect**
```javascript
msg.connectGateway = false;
return msg;
```
**Forzare connessione e abilitare i tentativi di auto-reconnect**
```javascript
msg.connectGateway = true;
return msg;
```
## Vedi anche
[Sample WatchDog](https://supergiovane.github.io/node-red-contrib-knx-ultimate/wiki/-Sample---WatchDog)
</script>