Einbindung Anker Solix in OpenHAB - Anleitung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Scooter_0807
Beiträge: 28
Registriert: 9. Apr 2021 21:44
Answers: 0
Wohnort: Fehmarn

Einbindung Anker Solix in OpenHAB - Anleitung

Beitrag von Scooter_0807 »

Hallo zusammen,

Ich habe eine Weile gewerkelt und geforscht und stelle hier eine Anleitung zur Verfügung, wie Ihr ein Anker Solix Balkonkraftwerk in OpenHAB einbinden könnt. Die hat keinen Anspruch auf Vollständigkeit und vielleicht gibt es auch andere Wege, bei mir tut sie jedenfalls.
Die Anbindung ist read-only. Es können also nur Items mit Daten gefüllt werden, eine Steuerung des Balkonkraftwerks ist so nicht möglich.

Meine Umgebung
Openhab 5.1.2
Raspberry PI 4 mit 2GB RAM
Ergänzung 25.2.2026: 1x Anker Solix 3 mit 2kW Peak Solarleistung und 2,6 kWh Speicher (keine Speichererweiterung installiert)
Shelly Smartmeter am Stromzähler (natürlich vom Elektriker eingebaut)
Aus Sicherheitsgründen habe ich die Elektroinstallation vom Elektriker an den aktuelle Stand der VDE Vorschriften anpassen und abnehmen lassen

Funktionsweise der Anbindung
Das Anker Solix ist eine Cloud Only Lösung. D.h. das Anker Solix schreibt in die Cloud und die Daten sind ausschließlich über die Anker Cloud API erreichbar. Die Integration des Shelly erfolgt über die Shelly Cloud. D.h. man muss beim Setup des Anker Solix dieses mit der Shelly Cloud verbinden.
Das beschreibe ich hier nicht.

Also, Anker Solix schreibt in die Cloud.
Tom Quist hat eine Integration geschrieben, welche auf dem Raspberry läuft und sich mit der Anker API verbindet. Diese heißt solix2mqtt
Diese wird benötigt: https://github.com/tomquist/solix2mqtt? ... me-ov-file
In Openhab wird ein MQTT Broker aufgesetzt (bei mir ist das Mosquitto).
Solix2mqtt ruft regelmäßig die Daten der API ab und sendet sie an den MQTT Broker. Diese Daten liegen als JSON Datensatz vor.
In OpenHAB wird ein MQTT Broker Thing angelegt (MQTT Broker Thing), das die Daten vom solix2mqtt entgegen nimmt.
In OpenHAB wird ein MQTT Broker Thing angelegt (Generic MQTT Broker), welches das eben genannte MQTT Broker Thing als Quelle hat und die Solix Daten von solix2mqtt herausliest.
Das eben genannte MQTT Broker Thing empfängt also den JSON Datenstrom vom solix2mqtt.
Jetzt wird in diesem MQTT Broker Thing Channel angelegt. Jeder Channel soll einen Wert des Anker Solix enthalten, z.B. Batterieladung, Solarleistung, etc. Da die Daten im JSON Format vorliegen wird in jedem Channel mit Hilfe eines JSONPATH Ausdrucks das gewünschte Datum aus dem JSON Datensatz herausgelesen.
Jeder Channel wird mit einem Item verlinkt in dem dann die Daten weiter verarbeitet werden können.

Es handelt sich also um eine Read Only Lösung. Die Anbindung kann das Anker Solix nicht steuern!

Ist schon knifflig :-)

Ablauf des Setup
1. In der Anker Cloud solltet Ihr Euch einen eigenen Account für die OpenHAB Anbindung anlegen. Angeblich soll es seit 2026 auch mit dem Account gehen, den Ihr Euch für die Anker APP angelegt habt. Ich traue der Anker API noch nicht 100%ig, dass man einen Anker Account von zwei verschiedenen Geräten (Anker App und OpenHAB Anbindung) störungsfrei nutzen kann.

2. Mosquitto MQTT installieren und konfigurieren. Also MQTT Account, Passwort und Netzwerkport festlegen.
3. Solix2mqtt auf dem Raspberry installieren und die Anbindung an die Anker Cloud testen.
4. Anbindung von solix2mqtt an den Mosquitto MQTT aufsetzen und testen.
5. Solix2mqtt als Service einrichten, damit das Tool auch über systemctl automatisch gestartet, respektive manuell restartet werden kann
6. Test wie die Daten im Mosquitto ankommen.
7. Die beiden MQTT Broker Things anlegen
8. Channel aufsetzen und die richtigen Daten per JSONPATH herausfiltern.

Hilfreich sind für mich folgende Tools:
- MQTT-Explorer von Thomas Nordquist. Damit lese ich die Rohdaten aus (JSON), die der solix2mqtt an den Mosquitto Broker sendet.
- Notepad++ mit dem ich die Rohdaten vom MQTT-Explorer per Copy/Paste einfügen kann und über JSON "Pretty Print" besser lesen kann.
- https://jsonpathfinder.com/, damit kann ich die JSON Daten einfügen, das gewünschte Datum suchen und dann sehe ich im Statusfenster direkt den JSONPATH-Ausdruck, den ich später für den MQTT Channel brauche.

zu 2. Mosquitto installieren
Den Mosquitto MQTT habe ich über openhabian-config installiert.
openhabian-config => 20 Optional Components => 23 Mosquitto
Einfach der Installationsanleitung folgen.
Bei der Installation müsst Ihr einen mqtt-User und das mqtt-Passwort festlegen. Das ist die User/Passwort Kombination, die später bei der Konfiguration des solix2mqtt benötigt wird, damit soli2mqtt die Daten an den MQTT Broker übergeben kann.
Den vorgeschlagenen Netzwerkport belasst bei 1883, soweit keine anderen Dienste den Port bereits belegen.

Standardmäßig lässt der Mosquitto nur lokale Verbindungen zu. Da ich jedoch zur Analyse der Daten von meinem PC auf den Mosquitto zugreifen muss habe ich noch die Mosquitto Konfiguration angepasst:

Code: Alles auswählen

nano /etc/mosquitto/mosquitto.conf
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
per_listener_settings true
pid_file /run/mosquitto/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto
log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

allow_anonymous true

listener 1883
password_file /etc/mosquitto/passwd
Zudem habe ich gepüft, dass openhabian-config das die Passwort-Datei /etc/mosquitto/passwd angelegt hat. Sollte das nicht der Fall sein müsstet Ihr den Mosquitto manuell mit dem Passwort versehen. Wie das geht findet Ihr im Internet :D



zu 3. Solix2mqtt auf dem Raspberry installieren
Schaut auf jeden Fall in die aktuelle Github Doku: https://github.com/tomquist/solix2mqtt? ... me-ov-file
Da steht in der Readme wie man die Installation durchführt. Diese Anleitung basiert auf dem Stand von Anfang Januar 2026.

Voraussetzung für solix2mqtt:
In der Readme stehen Requirements. Die müsst Ihr befolgen.
Es wird Node.js und npm auf dem Raspberry benötigt.
Die Installation von nodejs und npm habe ich so vorgenommen:

Code: Alles auswählen

sudo apt update
sudo apt install nodejs
node -v
Danach sollte nodejs und npm vorhanden sein. Jedenfalls war es bei mir, da npm mit nodejs mitkommt.

Mit node -v oder npm -v kann ich prüfen welche Versionen installiert sind.
Bei mir läfut node = 22.22.0 und npm = 10.9.4

solix2mqtt installieren

Code: Alles auswählen

cd ~
git clone https://github.com/tomquist/solix2mqtt.git
Die Installation erfolgt im Unterverzeichnis solix2mqtt. Hier liegt auch die Konfigurationsdatei, die jetzt angepasst werden muss.
Ich habe mir ein Startskript gebaut, in dem die Konfiguration liegt.

Code: Alles auswählen

nano start_solix2mqtt.cmd
Inhalt vom Startskript. Die Werte in den {} müsst Ihr durch Eure Werte ersetzen.

Code: Alles auswählen

npm install && npm run build
        S2M_USER={Anker-Account, den Ihr für openhab angelegt habt} \
        S2M_PASSWORD={Passwort des Anker Accounts} \
        S2M_COUNTRY=DE \
        S2M_MQTT_URI=mqtt://{IP-Adresse des raspberry auf dem der Mosquitto läuf}:1883 \
        S2M_VERBOSE=true \
        S2M_MQTT_USERNAME={mqtt-user, den Ihr bei der Mosquitto-Installation angegeben habt} \
        S2M_MQTT_PASSWORD={Passwort des mqtt-users} \
        S2M_POLL_INTERVAL=60 \
        npm run start >> /var/log/solix2mqtt.log
Das Poll-Intervall solltet Ihr bei 60 belassen, da die meist nicht schneller aktualisiert werden.
Da in dem Skript Usernamen/Passwörter abgelegt sind empfehle ich über folgende Kommandos den Zugang nur für den root-User zuzulassen.

Code: Alles auswählen

chown root:root start_solix2mqtt.cmd
chmod 750 start_solix2mqtt.cmd
Jetzt sollte der Eintrag so aussehen:
-rwxr-x--- 1 root root 299 23. Feb 15:28 start_solix2mqtt.cmd*

Nun könnt Ihr start_solix2mqtt.cmd ausführen. Im Logfile /var/log/solix2mqtt.log könnt Ihr prüfen ob Daten aus der Anker Cloud abgeholt und an den mqtt-Broker übergeben werden.
Das Skript wird so im Vordergrund ausgeführt und kann durch ctrl-c abgebrochen werden.
Deshalb kommt jetzt Schritt 5, das Skript in einen Service packen.

zu 5. Solix2mqtt als Service einrichten
Dazu muss zunächst eine Service Konfigurationsdatei erstellt werden.

Dazu die Datei solix2mqtt.service anlegen

Code: Alles auswählen

cd /etc/systemd/system
nano solix2mqtt.service
Inhalt der Datei:

Code: Alles auswählen

[Unit]
Description=Solix2MQTT Service
After=network.target
After=multi-user.target
[Service]
Type=simple
WorkingDirectory=/root/solix2mqtt
ExecStart=/bin/bash /root/solix2mqtt/start_solix2mqtt.cmd
Restart=always
User=root
[Install]
WantedBy=multi-user.target
Die Datei basiert darauf, dass solix2mqtt in /root/solix2mqtt installiert wurde. Das habe ich in Schritt 4 so beschrieben.

So könnt Ihr prüfen, ob die Konfigurationsdatei korrekt ist:

Code: Alles auswählen

systemd-analyze verify /etc/systemd/system/solix2mqtt.service
Wenn alles ok ist könnt Ihr den Service definieren

Code: Alles auswählen

sudo systemctl daemon-reload           # Systemd über neue Datei informieren
sudo systemctl enable solix2mqtt.service # Service beim Booten starten
sudo systemctl start solix2mqtt.service  # Service jetzt starten
Im Logfile /var/log/solix2mqtt.log könnt Ihr prüfen ob der Service läuft und Daten an den MQTT-Broker übergibt.

zu 6. wie kommen die Daten im Mosquitto an?
solix2mqtt liest jetzt die Daten von der Anker Cloud und reicht sie an den Mosquitto MQTT Broker weiter. Die Daten kommen im JSON-Format an. Damit wir die JSON-Daten korrekt adressieren können empfehle ich diese vom Mosquitto abzuholen.
Dafür nutze ich den MQTT-Explorer von Thomas Nordquist. Der läuft auf meinem Windows Rechner ohne Installation direkt als ausführbares EXE-Programm.
Damit die Verbindung vom PC zum Mosquitto MQTT funktioniert müsst Ihr mosquitto.conf wie oben beschrieben angepasst haben. Ansonsten klappt die Verbindung nicht.

Dazu habe nach dem Start des MQTT-Explorers eine neue Connection aufgebaut. Hier trage ich den o.g. mqtt-user und das zugehörige Passwort ein.
MQTT-ExplorerStart.png
Jetzt noch über den Button "Advanced" das Topic solix/# eintragen.

Dieser Eintrag sorgt dafür, dass von dem MQTT-Broker nur die Daten des Anker Solix abgerufen werden.

Ist alles eingetragen könnt Ihr über den Connect Button die Verbindung zu MQTT-Broker aufnehmen.

Der MQTT Explorer stellt die Verbindung zum Mosquitto her und wartet auf das erste Datenpaket. Deshalb seht Ihr beim Start erst einmal nur die IP-Adresse des Mosquitto Servers.

Wenn nach ca 60 Sekunden das erste Datenpaket vom Anker Solix ankommt ändert sich das Bild und die Informationen aus dem empfangenen JSON Daten werden eingeblendet.
MQTT-ExplorerScenInfo.png
Im Linken Fenster seht Ihr die Verwaltungsdaten. Ihr werdet auch den Namen Eures Anker Solix erkennen, wie es in der Anker App dargestellt wird.
Unter scenInfo liegen die eigentlichen Payload Daten, auf die wir zugreifen und die Inhalte an die OpenHAB Items übergeben wollen.
Im rechten Fenster seht Ihr den Zugriffs-pfad auf den JSON-Teil, der die Payload enthält.

Bei mir ist das solix/site/Jujama/scenInfo

Im rechten Fenster findet Ihr neben dem Feld "Value" einen Copy-Button mit dem Ihr Euch die Daten in einen Editor laden könnt.
Zur Analyse nutze ich https://jsonpathfinder.com/.

Hier habe ich im linken Fenster die Payload hineinkopiert. Sofort erscheinen im rechten Teil die verfügbaren Anker Parameter und die akutellen Werte.
SolixBatteryLoad.png
Ich habe in dem Beispiel im rechten Fenster den Parameter der aktuellen Batterieladung herausgesucht und markiert.
Der Parameter heißt total_battery_power und beträgt 0.22 oder 22%

Damit wir später die Channel korrekt definieren können ist jetzt der angezeigt Path wichtig, denn über diesen wird aus dem Datenstrom der gewünschte Parameter adressiert.
Die gesamte Batterieladung (also über alle Batterien) ist in diesem Beispiel über x.solarbank_info.total_battery_power adressierbar.

Jetzt steht also die Verbindung von der Anker API zum Mosquitto Broker und wir können im OpenHAB die Things anlegen.

zu 7. Die beiden MQTT Broker Things anlegen
Zunächst müsst Ihr das MQTT Binding installieren
Dann ein MQTT-Broker Thing als Bridge anlegen
Thing => New => MQTT-Binding => MQTT-Broker Bridge
Ich habe folgendermaßen konfiguriert, wobei Ihr natürlich den mqtt-user und Passwort wie beim JSON Explorer eintragen müsst.

Code: Alles auswählen

version: 1
things:
  mqtt:broker:MqttBroker:
    isBridge: true
    label: MQTT Broker mit Kontakt zum Mosquitto Mqtt
    location: OpenHAB
    config:
      host: 127.0.0.1
      secure: false
      hostnameValidated: true
      protocol: TCP
      mqttVersion: V3
      qos: 0
      reconnectTime: 60000
      keepAlive: 60
      lwtQos: 0
      lwtRetain: true
      birthRetain: true
      shutdownRetain: true
      username: {mqtt-user}
      password: {passwort des mqtt-user}
      certificatepin: true
      publickeypin: true
      enableDiscovery: true
      clientid: ffd0f0ad-0e4f-4e9d-bf25-536cb3aaa632
Danach brauchen wir ein Generic MQTT Broker Thing. Über dessen Channel werden die Anker Solix Daten gelesen und auf Items verteilt.
Thing => New => MQTT-Binding => Generic MQTT Thing
Ich habe das Label benannt "MQTT Broker für Solix2MQTT"
und als Bridge die vorher angelegte MQTT-Bridge eingetragen:

Code: Alles auswählen

version: 1
things:
  mqtt:topic:MqttBroker:2aff1eb045:
    bridge: mqtt:broker:MqttBroker
    label: MQTT Broker für Solix2MQTT

Jetzt können wir die Channels definieren, um die Anker Solix Datenströme auf Items zu verteilen.

Ich zeige das anhand der Batterieladung des Anker Solix.

Channels => Add Channel
ID: Solix_Batterieladung_1
Label: Solix Batterieladung 1
Channel Type: Number Value (das ist wichtig, sonst werden später die Items nicht numerisch befüllt)
Jetzt auf "Done" klicken, damit der Channel angelegt wird.

Wählt den neuen Channel aus und klickt auf "Configure Channel"

Klickt auf "advanced"
MQTT State Topic: solix/site/Jujama/scenInfo (erinnert Euch an den MQTT-Explorer, was auf der linken Seite steht)
Bei der Batterieladung setzt "Unit Of Measurement" auf %
Bei Transform Values wird jetzt der Filter gesetzt, mit dem die Batterieladung aus dem Datenstrom gefilter wird.
Da ich den Einsatz mehrere Batterien plane lese ich den Wert der ersten Batterie aus.
Also, unter Incoming Value Transformations steht bei mir
JSONPATH:$.solarbank_info.solarbank_list[0].battery_power
Wenn Ihr, wie oben beschrieben, die Ladung über alle Batterien auslesen wollt, das müsste hier stehen:
JSONPATH:$.solarbank_info.total_battery_power

Zur Klärung: Über den JSON Path Finder habe ich für die gesamte Batterieladung den Pfad x.solarbank_info.total_battery_power zur Adressierung im JSON Datenstrom adressiert. Im Channel adressiere ich genau diesen JSON Path über JSONPATH:$.solarbank_info.total_battery_power

Wenn der Channel definiert ist können wir nun das passende Item anlegen.

Dazu wieder den Channel auswählen und über "Add Link to Item" ein passendes Item anlegen:
=> Create a new Item
Danach schlägt Openhab die korrekten Werte für Type, Diemension, Unit, Stete Description Pattern, Semantic Point und Semantic Property korrekt vor.
Ihr müsst nur den Namen und das Label definieren.
Ich habe mich entschlossen, dass alle Namen und Label mit Solix_ beginnen.

Hier ist die Definition meines MQTT-Thing und aller Channel, die ich definiert habe. Darin könnt Ihr auch die JSONPATH-Ausdrücke erkennen, die ich für die Filterung der Daten verwendet habe:

Code: Alles auswählen

version: 1
things:
  mqtt:topic:MqttBroker:2aff1eb045:
    bridge: mqtt:broker:MqttBroker
    label: MQTT Broker für Solix2MQTT
    channels:
      Solix_Batterieladung_1:
        type: number
        label: Solix Batterieladung 1
        description: ""
        config:
          stateTopic: solix/site/Jujama/scenInfo
          transformationPattern:
            - "JSONPATH:$.solarbank_info.solarbank_list[0].battery_power"
          formatBeforePublish: '%.0f'
          min: 0
          max: 4000
          unit: '%'
      Solix_LadeleistungBatterie_1:
        type: number
        label: Solix Ladeleistung Batterie 1
        description: ""
        config:
          stateTopic: solix/site/Jujama/scenInfo
          transformationPattern:
            - JSONPATH:$.solarbank_info.total_charging_power
          formatBeforePublish: '%.0f'
          min: 0
          max: 4000
          unit: W
      Solix_Leistungsbezug_vom_Stromlieferanten:
        type: number
        label: Solix Leistungsbezug vom Stromlieferanten
        description: "Leistung in Watt, die vom Stromerzeuger aktuell bezogen wird."
        config:
          stateTopic: solix/site/Jujama/scenInfo
          transformationPattern:
            - JSONPATH:$.other_loads_power
          formatBeforePublish: '%.0f'
          min: 0
          max: 64000
          unit: W
      Solix_LeistungsbedarfStromverbraucherWohnung:
        type: number
        label: Solix Leistungsbedarf Stromverbraucher Wohnung
        description: Aktuelle Leistung die von allen Stromverbrauchern benötigt wird
        config:
          stateTopic: solix/site/Jujama/scenInfo
          transformationPattern:
            - JSONPATH:$.home_load_power
          formatBeforePublish: '%4f'
          min: 0
          max: 64000
          unit: W
      Solix_LeistungSolarpanele_1:
        type: number
        label: Solix Leistung Solarpanale 1
        description: ""
        config:
          stateTopic: solix/site/Jujama/scenInfo
          transformationPattern:
            - "JSONPATH:$.solarbank_info.solarbank_list[0].photovoltaic_power"
          formatBeforePublish: '%4f'
          min: 0
          max: 4000
          unit: W
      Solix_EntadeleistungBatterie_1:
        type: number
        label: Solix Entladeleistung Batterie 1
        config:
          stateTopic: solix/site/Jujama/scenInfo
          transformationPattern:
            - JSONPATH:$.solarbank_info.battery_discharge_power
          formatBeforePublish: '%.0f'
          min: 0
          max: 4000
          unit: W

Noch der Hinweis, dass die Batterie Ladeleistung und Entladeleistung tatsächlich in zwei Parametern kommt. Wenn die Batterie geladen wird dies in JSONPATH:$.solarbank_info.total_charging_power übergeben, wenn die Batterien entladen werden steht das in JSONPATH:$.solarbank_info.battery_discharge_power.

Abschließend möchte ich bemerken, dass dies mein aktueller Wissensstand ist und ich keinen Anspruch auf Vollständigkeit, beste Lösung o.ä. erhebe.

Good luck !

Ergänzung 25.2.2026
Hier noch ein paar Pfadangaben für Parameter, die ich nutze:
Daten der ersten Solix Station
Ladung der Batterie: JSONPATH:$.solarbank_info.solarbank_list[0].battery_power
Ladeleistung für die Batterie: JSONPATH:$.solarbank_info.total_charging_power
Entladeleistung der Batterie: JSONPATH:$.solarbank_info.battery_discharge_power
Leistung aus den Solarpanelen: JSONPATH:$.solarbank_info.solarbank_list[0].photovoltaic_power
Leistung, die von allen Verbrauchern benötigt wird: JSONPATH:$.home_load_power
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Scooter_0807 am 25. Feb 2026 19:42, insgesamt 2-mal geändert.

BerndSt
Beiträge: 2
Registriert: 25. Feb 2026 16:56
Answers: 0

Re: Einbindung Anker Solix in OpenHAB - Anleitung

Beitrag von BerndSt »

wau, tolle Anleitung. Haette ich mir eher gewuenscht :D
Habe bis Ende letzten Jahres auch dieses Verfahren von Tom Quist seit 1-2Jahren verwendet und einige Zeit und Einarbeitung gebraucht um es so wie in Deiner Anleitung beschrieben ans laufen zu bekommen. Die Tools liefen sogar parallel zum Openhab auf dem selben Raspi.

Das fand ein Ende als ich eine zweite Solarbank in mein System integriert habe, denn die Loesung von Tom Quist konnte leider nur die Daten von einem System verarbeiten.

Habe mich daher mit der Loesung von Tom Luther befasst und mittlerweile auch ans laufen bekommen:
https://github.com/thomluther/anker-solix-api

da diese Python in Version 3.12 oder 3.13 vorraussetzt laeuft diese in einer Linux VM auf meinem Server da ich mir keine Probleme auf meinem Openhab System einhandeln wollte (V3.11)
In der VM laeuft das Script monitor.py, dessen Terminalausgabe liefert die Ausgaben aller Devices einschliesslich Smartmeter vom entsprechenden Anker-Konto. Die Ausgabe wird von einem Script geparst (hat mir netterweise ChatGPT geschrieben) und die Variablen dem mqtt-Broker von Openhab zur Verfuegung gestellt.

Ich kann bestaetigen dass ein Zweitaccount bei Anker mittlerweile nicht mehr noetig ist, ich mache mittlerweile alle Abfragen per Mobilphone oder Scripte ueber das gleich Anker-Konto

Scooter_0807
Beiträge: 28
Registriert: 9. Apr 2021 21:44
Answers: 0
Wohnort: Fehmarn

Re: Einbindung Anker Solix in OpenHAB - Anleitung

Beitrag von Scooter_0807 »

BerndSt hat geschrieben: 25. Feb 2026 17:27 wau, tolle Anleitung. Haette ich mir eher gewuenscht :D
Habe bis Ende letzten Jahres auch dieses Verfahren von Tom Quist seit 1-2Jahren verwendet und einige Zeit und Einarbeitung gebraucht um es so wie in Deiner Anleitung beschrieben ans laufen zu bekommen. Die Tools liefen sogar parallel zum Openhab auf dem selben Raspi.

Das fand ein Ende als ich eine zweite Solarbank in mein System integriert habe, denn die Loesung von Tom Quist konnte leider nur die Daten von einem System verarbeiten.

Habe mich daher mit der Loesung von Tom Luther befasst und mittlerweile auch ans laufen bekommen:
https://github.com/thomluther/anker-solix-api

da diese Python in Version 3.12 oder 3.13 vorraussetzt laeuft diese in einer Linux VM auf meinem Server da ich mir keine Probleme auf meinem Openhab System einhandeln wollte (V3.11)
In der VM laeuft das Script monitor.py, dessen Terminalausgabe liefert die Ausgaben aller Devices einschliesslich Smartmeter vom entsprechenden Anker-Konto. Die Ausgabe wird von einem Script geparst (hat mir netterweise ChatGPT geschrieben) und die Variablen dem mqtt-Broker von Openhab zur Verfuegung gestellt.

Ich kann bestaetigen dass ein Zweitaccount bei Anker mittlerweile nicht mehr noetig ist, ich mache mittlerweile alle Abfragen per Mobilphone oder Scripte ueber das gleich Anker-Konto
Hallo BerndSt,
und danke für Dein Kompliment.

Bezüglich der Verarbeitung von "nur" einem System kann ich anhand der aktuellen Payload bei meinem System nur spekulieren.
Die Payload ist strukturiert im JSON Format.
Darin gibt es die Struktur:

Code: Alles auswählen

    "topology_type": "1",
    "solarbank_info": {
        "solarbank_list": [
            {
                "device_pn": "A17C5",
                "device_sn": "APCDJQD0F28100729",
                "device_name": "Solarbank 3 E2700 Pro",
                "device_img": "https://public-aiot-fra-prod.s3.dualstack.eu-central-1.amazonaws.com/anker-power/public/product/2025/04/15/iot-admin/6SO8wjMetOwT8PaH/picl_A17C5_normal.png",
                "battery_power": "17",
                "bind_site_status": "",
                "charging_power": "232",
                "power_unit": "W",
                "charging_status": "0",
                ...
            }
           ],
Anhand der ganz unten stehenden Zeichen } und ], vermute ich, dass bei einer weiteren Solarbank hier die Informationen zu den weiteren Solarbanken stehen würden.
Ja, ich spekuliere :D

Die Batterieladung der ersten Solarbank lese ich aktuell über JSONPATH:$.solarbank_info.solarbank_list[0].battery_power (man achte auf die [0]).
Die Batterieladung der zweiten Solabank vermute ich unter JSONPATH:$.solarbank_info.solarbank_list[1].battery_power.

Also müsste man für jeden Parameter eine Solarbank einen Channel und auch ein Item definieren.

Es gibt auch Sammelinformationen, die von der Solarbank unabhängig sind, wie z.B. der Leistungsbedarf aller Verbraucher: JSONPATH:$.home_load_power

Aber wie gesagt ich spekuliere ob die Anleitung (Stand heute) auch für die Zusammenschaltung mehrere Anker Solix funktioniert.

BerndSt
Beiträge: 2
Registriert: 25. Feb 2026 16:56
Answers: 0

Re: Einbindung Anker Solix in OpenHAB - Anleitung

Beitrag von BerndSt »

Anhand der ganz unten stehenden Zeichen } und ], vermute ich, dass bei einer weiteren Solarbank hier die Informationen zu den weiteren Solarbanken stehen würden.
Ja, ich spekuliere :D
die Hoffnung hatte ich ja auch vorher, die Erfahrung war halt dass dem nicht so war, deshalb mein Umstieg auf Tom Luther's Loesung. Ich weiss jetzt gar nicht mehr wie die Bedingungen genau waren, ich glaube ich musste in der Anker App immer die gewuenschte SB auswaehlen, da kann man ja auch nur eine zur Zeit beobachten, aber dann hatte sich auch wieder die Struktur vom JASON Format geaendert

Antworten