Przejdź do głównej zawartości

API planowania

wskazówka

Interfejs API Plan-ahead służy do wysyłania harmonogramów z wyprzedzeniem. W przypadku sterowania na żywo, zobacz Sterowanie MQTT na żywo zamiast tego.

Co potrzebujesz

  1. Nazwa użytkownika i hasło API. Możesz użyć swojego konta Insights do tego, lub poprosić o konto API, wysyłając email na adres support@eniris.be, wyraźnie podając numer seryjny swojego urządzenia.
  2. Środowisko programistyczne Pythona (lub inny klient MQTT). Ten przewodnik używa podstawowego przykładu napisanego w Pythonie, aby pomóc Ci zacząć z MQTT i wysyłaniem poleceń. Zalecamy użycie Pythona ze względu na łatwość użycia, ale wspierany jest każdy inny klient MQTT.

Konfiguracja po raz pierwszy (Punkt wyjścia dla nowych użytkowników)

1. Znajdź identyfikatory urządzeń, które chcesz kontrolować

Identyfikator urządzenia (znany też jako nodeId) jest unikalnym identyfikatorem dla każdego urządzenia w naszym systemie i jest używany podczas wysyłania poleceń do urządzeń.

W tej chwili najłatwiejszym sposobem na uzyskanie identyfikatorów jest przejście do: http://<CONTROLLER_IP>/debugger

Rozwiń pole 'Metadata' i zanotuj każdy nodeId ze wszystkich urządzeń, które chcesz kontrolować. Będziesz potrzebować tych IDS w późniejszym kroku.

Image 1

2. Dodaj swoje urządzenia

Zaloguj się do interfejsu uruchamiania i upewnij się, że urządzenia są dodane do SmartgridOne Controller.

3. Dodaj zewnętrzny sygnał API

Image 1
Image 1
Image 1
Image 1

4. Wprowadź token kolektora

Po prostu wprowadź tutaj numer seryjny SmartgridOne Controller, a następnie kliknij „wyślij”.

5. Wybierz urządzenia do włączenia

Na tej stronie masz opcję włączenia/wyłączenia urządzeń do zdalnego sterowania. Upewnij się, że zaznaczysz wszystkie pola wyboru urządzeń, które chcesz włączyć.

Image 1

6. Źródło danych zostało dodane

Interfejs zdalnego sterowania został teraz aktywowany na SmartgridOne Controller. Możesz teraz zacząć wysyłać swoje polecenia do urządzeń.

warning

Nie zapomnij ustawić reżimu zapasowego na SmartgridOne Controller! Należy skonfigurować tryb lokalnego sterowania oprócz zewnętrznych sygnałów API, które wysyłasz. Lokalne sterowanie jest używane jako reżim zapasowy w przypadku utraty internetu przez SmartgridOne Controller lub z innych powodów, które uniemożliwiają dotarcie sygnału API do SmartgridOne Controller.

Wysyłaj polecenia zdalnego sterowania przy użyciu Pythona

Poniżej znajduje się fragment Pythona dotyczący kontrolowania energii słonecznej lub baterii.

wskazówka

Zapoznaj się z dokumentem Przewodnik po aplikacji - Zdalne punkty nastawcze w celu uzyskania bardziej szczegółowego wyjaśnienia ze wszystkimi politykami.

Wymagana paczka: pip install eniris

# %% Imports
from eniris import ApiDriver
from eniris.point import Point
from eniris.point.writer import (PointDuplicateFilter, DirectPointToTelemessageWriter)
from eniris.telemessage.writer import PooledTelemessageWriter
from datetime import datetime, timezone

# %% Constants
COMMAND_UNTIL = '2024-04-16T10:26:00+02:00' # YYYY-MM-DDTHH:MM:SS+00:00
SN = '<REPLACE>'
COMMAND = fields = {'policy': 2, 'powerSetpoint_W': 0.0} # 0: Domyślnie (samo-zapotrzebowanie); 2: Wartość docelowa

# %% Start curtailment
curtail_until = datetime.fromisoformat(COMMAND_UNTIL).astimezone(timezone.utc)
print(f'Wykonanie polecenia do: {curtail_until}')
apiUsername = "<REPLACE>"
apiPassword = "<REPLACE>"

# Create an API drivers and a point writer with the desired functionality
driver = ApiDriver(apiUsername, apiPassword)
writer = PointDuplicateFilter(
DirectPointToTelemessageWriter(
PooledTelemessageWriter(
authorizationHeaderFunction=driver.accesstoken,
params={"u": SN},
)
)
)
namespace = {'database': 'SGC', 'retentionPolicy': 'rp_one_s'}
tags = {
"serialNr": SN,
"nodeId": '<REPLACE>',
}

writer.writePoints([Point(namespace, 'remoteControlSignals', curtail_until, tags, fields)])
writer.flush()
print('Wysłano')

Zwróć szczególną uwagę na:

  • 'COMMAND_UNTIL': To znacznik czasu z uwzględnieniem strefy czasowej, który oznacza czas zakończenia Twojego polecenia.
  • 'COMMAND': To powinno być zmienione zgodnie z tym, jakie polecenie chciałbyś wykonać.
    • Np.: dla baterii, polityka 2 z powerSetpoint_W równym 1000 naładuje baterię z mocą 1 kW.
    • Dla energii słonecznej, polityka 2 z powerSetpoint_W równym 0 wyłączy produkcję energii słonecznej.
    • Po zakończeniu Twojego polecenia automatycznie przełączy się na domyślne sterowanie (zgodnie z konfiguracją w SmartgridOne Controller).
    • (więcej zaawansowanych polityk jest obsługiwanych, ale jeszcze nie dodano ich do tego przewodnika)
  • Zmienna 'tags': Powinna być zmieniona zgodnie z numery seryjny SmartgridOne Controller, gdzie nodeId powinien być ustawiony na identyfikator urządzenia, który został wyodrębniony w poprzednim kroku tego przewodnika.
wskazówka

Zapoznaj się z dokumentem Przewodnik po aplikacji - Zdalne punkty nastawcze w celu uzyskania bardziej szczegółowego wyjaśnienia ze wszystkimi politykami.