Connettore MQTT v3
Pubblicare i dati in tempo reale di dispositivi e strategie su un proprio broker MQTT e accettare comandi da esso.
→ Panoramica
Il connettore MQTT v3 collega il controller, come client, a un broker MQTT a scelta, ad esempio il broker di un sistema di gestione dell'edificio, di un SCADA o di una piattaforma di domotica. Il controller pubblica quindi i valori in tempo reale di tutti i dispositivi e di tutte le strategie, i prezzi dell'energia elettrica e un messaggio keep-alive, e si mette in ascolto di comandi come i setpoint dei dispositivi, l'attivazione e la disattivazione delle strategie, le pianificazioni External EMS e le impostazioni della rete elettrica.
Il connettore è disattivato finché non si inserisce un Host. È indipendente dalla connessione al Reduxi Cloud; entrambe possono funzionare contemporaneamente.
Chiunque possa pubblicare sui topic di comando del controller nel proprio broker può modificare i setpoint dei dispositivi, disattivare le strategie, cambiare i limiti della rete elettrica e riavviare il controller. Usare un broker con autenticazione degli utenti, assegnare al controller un account dedicato e consentire l'accesso in scrittura a controllers/<Unit ID>/…/set e controllers/<Unit ID>/commands/… solo a client attendibili.
1 Connettersi a un broker
2 Parametri
Stato
| Parametro | Cosa fa | Unità / valore predefinito |
|---|---|---|
| Client | ID client MQTT usato dal controller. È l'Unit ID del controller e costituisce anche ogni topic: controllers/<Unit ID>/…. Sola lettura. |
testo |
| Host | Il broker a cui punta la configurazione salvata. Vuoto = connettore disattivato. Sola lettura. | testo |
| Connected | Segno di spunta verde = connesso al broker; croce rossa = non connesso. Sola lettura. | — |
| Icona di aggiornamento | Legge di nuovo lo stato. | — |
Mqtt connection
| Parametro | Cosa fa | Unità / valore predefinito |
|---|---|---|
| Host | Nome host o indirizzo IP del broker. Lasciare vuoto per disattivare il connettore. | testo · vuoto = disattivato |
| Port | Porta TCP del broker. | numero · predefinito 1883 |
| Username | Nome utente sul broker. Facoltativo. | testo |
| Password | Password sul broker. Usata solo insieme a Username. Il campo mostra la password in chiaro. | testo |
| Use SSL | Yes apre la connessione con cifratura TLS. Se non è mai stato impostato, si attiva automaticamente quando sono memorizzati una catena CA del server o un certificato client. | Yes / No · predefinito No |
| Verify server cert | Yes verifica il certificato del broker rispetto a Server CA chain (oppure rispetto alle autorità attendibili integrate nel controller, se non è stata caricata alcuna catena). No accetta qualsiasi certificato: la connessione è cifrata, ma il controller non verifica con chi sta comunicando. Usato solo con Use SSL = Yes. | Yes / No · predefinito No |
| Server CA chain (PEM format) | Certificato (catena di certificati) dell'autorità che ha firmato il certificato del broker. Fare clic su Choose File e selezionare un file PEM. Una volta memorizzato, il campo mostra invece un pulsante Download. | file PEM |
| Client public certificate (PEM format) | Il certificato client del controller, per i broker che autenticano i client tramite certificato (TLS reciproco). Richiede la chiave privata corrispondente. | file PEM |
| Client private key (PEM format) | Chiave privata del certificato client. | file PEM |
La chiave privata del client e la password del broker danno accesso al broker. Conservare i file in un luogo sicuro, non inviarli per e-mail e non lasciarne copie su computer condivisi. Chiunque abbia accesso a questa pagina del Configurator può scaricare i certificati memorizzati e vedere la password.
Un certificato memorizzato mostra solo un pulsante Download. Per caricarne uno diverso, fare clic su Clear connection configuration, quindi inserire di nuovo l'intera connessione con i nuovi file.
Topic aggiuntivi
| Parametro | Cosa fa | Unità / valore predefinito |
|---|---|---|
| Name or path | Topic da pubblicare, relativo a controllers/<Unit ID>/. Ad esempio site/name viene pubblicato come controllers/<Unit ID>/site/name. Le righe con nome vuoto vengono ignorate. |
testo |
| Payload | Testo fisso pubblicato su quel topic. | testo |
| Add | Aggiunge una riga vuota. | — |
| Icona del cestino | Rimuove la riga. Ha effetto dopo Save. | — |
I topic aggiuntivi vengono pubblicati insieme ai metadati del controller: a ogni connessione del connettore al broker e a ogni invio di commands/refresh da parte del broker.
Pubblicazione e pulsanti
| Parametro | Cosa fa | Unità / valore predefinito |
|---|---|---|
| Readout interval | Frequenza con cui il controller pubblica la lettura e il setpoint di ogni dispositivo, nonché la lettura, lo stato e i valori dei parametri di ogni strategia. Valori più bassi danno dati più aggiornati ma più traffico. | s · vuoto = 60 s · minimo 0,25 s |
| Salvare | Memorizza le impostazioni e riavvia il connettore. Registrato nell'Audit log come CONNECTOR_EDIT. |
— |
| Clear connection configuration | Dopo la conferma Are you sure to clear MQTT settings? (Yes / Cancel), elimina host, porta, nome utente, password, le impostazioni SSL e tutti i certificati. Il connettore si disattiva. Readout interval e Additional topics vengono mantenuti. | — |
Dopo Clear connection configuration il controller non pubblica più dati e non accetta più comandi tramite MQTT. Un sistema che si basa sui dati, o che invia pianificazioni External EMS, smette di riceverli o di consegnarle. Per riconnettersi occorre reinserire la password e caricare di nuovo i certificati.
3 Topic
Tutti i topic iniziano con controllers/<Unit ID>/. Il controller pubblica con QoS 0 e senza flag retain e si sottoscrive ai topic di comando con QoS 1. I payload sono JSON o valori semplici; i formati completi dei payload sono descritti nell'articolo del Centro assistenza "Reduxi Controller - MQTT API".
Pubblicati dal controller:
| Topic | Contenuto | Quando |
|---|---|---|
identifier |
Identificazione del controller (Unit ID, versioni, …) | Alla connessione e con commands/refresh
|
settings/interval/readout, settings/interval/keepAlive
|
Intervalli attuali in ms | Alla connessione e con refresh |
devices/list, devices/types, devices/<id>/info
|
Dispositivi configurati e relativi tipi | Alla connessione e con refresh |
strategies/list, strategies/types, strategies/<id>/info, strategies/<id>/parameters/list, strategies/<id>/parameters/<id>/info
|
Strategie configurate e relativi parametri | Alla connessione e con refresh |
<additional topic> |
Payload da Additional topics | Alla connessione e con refresh |
devices/<id>/readout |
Valori in tempo reale di un dispositivo | A ogni intervallo di lettura |
devices/<id>/setpoint |
Setpoint attuale di un dispositivo | A ogni intervallo di lettura |
strategies/<id>/active, strategies/<id>/readout, strategies/<id>/parameters/<id>/value
|
Strategia attiva/non attiva, valori in tempo reale, valori dei parametri | A ogni intervallo di lettura |
prices |
Prezzi dell'energia elettrica per oggi e domani | Alla connessione, quando i prezzi cambiano, con prices/refresh
|
strategies/<id>/externalEMS/<type> |
Pianificazione External EMS memorizzata (battery, evse, hvac, pv) |
Con …/externalEMS/<type>/refresh
|
keepAlive |
Ora attuale (Unix ms) | A ogni intervallo keep-alive, predefinito 60 s |
Comandi accettati dal controller:
| Topic | Effetto |
|---|---|
commands/refresh |
Pubblica di nuovo i topic dei metadati. |
commands/reboot |
Riavvia il controller dopo circa 5 s. |
prices/refresh |
Pubblica di nuovo prices. |
settings/interval/readout/set |
Modifica l'intervallo di lettura (ms) e lo memorizza. |
settings/interval/keepAlive/set |
Modifica l'intervallo keep-alive (ms) e lo memorizza. |
devices/<id>/setpoint/set |
Imposta il setpoint di un dispositivo. |
strategies/<id>/parameters/<id>/value/set |
Imposta un parametro di una strategia. |
strategies/<id>/active/set |
Attiva o disattiva una strategia. |
strategies/<id>/externalEMS/<type>/set |
Carica una pianificazione External EMS per battery, evse, hvac o pv. Ignorato se la strategia non ha una modalità di ottimizzazione External EMS. |
strategies/<id>/externalEMS/<type>/refresh |
Pubblica la pianificazione External EMS memorizzata. |
settings/grid/set |
Modifica le impostazioni della rete elettrica (posizione, fusibili, limite di prelievo e di immissione), facoltativamente anche in strategie selezionate. |
settings/grid/set sovrascrive i valori in Settings → Grid e, se richiesto, i limiti delle strategie: lo stesso effetto del salvataggio della pagina Grid settings. devices/<id>/setpoint/set scrive il setpoint direttamente sul dispositivo. Non inviare setpoint per un dispositivo che è controllato anche da una strategia, altrimenti i due si sovrascrivono a vicenda.
4 Risoluzione dei problemi
| Sintomo | Cosa controllare |
|---|---|
| Connected resta rosso | Host e Port sono corretti; il controller raggiunge il broker (TCP port test sull'host e sulla porta del broker); nome utente e password; con TLS, la catena CA corrisponde al certificato del broker, oppure provare con Verify server cert = No per restringere il problema. |
| Connesso, ma nessun dato sul broker | Sottoscriversi a controllers/# e controllare il valore di Client: i topic usano l'Unit ID esattamente come mostrato lì. |
| I comandi non hanno effetto | Il client che li invia ha i diritti di pubblicazione sul broker; il topic usa l'ID corretto del dispositivo o della strategia (vedere devices/list, strategies/list). |
5 Checklist
- Host e Port corrispondono al broker e Connected mostra un segno di spunta verde dopo l'aggiornamento.
- Negli impianti in produzione: Use SSL = Yes, la catena CA è caricata e Verify server cert = Yes.
- I dati arrivano in
controllers/<Unit ID>/con il Readout interval configurato. - L'accesso in scrittura ai topic di comando è limitato ai client attendibili sul broker.
- File dei certificati e password sono conservati in modo sicuro al di fuori del controller.