Scholt MQTT-drivrutin
Följande integration kan användas för att skicka platsmätningar via MQTT och ta emot kommandon för de olika installerade enhetstyperna.
Python demoskript
Denna testkod gör ett enkelt jobb med att kontinuerligt skicka dummy-mätvärden till en installation och ta emot kommandon:
Ladda ner filen nedan i din föredragna Python IDE. Fyll i ditt serienummer, platsfilter och MQTT-uppgifter och kör skriptet:
SofarFörutsättningar
Cloud Controller
Platserna kommer att styras via en Cloud Controller. Kontakta EMS för att sätta upp en ny Cloud Controller.
Platsinställning
När en Cloud Controller har skapats kommer den att innehålla ett unikt serienummer (standard1/rp_one_s/scholt_ack/<site_filter>/<Controller SN>).
Nya platser kan genereras i Cloud Controller med unika platsfilter standard1/outbound/scholt_cmd/<site_filter>/<Controller SN>/
Dessa två variabler måste användas i MQTT Topics och Body.
Varning
Att använda identiska platsfilter kommer att resultera i fel.
Enhetsval
| Device Type | Stöds |
|---|---|
| Solar Inverters | ✅ |
| Storage Devices | |
| Heatpumps | |
| Grid & Consumption Meters | |
| EV Chargers | ❌ |
Not
Enheterna i en plats kan inte redigeras efter skapandet.
MQTT-uppgifter
Sofar tillhandahåller MQTT-uppgifter. MQTT-användarnamnet måste anges när en ny plats genereras.
Not
Uppgifterna måste endast tillhandahållas en gång. Ett set med MQTT-uppgifter kan användas för att styra alla platser.
Skicka mätvärden
För att skicka mätvärden till Sofar EMS, kan följande MQTT-topic användas för publicering: standard1/outbound/scholt_meas/<site_filter>/<Controller SN>/
Valfria fält anges med kursiv stil.
Följande fält kan skickas per enhetstyp:
-
Lagring
- mean_soc_perc
- active_power_W
- today_charged_Wh
- today_discharged_Wh
- energy_stored_Wh
-
Sol
- active_power_W
- today_energy_Wh
-
Värmepumpar
- operation_modes
- Möjliga driftlägen är off, on
- active_power_W
- Motsvarar nominell effekt när värmepumpen är on
- operation_modes
-
Mätare
- active_power_W
- today_imported_energy_Wh
- today_exported_energy_Wh
Meddelandet måste struktureras enligt följande:
{
"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"
}Bekräftelse av mätvärde
När ett mätvärde har tagits emot framgångsrikt, skickas en bekräftelse på följande topic: standard1/rp_one_s/scholt_ack/<site_filter>/<Controller SN>
Denna bekräftelse kan användas för att:
- Verifiera att mätmeddelandet togs emot framgångsrikt.
- Verifiera att mätmeddelandet innehöll all nödvändig data.
Ta emot kommandon
För att ta emot kommandon från Sofar EMS, prenumerera på följande MQTT-topic: standard1/outbound/scholt_cmd/<site_filter>/<Controller SN>/
Svaret är strukturerat enligt följande:
{
"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
}
}Listan över policies som kan tas emot finns här: List of Potential Policies
