Ga naar hoofdinhoud

Virtuele Energiecentrale

tip

Het VPP Protocol is gebaseerd op het Live MQTT Protocol. Raadpleeg deze pagina voordat u verdergaat. Zie Live MQTT Control.

tip

De initiële VPP-configuratie MOET worden uitgevoerd door Eniris. Neem contact op met Eniris voordat u de volgende stappen volgt.

Verbinden met de MQTT Broker

Raadpleeg de volgende sectie om te ontdekken hoe u verbinding kunt maken met de Eniris MQTT Broker: MQTT Broker Verbinding

VPP Functionaliteit

De VPP is ontworpen om één setpoint/strategie per apparaatgroep (bijv. Zon, Opslag) te ontvangen en het setpoint te aggregeren tussen de controllers die zijn verbonden met de VPP.

Terwijl het Live MQTT Protocol een commando naar een enkele controller zou sturen, stelt de VPP de gebruiker in staat om één commando naar een groep controllers te sturen.

Image 1

Controllers aan de VPP Toevoegen

Image 1
Image 1
Image 1
Image 1

Bij het toevoegen van het Eniris MQTT Signaal, wordt een VPP ID veld weergegeven. Voer hier de VPP ID in die hier is ontvangen.

Enter VPP ID
Image 1

Aggregatie Algoritme

De setpoints worden geaggregeerd op basis van de capaciteit van de apparaten die vallen onder de individuele controllers.

MQTT Onderwerpen

Zodra de initiële configuratie is voltooid, zal een VPP ID en MQTT Gebruikersnaam (en wachtwoord) worden verstrekt.

Inkomend Onderwerp

Onderwerp: vpp/{MQTT Username}/{VPP ID}

Dit onderwerp wordt door de gebruiker gebruikt om een geaggregeerd commando naar de VPP te sturen.

Lichaam:

{
"msg_id": <Incremental message id>(int),
"vpp_id": <VPP ID>(str)
"time": "<Unix Timestamp>(int)",
"fields": {
"<Component Policy>": "<Policy Type>",
"<Component Power Setpoint>": <Setpoint in watts>
}
}

De componentbeleidsregels en setpoints zijn hier te vinden: MQTT Componenten en Beleid

Bevestiging Onderwerp

Onderwerp: vpp/{MQTT Username}/{VPP ID}/acknowledgement

Nadat een commando is verzonden, zal de VPP reageren met een bevestiging, waarin wordt aangegeven of het commando succesvol is ontvangen of niet.

Lichaam:

{
"payload": {
"fields": {
"responseCode": <Success/Failure Code>(int),
"ack": <Acknowledgement Message>(str)
},
"target": <VPP ID>(str)
},
"message_type": <Type of Message>(str)
}

Feedback Onderwerp

Onderwerp: vpp/{MQTT Username}/{VPP ID}/feedback

Het Feedback Onderwerp bevat de feedback die is teruggegeven door de individuele controllers.

Lichaam:

{
"payload": {
"updated_on": <Unix Timestamp of the data>(str)
"feedback_dict": {
<Feedback Dict>(dict)
},
"target": <Site Node ID>(str)
},
"message_type": <Type of Message>(str)
}

De structuur van het feedbackdict kan hier worden gevonden: MQTT Feedback Payload Structuur

Geaggregeerd Feedback Onderwerp

Onderwerp: vpp/{MQTT Username}/{VPP ID}/aggregated_feedback

De VPP aggregeert de feedback die door elke individuele controller is ontvangen.

Lichaam:

{
"payload": {
"updated_on": <Unix Timestamp of the data>(str)
"feedback_dict": {
<Aggregated Feedback Dict>(dict)
},
},
"message_type": <Type of Message>(str)
}

Het geaggregeerde feedbackwoordenboek is op een vergelijkbare manier gestructureerd als de MQTT Feedback Payload Structuur. Echter, stringwaarden, zoals uitgevoerde strategieën, kunnen niet worden geaggregeerd en worden daarom niet opgenomen.

Verzonden Commando's Onderwerp

Onderwerp: vpp/{MQTT Username}/{VPP ID}/dispatched_commands

Wanneer commando's naar de controllers worden gestuurd door de VPP, wordt dit gerapporteerd met behulp van dit onderwerp.

Lichaam:

{
"payload": {
"aggregated": {
<Component Name>(str): <CommandPower Value>(float)...
},
"dispatched_commands": [
<List of individual commands sent to the controllers>
],
},
"message_type": <Type of Message>(str)
}

De payloadstructuur van de individuele verzonden commando's kan hier worden gevonden: MQTT Feedback Payload Structuur.

Waarschuwing Onderwerp

Onderwerp: vpp/{MQTT Username}/{VPP ID}/warning

Als zich een fout of waarschuwing voordoet in de VPP, wordt er een bericht verzonden via dit MQTT-onderwerp.

Lichaam:

{
"payload": {
"fields": {
<Field Dictionary>(dict)
},
"target": <VPP ID>(str)
},
"message_type": <Type of Message>(str)
}