Zum Hauptinhalt springen

HTTP/HTTPS-Übersicht

INDEVOLT-Energiespeichersysteme stellen eine auf HTTP/HTTPS basierende REST-API bereit, die zur Geräteüberwachung, zum Auslesen von Parametern und zur Steuerung innerhalb des lokalen Netzwerks verwendet werden kann. Alle Schnittstellen verwenden JSON als Datenaustauschformat.


1. Vorbereitung

Schritt 1: Tools installieren

  • Postman, cURL oder andere HTTP-Debugging-Tools: Zum Aufrufen der HTTP-API, um Gerätedaten abzurufen oder Gerätekonfigurationen zu ändern.

Schritt 2: API aktivieren

Die API-Funktion des Geräts ist standardmäßig deaktiviert und muss vor der Verwendung aktiviert werden. OpenData unterstützt folgende Methoden:

Sie können die lokale API in der INDEVOLT App konfigurieren:

  • Gerät ist mit dem Netzwerk verbunden: Die Cloud-Konfiguration wird empfohlen und ist einfacher zu bedienen.
  • Gerät ist noch nicht mit dem Netzwerk verbunden: Die Konfiguration kann über die lokale Bluetooth-Verbindung direkt mit dem Gerät durchgeführt werden.

Schritt 3: Firmware-Version prüfen

Wenn die Geräteversion niedriger als die in der Tabelle angegebene Version ist, aktualisieren Sie bitte die Gerätefirmware.

ModellMindest unterstützte Version
BK1600 / BK1600 UltraV1.3.0A_R006.072_M4848_00000039
SolidFlex 2000 / PowerFlex 2000CMS: V1406.07.002E
PowerFlex 3000 AC
PowerFlex 3000 Hybrid
SolidFlex 3000 AC
SolidFlex 3000 AC Pro
SolidFlex 3000 Hybrid Pro
CMS: V1409.08.3034
SolidFlex 1200CMS: V1407.07.202E

Die Firmware-Version des Geräts kann in der INDEVOLT App angezeigt werden.

Schritt 4: IP-Adresse des Geräts ermitteln

Eine der folgenden drei Methoden kann verwendet werden:

  • 🧩Methode 1: IP-Adresse über die Router-Verwaltungsoberfläche abrufen.

  • 🧩Methode 2: IP-Adresse in den Geräteeinstellungen der App anzeigen.

  • 🧩Methode 3: IP-Adresse über UDP-Broadcast abrufen.

    (1) Stellen Sie sicher, dass das WLAN des Geräts und der Computer mit demselben lokalen Netzwerk verbunden sind.
    (2) Öffnen Sie ein Netzwerk-Debugging-Tool (z. B. NetAssist).
    (3) Wählen Sie das Protokoll UDP.
    (4) Wählen Sie Local Host Addr.
    (5) Setzen Sie den Local Host Port auf 10000.
    (6) Klicken Sie auf Open.

    (7) Stellen Sie unter Remote die Broadcast-Adresse und den Port ein: 255.255.255.255:8099.

    (8) Geben Sie im Nachrichtenfeld den AT-Befehl AT+IGDEVICEIP ein.
    (9) Klicken Sie auf Send.

    (10) INDEVOLT-Geräte im gleichen lokalen Netzwerk antworten mit ihrer IP-Adresse und SN-Nummer.


2. HTTP-Verwendung

2.1 Anfrageformat

HTTP-Methode

MethodeBeschreibung
GETFordert den Server auf, eine bestimmte Ressource zurückzugeben.
POSTFordert den Server auf, eine bestimmte Aktion auszuführen.

Anfrageadresse

http://{IP_ADDRESS}:8080/rpc/{API}

Dabei gilt:

  • {IP_ADDRESS}: IP-Adresse des Geräts.
  • {API}: API-Name, z. B. Indevolt.GetData. Eine vollständige API-Beschreibung finden Sie unter API-Referenz.

Beispielanfrage

  • Gerätedaten abrufen:

    POST [http://192.168.31.213:8080/rpc/Indevolt.GetData?config={"t":[1664,1665]}](http://192.168.31.213:8080/rpc/Indevolt.GetData?config={%22t%22:[1664,1665]})

cURL-Beispiel

  • Batterie-SOC abrufen:

    curl -g -X POST -H "Content-Type: application/json" "[http://192.168.1.75:8080/rpc/Indevolt.GetData?config={\"t\":[6002]}](http://192.168.1.75:8080/rpc/Indevolt.GetData?config={\%22t\%22:[6002]})"

2.2 Begrenzung der Anfragefrequenz

Um einen stabilen Betrieb des Geräts sicherzustellen, sollte die API-Aufruffrequenz begrenzt werden.

TypBegrenzung
Empfohlenes Anfrageintervall≥ 5 Sekunden
Minimal unterstütztes Intervall1 Sekunde
Antwortzeit1 Sekunde

2.3 Fehlercodes

StatuscodeBeschreibungErklärung
400Bad RequestDas Serverformat der Anfrage ist ungültig. Der Client muss die Anfrage korrigieren und erneut senden.
401UnauthorizedEine Authentifizierung ist erforderlich. Der Client muss gültige Zugangsdaten bereitstellen.
403ForbiddenDer Server versteht die Anfrage, verweigert jedoch die Ausführung, meist aufgrund fehlender Berechtigungen.
404Not FoundDie angeforderte Ressource wurde nicht gefunden oder wurde gelöscht.
405Method Not AllowedDie verwendete Methode ist für diese Ressource nicht zulässig.
408Request TimeoutZeitüberschreitung beim Warten auf die Anfrage. Der Client kann später erneut versuchen.
409ConflictDie Anfrage steht im Konflikt mit dem aktuellen Zustand der Ressource.
410GoneDie Ressource wurde dauerhaft entfernt.
500Internal Server ErrorEin unbekannter Serverfehler ist aufgetreten.
501Not ImplementedDie angeforderte Methode wird vom Server nicht unterstützt.
502Bad GatewayDer Server als Gateway oder Proxy hat eine ungültige Antwort vom Upstream-Server erhalten.
503Service UnavailableDer Server ist derzeit nicht verfügbar, z. B. wegen Überlastung oder Wartung.
504Gateway TimeoutDer Gateway- oder Proxy-Server hat keine rechtzeitige Antwort erhalten.
505HTTP Version Not SupportedDie verwendete HTTP-Version wird nicht unterstützt.

3. HTTP Digest Authentication

Das Gerät unterstützt HTTP Digest Authentication zur Authentifizierung von Anfragen. Dadurch wird verhindert, dass Passwörter im Klartext übertragen werden, und die Sicherheit der Kommunikation wird verbessert.

Im Modus HTTP + Digest:

  • Bei der ersten Verwendung oder nach einem Zurücksetzen auf die Werkseinstellungen muss das Standardpasswort zunächst über die Schnittstelle User.SetConfig geändert werden.
  • Nach erfolgreicher Änderung des Passworts können andere Schnittstellen verwendet werden. Alle nachfolgenden Anfragen werden mit dem neuen Passwort authentifiziert.

Tools

  • ASCII → Hexadezimal-Konverter
  • Hexadezimal → Base64-Konverter
  • AES-GCM-Verschlüsselungstool

Beispiel: Passwort ändern

  1. Konvertieren Sie das neue Passwort, das ursprüngliche Passwort und die Zufallszahl in das Hexadezimalformat.

    ASCII-ZeichenfolgeHexadezimal
    Neues Passwortqwertyui71 77 65 72 74 79 75 69
    Ursprüngliches Passwortqazwsxed71 61 7a 77 73 78 65 64 00 00 00 00 00 00 00 00
    (auf 16 Byte auffüllen)
    Zufallszahl12345631 32 33 34 35 36 00 00 00 00 00 00
    (auf 12 Byte auffüllen)
  2. Verschlüsseln Sie die Daten mit einem AES-GCM-Tool. Geben Sie dazu die entsprechenden Parameter im Tool ein.

  3. Konvertieren Sie den Ciphertext und den Tag in das Base64-Format.

    HexadezimalBase64
    Ciphertext4e b2 90 67 54 02 d4 c4TrKQZ1QC1MQ=
    Tagcf 0b d0 4e 37 a0 e6 bb cb 74 1b cb ce ab 72 9azwvQTjeg5rvLdBvLzqtymg==
  4. Konfigurieren Sie die Parameter für HTTP Digest Authentication und senden Sie die Anfrage User.SetConfig.

    POST http://{IP_ADDRESS}:8080/rpc/User.SetConfig?config={"Password":"{PASSWORD}"}

    Dabei gilt:

    • {IP_ADDRESS}: IP-Adresse des Geräts.
    • {PASSWORD}: Nach AES128-GCM-Verschlüsselung in das Base64-Format konvertierter Ciphertext.
ParameterTypBeschreibungErforderlich
UsernameStringStandardwert: opendJa
PasswordStringStandardmäßiger Geräteschlüssel.

- Mit dem Standardpasswort kann nur die Schnittstelle User.SetConfig zum Ändern des Passworts aufgerufen werden.
- Nach der Passwortänderung können andere Schnittstellen mit dem neuen Passwort verwendet werden.
Ja
RealmString- Beim Aufruf von User.SetConfig zum Ändern des Passworts muss der AES128-GCM Tag angegeben werden.
- Bei anderen Schnittstellen kann ein zufälliger Wert verwendet werden.
Ja
NonceStandardtyp von DigestKann einen zufälligen Wert verwenden.Ja
AlgorithmStandardtyp von DigestMD5Ja
qopStandardtyp von DigestauthJa
Nonce CountStandardtyp von DigestKann einen zufälligen Wert verwenden.Ja
Client NonceStandardtyp von DigestKann einen zufälligen Wert verwenden.Ja

4. HTTPS (derzeit nicht unterstützt)

HTTPS verschlüsselt die Kommunikationsdaten mithilfe von TLS und überprüft die Identität des Servers über digitale Zertifikate. Dadurch können Daten wirksam vor Abhören oder Manipulation geschützt werden.

HTTP und HTTPS verwenden dieselben API-Schnittstellen. Anfragemethoden, Anfrageparameter und Antwortformate sind vollständig identisch. Es muss lediglich das Protokoll in der Anfrageadresse von http:// auf https:// geändert werden.


5. FAQ

Q: Der HTTP-Zugriff gibt 401 Unauthorized zurück.
  • Überprüfen Sie, ob der Benutzername und das Passwort für die Digest-Authentifizierung korrekt sind.
  • Geräte bei der ersten Verwendung oder nach einem Zurücksetzen auf die Werkseinstellungen unterstützen zunächst nur den Zugriff auf die angegebene Schnittstelle User.SetConfig. Weitere Informationen finden Sie unter Digest-Authentifizierung. Nach erfolgreicher Passwortänderung können andere Schnittstellen mit dem neuen Passwort verwendet werden.
Q: Das Gerät gibt nach dem Senden eines Broadcast-Befehls keine IP-Adresse zurück.

Die OpenData API wurde noch nicht aktiviert, daher ist diese Funktion nicht verfügbar. Weitere Informationen finden Sie unter API aktivieren.