Den schemalagda MQTT-kontrollen är avsedd för meddelanden som skickas i förväg enligt schema. För live-kontroll, se istället Live MQTT Control instead.
Den här guiden hjälper dig att konfigurera MQTT på din SmartgridOne Controller för fjärrstyrning och övervakning av batteri- och solpanelsinstallationer.
Den här guiden hjälper dig att konfigurera MQTT på din SmartgridOne Controller för fjärrstyrning och övervakning av batteri- och solpanelsinstallationer.
Jag har en SmartgridOne Controller som jag vill konfigurera för MQTT-fjärrstyrning.
Innan du fortsätter, se till att ditt nätverk och dina enheter är redo genom att följa guiden MQTT SetupFör optimal prestanda:
Begär det Eniris MQTT-användarnamn och lösenord som krävs via Eniris webshop innan du påbörjar konfigurationen.
Gränssnittet för MQTT-fjärrstyrning har nu aktiverats på SmartgridOne Controller.
Vi är nu redo att skicka några grundläggande kommandon med hjälp av ett enkelt exempel. Kolumnen Status visar om något kommando är aktivt.
En bra första åtgärd är att testa den nyligen konfigurerade integrationen med ett enkelt exempel.
Sol: Sätt effekten till 0 kW under en timme om 30 minuter
Den SmartgridOne ControllerNär detta är framgångsrikt kan du fortsätta med att skicka andra typer av meddelanden. Alla meddelanden beskrivs nedan.
MQTT-dokumentation för att skicka kommandon
Ladda ner filen nedan i valfri Python-IDE. Fyll i ditt serienummer och de MQTT-autentiseringsuppgifter som begärts via Eniris webshop, och kör sedan skriptet:
s nätverk.
Prenumerationsämne: SmartgridOne Controllers nätverk.
standard1/rp_one_s/remoteScheduleMetrics/<controller SN>standard1/outbound/remoteScheduleMetrics/feedback/<controller SN>Where <controller SN>1. Skapa schema (SmartgridOne Controller som du vill styra.
set_schedule)Skapar flera nya scheman.
{
"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),
}
}
Svar (framgång):
{
"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
}
}
set_schedules)Hämtar ett specifikt schema via ID.
{
"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),
}",
...
}
Svar (framgång):
{
"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
}
}
get_schedule)Hämtar det för närvarande aktiva schemat för en enhetstyp.
{
"extraTags": {
"nodeId": "<Controller SN>_site_0"
},
"time": <Unix Timestamp>,
"message_type": "get_schedule",
"fields": {
"id": <Schedule ID>
}
}
Svar (framgång):
{
"requestTime": <Unix Timestamp>,
"time": <Unix Timestamp>,
"siteNodeId": "<Controller SN>_site_0",
"data": {
"message_type": "get_schedule_ack",
"state": <Schedule>,
"responseCode": 0
}
}
get_active_schedule)Hämtar nästa kommande schema för en enhetstyp.
{
"extraTags": {
"nodeId": "<Controller SN>_site_0"
},
"time": <Unix Timestamp>,
"message_type": "get_active_schedule",
"fields": {
"device_type": "<Device Type>",
"node_id": "<Node ID>" (Optional),
}
}
Svar (framgång):
{
"requestTime": <Unix Timestamp>,
"time": <Unix Timestamp>,
"siteNodeId": "<Controller SN>_site_0",
"data": {
"message_type": "get_active_schedule_ack",
"state": <Schedule>,
"responseCode": 0
}
}
get_next_schedule)Hämtar alla scheman för ett specifikt datum.
{
"extraTags": {
"nodeId": "<Controller SN>_site_0"
},
"time": <Unix Timestamp>,
"message_type": "get_next_schedule",
"fields": {
"device_type": "<Device Type>",
"node_id": "<Node ID>" (Optional),
}
}
Svar (framgång):
{
"requestTime": <Unix Timestamp>,
"time": <Unix Timestamp>,
"siteNodeId": "<Controller SN>_site_0",
"data": {
"message_type": "get_next_schedule_ack",
"state": <Schedule>,
"responseCode": 0
}
}
get_schedules)Hämtar alla framtida scheman.
{
"extraTags": {
"nodeId": "<Controller SN>_site_0"
},
"time": <Unix Timestamp>,
"message_type": "get_schedules",
"fields": {
"date": "<Date String of Format dd/mm/yyyy>"
}
}
Svar (framgång):
{
"requestTime": <Unix Timestamp>,
"time": <Unix Timestamp>,
"siteNodeId": "<Controller SN>_site_0",
"data": {
"message_type": "get_schedules_ack",
"state": {
"schedules": [<Schedule>, ...]
},
"responseCode": 0
}
}
get_future_schedules)Tar bort ett specifikt schema via ID.
{
"extraTags": {
"nodeId": "<Controller SN>_site_0"
},
"time": <Unix Timestamp>,
"message_type": "get_future_schedules",
"fields": {}
}
Svar (framgång):
{
"requestTime": <Unix Timestamp>,
"time": <Unix Timestamp>,
"siteNodeId": "<Controller SN>_site_0",
"data": {
"message_type": "get_future_schedules_ack",
"state": {
"schedules": [<Schedule>, ...]
},
"responseCode": 0
}
}
remove_schedule)Hämtar detaljerad återkoppling om systemets tillstånd.
{
"extraTags": {
"nodeId": "<Controller SN>_site_0"
},
"time": <Unix Timestamp>,
"message_type": "remove_schedule",
"fields": {
"id": <Schedule ID>
}
}
Svar (framgång):
{
"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
}
}
get_feedback){
"extraTags": {
"nodeId": "<Controller SN>_site_0"
},
"time": <Unix Timestamp>,
"message_type": "get_feedback",
"fields": {
"device": <Device (node) level>
}
}
Svar (framgång):
Mer information om de individuella fälten finns här:
get_toplogy)Komponenttyper och policys
{
"extraTags": {
"nodeId": "<Controller SN>_site_0"
},
"time": <Unix Timestamp>,
"message_type": "get_topology",
"fields": {}
}
Svar (framgång):
{
"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
}
}
{
"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>
}
Enhetsspecifika scheman kan skickas med det valfria fältet , som refererar till nod-ID för den kontrollerbara enheten.Felfunktion
Alla meddelanden kan returnera ett felmeddelande med node_id när ett fel uppstår:
Vanliga fel inkluderar:responseCode: 1Schemaöverlapp med befintliga scheman
{
"requestTime": <Unix Timestamp>,
"time": <Unix Timestamp>,
"siteNodeId": "<Controller SN>_site_0",
"data": {
"message_type": "<Message Type>_ack",
"error": <Error Body>,
"responseCode": 1
}
}
Ogiltigt tidsintervallgeneral_error).
Enhetstyp hittades inte
remove_overlapEn giltig enhetstypTrueEn starttid (Unix timestamp)