SmartgridOne logo
SmartgridOne logo
Accesorios
AppAvisos de seguridad, mantenimiento y legales
Caja de herramientas
Certificados
Configuración de la A a la Z
ControladorDirectrices de cableado y conectividad
Dispositivos
Especificaciones
Específico del Cliente
Inicio rápidoInstalaciónLEDs de estadoLicenciaRed
Resolución de problemas
Señales Externas
DSO

AgrolaAPI de planificación anticipadaAutarcoAxpoCaja de fusiblesCKWComercio Dinámico de EnergíaControl del Relé DNOCorriente de haloDexterEdmijElia
Elindus
Energía BEEEnergía CompañeraEnergía VGTEnervalisEngieEPEX Spot SolarFlorFrank EnergieGreenchoiceHive PowerImbyKratTradeMercancías Europeas
Monitoreo
Mqtt
Configuración MQTTControl MQTT programadoFCRFlujo de incorporaciónLíneas baseLive MQTT controlPlanta de Energía Virtual
Nuevas integracionesOpinumPárrafo 14a IntegraciónPleeviPoder FlecoPowernautPróxima EnergíaPruebas diagnósticasRepotenciadoScholtSoluciones de Flexibilidad Energética (SFE)
TrevionvZEV - Comunidad EnergéticaYuso - Control de BateríaYuso - Reducción Solar
Tiempo de respuesta del controlTutoriales en video
Señales ExternasMqtt

Control MQTT Programado

Consejo
Consejo

El control MQTT programado está diseñado para mensajes programados con anticipación. Para control en tiempo real, consulte Control MQTT en vivo.

Esta guía le ayudará a configurar MQTT en su SmartgridOne Controller para controlar y monitorear de forma remota instalaciones de baterías y paneles solares.

Esta guía le ayudará a configurar MQTT en su SmartgridOne Controller para controlar y monitorear de forma remota instalaciones de baterías y paneles solares.

Configuración inicial (Punto de partida para nuevos usuarios)

Tengo un SmartgridOne Controller que me gustaría configurar para Control Remoto MQTT.

Antes de continuar, asegúrese de que su red y dispositivos estén listos siguiendo la guía Configuración MQTT.

1. Add the MQTT external signal

Image 1
Image 1
Image 1

2. Enable MQTT remote signal

Seleccione todos los dispositivos que desee incluir en el Control Remoto MQTT.

Image 1

3. Remote signal is added

The MQTT Remote Control interface has now been activated on the SmartgridOne Controller.

We are now ready to send some basics commands using a simple example. The Status column tells you if any command is active.

Script de demostración en Python

A good first starting point would be to test your newly setup integration with a simple example.

Este código de prueba envía continuamente el siguiente programa:

  • Batería: Cargar a 5 kW durante 15 minutos dentro de 10 minutos
  • Solar: Establecer potencia a 0 kW durante una hora dentro de 30 minutos

El SmartgridOne Controller responde con un mensaje de reconocimiento que contiene el identificador único del programa, o un mensaje de error.

Luego obtenemos el siguiente programa para ambos tipos de dispositivos, confirmando que el comando fue exitoso.

Por favor descargue el archivo abajo en su IDE de Python preferido. Complete su número de serie y credenciales MQTT y ejecute el script:

Cuando lo anterior sea exitoso, puede continuar enviando otros tipos de mensajes. Todos los mensajes se describen a continuación.

MQTT Documentation for Sending Commands

Esta sección detalla el formato de mensajes MQTT y los requisitos de carga útil para configurar el control programado de dispositivos dentro de la red del SmartgridOne Controller.

Temas MQTT

  • Tema de suscripción: general_error
  • Tema de retroalimentación: remove_overlap

Donde True debe reemplazarse con el número de serie real del SmartgridOne Controller que desea controlar.

Tipos de mensaje MQTT

1. Establecer programa (set_schedule)

Crea un nuevo programa para un tipo de dispositivo.

{
    "extraTags": {
        "nodeId": "<Controller SN>_site_0"
    },
    "time": <Unix Timestamp>,
    "message_type": "set_schedule",
    "fields": {
        "device_type": "<Device Type>",
        "node_id": "<Node ID>" (Optional),
        "start_time": <Unix Timestamp>,
        "end_time": <Unix Timestamp>,
        "policy": "<Policy>",
        "power_setpoint_w": <Setpoint in watts>,
        "site_import": <Site Import in Watts>,
        "site_export": <Site Export in Watts>,
        "remove_overlap": <True/False> (Optional) (default=False),
        "tag": <Tag String> (Optional) (default=None),
    }
}

Respuesta (Éxito):

{
    "requestTime": <Unix Timestamp>,
    "time": <Unix Timestamp>,
    "siteNodeId": "<Controller SN>_site_0",
    "data": {
        "message_type": "set_schedule_ack",
        "state": {
            "schedule_id": <Schedule ID>,
            "deleted_ids": <Schedulde IDs deleted if remove_overlap=True>
            "tag": <Tag String> (default=None),
        },
        "responseCode": 0
    }
}

2. Establecer programas (general_error)

Crea múltiples programas nuevos.

{
    "extraTags": {
        "nodeId": "<Controller SN>_site_0"
    },
    "time": <Unix Timestamp>,
    "message_type": "set_schedules",
    "fields": 
        "0": "{
            "device_type": "<Device Type>",
            "node_id": "<Node ID>" (Optional),
            "start_time": <Unix Timestamp>,
            "end_time": <Unix Timestamp>,
            "policy": "<Policy>",
            "power_setpoint_w": <Setpoint in watts>,
            "site_import": <Site Import in Watts>,
            "site_export": <Site Export in Watts>,
            "remove_overlap": <True/False> (Optional) (default=False),
        }",
        "1": "{
            "device_type": "<Device Type>",
            "node_id": "<Node ID>" (Optional),
            "start_time": <Unix Timestamp>,
            "end_time": <Unix Timestamp>,
            "policy": "<Policy>",
            "power_setpoint_w": <Setpoint in watts>,
            "site_import": <Site Import in Watts>,
            "site_export": <Site Export in Watts>,
            "remove_overlap": <True/False> (Optional) (default=False),
        }",
        ...
}

Respuesta (Éxito):

{
    "requestTime": <Unix Timestamp>,
    "time": <Unix Timestamp>,
    "siteNodeId": "<Controller SN>_site_0",
    "data": {
        "message_type": "set_schedules_ack",
        "state": {
            "schedule_ids": <Schedule IDs>,
            "deleted_ids": <Schedulde IDs deleted if remove_overlap=True>
        },
        "responseCode": 0
    }
}

3. Obtener programa (general_error)

Recupera un programa específico por ID.

{
    "extraTags": {
        "nodeId": "<Controller SN>_site_0"
    },
    "time": <Unix Timestamp>,
    "message_type": "get_schedule",
    "fields": {
        "id": <Schedule ID>
    }
}

Respuesta:

{
    "requestTime": <Unix Timestamp>,
    "time": <Unix Timestamp>,
    "siteNodeId": "<Controller SN>_site_0",
    "data": {
        "message_type": "get_schedule_ack",
        "state": <Schedule>,
        "responseCode": 0
    }
}

4. Obtener programa activo (general_error)

Recupera el programa activo actualmente para un tipo de dispositivo.

{
    "extraTags": {
        "nodeId": "<Controller SN>_site_0"
    },
    "time": <Unix Timestamp>,
    "message_type": "get_active_schedule",
    "fields": {
        "device_type": "<Device Type>",
        "node_id": "<Node ID>" (Optional),
    }
}

Respuesta (Éxito):

{
    "requestTime": <Unix Timestamp>,
    "time": <Unix Timestamp>,
    "siteNodeId": "<Controller SN>_site_0",
    "data": {
        "message_type": "get_active_schedule_ack",
        "state": <Schedule>,
        "responseCode": 0
    }
}

5. Obtener siguiente programa (general_error)

Recupera el siguiente programa próximo para un tipo de dispositivo.

{
    "extraTags": {
        "nodeId": "<Controller SN>_site_0"
    },
    "time": <Unix Timestamp>,
    "message_type": "get_next_schedule", 
    "fields": {
        "device_type": "<Device Type>",
        "node_id": "<Node ID>" (Optional),
    }
}

Respuesta (Éxito):

{
    "requestTime": <Unix Timestamp>,
    "time": <Unix Timestamp>,
    "siteNodeId": "<Controller SN>_site_0",
    "data": {
        "message_type": "get_next_schedule_ack",
        "state": <Schedule>,
        "responseCode": 0
    }
}

6. Obtener programas (general_error)

Recupera todos los programas para una fecha específica.

{
    "extraTags": {
        "nodeId": "<Controller SN>_site_0"
    },
    "time": <Unix Timestamp>,
    "message_type": "get_schedules",
    "fields": {
        "date": "<Date String of Format dd/mm/yyyy>"
    }
}

Respuesta (Éxito):

{
    "requestTime": <Unix Timestamp>,
    "time": <Unix Timestamp>,
    "siteNodeId": "<Controller SN>_site_0",
    "data": {
        "message_type": "get_schedules_ack",
        "state": {
            "schedules": [<Schedule>, ...]
        },
        "responseCode": 0
    }
}

7. Obtener programas futuros (general_error)

Recupera todos los programas futuros.

{
    "extraTags": {
        "nodeId": "<Controller SN>_site_0"
    },
    "time": <Unix Timestamp>,
    "message_type": "get_future_schedules",
    "fields": {}
}

Respuesta (Éxito):

{
    "requestTime": <Unix Timestamp>,
    "time": <Unix Timestamp>,
    "siteNodeId": "<Controller SN>_site_0",
    "data": {
        "message_type": "get_future_schedules_ack",
        "state": {
            "schedules": [<Schedule>, ...]
        },
        "responseCode": 0
    }
}

8. Eliminar programa (general_error)

Elimina un programa específico por ID.

{
    "extraTags": {
        "nodeId": "<Controller SN>_site_0"
    },
    "time": <Unix Timestamp>,
    "message_type": "remove_schedule",
    "fields": {
        "id": <Schedule ID>
    }
}

Respuesta (Éxito):

{
    "requestTime": <Unix Timestamp>,
    "time": <Unix Timestamp>,
    "siteNodeId": "<Controller SN>_site_0",
    "data": {
        "message_type": "remove_schedule_ack",
        "state": "Schedule <Schedule ID> removed successfully",
        "responseCode": 0
    }
}

9. Obtener retroalimentación del sitio (general_error)

Recupera retroalimentación detallada sobre el estado del sistema.

{
    "extraTags": {
        "nodeId": "<Controller SN>_site_0"
    },
    "time": <Unix Timestamp>,
    "message_type": "get_feedback",
    "fields": {
        "device": <Device (node) level>
    }
}

Respuesta (Éxito):

Estructura de Carga Útil de Retroalimentación

10. Topología del sitio (general_error)

Obtiene la topología del sitio.

{
    "extraTags": {
        "nodeId": "<Controller SN>_site_0"
    },
    "time": <Unix Timestamp>,
    "message_type": "get_topology",
    "fields": {}
}

Respuesta (Éxito):

{
    "requestTime": <Unix Timestamp>,
    "time": <Unix Timestamp>,
    "siteNodeId": "<Controller SN>_site_0",
    "data": {
        "message_type": "get_topology_ack",
        "state": {
            "nodeId": <nodeId>,
            "isControllable": <boolean>,
            "nodeType": <nodeType>,
            "nomCurrent": <nominalCurrent>
            "children": [{<ChildObject>}]
            },
        "responseCode": 0
    }
}

Formato estándar de respuesta de programa

{
    "id": <Schedule ID>,
    "device_type": "<Device Type>",
    "node_id": "<Node ID>" (Optional),
    "start_time": <Unix Timestamp>,
    "end_time": <Unix Timestamp>,
    "policy": "<Schedule Policy>",
    "power_setpoint_w": <Setpoint in watts>,
    "created_at": <Unix Timestamp>
}

Tipos de componentes y políticas

Para más detalles sobre componentes disponibles y políticas que pueden programarse, consulte la sección Componentes y Políticas MQTT en la documentación de Control MQTT en vivo.

Los programas específicos para dispositivos pueden enviarse utilizando el campo opcional general_error, que hace referencia al ID del nodo del dispositivo controlable.

Manejo de errores

Todos los mensajes pueden devolver una respuesta de error con remove_overlap cuando ocurre un error:

{
    "requestTime": <Unix Timestamp>,
    "time": <Unix Timestamp>,
    "siteNodeId": "<Controller SN>_site_0",
    "data": {
        "message_type": "<Message Type>_ack",
        "error": <Error Body>,
        "responseCode": 1
    }
}

Cuando ocurre un error no relacionado, el tipo de mensaje será (general_error).

Errores comunes incluyen:

  • Superposición de programas con programas existentes
  • Rango de tiempo inválido
  • Tipo de dispositivo no encontrado
  • ID de programa no encontrado
  • Política inválida para el tipo de dispositivo

Reglas de gestión de programas

  1. Reglas de superposición
    • Los programas no pueden superponerse para el mismo tipo de dispositivo
    • Los programas no pueden superponerse para el mismo dispositivo
    • Los programas para el mismo dispositivo y tipo no pueden superponerse
    • Los programas existentes que superpongan serán eliminados si la variable remove_overlap se establece en True al crear un nuevo programa.
  2. Cada programa debe tener:
    • Un tipo de dispositivo válido
    • Una hora de inicio (timestamp Unix)
    • Una hora de fin (timestamp Unix)
    • Una política (que coincida con las políticas disponibles del tipo de dispositivo)
    • Un setpoint de potencia (para políticas que lo requieran)
  3. La hora de inicio debe ser anterior a la hora de fin
  4. Si la hora de inicio está en el pasado, se cambia automáticamente para que comience ahora
  5. Los programas solo pueden eliminarse si aún no han comenzado. No se pueden eliminar programas activos.
  6. Los programas pueden establecerse para diferentes tipos de dispositivos de forma independiente
  7. El sistema aplica automáticamente la política adecuada cuando un programa se activa
Last updated August 12, 2026Edit this page

Configuración MQTT

Previous Page

FCR

Next Page

On this page

Control MQTT ProgramadoConfiguración inicial (Punto de partida para nuevos usuarios)1. Add the MQTT external signal2. Enable MQTT remote signal3. Remote signal is addedScript de demostración en PythonMQTT Documentation for Sending CommandsTemas MQTTTipos de mensaje MQTT1. Establecer programa (set_schedule)2. Establecer programas (general_error)3. Obtener programa (general_error)4. Obtener programa activo (general_error)5. Obtener siguiente programa (general_error)6. Obtener programas (general_error)7. Obtener programas futuros (general_error)8. Eliminar programa (general_error)9. Obtener retroalimentación del sitio (general_error)10. Topología del sitio (general_error)Formato estándar de respuesta de programaTipos de componentes y políticasManejo de erroresReglas de gestión de programas