Driver MQTT Scholt
La seguente integrazione può essere utilizzata per inviare le misurazioni del sito tramite MQTT e ricevere comandi per i diversi tipi di dispositivi installati.
Script demo Python
Questo codice di test svolge il semplice compito di inviare continuamente misurazioni fittizie a un'installazione e ricevere comandi:
Scarica il file qui sotto nell'IDE Python che preferisci. Inserisci il tuo numero seriale, il filtro sito e le credenziali MQTT, quindi esegui lo script:
Prerequisiti
Cloud Controller
I siti saranno controllati tramite un Cloud Controller. Contatta SmartgridOne per configurare un nuovo Cloud Controller
Configurazione del sito
Una volta creato un Cloud Controller, conterrà un numero di serie univoco (<Controller SN>).
È possibile generare nuovi siti sul Cloud Controller utilizzando filtri del sito univoci <site_filter>
Queste due variabili devono essere utilizzate nei topic e nel body MQTT.
Avviso
L'utilizzo di filtri del sito identici causerà errori.
Selezione dei dispositivi
| Device Type | Supported |
|---|---|
| Solar Inverters | ✅ |
| Storage Devices | |
| Heatpumps | |
| Grid & Consumption Meters | |
| EV Chargers | ❌ |
Nota
I dispositivi di un sito non possono essere modificati dopo la creazione.
Credenziali MQTT
SmartgridOne fornirà le credenziali MQTT. Il nome utente MQTT deve essere inserito durante la generazione di un nuovo sito.
Nota
Le credenziali devono essere fornite una sola volta. Un set di credenziali MQTT può essere utilizzato per controllare tutti i siti.
Invio delle misurazioni
Per inviare misurazioni al SmartgridOne Controller, è possibile utilizzare il seguente topic MQTT per la pubblicazione: standard1/outbound/scholt_meas/<site_filter>/<Controller SN>/
I campi facoltativi sono indicati in corsivo.
È possibile inviare i seguenti campi per tipo di dispositivo:
-
Accumulo
- mean_soc_perc
- active_power_W
- today_charged_Wh
- today_discharged_Wh
- energy_stored_Wh
-
Solare
- active_power_W
- today_energy_Wh
-
Pompe di calore
- operation_modes
- Le modalità operative possibili sono off, on
- active_power_W
- Equivale alla potenza nominale quando la pompa di calore è on
- operation_modes
-
Contatori
- active_power_W
- today_imported_energy_Wh
- today_exported_energy_Wh
Il messaggio deve essere strutturato come segue:
{
"time": "<Unix Timestamp>",
"data": {
"state": {
"grid": {
"active_power_W": <Grid Active Power in Watts>,
"today_imported_energy_Wh": <Grid Imported Energy in Watt-hours>,
"today_exported_energy_Wh": <Grid Exported Energy in Watt-hours>,
},
"meter": {
"active_power_W": <Grid Active Power in Watts>,
"today_imported_energy_Wh": <Grid Imported Energy in Watt-hours>,
"today_exported_energy_Wh": <Grid Exported Energy in Watt-hours>,
},
"storage": {
"energy_stored_Wh": <Energy Stored in Watt-hours>,
"mean_soc_perc": <Mean State of Charge Percentage>,
"active_power_W": <Active Power in Watts>,
"today_charged_Wh": <Energy Charged on the Current Today in Watt-hours>,
"today_discharged_Wh": <Energy Discharged on the Current Today in Watt-hours>,
},
"solar": {
"active_power_W": <Solar Active Power in Watts>,
"today_energy_Wh": <Energy Produced Today in Watt-hours>.
},
"heat_pump": {
"active_power_W": <Heat Pump Active Power in Watts>,
"operation_modes": <Heat Pump Operation Mode>
}
},
"response_code": <Response Code>
},
"fields": {},
"requestTime": "<Unix Timestamp>",
"time": "<Unix Timestamp>",
"siteNodeId": "<site_filter"
}Conferma della ricezione della misurazione
Quando una misurazione è stata ricevuta correttamente, verrà inviata una conferma di ricezione sul seguente topic: standard1/rp_one_s/scholt_ack/<site_filter>/<Controller SN>
Questa conferma può essere utilizzata per:
- Verificare che il messaggio contenente la misurazione sia stato ricevuto correttamente.
- Verificare che il messaggio contenente la misurazione includesse tutti i dati necessari.
Ricezione dei comandi
Per ricevere comandi dal SmartgridOne Controller, sottoscrivi il seguente topic MQTT: standard1/outbound/scholt_cmd/<site_filter>/<Controller SN>/
La risposta è strutturata come segue:
{
"extraTags": {
"nodeId": "<Controller SN>_site_0"
},
"time": "<Unix Timestamp>",
"fields": {
"solar_policy": "<policy>",
"solar_power_setpoint_w": 5000,
"storage_policy": "<policy>",
"storage_power_setpoint_w": -5000
}
}L'elenco delle policy che possono essere ricevute è disponibile qui: Elenco delle policy potenziali
