Integrare Dispositivi MQTT con Shangrilux
Connetti qualsiasi dispositivo IoT con supporto MQTT a Shangrilux tramite broker MQTT (Mosquitto, EMQX, HiveMQ).
Cos'è MQTT e Perché Usarlo
MQTT (Message Queuing Telemetry Transport) è un protocollo publish-subscribe leggero per dispositivi IoT, standardizzato ISO/IEC 20922. Ogni dispositivo pubblica messaggi su "topic" (es. hotel/room101/lock/state) e il broker li distribuisce ai subscriber (come Shangrilux).
Prerequisiti
- Broker MQTT installato: Mosquitto (open source) o EMQX/HiveMQ (enterprise)
- Dispositivi IoT con client MQTT configurati (serrature, sensori, termostati)
- URL broker MQTT accessibile da Shangrilux (cloud o VPN)
- Autenticazione TLS raccomandata (certificato X.509)
Installazione Broker Mosquitto
# Installazione su Ubuntu/Debian
sudo apt-get install -y mosquitto mosquitto-clients
# Configurazione base /etc/mosquitto/mosquitto.conf
listener 8883
protocol mqtt
cafile /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/server.crt
keyfile /etc/mosquitto/certs/server.key
allow_anonymous false
password_file /etc/mosquitto/passwd
# Crea utente Shangrilux
mosquitto_passwd -c /etc/mosquitto/passwd shangrilux
# → inserisci password sicura
sudo systemctl enable mosquitto && sudo systemctl start mosquittoConfigurazione in Shangrilux
Configura connessione broker
Admin → Integrazioni → MQTT → inserisci: Broker URL (mqtts://tuo-broker.io), Porta (8883 per TLS, 1883 senza), Username: shangrilux, Password, e (opzionale) Client Certificate per mutual TLS.
Definisci la struttura dei Topic
Shangrilux si iscrive ai topic secondo il pattern configurato. Struttura raccomandata:
# Struttura topic MQTT per hotel
hotel/{proprieta}/{stanza}/lock/state # Stato serratura (locked/unlocked)
hotel/{proprieta}/{stanza}/lock/command # Comandi (lock/unlock)
hotel/{proprieta}/{stanza}/sensor/door # Sensore porta (open/closed)
hotel/{proprieta}/{stanza}/climate/temp # Temperatura attuale
hotel/{proprieta}/{stanza}/climate/setpoint # Temperatura target
hotel/{proprieta}/common/alarm # Allarme struttura
# Esempio topic camera 101 di shangrilux:
hotel/shangrilux/room101/lock/state
hotel/shangrilux/room101/lock/commandFormato payload JSON
I messaggi MQTT verso Shangrilux devono rispettare il formato:
// Pubblicato da serratura su: hotel/shangrilux/room101/lock/state
{
"state": "locked",
"battery_level": 75,
"signal_strength": -68,
"last_access_by": "booking_abc123",
"timestamp": "2026-06-01T14:03:27Z"
}Shangrilux pubblica comandi ai dispositivi
Quando un ospite fa check-in, Shangrilux pubblica su hotel/shangrilux/room101/lock/command:
{
"command": "unlock",
"authorized_by": "shangrilux_booking_abc123",
"duration_seconds": 10,
"timestamp": "2026-06-01T14:00:00Z",
"hmac": "sha256_firma_del_messaggio"
}QoS e Retain Messages
Configura la Quality of Service appropriata: QoS 0 per log (at most once), QoS 1 per comandi (at least once), QoS 2 per eventi critici (exactly once). Usa retain=true per lo stato corrente della serratura.
Consiglio: Usa EMQX Enterprise per installazioni con più di 50 dispositivi MQTT. Offre clustering, rule engine, dashboard e integrazione nativa con database. È gratuito fino a 10.000 connessioni simultanee.