npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

node-red-contrib-eyeon-system-mqtt

v1.0.3

Published

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

Downloads

590

Readme

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

  • Doppia Modalità di Connessione al Bus:

    • Porta Seriale RS485 Diretta: Connessione diretta a convertitori USB/RS485 (default /dev/ttyUSB0 a 19200 baud, 8N1 standard Technobus EYEON).
    • Gateway TCP / Ethernet: Connessione socket verso convertitori Ethernet/RS485 o controller IP EYEON (IP:Porta, auto-riconnessione e keepalive).
    • Modalità Standalone / Serial I/O: Possibilità di utilizzare il nodo senza controller interno, collegandolo direttamente ai nodi seriali esistenti di Node-RED (serial request o serial in/serial out).
  • Framing & Pacing Bus RS485:

    • Framing automatico a 5 byte fissi ([CM0, CM1, ID, VL0, VL1]).
    • Pacing dei comandi TX (delay configurabile, default 100ms / ~10 msg/sec) per prevenire collisioni e sovraccarico sul bus RS485.
    • Watchdog Connection: Interrogazione periodica del modulo watchdog (default ID 10 ogni 60s) con monitoraggio inattività bus (timeout a 75s).
  • 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 Home Assistant.
    • Uscita 2 (Raw Buffer): Buffer binario a 5 byte esatti (eyeon/raw/rx e eyeon/raw/tx) per analisi, diagnostica o collegamento a nodi seriali esterni.
  • Mappatura Completa dei Moduli Technobus:

    • Digital module ID: Moduli digitali a 8 relè standard (es. 10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,50,51,52).
    • Cover module ID: Moduli tapparelle (coppie relè 1-2, 3-4, 5-6, 7-8) con comandi OPEN, CLOSE, STOP e interblocco.
    • Fan module ID: Moduli fan-coil a 3 velocità (low, medium, high, off) con compatibilità fancoil/valvole.
    • Analogic module ID: Moduli clima/termostato ambiente con temperatura e setpoint.
    • Dimmer module ID: Moduli regolatori dimmer DALI/DMX (canali da 01 a 08).
    • Energy module ID: Contatori energetici Technobus (potenza istantanea W ed energia progressiva kWh).
    • Watchdog connection module ID: Modulo interrogato periodicamente per verificare la connessione bus.
  • Sincronizzazione di Stato:

    • Sync on startup: Sincronizzazione automatica di tutti i moduli all'avvio.
    • Sincronizzazione periodica programmabile (in secondi).
    • Richieste di sync manuali via MQTT (sync, startup/full/eyeon/sync, {id}/module/eyeon/sync).
  • Home Assistant Auto-Discovery via MQTT:

    • Registrazione automatica istantanea delle entità su Home Assistant (light, cover, fan, sensor, binary_sensor).
    • Piena compatibilità con i package YAML Home Assistant preesistenti.

📦 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 il collegamento fisico verso il bus Technobus / EYEON:

  • Connessione: Seleziona tra Porta Seriale RS485 oppure Gateway TCP / Ethernet.
  • Porta Seriale: Percorso del dispositivo (default /dev/ttyUSB0 su Linux, o COMx su Windows).
  • Baud Rate: Velocità di trasmissione (default 19200, opzioni: 9600, 19200, 38400, 57600, 115200).
  • Host / IP: Indirizzo IP in modalità TCP (es. 192.168.1.100).
  • Porta TCP: Porta di comunicazione in modalità TCP (default 5000).
  • Pacing (ms): Tempo di attesa tra due pacchetti per non saturare il bus RS485 (default 100 ms).
  • Riconnessione (ms): Intervallo di riconnessione automatica (default 5000 ms).

2. Bridge Principale (eyeon-system-mqtt)

Nodo applicativo che gestisce la logica di conversione bidirezionale tra MQTT e il bus:

  • Controller Gateway: Seleziona la configurazione del controller, oppure lascia vuoto per operare in modalità Standalone Serial I/O (collegato direttamente ai nodi serial in o serial request di Node-RED).
  • Digital module ID: ID di tutti i moduli digitali a 8 relè presenti sul bus separati da virgola.
  • Cover module ID: ID dei moduli usati per tapparelle.
  • Fan module ID: ID dei moduli usati per fan-coil a 3 velocità.
  • Analogic module ID: ID dei termostati/sonde temperatura.
  • Dimmer module ID: ID dei moduli dimmer.
  • Energy module ID: ID dei contatori di energia.
  • Watchdog connection module ID: ID del modulo di verifica heartbeat (es. 10).
  • Sync on startup: Se abilitato, esegue la sincronizzazione dello stato dei moduli all'avvio.
  • Debug log: Abilita il log diagnostico dettagliato nei messaggi di debug di Node-RED.
  • 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.