Hai speso migliaia di euro per una telecamera PTZ e dozzine di sensori. Ma non comunicano tra loro. Ogni dispositivo vive sulla propria isola e il tuo cliente si chiede perché il sistema non possa reagire automaticamente.
MQTT è il protocollo di messaggistica leggero che collega la tua telecamera PTZ ai sensori IoT come contatti di cancelli, rilevatori PIR e sonde di temperatura. Utilizza un modello publish/subscribe tramite un broker centrale, quindi quando un dispositivo invia un segnale, ogni dispositivo sottoscritto reagisce in millisecondi, anche su reti 4G alimentate a energia solare.

In questo articolo, ti spiegherò esattamente come MQTT rende possibile il collegamento tra dispositivi in progetti di sicurezza B2B reali. Tratterò allarmi attivati dalla telecamera, pubblicazione di metadati AI, integrazione con Home Assistant e impatto sulla batteria. Iniziamo.
Indice dei contenuti
La mia telecamera può attivare un allarme remoto se viene aperto un sensore di cancello IoT?
Ho visto troppi progetti in cui il sensore del cancello rileva un intruso, ma la telecamera continua la sua lenta pattuglia. I due dispositivi non hanno alcuna connessione. L'allarme non scatta mai. Il cliente perde fiducia.
Sì. Con MQTT, il tuo sensore del cancello pubblica un evento “aperto” su un topic nel broker. La tua telecamera PTZ si sottoscrive allo stesso topic. Nel momento in cui il cancello si apre, la telecamera salta a una posizione preimpostata, esegue uno zoom con ottica 40X e attiva un allarme remoto, tutto in millisecondi.

Come funziona il modello Publish/Subscribe in questo scenario
La chiave per capire questo è il modello publish/subscribe (Pub/Sub)1. È molto diverso dal vecchio modo di fare le cose, in cui il Dispositivo A invia una richiesta HTTP diretta al Dispositivo B. Quel vecchio metodo è lento. Richiede che entrambi i dispositivi siano online nello stesso momento esatto. E non scala.
Con MQTT, c'è un intermediario chiamato mediatore2. Pensa al broker come a un ufficio postale. Il sensore del cancello lascia un messaggio. La telecamera lo ritira. Non hanno mai bisogno di conoscere l'indirizzo IP l'uno dell'altro. Devono solo conoscere il argomento — come un indirizzo di posta.
Ecco il flusso passo-passo:
- Il sensore di contatto magnetico sul tuo cancello rileva l'apertura del cancello.
- Il sensore pubblica un messaggio sull'argomento MQTT
sito/perimetro/cancello-01con il payload{"status": "aperto", "timestamp": "2025-01-15T08:30:00Z"}. - L'MQTT broker (in esecuzione sul tuo server n8n, o un'istanza cloud come Mosquitto o EMQX) riceve questo messaggio.
- La tua telecamera PTZ è sottoscritta a
sito/perimetro/cancello-01. Riceve il messaggio istantaneamente. - Il firmware della telecamera analizza il payload ed esegue un'azione preimpostata: spostarsi al Preset 1 (Vista Cancello), attivare lo zoom 40X, attivare l'IR laser e avviare la registrazione.
- Allo stesso tempo, il broker inoltra il messaggio al tuo pannello di allarme, che attiva una sirena e invia una notifica push al gestore del sito.
Perché questo è importante per siti remoti e off-grid
Per David Miller e integratori come lui, questa non è solo una bella funzionalità. È un requisito di progetto. Molti dei siti in cui operano — fattorie, cantieri, campi solari — non dispongono di una rete cablata. Funzionano con 4G LTE e energia solare.
In questi ambienti, non puoi permetterti di utilizzare protocolli basati su polling intensivo. L'overhead di MQTT è minimo. L'intestazione del pacchetto è di soli 2 byte. Un singolo messaggio di apertura cancello potrebbe essere di 50 byte in totale. Confrontalo con una richiesta HTTP POST, che può facilmente essere di 500+ byte con le intestazioni.
| Metodo di comunicazione | Overhead tipico | Tipo di connessione | Idoneità per 4G Solar |
|---|---|---|---|
| API REST HTTP | 500–2000 byte per richiesta | Di breve durata, sincrono | Scarso — uso elevato dei dati, latenza elevata |
| WebSocket | 200–500 byte handshake iniziale | Persistente, bidirezionale | Moderato — migliore ma ancora pesante |
| MQTT (QoS 0) | 2–50 byte per messaggio | Persistente, asincrono | Eccellente — dati minimi, alimentazione minima |
Tolleranza ai guasti offline con livelli QoS
Una cosa che consiglio sempre agli integratori: impostare i tuoi argomenti di allarme critici su QoS 1 (consegna almeno una volta)3. Ciò significa che se il segnale 4G cade per alcuni secondi, il broker trattiene il messaggio e lo consegna non appena la connessione torna attiva. Il tuo comando di allarme non andrà perso.
Per dati non critici come le letture di temperatura di routine, QoS 0 (fire and forget) va bene. Questo consente di risparmiare larghezza di banda e batteria.
Il firmware supporta la pubblicazione di metadati AI (rilevamento umano) su un broker MQTT?
La maggior parte delle telecamere può rilevare una persona. Ma il risultato del rilevamento rimane intrappolato all'interno dell'app della telecamera. Non puoi usarlo altrove. Il tuo NVR non lo sa. La tua piattaforma di automazione non lo sa. I dati vengono sprecati.
Sì. Il firmware della nostra telecamera PTZ può pubblicare i risultati del rilevamento AI — come ‘rilevato umano’ o ‘rilevato veicolo’ — direttamente su un broker MQTT. Questo trasforma l'intelligenza video grezza in dati strutturati su cui qualsiasi sistema sottoscritto può agire immediatamente, dall'attivazione di allarmi alla registrazione di eventi in un database.

Come appaiono realmente i metadati AI
Quando il motore AI integrato della nostra telecamera rileva un umano, non si limita a far lampeggiare un riquadro rosso sul feed video. Genera un pacchetto di dati strutturato. Questo pacchetto può essere pubblicato su un topic MQTT come camera/ptz-01/ai/eventi.
Ecco un esempio di come appare quel payload:
{
"event": "human_detected",
"confidence": 0.92,
"bounding_box": {"x": 320, "y": 180, "w": 120, "h": 280},
"preset": "Gate-North",
"zoom_level": "28X",
"timestamp": "2025-01-15T08:31:05Z"
} Questo non è solo un semplice avviso. Include il punteggio di confidenza, la posizione della persona nell'inquadratura, la preset PTZ corrente, e il livello di zoom. Questi dati sono oro per gli integratori di sistemi.
Come gli integratori utilizzano questi dati
Una volta che questi metadati raggiungono il broker MQTT, qualsiasi sistema sottoscritto può utilizzarli. Ecco tre casi d'uso reali:
Caso d'uso 1: Filtraggio intelligente in n8n o Node-RED. La tua piattaforma di automazione si sottoscrive al topic degli eventi AI. Controlla il punteggio di confidenza. Se è superiore a 0,85, attiva una sequenza di allarme completa. Se è inferiore a 0,5, registra l'evento ma non disturba il cliente. Ciò riduce drasticamente i falsi allarmi.
Caso d'uso 2: Registrazione su database per conformità. Un sottoscrittore scrive ogni evento AI in un database PostgreSQL o InfluxDB. Alla fine del mese, il proprietario del sito riceve un rapporto: “247 rilevamenti umani, 89 rilevamenti di veicoli, 12 intrusioni confermate”. Questo tipo di reportistica fa vincere contratti.
Caso d'uso 3: Coordinamento tra telecamere. La telecamera A rileva una persona alla recinzione est. Pubblica l'evento. La telecamera B, a 200 metri di distanza al cancello sud, si iscrive all'argomento della telecamera A. La telecamera B si sposta immediatamente per coprire il probabile percorso di movimento. Questo è rilevamento relay — ed è possibile solo con MQTT.
Comunicazione bidirezionale: la telecamera risponde
Questo è un punto che molti trascurano. MQTT non è unidirezionale. La telecamera è sia un sottoscrittore (ascolta i comandi) sia un editore (invia i risultati dell'IA). Questo flusso bidirezionale è ciò che rende possibile la vera integrazione IoT.
| Direzione | Argomento di esempio | Carico utile | Scopo |
|---|---|---|---|
| Sensore → Telecamera | sito/recinto/cancello-01 | {"stato": "aperto"} | Attiva spostamento preimpostato PTZ |
| Telecamera → Piattaforma | camera/ptz-01/ai/eventi | {"evento": "umano_rilevato"} | Segnala risultato rilevamento IA |
| Piattaforma → Fotocamera | camera/ptz-01/commands | {"action": "goto_preset", "id": 3} | Controllo PTZ remoto |
| Telecamera → Piattaforma | camera/ptz-01/status | {"battery": "78%", "signal": "-72dBm"} | Monitoraggio dello stato di salute |
Questa tabella mostra il quadro completo. La fotocamera non è uno spettatore passivo. È un nodo attivo nella tua rete IoT.
Come posso integrare la telecamera PTZ con la mia configurazione esistente di Home Assistant o Node-RED?
Hai già una dashboard Home Assistant o Node-RED funzionante. Hai passato mesi a creare automazioni. Ora un cliente vuole aggiungere una telecamera PTZ. Ma sei preoccupato che non si integri nella tua configurazione esistente. Non vuoi ricominciare da capo.
L'integrazione è semplice. La nostra telecamera PTZ si collega allo stesso broker MQTT che la tua istanza Home Assistant o Node-RED utilizza già. Aggiungi gli argomenti della telecamera alla tua configurazione e questa apparirà come un dispositivo controllabile: puoi inviare comandi PTZ, ricevere avvisi AI e creare automazioni utilizzando gli strumenti che già conosci.

Integrazione Home Assistant passo dopo passo
Home Assistant4 ha supporto MQTT nativo tramite la sua integrazione integrata. Se stai già eseguendo un broker Mosquitto come add-on, sei a metà strada.
Ecco il processo di base:
- Collega la telecamera al tuo broker. Nelle impostazioni di rete della telecamera, inserisci l'indirizzo IP del tuo broker Mosquitto, la porta (solitamente 1883 o 8883 per TLS), il nome utente e la password.
- Definisci gli argomenti della telecamera. La telecamera pubblicherà su argomenti come
camera/ptz-01/ai/eventie si sottoscriverà ad argomenti comecamera/ptz-01/commands. - 1. Aggiungi sensori MQTT in Home Assistant. 2. Nel tuo
3. configuration.yaml, 4. , crea entità sensore MQTT che ascoltano i topic della telecamera. Ad esempio, puoi creare un sensore binario che si accende quando viene rilevato un essere umano. - 5. Crea automazioni. 6. Usa l'editor di automazione di Home Assistant per creare regole. Esempio: “Quando il sensore human_detected si accende E sono dopo le 22:00, accendi il faretto e invia una notifica al mio telefono.”
7. Integrazione Node-RED
8. Node-RED è ancora più flessibile. Trascini un nodo 9. MQTT In nodo5 11. sul tuo flusso, lo punti al tuo broker e ti iscrivi al topic della telecamera. Il messaggio arriva come oggetto JSON. Lo analizzi, aggiungi logica e lo indirizzi dove vuoi.
12. Ad esempio, un semplice flusso Node-RED potrebbe apparire così:
- 9. MQTT In 13. (iscritto a
camera/ptz-01/ai/eventi14. ) → - 15. JSON Parse →
- 16. Switch Node 17. (se confidence > 0.85) →
- 18. MQTT Out 19. (pubblica su
20. alarm/siren/activate) + Nodo Email (invia un avviso al gestore del sito)
n8n come livello di orchestrazione B2B
Per gli integratori B2B che gestiscono decine di siti, consiglio n8n come piattaforma di orchestrazione centrale. n8n6 ha un nodo Trigger MQTT integrato che ascolta i messaggi da qualsiasi argomento. Quando arriva un messaggio, n8n può:
- Inviare una chiamata API HTTP alla telecamera per spostarsi su un preset specifico.
- Registrare l'evento in un sistema CRM o di ticketing.
- Inviare un avviso WhatsApp o Telegram al proprietario del sito.
- Generare un report riassuntivo giornaliero e inviarlo via email al project manager.
La bellezza di questo approccio è che non è necessario scrivere firmware personalizzato o creare un'app proprietaria. Si utilizzano strumenti standard e aperti. La telecamera parla MQTT. La tua piattaforma parla MQTT. Si capiscono a vicenda.
Considerazioni sulla sicurezza per l'integrazione
Poiché i messaggi MQTT possono includere comandi per spostare la tua telecamera PTZ, la sicurezza è fondamentale. Dico sempre agli integratori: non saltare questi passaggi.
- Abilita la crittografia TLS7 sul tuo broker MQTT. Questo impedisce a chiunque di intercettare i tuoi messaggi sulla rete.
- Utilizzare un'autenticazione utente/password robusta. Non lasciare il broker aperto.
- Utilizzare elenchi di controllo degli accessi (ACL).8 Limitare quali client possono pubblicare sugli argomenti di comando. Il tuo sensore di temperatura non dovrebbe essere in grado di inviare comandi PTZ.
- Isolare la propria VLAN IoT. Mantenere il traffico MQTT su un segmento di rete separato da quello dell'ufficio o del Wi-Fi pubblico.
Il client MQTT è abbastanza leggero da funzionare senza scaricare la batteria solare?
Questa è la domanda che tiene svegli gli integratori di notte. Hai un sito alimentato a energia solare. La batteria è da 60 Ah o forse 100 Ah. La telecamera consuma già una notevole quantità di energia per il motore, il riscaldatore, l'illuminatore IR. Se il client MQTT aggiunge anche solo l'1% di consumo energetico in più, il tuo sistema potrebbe non sopravvivere a una settimana nuvolosa.
Sì. Il client MQTT in esecuzione sul firmware della nostra telecamera PTZ consuma una potenza trascurabile, tipicamente meno di 0,1 W di carico di elaborazione aggiuntivo. MQTT è stato progettato da zero per dispositivi vincolati su reti inaffidabili, rendendolo il protocollo ideale per implementazioni alimentate a energia solare e connesse tramite 4G, dove ogni milliampere conta.

Perché MQTT è così leggero sulle risorse
MQTT è stato inventato nel 1999 da Andy Stanford-Clark di IBM e Arlen Nipper. Lo hanno progettato per sensori di oleodotti nel deserto — dispositivi collegati tramite costosi collegamenti satellitari con larghezza di banda e potenza molto limitate. Questa storia delle origini ti dice tutto ciò che devi sapere sul DNA del protocollo.
Ecco perché è così efficiente:
- Dimensione minima del pacchetto. Il pacchetto MQTT minimo è di soli 2 byte. Un tipico messaggio del sensore è di 20-100 byte. Confrontalo con HTTP, dove solo le intestazioni possono essere di 300-800 byte prima ancora di inviare dati.
- Connessione TCP persistente. MQTT apre una connessione TCP e la mantiene attiva con piccoli pacchetti “ping” (chiamati PINGREQ/PINGRESP). Ogni ping è di soli 2 byte. Non c'è overhead di handshake ripetuto come HTTP.
- Nessun polling. La telecamera non ha bisogno di chiedere continuamente “ci sono nuovi messaggi?”. Il broker invia messaggi alla telecamera solo quando c'è qualcosa da consegnare. Tra un messaggio e l'altro, la connessione è inattiva e consuma quasi zero cicli di CPU.
Analisi del budget energetico nel mondo reale
Permettetemi di tradurre questo in numeri concreti per una tipica implementazione di PTZ solare:
| Componente | Potenza assorbita | Consumo giornaliero (24h) | Note |
|---|---|---|---|
| Telecamera PTZ (attiva) | 25W in media | 600Wh | Include motore, sensore, IR |
| Modem 4G LTE | 3W in media | 72Wh | Connessione continua |
| Processo client MQTT | 0,05–0,1W | 1,2–2,4Wh | Impatto trascurabile |
| Pannello solare (100W) | — | 400–500Wh generati | Dipende dalle ore di luce solare |
| Batteria (100Ah, 12V) | — | 1200Wh immagazzinati | 1. Buffer per i giorni nuvolosi |
2. Guarda la riga MQTT. Aggiunge circa 2Wh al giorno. Questo è 3. meno dello 0,31% 4. del tuo budget energetico giornaliero totale. Non te ne accorgerai nemmeno.
5. Ottimizzazione di MQTT per implementazioni solari
6. Sebbene MQTT sia già leggero, ci sono alcuni trucchi per estrarre ancora più efficienza:
7. Intervallo Keep-Alive. Impostare il 8. Keep-alive MQTT9 9. a 120 secondi o anche 300 secondi invece dei 60 predefiniti. Questo riduce il numero di pacchetti ping. Su una connessione 4G, meno ping significa anche meno risvegli della radio, il che consente di risparmiare energia del modem.
10. Selezione QoS. 11. Utilizza QoS 0 per aggiornamenti di stato di routine (livello batteria, intensità del segnale). Riserva QoS 1 solo per allarmi critici. QoS 2 (consegna esattamente una volta) non è quasi mai necessario nelle applicazioni di sicurezza e aggiunge un overhead di round-trip extra.
12. Compressione del payload. 13. Mantieni brevi i tuoi payload JSON. Usa abbreviazioni per le chiavi. Invece di 14. {"human_detected": true, "confidence_score": 0.92}, utilizzare 15. {"hd": 1, "cs": 92}. 16. . Ogni byte risparmiato è un byte che non ha bisogno di viaggiare su 4G.
17. Pubblicazione consapevole dello stato di sospensione. 18. Se la tua fotocamera dispone di una modalità di sospensione a basso consumo durante le ore non operative, configura il client MQTT per disconnettersi in modo pulito con un messaggio 19. Last Will and Testament (LWT) messaggio10. Questo dice al broker “vado offline intenzionalmente”. Quando la fotocamera si riattiva, si riconnette e recupera eventuali messaggi QoS 1 in coda.
Queste non sono ottimizzazioni teoriche. Queste sono le impostazioni che consiglio a ogni integratore che distribuisce le nostre telecamere a energia solare in luoghi remoti. Funzionano.
Conclusione
MQTT trasforma la tua telecamera PTZ da un visualizzatore isolato a un nodo IoT connesso. Collega sensori, telecamere e piattaforme con larghezza di banda minima, potenza minima e massima velocità, esattamente ciò che i progetti B2B off-grid richiedono.
1. Spiegazione dettagliata del pattern Pub/Sub in MQTT. ︎↩︎ 2. Scopri come funziona un broker MQTT e perché è centrale per la comunicazione. ︎↩︎ 3. Spiegazione dei livelli di Quality of Service di MQTT e quando usarli. ︎↩︎ 4. Documentazione ufficiale di Home Assistant per l'integrazione MQTT. ︎↩︎ 5. Come utilizzare i nodi MQTT nei flussi Node-RED. ︎↩︎ 6. Documentazione n8n per il nodo MQTT Trigger. ︎↩︎ 7. Guida alla protezione di MQTT con crittografia TLS. ︎↩︎ 8. Come limitare le autorizzazioni dei client MQTT utilizzando le ACL in Mosquitto. ︎↩︎ 9. Come funziona il keep-alive in MQTT per mantenere connessioni persistenti. ︎↩︎ 10. Spiegazione dei messaggi LWT e di come segnalano la disconnessione del client. ︎↩︎