API planowania
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
- 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.
- Ś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.

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




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ć.

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ń.
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.
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.
Zapoznaj się z dokumentem Przewodnik po aplikacji - Zdalne punkty nastawcze w celu uzyskania bardziej szczegółowego wyjaśnienia ze wszystkimi politykami.