Tip
Protokół VPP oparty jest na protokole Live MQTT. Proszę zapoznać się z tą stroną przed kontynuowaniem. Zobacz Live MQTT Control.
Tip
Wstępna konfiguracja VPP MUSI być dokonana przez SmartgridOne. Proszę skontaktować się z SmartgridOne przed wykonaniem następnych kroków.
Połączenie z brokerem MQTT
Proszę zapoznać się z następującą sekcją, aby dowiedzieć się, jak połączyć się z brokerem MQTT SmartgridOne: MQTT Broker Connection
Funkcjonalność VPP
VPP jest zaprojektowane do odbierania jednego punktu ustawienia/strategii na grupę urządzeń (np. Fotowoltaika, Magazynowanie) i agregowania punktu ustawienia pomiędzy kontrolerami podłączonymi do VPP.
Podczas gdy protokół Live MQTT wysyłał polecenie do pojedynczego kontrolera, VPP pozwala użytkownikowi wysłać jedno polecenie do grupy kontrolerów.

Dodawanie kontrolerów do VPP




Podczas dodawania sygnału MQTT SmartgridOne wyświetlone jest pole VPP ID. Wprowadź VPP ID otrzymane tutaj.


Algorytm agregacji
Punkty ustawienia są agregowane na podstawie pojemności urządzeń zaliczanych do poszczególnych kontrolerów.
Tematy MQTT
Po zakończeniu wstępnej konfiguracji zostanie podane VPP ID oraz Nazwa użytkownika MQTT (i hasło).
Temat przychodzący
Temat: vpp/{MQTT Username}/{VPP ID}
Ten temat jest używany przez użytkownika do wysyłania skonsolidowanego polecenia do VPP.
Live VPP
Ciało:
{
"msg_id": <Inkrementalne id wiadomości>(int),
"vpp_id": <VPP ID>(str)
"time": "<Znacznik czasu Unix>(int)",
"fields": {
"<Polityka komponentu>": "<Typ polityki>",
"<Punkt ustawienia mocy komponentu>": <Punkt ustawienia w watach>
}
}Polityki komponentów i punkty ustawienia można znaleźć tutaj: MQTT Components and Policies
Zaplanowane VPP
Ciało:
{
"msg_id": <Inkrementalne id wiadomości>(int),
"vpp_id": <VPP ID>(str)
"time": "<Znacznik czasu Unix>(int)",
"message_type": "<Typ wiadomości>(str)",
"fields": {
"<Polityka komponentu>": "<Typ polityki>",
"<Punkt ustawienia mocy komponentu>": <Punkt ustawienia w watach>
}
}Polityki komponentów i punkty ustawienia można znaleźć tutaj: MQTT Components and Policies
Temat potwierdzenia
Temat: vpp/{MQTT Username}/{VPP ID}/acknowledgement
Po wysłaniu polecenia, VPP odpowie potwierdzeniem, wskazując, czy polecenie zostało pomyślnie odebrane, czy nie.
Ciało:
{
"payload": {
"fields": {
"responseCode": <Kod sukcesu/blad>(int),
"ack": <Wiadomość potwierdzająca>(str)
},
"target": <VPP ID>(str)
},
"message_type": <Typ wiadomości>(str)
}Temat informacji zwrotnej
Temat: vpp/{MQTT Username}/{VPP ID}/feedback
Temat informacji zwrotnej zawiera feedback zwracany przez poszczególne kontrolery.
Ciało:
{
"payload": {
"updated_on": <Znacznik czasu Unix danych>(str)
"feedback_dict": {
<Słownik informacji zwrotnej>(dict)
},
"target": <ID węzła witryny>(str)
},
"message_type": <Typ wiadomości>(str)
}Struktura słownika informacji zwrotnej znajduje się tutaj: MQTT Feedback Payload Structure
Temat skonsolidowanej informacji zwrotnej
Temat: vpp/{MQTT Username}/{VPP ID}/aggregated_feedback
VPP agreguje informacje zwrotne otrzymane od każdego poszczególnego kontrolera.
Ciało:
{
"payload": {
"updated_on": <Znacznik czasu Unix danych>(str)
"feedback_dict": {
<Słownik skonsolidowanej informacji zwrotnej>(dict)
},
},
"message_type": <Typ wiadomości>(str)
}Słownik skonsolidowanej informacji zwrotnej jest skonstruowany podobnie do MQTT Feedback Payload Structure. Jednak wartości tekstowe, takie jak wykonane strategie, nie mogą być agregowane i dlatego nie są uwzględniane.
Temat wysłanych poleceń
Temat: vpp/{MQTT Username}/{VPP ID}/dispatched_commands
Kiedy polecenia są wysyłane do kontrolerów przez VPP, jest to raportowane za pomocą tego tematu.
Ciało:
{
"payload": {
"aggregated": {
<Nazwa komponentu>(str): <WartośćMocy Komendy>(float)...
},
"dispatched_commands": [
<Lista indywidualnych poleceń wysłanych do kontrolerów>
],
},
"message_type": <Typ wiadomości>(str)
}Struktura payload dla indywidualnych poleceń wysłanych można znaleźć tutaj: MQTT Feedback Payload Structure.
Temat ostrzeżenia
Temat: vpp/{MQTT Username}/{VPP ID}/warning
Jeśli w VPP wystąpi błąd lub ostrzeżenie, wiadomość zostanie wysłana przez ten temat MQTT.
Ciało:
{
"payload": {
"fields": {
<Słownik Pola>(dict)
},
"target": <VPP ID>(str)
},
"message_type": <Typ wiadomości>(str)
}