[Beta Modul] AnkerSolix

Version Version License

AnkerSolix

Dieses Modul verbindet IP-Symcon mit der Anker Solix Cloud und stellt Echtzeit-Messwerte von Solarbanks, Smart Plugs, Smart Metern, Powerstations und Home-Power-Systemen als Symcon-Variablen bereit.

1. Voraussetzungen

  • IP-Symcon ab Version 8.1
  • Anker-Konto mit eingerichteter Solix-Anlage

2. Enthaltene Module

Modul Typ Beschreibung
Anker Solix IO Splitter Verwaltet Zugangsdaten und API-Kommunikation
Anker Solix Konfigurator Konfigurator Erkennt alle Geräte der Anlage automatisch
Anker Solix Device Gerät Liest Messwerte eines einzelnen Geräts aus

Unterstützte Gerätetypen:

  • Solarbank (SOLIX E1600, E1600 Pro, …)
  • Smart Plug
  • Smart Meter
  • Powerstation (SOLIX C800, C1000, …)
  • Home Power Station (SOLIX X1, …)

3. Installation

Installation über den IP-Symcon Module Store.

4. Einrichtung

  1. Anker Solix Konfigurator anlegen
    → IP-Symcon fragt automatisch, ob ein vorhandenes IO-Modul ausgewählt oder ein neues angelegt werden soll
  2. Im Anker Solix IO E-Mail-Adresse, Passwort und Land eintragen → „Verbindung testen"
  3. Den Konfigurator öffnen – alle Geräte der Anlage werden automatisch aufgelistet
    → Gewünschtes Gerät auswählen → Erstellen
    → Die Device-Instanz startet sofort mit dem Abrufen der Daten

5. Spenden / Schenkung

Dieses Modul ist für die nicht kommerzielle Nutzung kostenlos. Schenkungen als Unterstützung für den Autor werden hier akzeptiert:

Paypal Amazon Wunschzettel

1 „Gefällt mir“

Changelog

17.06.2026 - Version 1.0 (Beta Version)

Moin… habe es gerade installiert. Bekomme folgende Fehlermeldung beim erstellen des Konfigurators. IPS ist VERSION 8.1

Warning: Modul mit der GUID {C3D4E5F6-A7B8-9012-CDEF-123456789012} nicht gefunden in /var/lib/symcon/modules/.store/schnittcher.info.ips.ankersolix/AnkerSolixConfigurator/module.php on line 17
 (Code: -32603)

Mein Fehler. :smiley:
Musste die GUIDs ändern, hab wohl was vergessen.

Grüße,
Kai

Dafür ist ja ne Beta da. Danke schon mal für das Modul. Bin schon sehr gespannt.

Beim Device scheint auch ein Fehler zu sein. Die IO-Instanz (Splitter) konnte ich einzeln anlegen, beim Device kam eine ähnliche Fehlermeldung bezüglich der GUID.

Warning: Modul mit der GUID {C3D4E5F6-A7B8-9012-CDEF-123456789012} nicht gefunden in /var/lib/symcon/modules/.store/schnittcher.info.ips.ankersolix/AnkerSolixDevice/module.php on line 14
 (Code: -32603)

Fix ist online.

Grüße,
Kai

So… jetzt funktioniert es auf anhieb. Sehr schön. Eine Sache ist mir eben aufgefallen.

Das stimmt etwas nicht mit der Batterieanzeige. Schau Dir mal die beiden Screenshots an.

Batterieleistung, Auflade und Entladeleistung stimmen nicht. Ebenso kann die Batterieenergie nicht passen bei einem SOC von 38%. Mein Kumpel hat in Summe 4,8kWh Speicher.

Gruß,

Peter

Ich bin jetzt leider nicht mehr am PC, da müssen wir dann mal mit Debugs gemeinsam schauen, was von der API kommt.

Und das dann auch direkt mit der App vergleichen.

Grüße,
Kai

Super und vielen Dank Kai!

Das mit der Batterie ist bestimmt nur eine Kleinigkeit :wink:
Einen Wusch hätte ich bei dieser Hitze heute:
In der App wird zusätzlich die Temperatur vom Akku angezeigt.
Ist diese auch ggf. verfügbar?

Das wäre super, ist bei meiner E1600(Gen.1) auch in der App zu sehen.
In HA war das aber auch nicht drin.
Mal sehen wenn Kai wieder Zeit hat, ist im Moment unterwegs. Und wir haben nur die E1600(Gen1) und den MI80 Microinverter(BLE) von Anker hier im Haus. War für mich ein Test, lohnt sich das.
Ich bin gespannt, heute Nacht wird das Modul zum ersten mal Daten liefern, und HA ist abgeschaltet.

lg Thomas

Kannst du heute Abend, wenn dieser Fall weider auftritt aktuelle Screenshots posten und ein Debug ins Log schreiben lassen und die Debug Meldungen auch posten?

Grüße,
Kai

Die Temperatur gibt die API nicht aus.

Grüße,
Kai

Hi Zusammen,

ich würde gern mitmachen - jedoch finde ich das Modul im Store nicht.

LG Dennis.

Habs gefunden.. nicht wie in der Überschrift AnkerSolix, sondern mit Leerzeichen dazwischen Anker Solix

LG Dennis

1 „Gefällt mir“

Super danke , läuft auf anhieb!
es fehlt bei mir der smart meter

Hallo!

Hab das Modul auch getestet und funktionierte sofort!

Gibts auch die Möglichkeit, die Anker Smartmeterdaten anzuzeigen?

Lg Dieter

Vielen Dank nochmal für das Modul!

Einspeiseleistung/ Bezugsleistung lassen sich berechnen mit Hausverbrauch - Ausgangsleistung! Positiv ist Netzbezug, Negativ ist einspeisen…

Mit dem kann ich gut arbeiten.

Lg Dieter

Hallo zusammen, so sieht das jetz bei mir aus, danke für das tolle Modul:

Energieverteilung Kachel:

Hab mal Screenshots beigelegt damit ihr die ID Nummern wieder erkennt

Anker Solar Hardware:


das Script:

// ==========================================
// KONFIGURATION: IDs der Anker-Instanzen
// ==========================================

// --- DACH SYSTEM 1 ---
define('ID_SOLAR_DACH_1', 38336);        
define('ID_BAT_DACH_1', 42797);   
define('ID_AUSGANG_DACH_1', 47258);       
define('ID_HAUSVERBRAUCH_DACH_1', 51937); 

// --- DACH SYSTEM 2 ---
define('ID_SOLAR_DACH_2', 46607);        
define('ID_BAT_DACH_2', 31516);   
define('ID_AUSGANG_DACH_2', 43602);       

// --- DACH SYSTEM 3 ---
define('ID_SOLAR_DACH_3', 46264);        
define('ID_BAT_DACH_3', 41086);   
define('ID_AUSGANG_DACH_3', 58952);       

// --- GARAGE SOLARBANK 1600 ---
define('ID_SOLAR_GARAGE', 11775);      
define('ID_BAT_GARAGE', 29067);        
define('ID_AUSGANG_GARAGE', 25969);    

// ==========================================
// ZIEL-VARIABLEN (DEINE KACHEL-VARIABLEN)
// ==========================================
$id_ziel_solar_dach      = 23257; 
$id_ziel_hausverbrauch   = 24977; 
$id_ziel_netzueberschuss = 58922; // Umlaute im Variablennamen zur Sicherheit vermieden
$id_ziel_netzbezug       = 13131; 
$id_ziel_akku_prozent    = 33849; 
$id_ziel_akku_laden_w    = 24039; 
$id_ziel_akku_entladen_w = 31737; 
$id_ziel_garage_laden    = 23390; 
$id_ziel_garage_entladen = 49494; 
$id_ziel_solar_garage    = 57751; 


// ==========================================
// LOGIK & BERECHNUNG
// ==========================================

// Solarleistungen sauber trennen
$solar_dach = GetValue(ID_SOLAR_DACH_1) + GetValue(ID_SOLAR_DACH_2) + GetValue(ID_SOLAR_DACH_3);
$solar_garage = GetValue(ID_SOLAR_GARAGE);

$hausverbrauch = GetValue(ID_HAUSVERBRAUCH_DACH_1);

// Netzeinspeisung / Bezug
$gesamt_ausgang_wr = GetValue(ID_AUSGANG_DACH_1) + GetValue(ID_AUSGANG_DACH_2) + GetValue(ID_AUSGANG_DACH_3) + GetValue(ID_AUSGANG_GARAGE);
$netz_differenz = $gesamt_ausgang_wr - $hausverbrauch;

if ($netz_differenz >= 0) {
    $netzeinspeisung = $netz_differenz;
    $netzbezug = 0;
} else {
    $netzeinspeisung = 0;
    $netzbezug = abs($netz_differenz);
}

// REINE DACH-AKKU BILANZ
$ausgang_dach_wr = GetValue(ID_AUSGANG_DACH_1) + GetValue(ID_AUSGANG_DACH_2) + GetValue(ID_AUSGANG_DACH_3);
$dach_akku_diff = $solar_dach - $ausgang_dach_wr;

if ($dach_akku_diff >= 0) {
    $akku_laden = $dach_akku_diff;
    $akku_entladen = 0;
} else {
    $akku_laden = 0;
    $akku_entladen = abs($dach_akku_diff);
}

// REINE GARAGEN-AKKU BILANZ (ABSICHERUNG)
$garage_akku_diff = $solar_garage - GetValue(ID_AUSGANG_GARAGE);

if ($garage_akku_diff > 5) { // Mehr als 5 Watt Überschuss -> Akku wird GELADEN
    $garage_laden = $garage_akku_diff;
    $garage_entladen = 0;
} elseif ($garage_akku_diff < -5) { // Negativer Wert -> Akku wird ENTLADEN
    $garage_laden = 0;
    $garage_entladen = abs($garage_akku_diff);
} else { // Ruhezustand (nahe 0 Watt)
    $garage_laden = 0;
    $garage_entladen = 0;
}


// Gesamter gewichteter Akku-Ladestand (%) berechnen und runden
$bat_d1 = GetValue(ID_BAT_DACH_1);
$bat_d2 = GetValue(ID_BAT_DACH_2);
$bat_d3 = GetValue(ID_BAT_DACH_3);
$bat_gar = GetValue(ID_BAT_GARAGE);

$akku_gesamt_prozent = round(($bat_d1 * 0.29) + ($bat_d2 * 0.29) + ($bat_d3 * 0.29) + ($bat_gar * 0.13));


// ==========================================
// WERTE SCHREIBEN
// ==========================================
SetValue($id_ziel_solar_dach, $solar_dach); 
SetValue($id_ziel_hausverbrauch, $hausverbrauch);
SetValue($id_ziel_netzueberschuss, $netzeinspeisung);
SetValue($id_ziel_netzbezug, $netzbezug);
SetValue($id_ziel_akku_prozent, $akku_gesamt_prozent);
SetValue($id_ziel_akku_laden_w, $akku_laden);
SetValue($id_ziel_akku_entladen_w, $akku_entladen);
SetValue($id_ziel_garage_laden, $garage_laden);
SetValue($id_ziel_garage_entladen, $garage_entladen);
SetValue($id_ziel_solar_garage, $solar_garage);

Damit das script funktioniert müsst ihr noch die Variablen anlegen
Solar Status:


Instanzkonfiguration

1 „Gefällt mir“

hab heute einen smart plug von anker ins „ankersystem“ eingebunden…leider findet der Konfigurator den Plug nicht, was übersehe oder was mache ich falsch?