Ihr kommt noch eine Beschreibung...
Verbaute Komponenten:
Ich habe bei mir kein Einschaltstrombegrenzer eingesetzt, da mein Akku (US200C) einen Softstart (C = Softstart) eingebaut hat. Siehe auch hier (github). Ansonsten bräuchte man einen Begrenzer. Diskussion dazu auf github.
Anleitung(en) und Hilfe bekommt man auf den github Seiten des Projektes:
Übersicht:
Unterlagen / Dokumente:
Bildergalerie:
Programmeinstellungen openDTU
Firmware 2025.02.10 (github)
generic_esp32_4mb_no_ota
ESP32-D0WD-V3
Der Wert für den Stromzähler kommt von einem Smartmeter Lesekopf mit Tasmota. Alle Daten werden zusätzlich auch via MQTT an Home Assistant gesendet.
Wenn eine gemittelte/gefilterte Momentanleistung erwünscht ist und ihr mein Tasmota Script (z.B. das SML Script + PV) verwendet, dann könnt ihr auf die power2 Variable zurückgreifen:
Die gemittelte Leistung "power2" habe ich für meine zweite openDTU-onbattery Anlage (ohne Batterie, nur Nulleinspeisungsregelung) ins Script eingefügt. Dabei habe ich einen sehr einfachen Filter verwendet, der nur eine Codezeile benötigt.
power2=(0.9*power2)+((1-0.9)*power)
0.9 = Filterfaktor 0 - 0.99
power = Momentanleistung vom Stromzähler
power2 = gefilterte Momentanleistung
Filterfaktor = 0 : keine Filterung
Filterfaktor = 0.99 : extreme Filterung
Um diesen Wert als Stromzähler in openDTU-onBattery zu nutzen, gibst du einfach die URL dort ein:
HTTP(S) + JSON
http://192.168.178.31/cm?cmnd=script?power2
JSON Pfad = script/power2
Einheit = W
Siehe auch: https://github.com/hoylabs/OpenDTU-OnBattery/discussions/2109
Update
So sieht es aus, wenn die Leistung vom Stromzähler zu stark gefiltert wird. HM800-Schuppen Power = Wechselrichter, der von openDTU-onBattery DPL gesteuert wird. MT175 Stromzähler Leistung gemittelt wird an die openDTU DPL Regelung übermittelt (siehe oben). Ich habe mit dem Filterfaktor 0,9 gearbeitet und in der SML >M Sektion den Median Filter (16) aktiviert.

Greengho (Montag, 29 Juni 2026 19:14)
Vielen Dank für das tolles Skript! Zur Liste der funktionierenden Geräte können nun auch ein super günstiges hinzugefügt werden. Seit 14 Tagen nutze ich es mit dem Minjet Speicher. Der ist super billig zu bekommen. Hab es so geschafft zwei parallel zu betreiben. Die Shelly Emulation funktioniert einfach perfekt. Vielen vielen Dank
ottelo (Donnerstag, 30 Oktober 2025 09:08)
Achso … Du willst RS485 nutzen. Ja da habe ich den nun geschlossenen Issue bei GitHub verlinkt. Musst dich da mal schlau lesen:
https://github.com/hoylabs/OpenDTU-OnBattery/issues/710
Ich habe noch CAN bei mir.
ottelo (Donnerstag, 30 Oktober 2025 09:01)
@Parasound
Direkt auf dem 1. Bild ist die Einstellung zu sehen ;)
Parasound (Mittwoch, 29 Oktober 2025 22:38)
Hallo. Tolles Projekt. Mich würde es interessieren welche Einstellung du bei der Auswahl der Batterieschnittstelle du gewählt hast bei der Anbindung über RS485. Zur Auswahl steht ja nur Pylontech über CAN.
franc (Donnerstag, 28 August 2025 12:04)
Danke, danke, Ottelo, du bist echt fix :)
Ich hab grad mal noch ein Flash-Tool ausprobiert, den ESP-Flasher, der scheint auch recht einfach zu sein: https://github.com/Jason2866/ESP_Flasher/releases
Damit hab ich grad mal zum Testen die 4mb_no_ota_factory auf einen herumliegenden ESP32 gespielt, einen ESP32-D0WDQ6-V3. Der hat aber auch wieder nur 4 MB Flash. Überraschend, wie viele ESP32 nur 4 MB haben. Ich hab aber jetzt mal einen mit explizit 16 MB bestellt.
ottelo (Donnerstag, 28 August 2025 11:34)
Die factory beinhaltet auch den Bootloader und ich glaube die Partitionen…
franc (Donnerstag, 28 August 2025 08:39)
Also ich habe jetzt noch mal auf https://opendtu-onbattery.net/firmware/howto/upgrade_8mb/ gelesen, wie das ist, hoffentlich jetzt verstanden. Die 4mb_factory.bin passt auf einen 4MB ESP32 und beim Update darf man nicht den Flash vorher löschen, dann sollten alle Einstellungen erhalten bleiben. Ich dachte das "factory" würde alles überschreiben (so wie ein "Factory Reset").
Jetzt habe ich aber noch die 2024.06.03 drauf und schaue mir die erst mal eine Weile an.
ottelo (Donnerstag, 28 August 2025 08:37)
@franc
Korrekt!
https://github.com/hoylabs/OpenDTU-OnBattery/releases/download/2025.06.11/opendtu-onbattery-2025.06.11-generic_esp32_4mb_no_ota.factory.bin
Die haben nur das factory dafür angeboten, damit man nicht in Versuchung kommt, ein OTA zu machen :)
franc (Donnerstag, 28 August 2025 08:16)
Danke! Den Tasmota Web Flasher probiere ich aus, den kenne ich :)
Und dann nehme ich jedes Mal die opendtu-onbattery_<version>_generic_esp32_4mb_no_ota.factory.bin?
Also mit "factory"?
ottelo (Mittwoch, 27 August 2025 20:03)
@franc
Ja, genau so ist es. Du kannst zum Flashen aber auch den Tasmota Web Flasher verwenden ;) Klappt damit auch wunderbar.
franc (Mittwoch, 27 August 2025 17:28)
Kurze Frage, bin etwas irritiert: ich habe einen ESP32 mit 4MB Flash, kann ich da über PC (mit dem Python Skript) die aktuelle onBattery flashen? Also geht nur OTA nicht bei kleiner als 8MB Flash, aber die (Juni 2025) FW prinzipiell schon? Danke
ottelo (Mittwoch, 27 August 2025 14:07)
Hi Karsten,
Akku = CAN-Bus
Laderegler Victron = VE.direct
Man kann nun aber den Akku auch via RS485 anschließen und bekommt darüber viel mehr Daten als über CAN. https://github.com/hoylabs/OpenDTU-OnBattery/issues/710
Karsten (Mittwoch, 27 August 2025 13:32)
Hallo Ottelo,
klasse Projekt, hat mir viel Inspiration gegeben.
Eine Frage habe ich allerdings: Warum hast du per VE.direct und CAN angeschlossen? Bringt das irgendwelche Vorteile?
Eigentlich reicht es doch, wenn OpenDTU-onBattery die Daten des Akkus über CAN erhält, oder?!
der Karsten
ottelo (Mittwoch, 09 Juli 2025 16:43)
Hallo Mike.
"battery": {
"rx": 27,
"tx": 14
},
Mike (Mittwoch, 09 Juli 2025 12:20)
Super Umsetzung, was mich interessieren würde, ist wie das pin_mapping.json aussieht für die Battery Pins 27 und 14
ottelo (Sonntag, 30 März 2025 13:03)
Mhhh gute Frage. Hier hat jemand aber deine Konstellation aufgebaut:
https://github.com/hoylabs/OpenDTU-OnBattery/discussions/1130
franc (Freitag, 28 März 2025 10:50)
Hallo und Morgen, ich hab jetzt eine paar Monate mit vier 500 W Modulen kräftig eingespeist und merke langsam, dass mir ja viel flöten geht an Strom. Daher hab ich mir mal OpenDTU-OnBattery angeschaut, das könnte ja die Lösung sein. Ich hab derzeit eine Marstek 2500D Batterie und noch eine zweite bestellt.
Mein Ziel ist, dass ich möglichst immer (bis max 800 Watt natürlich nur) so viel einspeise, wie ich gerade brauche, also mit Hilfe der Batterien (Sonne ist ja nicht immer 800 Watt vorhanden).
Ich würde also die PV nur an die Batterien, diese mit maximaler Leistung (800 W) an den HMS 1800 anschließen und den dann immer nur möglichst so viel einspeisen lassen, wie ich tatsächlich brauche, also wie ihm mein Smartmeter (ESP32 mit der Tasmota SmartMeter FW) über MQTT sagt. Wenn ich 800 Watt in den HMS schicke, den aber nur 100 Watt einspeisen lasse, sind die übrigen 700 Watt ja nicht verloren.
Geht das überhaupt oder hab ich da einen Denk/Erkenntnisfehler?
Unklar ist mir vor allem, wie ich verbrauchsgemäß einspeise, so lange die Batterien geladen werden. Während des Ladens speist die Marstek ja nicht ein (gibt nur "Charge and then discharge" oder "Pass through"). Im Moment hab ich daher zwei Module an der Batterie und zwei Module am HMS. Da bräuchte ich eine etwas intelligentere Ladeweiche (vor die Batterie geschaltet), die nur so viel für die Batterie abzweigt, wie nicht benötigt wird.
Ist das nicht ein recht gewöhnliches Setting, das ich da habe, das ist doch sicher längst gelöst?
Omega13 (Donnerstag, 07 November 2024 07:29)
Moin @all
Wer von Schwarmwissen profitieren möchte sollte sich auch das hier "https://discord.gg/WzhxEY62mB" mal anschauen.
Das ist ein Gemeinschaftsprojekt von Ahoy-DTU und openDTU.
ottelo (Donnerstag, 12 September 2024 23:06)
Die openDTU-onbattery Steuerung muss schon in der Nähe der PV Anlage und der Batterie sein. Zwei openDTUs an einem WR braucht man nicht, die Daten kann man sich ja so einem kleinen Display senden lassen. Zb Home Assistant aufm Raspberry Pi oder was anderes smartes.
WF (Mittwoch, 11 September 2024 09:41)
Hallo,
danke für die Mühen, die Du hier auf dich nimmst.
Gut der Hinweis zu Can-Bus und Ve.direkt. Das bedeutet aber auch, dass das alles dicht beieinander ist. Da muss ich mein Konzept wohl umwerfen. Ich wollte die DTU mit Display in der Wohnung haben, so wie jetzt meine Ahoy-DTU. Mehrere DTU am Hoymiles sollen nicht gut funktionieren.
Gruß
ottelo (Dienstag, 10 September 2024 13:39)
@WF
Ich habe oben mal ein paar Links für ebay und Kleinanzeigen hinzugefügt. Bei Kleinanzeigen kannst du dir mal die Platinen von Lukas anschauen. Eine ältere Version davon habe ich, mit ESP32 4MB leider. Seine neuen Boards sind für den ESP32-S3 8/16 MB und sind zukunftssicher! Bei eBay bin ich mir gerade nicht sicher, ob die angebotenen Boards inkl. Gehäuse auch einen CAN-Bus und VE.direct Anschluss haben. Beide sind notwendig für den Laderegler und Pylontech Batterie.
WF (Dienstag, 10 September 2024 11:59)
Hallo,
vielen Dank für die Rückmeldung und die vielen Links.
Dank der Links ist mir nun schon Vieles klarer.
Ich werde auch den Pylontech-Akku (C = Softstart) nehmen. Damit ist dann die Strombegrenzung geklärt.
Mit der "open-dtu-on-battery" tappe ich noch im Dunkeln.
Verwendest Du das "Fusion-Board" (https://opendtu-onbattery.net/3rd_party/opendtu_fusion/)? Wahrscheinlich aber nicht, denn
in der Stückliste hast Du die Komponenten einzeln aufgezählt.
Bei den Angeboten "open-dtu-on-battery" im Netz bin ich etwas verunsichert, was sich dahinter verbirgt. Haben alle die benötigten Schnittstellen? Der Link in deiner Stückliste funktioniert leider nicht mehr.
Aus Erfahrung mit der Ahoy-DTU weiß ich aber, dass ich für das Wlan und für den nRF24L01P eine Antenne brauche. Gibt es dafür eine Lösung?
Danke und Gruß
ottelo (Montag, 09 September 2024 12:03)
Bzgl. deiner Frage zur Einschaltstrombegrenzung. Hier gibt es eine Diskussion: https://github.com/helgeerbe/OpenDTU-OnBattery/discussions/528
Aber ich nutze den Pylontech Akku US2000C mit Softstart (C = Softstart).:
https://github.com/helgeerbe/OpenDTU-OnBattery/discussions/738
ottelo (Montag, 09 September 2024 11:40)
Hi WF, sorry hatte dir vergessen zu antworten.
Deine Fragen werden besser auf folgenden Seiten beantwortet "https://github.com/helgeerbe/OpenDTU-OnBattery/discussions", "https://github.com/helgeerbe/OpenDTU-OnBattery/wiki" bzw. "https://github.com/helgeerbe/OpenDTU-OnBattery/wiki/Wie-man-nach-L%C3%B6sungen-sucht%2C-Fragen-stellt%2C-Probleme-meldet".
Du brauchst für opendtu-onbattery zwingend ein neues Board mit ESP32 8MB Flash (oder mehr). Weil der ESP32 zum Auslesen deines Zählers läuft ja mit Tasmota. openDTU ist was ganz anderes! Was du genau brauchst findest du hier "https://github.com/helgeerbe/OpenDTU-OnBattery/wiki/ESP32-Versions-and-Memory". Bei ebay / Kleinanzeigen bieten welche fertige Boards an. Einfach nach opendtu onbattery suchen. Das sind die Leute, die da auch bei github im Diskussionsbereich aktiv sind.
VE.direct = Verbindung zum Victron Laderegler und CAN-Bus = Verbindung zu einem Akku, der CAN-Bus kann. Da kann man aber auch was anderes verwenden.
WF (Samstag, 07 September 2024 19:43)
Hallo,
noch eine Frage.
Brauche ich für die open-dtu-on-battery das spezielle Board oder geht das auch mit dem ESP32 zum Zähler auslesen?
Danke und Gruß
WF (Samstag, 07 September 2024 19:30)
Hallo,
noch eine Frage.
Benötigt man die Leitungen VE.direct und CAN-Bus unbedingt?
Danke und Gruß
WF (Samstag, 07 September 2024 18:05)
Hallo,
schöne techn. Lösung und ein schönes Projekt. Genau das was ich suche. Ich habe aber auch Fragen. Mein Kenntnisstand ist nicht so doll.
Ich habe momentan 4 x 420 W auf der Garage liegen und einen Hoymiles HM-1500 dazu.
Das müsste doch auch mit 2 x MPPT-Laderegler (je 2 x 420W in Reihe) zur Batterieeinspeisung gehen, oder? 2 Stck. wegen unterschiedlicher Beschattung der Module.
Dann alle 4 Eingänge des HM-1500 mit dem Akku verbinden, so wie bei Dir. geht das?
An anderer Stelle habe ich gelesen (Solarmodule Gladbeck), dass vor dem Wechselrichter unbedingt eine Einschaltstrombegrenzung rein muss.
Du Hast keine eingebaut. hast Du dazu eine Quelle, dass man darauf verzichten kann. Ich habe etwas Angst das mir die ganze Bude abbrennt.
Für eine Antwort wäre ich Dir sehr Dankbar.
Gruß und weiterhin so tolle Ideen.