node-red-contrib-eyeon-system-mqtt 1.0.0

Professional Technobus / EYEON System to MQTT bridge for Node-RED with native TCP and Serial support, dual output (MQTT and raw 5-byte bus frames) and optional Home Assistant Auto-Discovery

npm install node-red-contrib-eyeon-system-mqtt

node-red-contrib-eyeon-system-mqtt

npm version License: MIT Node-RED

Nodo Node-RED ad alte prestazioni per l'integrazione e il controllo bidirezionale del sistema domotico EYEON / Technobus di Alarmsystems TechnoLife tramite MQTT e Home Assistant, con supporto nativo TCP, framing binario a 5 byte, pacing RS485 e doppia uscita (Dual Output).

Sviluppato e manutenuto da Bruno Leonardi.


🌟 Caratteristiche Principali

  • Connessione TCP Gateway Affidabile:

    • Connessione diretta a convertitori TCP/RS485 o interfacce di rete Technobus.
    • Framing automatico a 5 byte fissi ([CM0, CM1, ID, VL0, VL1]), garantendo integritĂ  dei dati anche su flussi TCP frammentati.
    • Auto-riconnessione intelligente e keepalive periodico configurabile.
    • Pacing dei comandi TX (delay configurabile, default 50ms) per prevenire collisioni e saturazione sul bus seriale RS485.
  • Doppia Uscita (Dual Output):

    • Uscita 1 (MQTT JSON): Notifiche di stato JSON formattate, pronte per essere inviate a un broker MQTT standard o ad automazioni interne.
    • Uscita 2 (Raw Buffer): Buffer binario a 5 byte esatti (eyeon/raw/rx e eyeon/raw/tx) per analisi, diagnostica o log a basso livello.
  • Mappatura Completa dei Moduli Technobus:

    • Relè Digitali: Controllo singole uscite (00101/output/eyeon/set), toggle generale (001/output/eyeon/all), uscite temporizzate (delay).
    • Tapparelle (Covers): 4 tapparelle per modulo a 8 relè (coppie 1-2, 3-4, 5-6, 7-8) con comandi OPEN, CLOSE, STOP e interblocco.
    • Fan-Coil / Ventilazione: Controllo selettore 3 velocitĂ  su relè 2, 3, 4 (low, medium, high, off).
    • Dimmer & Uscite Analogiche: Accensione/spegnimento e regolazione intensitĂ  sia in scala 0..255 che in percentuale 0..100.
    • Termostati & Clima: Decodifica BCD avanzata di temperatura ambiente, manopola (knob), setpoint e velocitĂ  ventilazione.
    • Energia: Monitoraggio di potenza istantanea (W) ed energia progressiva (kWh).
  • Sincronizzazione di Stato:

    • Sincronizzazione automatica all'avvio o riconnessione per tutti i moduli configurati.
    • Sincronizzazione periodica programmabile (in secondi).
    • Richieste di sync manuali su richiesta (sync o {id}/module/eyeon/sync).
  • Home Assistant Auto-Discovery via MQTT:

    • Registrazione automatica istantanea delle entitĂ  su Home Assistant (light, cover, fan, sensor, binary_sensor).
    • CompatibilitĂ  nativa con MQTT Discovery di Home Assistant.

📦 Installazione

Dalla cartella utente di Node-RED (solitamente ~/.node-red):

npm install node-red-contrib-eyeon-system-mqtt

Oppure direttamente dall'interfaccia grafica di Node-RED:

  1. Apri Menu (in alto a destra) -> Gestisci tavolozza (Manage palette).
  2. Seleziona la scheda Installa.
  3. Cerca node-red-contrib-eyeon-system-mqtt.
  4. Clicca su Installa.

⚙️ Configurazione dei Nodi

1. Gateway Controller (eyeon-controller)

Nodo di configurazione che gestisce la connessione TCP al bus Technobus / EYEON:

  • Host / IP: Indirizzo IP del gateway Technobus (es. 192.168.1.100).
  • Porta TCP: Porta di comunicazione (default 5000).
  • Riconnessione (ms): Ritardo prima di tentare una nuova connessione in caso di disconnessione (default 5000).
  • Pacing Comandi (ms): Tempo di attesa tra l'invio di due comandi consecutivi a 5 byte per preservare il bus RS485 (default 50).
  • Keepalive (sec): Intervallo invio pacchetti di heartbeat (default 30).

2. Bridge Principale (eyeon-system-mqtt)

Nodo applicativo che converte i comandi MQTT in pacchetti Technobus e decodifica i dati di risposta:

  • Moduli Digitali: Elenco ID dei moduli digitali a 8 relè standard separati da virgola (es. 001, 002, 010).
  • Moduli Tapparelle: Elenco ID dei moduli destinati al comando tapparelle (es. 003, 004).
  • Moduli Fan-Coil: Elenco ID dei moduli usati per il comando ventilatori (es. 005).
  • Moduli Dimmer: Elenco ID dei moduli regolatori dimmer (es. 006).
  • Termostati: Elenco ID dei moduli clima/termostato ambiente (es. 007).
  • Moduli Energia: Elenco ID dei contatori energetici Technobus (es. 008).
  • Sincronizza alla connessione: Richiede lo stato aggiornato di tutti i moduli appena stabilita la connessione.
  • Sync Periodico: Intervallo in secondi per forzare il refresh dello stato del bus (0 per disabilitare).
  • Abilita Home Assistant Auto-Discovery: Pubblica automaticamente le configurazioni discovery su MQTT.

📡 Riferimento Topic MQTT

I topic Technobus utilizzano il formato a tre cifre per l'ID modulo (es. 001) e a due cifre per l'uscita/canale (es. 01).

Comandi (Inviati al nodo in ingresso)

Funzione Topic Payload di Esempio Descrizione
Uscita Digitale <ID><OUT>/output/eyeon/set "ON" oppure "OFF" Es. 00101/output/eyeon/set -> Accende o spegne l'uscita 1 del modulo 1
Uscita Temporizzata <ID><OUT>/output/eyeon/delay "ON" Es. 00101/output/eyeon/delay -> Attivazione con timer programmato a bordo
Tutte le Uscite <ID>/output/eyeon/all "OFF" oppure "ON" Es. 001/output/eyeon/all -> Spegne o accende tutte le 8 uscite del modulo
Tapparella <ID><COV>/cover/eyeon/set "OPEN", "CLOSE", "STOP" Es. 00301/cover/eyeon/set -> Movimento o arresto tapparella 1 del modulo 3
Ventilatore / Fan <ID>/fan/eyeon/set "low", "medium", "high", "off" Es. 004/fan/eyeon/set -> Seleziona velocità fan-coil (relè 2, 3, 4)
Dimmer On/Off <ID><CH>/dimmer/eyeon/set "ON" oppure "OFF" Es. 00601/dimmer/eyeon/set -> Toggle o stato del canale dimmer
Dimmer LuminositĂ  (255) <ID><CH>/brightness/255/eyeon/set 180 (da 0 a 255) Es. 00601/brightness/255/eyeon/set -> Imposta livello assoluto
Dimmer LuminositĂ  (%) <ID><CH>/brightness/100/eyeon/set 75 (da 0 a 100) Es. 00601/brightness/100/eyeon/set -> Imposta percentuale luminositĂ 
Setpoint Clima <ID>/climate/setpoint/eyeon/set 21.5 Es. 007/climate/setpoint/eyeon/set -> Imposta temperatura di setpoint
Sync Singolo Modulo <ID>/module/eyeon/sync Qualsiasi Richiede lo stato digitale del modulo specificato
Sync Globale sync Qualsiasi Richiede la sincronizzazione di tutti i moduli configurati
Forza Discovery discovery Qualsiasi Emette nuovamente tutte le schede di auto-discovery per Home Assistant

Notifiche di Stato (Emesse dall'Uscita 1)

Funzione Topic Esempio Payload JSON
Stato Uscite Digitali <ID>/output/eyeon/status {"output":{"o1":"ON","o2":"OFF",...},"attributes":{...}}
Singola Uscita Digitale <ID><OUT>/output/eyeon/status {"output":{"state":"ON","relay":1},"attributes":{...}}
Ingressi Digitali <ID>/input/eyeon/status {"input":{"i1":"ON","i2":"OFF",...},"attributes":{...}}
Stato Tapparella <ID><COV>/cover/eyeon/status {"cover":{"state":"opening","open":true,"close":false},"attributes":{...}}
Stato Ventilatore <ID>/fan/eyeon/status {"fan":{"state":"ON","preset":"medium","percentage":2},"attributes":{...}}
Stato Dimmer <ID><CH>/dimmer/eyeon/status {"dimmer":{"state":"ON","brightness_255":200,"brightness_100":78},"attributes":{...}}
Temperatura Ambiente <ID>/climate/temperature/eyeon/status {"climate":{"temperature":"21.5"},"attributes":{...}}
Potenza Istantanea <ID>/energy/power/eyeon/status {"energy":{"power_w":2350},"attributes":{...}}
Energia Totale <ID>/energy/total/eyeon/status {"energy":{"energy_kwh":1420.5},"attributes":{...}}
Stato Connessione connection/eyeon/status {"connection":{"state":"ON","status":"CONNECTED"},"attributes":{...}}

🛠️ Esempio di Flusso Node-RED

Collega un nodo MQTT In all'ingresso del nodo eyeon-system-mqtt, e collega la sua prima uscita ad un nodo MQTT Out:

[MQTT In: #] ---> [eyeon-system-mqtt] === (Out 1) ---> [MQTT Out]
                                      === (Out 2) ---> [Debug Raw Buffer]

Grazie al gestore interno, se invii via MQTT un messaggio con topic 00101/output/eyeon/set e payload ON, il nodo genererĂ  automaticamente il frame Technobus a 5 byte 0x55 0x22 0x01 0x01 0x01, lo trasmetterĂ  al gateway con cadenza sicura sul bus RS485 e riceverĂ  l'eco di conferma aggiornando lo stato in tempo reale.


đź“‹ Licenza

Distribuito sotto licenza MIT. Consulta il file LICENSE per ulteriori dettagli.

Copyright (c) 2026 Bruno Leonardi.

Node Info

Version: 1.0.0
Updated 17 hours ago
License: MIT
Rating: not yet rated

Categories

Actions

Rate:

Downloads

0 in the last week

Nodes

  • eyeon-controller
  • eyeon-system-mqtt

Keywords

  • node-red
  • eyeon
  • technobus
  • alarmsystems
  • technolife
  • mqtt
  • homeassistant
  • rs485
  • automation

Maintainers