REST API Dokumentation¶
Hinweise¶
- Alle Endpunkte liefern JSON-Daten zurück.
- Authentifizierung: Solange der Passwortschutz aktiviert ist, benötigen die meisten Endpunkte eine gültige Sitzung (Login über das Webinterface). Ausnahmen:
/restapiohne URL-Parameter ist ohne Anmeldung abrufbar (nur Abfrage)./restapi/errors/activeund/restapi/errors/allsind ohne Anmeldung abrufbar.
- Ist der Passwortschutz deaktiviert (Parameter Passwortschutz aktivieren in den System-Einstellungen), ist die gesamte API ohne Anmeldung zugänglich.
Endpunkte¶
1. Systemdaten [GET]¶
Endpunkt: /restapi
Beschreibung:
Dieser Endpunkt ermöglicht das Abrufen verschiedener Systemdaten vom Controller. Die Antwort enthält Informationen über den Systemzustand, Daten, die an den Wechselrichter gesendet werden, sowie Daten der verbundenen Data-Devices. Wird der Endpunkt mit URL-Parametern aufgerufen (z. B. ?args), ist eine gültige Sitzung erforderlich.
Antwortformat:
Dies ist nur ein Auszug aus der Antwort und nicht vollständig!
{
"system": {
"fw_version": "V0.10.0",
"fw_add": "",
"hw_version": "1",
"name": "bsc",
"time": "2025-04-03 06:10:39",
"boottime": "2025-04-01 21:01:46",
"system": 0,
"mqtt": 1,
"rssi": 23,
"profile": 0
},
"trigger": {
"1": 0, "2": 1, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0,
"10": 0, "11": 0, "12": 0, "13": 0, "14": 0, "15": 0, "16": 0, "17": 0, "18": 0,
"19": 0, "20": 0, "21": 0, "22": 0, "23": 0, "24": 0, "25": 0, "26": 0, "27": 0
},
"inverter": {
"current": 66.30,
"voltage": 55.30,
"soc": 14.00,
"setpoint_cv": 57.60,
"setpoint_cc": 200.00,
"setpoint_dcc": 210.00,
"cc_cellVoltage": 200.00,
"cc_soc": 200.00,
"cc_cellDrift": 200.00,
"cc_cutOff": 200.00,
"cc_packHigh": 200.00,
"cc_temperature": 200.00,
"cc_tempProfile": 200.00,
"cc_zero": 200.00,
"cc_triggerLimit": 0.00,
"dcc_cellVoltage": 210.00,
"dcc_temperature": 0.00,
"dcc_tempProfile": 0.00,
"dcc_packHigh": 210.00,
"dcc_triggerLimit": 0.00,
"autobal_state": 5
},
"data_device": [{
"name": "Seplos 1",
"en": 1,
"valid": 1,
"nr": 0,
"totalVolt": 55.30,
"totalCurr": 22.10,
"soc": 85.00
}]
}
2. Alle Active-Errors [GET]¶
Hinweis: Dieser Endpunkt ist Bestandteil der Supporter-Firmware.
Endpunkt: /restapi/errors/all
Beschreibung: Dieser Endpunkt gibt alle möglichen Fehler des Systems zurück, inklusive einer Kennzeichnung, ob sie derzeit aktiv sind oder nicht. Dieser Endpunkt ist ohne Anmeldung abrufbar.
Antwortformat:
{
"errors": [
{"id": 1, "state": false, "text": "Data Device 0 Error"},
{"id": 2, "state": false, "text": "Data Device 1 Error"},
{"id": 20, "state": false, "text": "CANBUS Error"}
]
}
3. Aktive Active-Errors [GET]¶
Hinweis: Dieser Endpunkt ist Bestandteil der Supporter-Firmware.
Endpunkt: /restapi/errors/active
Beschreibung:
Dieser Endpunkt gibt nur die aktuell aktiven Active-Errors des Systems zurück. Das Format ist identisch mit /restapi/errors/all, enthält aber nur Einträge mit "state": true. Dieser Endpunkt ist ohne Anmeldung abrufbar.
Antwortformat:
{
"errors": [
{"id": 20, "state": true, "text": "CANBUS Error"}
]
}
4. IO-Daten [GET]¶
Hinweis: Dieser Endpunkt ist Bestandteil der Supporter-Firmware.
Endpunkt: /restapi/io
Beschreibung: Dieser Endpunkt gibt den Zustand der digitalen Eingänge (DI) und Relais zurück.
Antwortformat:
{
"di": [0, 0, 0, 0],
"relais": [0, 0, 0, 0, 0, 0]
}
5. vTrigger [POST]¶
Hinweis: Dieser Endpunkt ist Bestandteil der Supporter-Firmware.
Endpunkt: /restapi/vTrigger
Beschreibung: Dieser Endpunkt erlaubt das Setzen der virtuellen Trigger. Dafür ist eine gültige Sitzung erforderlich (bzw. deaktivierter Passwortschutz).
Erwartetes Eingabeformat:
{
"id": [Trigger Nr],
"value": [0|1]
}
Beispielaufruf mit curl:
Windows:
curl -L -X POST "http://[BSC IP]/restapi/vTrigger" ^
-H "Content-Type: application/json" ^
-d "{\"id\":6,\"value\":0}"
Linux:
curl -L -X POST "http://[BSC IP]/restapi/vTrigger" \
-H "Content-Type: application/json" \
-d "{\"id\":6,\"value\":0}"
Derzeit aktive Inverter-Drosselung¶
Welche eingestellte Drosselung gerade aktiv ist, können Sie mit Hilfe der Restapi einsehen.
Hierzu nach der IP-Adresse des BSC "/restapi" hinzufügen (z.B. 192.168.1.100/restapi).
Die dargestellten "cc_"-Werte und "dcc_"-Werte stellen den durch die jeweilige Laderegelung limitierten Strom dar.
"inverter":{
"cc_cellVoltage": 0.00,
"cc_soc": 0.00,
"cc_cellDrift": 0.00,
"cc_cutOff": 0.00,
"cc_packHigh": 100.00,
"cc_temperature": 0.00,
"cc_tempProfile": 0.00,
"cc_zero": 0.00,
"cc_triggerLimit": 100.00,
"dcc_cellVoltage": 0.00,
"dcc_temperature": 100.00,
"dcc_tempProfile": 100.00,
"dcc_packHigh": 100.00,
"dcc_triggerLimit":100.00
}
Falls es nicht möglich ist, die Daten während eines Drosselungs-Events direkt anzuzeigen, besteht die Möglichkeit, diese temporär über eine alternative Plattform wie Home Assistant aufzeichnen zu lassen. Dabei ist zu beachten, dass jede Abfrage der REST-API alle verfügbaren Daten umfasst.
Für die Übertragung der Daten kann mit einer Dauer von etwa 0,5 bis 1 Sekunde pro Paket gerechnet werden. Diese Zeitangabe dient als Orientierung.
Nachfolgend finden Sie ein Beispiel für einen YAML-Code, der für die Erstellung eines Sensors zur Anzeige des Werts von "setpoint_cc" in Home Assistant verwendet werden kann:
platform: rest
name: bscapi_setpoint_cc
resource: http://192.x.x.x/restapi
value_template: "{{ value_json['inverter']['setpoint_cc'] }}"
unit_of_measurement: "A"
state_class: "measurement"
icon: "mdi:api"