NEWS
Anker Solix Smartmeter gen 2 & Anker Solarbank 4 - Modbus
-
Moin,
hab mich jetzt ein paar Tage lang mit dem Smartmeter und der Modbus Abfrage beschäftigt und wollte für die die es Benötigen kurz eine passende Konfiguration bereitstellen.
Im Smartmeter Gen2 kann über "drittanbieter" Modbus TCP Aktiviert werden. Dort taucht dann die IP und der Port auf über die das Smartmeter abgefragt werden kann.
Die Daten kann man dann über den Modbus Adapter im Iobroker ablegen. Das "problem" ist, der Adapter ist gigantisch groß und bietet unmengen an Einstellungen an.
Ich habe bei mir erstmal alles auf "default" gelassen und unter dem Punkt "Holding Register" die passenden Abfragen definiert.

Damit Ihr das nicht alles abtippen müsst, man kann über den doppelpfeil eine tsv Datei importieren. Die hab ich euch mal angehangen.
Ich bastel jetzt noch an den passenden Dateien für die Solarbank 4. Aber so könnt Ihr immerhin schon mal Werte aus dem Smartmeter 2 bekommen und das sogar ohne Cloud.
-
Okay, nochmal ein Update der TSV Datei , jetzt steht auch noch Modell SN und Softwarestand drin.
holdingRegisters.tsv -
Jetzt noch die Dateien für die Solarbank 4
Die Einstellung für Modbus erfolgt hier in der App über die System Seite(also da wo das Haus angezeigt wird), nicht an der Solarbank selbst. (da kommt aber auch ein Hinweis in der App das man über das System gehen muss)
Ihr müsst dann natürlich einen zweiten Modbus Adapter anlegen und die IP der Solarbank 4 eintragen.Dort gibt es nicht nur Holding Registers sondern auch Eingangsregister. Dementsprechend müssen 2 Dateien hochgeladen werden.
holdingRegisters_Solarbank4.tsv
inputRegisters_Solarbank4.tsvDanach sollten die Werte dann alle schön unter den Objekten auftauchen:

Die Parameter habe ich aus dem Offiziellen Anker HA Adapter ausgelesenGithub. Dort sind auch noch yaml configs für die Solarbank MAX, Solarbank MAX AC und Solix Smart Plug im Ordner "custom_components/anker_solix_official/config" Da ich allerdings nur die neue 4er habe, kann ich das nicht testen.
Damit bin ich erstmal raus, jetzt muss ich noch rausfinden wie ich den Smartmeter mit meiner OpenWB verheiratet bekomme.
Schönen Sonntag noch.
-
Super! Dummerweise habe ich zuletzt am Samstag im Forum gesucht und mich gestern selber damit rumgeschlagen🤣 Aber ich kann zumindest noch einen Link beitragen: Modbus Spezifikation von Anker. Da werde ich über die Zeit mal schauen, was man noch so gebrauchen kann. Mein Ziel ist, die Powerbank direkt aus dem iobroker zu steuern. Dann brauche ich nämlich erstmal das Smartmeter nicht installieren. Einen Lesekopf auf dem Zähler habe ich nämlich schon.
Bei mir ist es im übrigen eine Powerbank Max AC. Die Register scheinen etwas abzuweichen. Ich schau da nachher noch mal drauf und ergänze dann meine TSV für weiter Leser. -
Jetzt noch die Dateien für die Solarbank 4
Die Einstellung für Modbus erfolgt hier in der App über die System Seite(also da wo das Haus angezeigt wird), nicht an der Solarbank selbst. (da kommt aber auch ein Hinweis in der App das man über das System gehen muss)
Ihr müsst dann natürlich einen zweiten Modbus Adapter anlegen und die IP der Solarbank 4 eintragen.Dort gibt es nicht nur Holding Registers sondern auch Eingangsregister. Dementsprechend müssen 2 Dateien hochgeladen werden.
holdingRegisters_Solarbank4.tsv
inputRegisters_Solarbank4.tsvDanach sollten die Werte dann alle schön unter den Objekten auftauchen:

Die Parameter habe ich aus dem Offiziellen Anker HA Adapter ausgelesenGithub. Dort sind auch noch yaml configs für die Solarbank MAX, Solarbank MAX AC und Solix Smart Plug im Ordner "custom_components/anker_solix_official/config" Da ich allerdings nur die neue 4er habe, kann ich das nicht testen.
Damit bin ich erstmal raus, jetzt muss ich noch rausfinden wie ich den Smartmeter mit meiner OpenWB verheiratet bekomme.
Schönen Sonntag noch.
Ihr müsst dann natürlich einen zweiten Modbus Adapter anlegen und die IP der Solarbank 4 eintragen
Hallo mike,
nach meinen Erfahrungen müsste dafür auch eine Modbus-Instanz reichen. Ich habe ähnliches mit 2 Wechselrichter und die haben die Adresse 1 und 2 (DeviceID).
Bei euch wären die Eintragungen so:
Holding-Register:
_address deviceId name description unit type len factor offset formula role room poll wp cw isScale 100001 1 charging_limit_soc min80 max100 % uint16be 1 1 0 value true false false false 100002 1 discharge_limit_soc min0 max20 % uint16be 1 1 0 value true false false false 100003 1 backup_reserve_soc min0 max100 % uint16be 1 1 0 value true false false false 100004 1 backup_soc_enable 0=disabled 1=enabled uint16be 1 1 0 value true true false false 50065 1 operating_mode 0=self_consumption 1=tou_mode 3=third_party_control 4=custom_mode 5=socket_overlay 6=smart_mode 7=dynamic_pricing uint16be 1 1 0 value true true false falseEingangsregister:
_address deviceId name description unit type len factor offset formula role room cw isScale 40002 2 battery_status uint16be 1 1 0 level false false 40003 2 pv_power W int32be 2 1 0 level false false 40005 2 third_party_pv_power W int32be 2 1 0 level false false 40009 2 battery_charging_power negativ=laden -> per Formel positiv W int32be 2 1 0 x<0?Math.abs(x):0 level false false 40009 2 battery_discharging_power positiv=entladen W int32be 2 1 0 x>0?x:0 level false false 40011 2 load_power W int32be 2 1 0 level false false 40013 2 grid_import_power positiv=Import W int32be 2 1 0 x>0?x:0 level false false 40013 2 grid_export_power negativ=Export -> per Formel positiv W int32be 2 1 0 x<0?Math.abs(x):0 level false false 40015 2 battery_soc % uint16be 1 1 0 level false false 40019 2 pv_total_generation kWh uint32be 2 0.1 0 level false false 40037 2 max_charge_power W int32be 2 1 0 level false false 40039 2 max_discharge_power W int32be 2 1 0 level false false 40101 2 device_sn string 12 1 0 false false 40113 2 device_sw_version string 6 1 0 false false 40209 2 ac_grid_output_power positiv=Export, negativ=Import W int32be 2 1 0 level false false 40251 2 rated_energy kWh uint32be 2 0.1 0 level false false 40263 2 cumulative_charge_energy kWh uint32be 2 0.1 0 level false false 40265 2 cumulative_discharge_energy kWh uint32be 2 0.1 0 level false false 62769 2 device_model string 5 1 0 false false 62775 2 ems_mode_mask uint16be 1 1 0 level false falseDazu stellt man beim Adapter die Verbindung auf mehrere Geräte-IDs:

Das müsste funktionieren und verbraucht weniger Ressourcen als 2 Modbus-Instanzen.
Gruß, Fuzzy
-
Hallo @fuzzy1955,
ich vermute, in dem Fall geht das nicht, da Smartmeter und Powerbank unterschiedliche IP Adressen haben. Gruß Dominic -
Hallo @fuzzy1955,
ich vermute, in dem Fall geht das nicht, da Smartmeter und Powerbank unterschiedliche IP Adressen haben. Gruß Dominic@Dominic151617 ja korrekt, jedes Gerät hat ne eigene IP. Hab allerdings noch nicht ausprobiert ob die Solarbank wenn ich sie im "system" aktiviere, vielleicht auf ner zweiten ID die Daten vom Smartmeter mitschickt. Müsste ich mal testen.
-
Hallo @fuzzy1955,
ich vermute, in dem Fall geht das nicht, da Smartmeter und Powerbank unterschiedliche IP Adressen haben. Gruß Dominic -
@mzler, ich meine aktuell geht nur 4 Pro, AC Max und X1 per Modbus TCP. Also Zumindest an Speichern. Kann beim HA Adapter nachlesen: https://github.com/anker-charging/ha-anker-solix-official
-
@mikepiko
Ich habe aktuell einen neuen Anker Solix Adapter im Latest Repository.Ich würde mal
Prüfen ob es möglich wäre, die Modbus Berbindung dort mit zu integrieren. Es wäre ja sicher gut wenn es einen Adapter gäbe der alle Geräte und Verbindungen unterstützt.Ich habe jedoch keine Hardware um das irgendwie zu testen. Würdest du mich dabei als Tester unterstützen?
Ich würde mich dann melden wenn ich weiß ob das funktioniert und in wie weit ich noch Informationen benötige.
Hier der Beitrag zu meinem Adapter zur weiteren Diskussion für die Integration:
https://forum.iobroker.net/topic/85149/test-adapter-anker-solix-v0.10.86
Gruß Matthias
-
Ich habe meinen Adapter um die lokale Modbus Schnittstelle erweitern können. Ich brauche jedoch den einen oder anderen Tester.
Damit wäre Cloud API, Cloud MQTT und lokaler Modbus in einem Adapter vereint.
Ich würde gerne erst einmal im kleinen Kreis Testen bevor ich die Erweiterung ins latest hebe.
-
Hallo zusammen, bin neu hier...
Ich habe gestern meine Solarbank Max AC gekommen und via Modbus Teilweise ausgelesen. Die Anbindung funktioniert ohne Probleme.
Lesen geht einiges aber schreiben kann ich die für mich wichtigen der Netzleistungsbegrenzung-Register (10036 und 10038) leider nicht.
z.B. 60000_charging_limit_soc und 60001_discharge_limit_soc kann ich scheiben und werden ohne Probleme übernommen.
10036_max_charge_power kann ich lesen (Änderungen in der App werden im Register direkt angezeigt), aber nicht schreiben
und 10038_max_discharge_power zeigt mir immer 3500 an, egal was ich in der App einstelle.
Habe auch mal den Adapter vom Matthias v0.10.91 installiert und der hat auf Anhieb funktioniert, aber die Netzleistungsbegrenzung-Register finde ich dort auch nicht.mache ich da was falsch?
@matthiasulrich
kann gerne was testen.Gruß Dieter
-
@DieterBrenner hast du meinen Adapter schon installiert?
Wenn nicht schau mal hier:
https://forum.iobroker.net/topic/85149/test-adapter-anker-solix-v0.10.86Bitte von NPM installieren.
0.10.90 ist aktuell. -
Ja, ist aktuell

-
Hallo, funktioniert die Ansteuerung über Modbus TCP zuverlässig? Ich möchte den SPeicher per Modbus in ein anderes System einbinden (Loxone) aber es scheint im Internet kaum Erfahrungsberichte zur Einbindung per Modbus TCP zu geben.
@Gurki nach meiner Erfahrung funktioniert Modbus TCP recht robust. Die Werte vom Anker sind hin und wieder etwas merkwürdig zu interpretieren, aber wenn es läuft, läufts.
-
Hallo zusammen, bin neu hier...
Ich habe gestern meine Solarbank Max AC gekommen und via Modbus Teilweise ausgelesen. Die Anbindung funktioniert ohne Probleme.
Lesen geht einiges aber schreiben kann ich die für mich wichtigen der Netzleistungsbegrenzung-Register (10036 und 10038) leider nicht.
z.B. 60000_charging_limit_soc und 60001_discharge_limit_soc kann ich scheiben und werden ohne Probleme übernommen.
10036_max_charge_power kann ich lesen (Änderungen in der App werden im Register direkt angezeigt), aber nicht schreiben
und 10038_max_discharge_power zeigt mir immer 3500 an, egal was ich in der App einstelle.
Habe auch mal den Adapter vom Matthias v0.10.91 installiert und der hat auf Anhieb funktioniert, aber die Netzleistungsbegrenzung-Register finde ich dort auch nicht.mache ich da was falsch?
@matthiasulrich
kann gerne was testen.Gruß Dieter
@DieterBrenner Hier mal meine Eingangsregister:
_address name description unit type len factor offset formula role room cw isScale 10001 battery_status Batterie-Status uint16be 1 1 0 value enum.rooms.ControlRoom false false 10002 pv_power PV-Leistung W int32be 2 1 0 value enum.rooms.ControlRoom false false 10004 third_party_pv_power Externe PV-Leistung W int32be 2 1 0 value enum.rooms.ControlRoom false false 10008 battery_charging_power Batterie-Ladeleistung W int32be 2 1 0 x<0?Math.abs(x):0 value enum.rooms.ControlRoom false false 10008 battery_discharging_power Batterie-Entladeleistung W int32be 2 1 0 x>0?x:0 value enum.rooms.ControlRoom false false 10010 load_power Verbraucherleistung W int32be 2 1 0 value enum.rooms.ControlRoom false false 10012 grid_import_power Netz-Importleistung W int32be 2 1 0 x>0?x:0 value enum.rooms.ControlRoom false false 10012 grid_export_power Netz-Exportleistung W int32be 2 1 0 x<0?Math.abs(x):0 value enum.rooms.ControlRoom false false 10014 battery_soc State of Charge % uint16be 1 1 0 value enum.rooms.ControlRoom false false 10014 battery_soc State of Charge % uint16be 1 1 0 value enum.rooms.ControlRoom false false 10018 pv_total_generation Gesamt-PV-Generation kWh uint32be 2 10 0 value enum.rooms.ControlRoom false false 10036 max_charge_power Maximale Ladeleistung W int32be 2 1 0 value enum.rooms.ControlRoom false false 10038 max_discharge_power Maximale Entladeleistung W int32be 2 1 0 value enum.rooms.ControlRoom false false 10100 device_sn Seriennummer string 12 1 0 value enum.rooms.ControlRoom false false 10112 device_sw_version Software-Version string 6 1 0 value enum.rooms.ControlRoom false false 10208 ac_grid_output_power AC-Netz-Ausgangsleistung W int32be 2 1 0 value enum.rooms.ControlRoom false false 10250 rated_energy Nennkapazität kWh uint32be 2 0.1 0 value enum.rooms.ControlRoom false false 10262 cumulative_charge_energy Kumulierte Ladeenergie kWh uint32be 2 0.1 0 value enum.rooms.ControlRoom false false 10264 cumulative_discharge_energy Kumulierte Entladeenergie kWh uint32be 2 0.1 0 value enum.rooms.ControlRoom false false 32768 device_model Modellname string 5 1 0 value enum.rooms.ControlRoom false false 32774 ems_mode_mask EMS-Modus-Maske uint16be 1 1 0 value enum.rooms.ControlRoom false falseund meine Holding Register
_address name description unit type len factor offset formula role room poll wp cw isScale 10064 operating_mode Betriebsmodus (0=Self-Consumption, 1=TOU, 3=Third-Party, 4=Custom, 5=Socket Overlay, 6=Smart, 7=Dynamic Pricing) uint16be 1 1 0 value ControlRoom true false false false 10071 battery_power_setpoint Batterie-Leistungssollwert W int32be 2 1 0 value ControlRoom true false false false 60000 charging_limit_soc Ladegrenze (80–100%) % uint16be 1 1 0 value ControlRoom true false false false 60001 discharge_limit_soc Entladegrenze (0–20%) % uint16be 1 1 0 value ControlRoom true false false false 60002 backup_reserve_soc Backup-Reserve % uint16be 1 1 0 value ControlRoom true false false false 60003 backup_soc_enable Backup-SOC aktivieren (0=Deaktiviert, 1=Aktiviert) uint16be 1 1 0 value ControlRoom true false false falseMan muss 10064_operating_mode auf 3 stellen. Die Ladung bzw. Entnahme steuere ich über 10071_battery_power_setpoint. Etwas gewöhnungsbedürftig ist, dass sich das Vorzeichen nach dem Eintragen immer dreht. Man muss also z.b. die Auswertung, ob entnommen oder geladen wird, über 10008_battery_charging_power oder so vornehmen.
-
@dieterbrenner Du hast von GitHub installiert. Es ist besser von Npm zu installieren. GitHub ist ein Arbeitsstand. Diese Version enthält noch Fehler. Ich arbeite gerade an einem Vis Widget das funktioniert aber noch nicht gut und ist noch nicht sinnvoll nutzbar.
Daher bitte von NPM drüber bügeln um keine Probleme zu bekommen.Danke!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden