Driver MQTT de Scholt
La siguiente integración puede usarse para enviar mediciones del sitio vía MQTT y recibir comandos para los diferentes tipos de dispositivos instalados.
Script de demostración en Python
Este código de prueba realiza una tarea simple de enviar continuamente mediciones de prueba a una instalación y recibir comandos:
Por favor descargue el archivo abajo en su IDE de Python preferido. Complete su número de serie, filtro de sitio y credenciales MQTT y ejecute el script:
Requisitos previos
Controlador en la Nube
Los sitios serán controlados mediante un Controlador en la Nube. Por favor contacte a Controller para configurar un nuevo Controlador en la Nube.
Configuración del Sitio
Una vez creado un Controlador en la Nube, contendrá un número de serie único (standard1/rp_one_s/neargrid_ack/<site_filter>/<Controller SN>).
Los nuevos sitios pueden generarse en el Controlador en la Nube usando filtros de sitio únicos standard1/outbound/neargrid_cmd/<site_filter>/<Controller SN>/.
Estas dos variables deben usarse en los Temas y Cuerpo del MQTT.
Advertencia
Usar filtros de sitio idénticos resultará en errores.
Selección de dispositivo
| Device Type | Supported |
|---|---|
| Solar Inverters | ✅ |
| Storage Devices | |
| Heatpumps | |
| Grid & Consumption Meters | |
| EV Chargers | ❌ |
Nota
Los dispositivos en un sitio no pueden editarse después de la creación.
Credenciales MQTT
SmartgridOne proporcionará las credenciales MQTT. El nombre de usuario MQTT debe ingresarse al generar un nuevo sitio.
Nota
Las credenciales deben suministrarse solo una vez. Un conjunto de credenciales MQTT puede usarse para controlar todos los sitios.
Envío de mediciones
Para enviar mediciones al SmartgridOne Controller, se puede usar el siguiente tema MQTT para publicar: standard1/outbound/scholt_meas/<site_filter>/<Controller SN>/
Los campos opcionales se mencionan en cursiva.
Los siguientes campos pueden enviarse por tipo de dispositivo:
-
Almacenamiento
- mean_soc_perc
- active_power_W
- today_charged_Wh
- today_discharged_Wh
- energy_stored_Wh
-
Solar
- active_power_W
- today_energy_Wh
-
Bombas de Calor
- operation_modes
- Los posibles modos de operación son off, on
- active_power_W
- Equivale a la potencia nominal mientras la bomba de calor está on
- operation_modes
-
Medidores
- active_power_W
- today_imported_energy_Wh
- today_exported_energy_Wh
El mensaje debe estructurarse de la siguiente forma:
{
"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"
}Confirmación de Medición
Cuando una medición es recibida exitosamente, se enviará un acuse de recibo en el siguiente tema: standard1/rp_one_s/scholt_ack/<site_filter>/<Controller SN>
Esta confirmación puede usarse para:
- Verificar que el mensaje de medición se recibió correctamente.
- Verificar que el mensaje de medición contenía todos los datos necesarios.
Recepción de comandos
Para recibir comandos del SmartgridOne Controller, suscríbase al siguiente tema MQTT: standard1/outbound/scholt_cmd/<site_filter>/<Controller SN>/
La respuesta tiene la siguiente estructura:
{
"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
}
}La lista de políticas que se pueden recibir se encuentra aquí: List of Potential Policies
