The following integration can be used to send site measurements via MQTT, and receive commands for the different device types installed.
Contact Sofar to request a demo script.
The sites will be controlled via a Cloud Controller. Please contact Sofar to set up a new Cloud Controller
Once a Cloud Controller has been created, it will contain a unique serial number (<Controller SN>).
New sites can be generated on the Cloud Controller using unique site filters <site_filter>
These two variables must be used in the MQTT Topics and Body.
Using identical site filters will result in errors.
| Device Type | Supported |
|---|---|
| Solar Inverters | ✅ |
| Storage Devices | |
| Heatpumps | |
| Grid & Consumption Meters | |
| EV Chargers | ❌ |
The devices in a site cannot be edited after creation.
Unlike other brands, Enalpin does not use a single MQTT user shared across all sites. Request the credentials through the distributor and specify that a separate MQTT username is required for each site. Enter the issued site-specific username when generating the site.
The MQTT username is required per site and cannot be left blank.
To send measurements to the Sofar EMS, the following MQTT topic can be used for publishing: standard1/outbound/enalpin_meas/<site_filter>/<Controller SN>/
Optional fields are mentioned in italics.
The following fields can be sent per device type:
Storage
Solar
Heat Pumps
Meters
The message must be structured as follows:
{
"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"
}
When a measurement has been successfully received, an acknowledgement will be sent on the following topic: standard1/rp_one_s/enalpin_ack/<site_filter>/<Controller SN>
This acknowledgement can be used to:
To receive commands from the Sofar EMS, subscribe to the following MQTT topic: standard1/outbound/enalpin_cmd/<site_filter>/<Controller SN>/
The response is structured as follows:
{
"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
}
}
The list of policies than can be received is found here: List of Potential Policies