
MQTT — protocollo di messaggistica IoT
La spina dorsale di messaggistica publish/subscribe dell'IoT moderno. Come MQTT si inserisce nella smart home e nell'automazione degli edifici accanto a KNX, DALI e Home Assistant.
Cos'è MQTT?
MQTT (Message Queuing Telemetry Transport) è un protocollo di messaggistica publish/subscribe leggero, progettato originariamente per i collegamenti satellitari negli anni '90 (IBM/Eurotech). Oggi è il protocollo dominante per la comunicazione dispositivo-server nell'IoT — dai sensori ESP8266 ai PLC industriali.
A differenza di KNX (basato su bus) o Modbus (master/slave), MQTT usa un modello a broker: i dispositivi pubblicano messaggi su topic presso un broker centrale (es. Mosquitto), e qualsiasi sottoscrittore in ascolto su quel topic riceve il messaggio. Nessuna comunicazione diretta tra dispositivi.
Concetti chiave:
- Broker: Server centrale che instrada tutti i messaggi (Mosquitto, HiveMQ, EMQX). In smart home = gira sul server HA o su un Pi separato.
- Topic: Percorso testuale gerarchico, es.
home/livingroom/light/state - Pubblicazione: Un dispositivo invia un messaggio a un topic
- Sottoscrizione: Un client è in ascolto su un topic e riceve tutti i messaggi pubblicati su di esso
- Messaggio retained: Il broker memorizza l'ultimo valore — i nuovi sottoscrittori lo ricevono subito
- QoS 0/1/2: Al massimo una volta / Almeno una volta / Esattamente una volta — garanzia di consegna
Specifica MQTT
| Parametro | Valore |
|---|---|
| Standard | ISO/IEC 20922 (MQTT 3.1.1), MQTT 5.0 |
| Trasporto | TCP/IP (porta 1883) o TLS (porta 8883) |
| Topologia | Stella (centrata sul broker) |
| Direzione | Publish/subscribe bidirezionale |
| Payload | Qualsiasi binario/testo — tipicamente JSON o valore semplice |
| Separatore di topic | / (barra), es. home/floor1/room2/temp |
| Wildcard (un livello) | + (più), es. home/+/light |
| Wildcard (multilivello) | # (cancelletto), es. home/# |
| QoS 0 | Invia e dimentica — nessuna garanzia di consegna |
| QoS 1 | Almeno una volta — il ricevitore conferma (può duplicare) |
| QoS 2 | Esattamente una volta — handshake a 4 vie |
| Messaggi retained | Il broker memorizza l'ultimo messaggio per topic |
| Messaggio Will | Inviato dal broker se un client si disconnette inaspettatamente |
| Autenticazione | Nome utente/password, certificati TLS |
| Porta (non cifrata) | 1883 |
| Porta (TLS) | 8883 |
MQTT nella smart home — l'ecosistema
MQTT è il linguaggio comune della smart home DIY e semiprofessionale. Diversi grandi progetti lo usano come livello di trasporto:
Zigbee2MQTT
zigbee2mqtt.ioTraduce i telegrammi radio Zigbee in MQTT. Collega un coordinatore Zigbee (CC2530, SkyConnect) ad HA, avvia Zigbee2MQTT e oltre 2.500 dispositivi Zigbee compaiono come topic MQTT. Nessun hub Philips Hue necessario.
Tasmota / ESPHome
tasmota.github.ioFirmware open source per i moduli ESP8266/ESP32. Flasha un relè Sonoff economico con Tasmota e diventa un interruttore smart che pubblica in MQTT. ESPHome è nativo per HA.
Integrazione MQTT di Home Assistant
home-assistant.ioHA può pubblicare e sottoscrivere qualsiasi topic MQTT. Configurazione tramite YAML o interfaccia. MQTT Discovery crea automaticamente entità HA quando un dispositivo si annuncia tramite un topic specifico.
Node-RED
nodered.orgProgrammazione visuale a flussi che sottoscrive topic MQTT, applica logica e pubblica su altri topic o endpoint KNX/HTTP. Spesso usata accanto ad HA per il routing complesso.
WirenBoard
wirenboard.comIl controller russo su guida DIN usa MQTT come protocollo principale. WirenBoard pubblica tutte le letture dei sensori e accetta comandi tramite topic MQTT. Funziona con HA e Node-RED.
Esempi di struttura dei topic
Esempio di albero dei topic MQTT (smart home)
home/
├── livingroom/
│ ├── light/state → "ON" / "OFF"
│ ├── light/brightness → "75" (0-100%)
│ ├── light/color_temp_k → "3000"
│ ├── temperature → "21.5"
│ └── occupancy → "true" / "false"
├── kitchen/
│ ├── light/state → "ON"
│ └── humidity → "45"
├── bedroom/
│ ├── blind/position → "75" (0=open, 100=closed)
│ └── thermostat/setpoint → "20.5"
└── panel/
├── meter/power_w → "1247"
└── meter/energy_kwh → "1852.3"MQTT vs KNX — quando usare cosa
| Aspetto | MQTT | KNX TP |
|---|---|---|
| Infrastruttura | Rete IP (Ethernet/Wi-Fi) | Cavo di bus TP dedicato |
| Affidabilità | Dipende dalla rete e dall'uptime del broker | Deterministica, il bus è sempre attivo |
| Latenza | Millisecondi (IP) + andata e ritorno al broker | <50 ms (telegramma di bus diretto) |
| Scalabilità | Illimitata (scalabilità orizzontale) | 255 indirizzi per linea, max 15 linee |
| Complessità di setup | Bassa (broker + publish/subscribe) | Alta (programmazione ETS, indirizzamento) |
| Costo hardware | Basso (ESP8266 = 2 €) | Alto (attuatore KNX = 50–200 €+) |
| Certificazione | Non richiesta | Certificato KNX + licenza ETS |
| Funziona senza server | ❌ Il broker deve essere in esecuzione | ✅ Il bus locale funziona senza server |
| Caso d'uso migliore | Dati dei sensori, integrazione IoT, DIY flessibile | Controllo critico per la sicurezza, edificio commerciale |
| Utente tipico | Maker, integratore HA, sviluppatore IoT | Ingegnere elettrico, specialista DALI/KNX |
La risposta sincera: In un'installazione premium ben progettata, KNX gestisce il controllo hardware (commutazione, dimmerazione, tapparelle) e MQTT/IP gestisce l'aggregazione dei dati dei sensori e le integrazioni software (monitoraggio energetico, presenza, meteo). Sono complementari — non in competizione.
Opzioni di integrazione KNX + MQTT
Home Assistant (integrazioni KNX + MQTT)
Sia l'integrazione KNX sia quella MQTT girano in HA. Le automazioni possono leggere i valori dei sensori MQTT e attivare gli attuatori KNX — o viceversa. Nessun hardware aggiuntivo.
knx-mqtt-bridge (open source)
Servizio Node.js autonomo che collega gli indirizzi di gruppo KNX ai topic MQTT in modo bidirezionale. Ogni GA KNX viene mappata su un topic MQTT. Gira su Pi o Docker.
Nodi Node-RED KNX + MQTT
node-red-contrib-knx + nodi MQTT. Programmazione visuale a flussi: topic MQTT → trasformazione → telegramma KNX. Ottimo per il routing condizionale complesso.
Gateway WirenBoard WB-MGW
Il gateway WirenBoard può tradurre tra dispositivi RS-485/Modbus e MQTT. Poi HA legge MQTT e pubblica su KNX. Diffuso nell'Europa dell'Est.
Architettura KNX + MQTT progettata per il tuo progetto
Integriamo le reti di sensori MQTT con i quadri di controllo KNX — Zigbee2MQTT, contatori di energia, sensori HVAC — tutto unificato in un unico sistema.
Richiedi un preventivo →