NEWS
Heidelberg Wallbox Energy Control per Modbus verbunden?
-
@herr_kuschel
Ist keiner bereit? -
@herr_kuschel Steht bei mir nächstes WE auf dem Plan, versuche mich im Modbus-Netz mit Zwischenstromzählern und der Heidelberg EC Europa an einem Modbus über W-Lan. Die Europa-Box sollte gleich der EC sein. Wenn ich was zum "klingeln" gebracht habe poste ich alles, ich hoffe mal das der Modbus-Adapter Einstellungssicherungen dafür bereithält. Die Registereintragungen scheinen hier eher das Problem zu sein wo keiner so recht durchsteigt.
Also etwas Geduld - ich denke hier werden noch mehr dieses Problem bekommen und ohne den teuren "Sunnyboy" was stricken zu wollen, wenn Iobroker schon da ist. Es gibt eine recht gute Beschreibung von Matthias Kleine (haus-automatisierung.com) auf Youtube wo aber leider die falsche Box dahinter ist, aber man kann sich ja lang hangeln und seine Filme sind echt sehenswert. Mein Elektriker hat schon abgewunken wo er nur BUS gehört hat (Corona bedingt sind alle Weiterbildungen ausgefallen). Also selber forschen... Teile sind alle bestellt... kann also losgehen. -
@herr_kuschel so geschafft, mal wieder was zum knaubeln gehabt (-; :
Hardware:
- Zweirichtungszähler (60A) mit Modbus Schnittstelle. Ich habe den Eastron SDM72D-M für knapp 60 Euro gekauft.
- Modbus TCP/IP Master WIFI (230V) von Hösi (kam auch um die 60 Euro)
- FI Schalter, Sicherungen usw. für eine kleine Unterverteilung
- Die Heidelberg EC-Wallbox
- Cat6 Kabel (bitte nehmt kein Ysti)
Über das Verkabeln von Zähler, Fi-Schalter und Sicherungen lasse ich mich nicht aus, das sollte bekannt sein. Bitte darauf achten, dass der Cat6-Schirm einen geerdeten Nullleiter bekommt und nur an einer Seite des RS485-Buses verklemmt wird. Der Zwischenzähler und die Wallbox haben einen Anschluss dafür. Bitte messt auch, ob ihr die 120 Ohm am Anfang und am Ende eurer Busverkabelung messen könnt. Hier gibt es leider keine richtige Handhabe, das muss man echt messen und versuchen.
Software, eine laufende Instanz von IOBrocker.Modbus (Version 3.4.14)
mit folgenden Einstellungen kommen die Werte vom Zwischenzähler (ID3) und von der Heidelberg Wallbox EC (ID2):Im Modbus-Adapter auf TCP..., die IP Nummer eintragen, und bei Gerätetyp auf Master. Nur den Haken bei "Aliases benutzen" setzen,
dann zum Reiter Eingangsregister wechseln
auf den "Kopf" drücken und danach auf die "Pfeile" und die Daten einfügen:
_address deviceId name description unit type len factor offset formula role room cw isScale 30005 2 Modbus Register-Layouts Version Modbus Register-Layouts Version uint16be 1 1 0 value true false 30006 2 charging state charging state uint16be 1 1 0 value true false 30007 2 L1 - Current RMS L1 - Current RMS uint16be 1 1 0 value true false 30008 2 L2 - Current RMS L2 - Current RMS uint16be 1 1 0 value true false 30009 2 L3 - Current RMS L3 - Current RMS uint16be 1 1 0 value true false 30010 2 PCB-Temperatur PCB-Temperatur °C int16be 1 0,1 0 value true false 30011 2 Voltage L1 - N rms in Volt Voltage L1 - N rms in Volt V uint16be 1 1 0 value true false 30012 2 Voltage L2 - N rms in Volt Voltage L2 - N rms in Volt V uint16be 1 1 0 value true false 30013 2 Voltage L3 - N rms in Volt Voltage L3 - N rms in Volt V uint16be 1 1 0 value true false 30014 2 extern lock state extern lock state uint16be 1 1 0 value true false 30015 2 Power (L1+L2+L3) in VA Power (L1+L2+L3) in VA VA uint16be 1 1 0 value true false 30016 2 Energy since PowerOn Energy since PowerOn uint16be 1 1 0 value true false 30017 2 Energy since PowerOn Energy since PowerOn uint16be 1 1 0 value true false 30018 2 Energy since Installation Energy since Installation uint16be 1 1 0 value true false 30019 2 Energy since Installation Energy since Installation uint16be 1 1 0 value true false 30101 2 Hardware configuration maximal current Hardware configuration maximal current A uint16be 1 1 0 value true false 30102 2 Hardware configuration minimal current Hardware configuration minimal current A uint16be 1 1 0 value true false 30201 2 Hardware-Variant Hardware-Variant uint16be 1 1 0 value true false 30204 2 Application Software svn-revNo Application Software svn-revNo uint16be 1 1 0 value true false 30001 3 Phase 1 line neutral volts Phase 1 line neutral volts V floatbe 2 1 0 state true false 30003 3 Phase 2 line neutral volts Phase 2 line neutral volts V floatbe 2 1 0 state true false 30005 3 Phase 3 line neutral volts Phase 3 line neutral volts V floatbe 2 1 0 state true false 30007 3 Phase 1 current Phase 1 current A floatbe 2 1 0 state true false 30009 3 Phase 2 current Phase 2 current A floatbe 2 1 0 state true false 30011 3 Phase 3 current Phase 3 current A floatbe 2 1 0 state true false 30013 3 Phase 1 activ power Phase 1 activ power W floatbe 2 1 0 state true false 30015 3 Phase 2 activ power Phase 2 activ power W floatbe 2 1 0 state true false 30017 3 Phase 3 activ power Phase 3 activ power W floatbe 2 1 0 state true false 30019 3 Phase 1 apparent power Phase 1 apparent power VA floatbe 2 1 0 state true false 30021 3 Phase 2 apparent power Phase 2 apparent power VA floatbe 2 1 0 state true false 30023 3 Phase 3 apparent power Phase 3 apparent power VA floatbe 2 1 0 state true false 30025 3 Phase 1 reactiv power Phase 1 reactiv power VAr floatbe 2 1 0 state true false 30027 3 Phase 2 reactiv power Phase 2 reactiv power VAr floatbe 2 1 0 state true false 30029 3 Phase 3 reactiv power Phase 3 reactiv power VAr floatbe 2 1 0 state true false 30031 3 Phase 1 power factor (1) Phase 1 power factor (1) floatbe 2 1 0 state true false 30033 3 Phase 2 power factor (1) Phase 2 power factor (1) floatbe 2 1 0 state true false 30035 3 Phase 3 power factor (1) Phase 3 power factor (1) floatbe 2 1 0 state true false 30043 3 Average line to neutral volts Average line to neutral volts V floatbe 2 1 0 state true false 30047 3 Averange line current Averange line current A floatbe 2 1 0 state true false 30049 3 Sum of line currents Sum of line currents A floatbe 2 1 0 state true false 30053 3 Total system power Total system power W floatbe 2 1 0 state true false 30057 3 Total system volt amps Total system volt amps VA floatbe 2 1 0 state true false 30061 3 Total system VAr Total system VAr VAr floatbe 2 1 0 state true false 30063 3 Total systems power factor (1) Total systems power factor (1) floatbe 2 1 0 state true false 30071 3 Frequency of supply voltages Total systems power factor (1) Hz floatbe 2 1 0 state true false 30073 3 Import active energy Import active energy kWh floatbe 2 1 0 state true false 30075 3 Export active energy Export active energy kWh floatbe 2 1 0 state true false 30201 3 Line 1 to Line 2 volts Line 1 to Line 2 volts V floatbe 2 1 0 state true false 30203 3 Line 2 to Line 3 volts Line 2 to Line 3 volts V floatbe 2 1 0 state true false 30205 3 Line 3 to Line 1 volts Line 3 to Line 1 volts V floatbe 2 1 0 state true false 30207 3 Average line to line volts Average line to line volts V floatbe 2 1 0 state true false 30225 3 Neutral current Neutral current A floatbe 2 1 0 state true false 30343 3 Total active Energy (2) Total active Energy (2) kWh floatbe 2 1 0 state true false 30345 3 Total reactive energy Total reactive energy kVArh floatbe 2 1 0 state true false 30385 3 resettable total active energy resettable total active energy kWh floatbe 2 1 0 state true false 30389 3 resettable import active energy resettable import active energy kWh floatbe 2 1 0 state true false 30391 3 resettable export active energy resettable export active energy kWh floatbe 2 1 0 state true false 30397 3 Net kWh (Import - Export) Net kWh (Import - Export) kWh floatbe 2 1 0 state true false 31281 3 Total import active power Total import active power W floatbe 2 1 0 state true false 31283 3 Total export active power Total export active power W floatbe 2 1 0 state true false
Solltet ihr andere Geräte-ID's verwenden, diese dann bitte anpassen!
Inhalt für das Holdingregister:
wieder wie oben, auf den "Kopf" klicken und dann auf die "Pfeile":
_address deviceId name description unit type len factor offset formula role room poll wp cw isScale 40258 2 ModBus-Master WatchDog Timeout in ms ModBus-Master WatchDog Timeout in ms uint16be 1 1 15000 value true false false false 40259 2 Standby FunktionControl Standby FunktionControl uint16be 1 1 4 value false false true false 40260 2 Remote Look Remote Look uint16be 1 1 1 value true false false false 40262 2 Maximal current command Maximal current command uint16be 1 1 60 value true false true false 40263 2 FailSafe Current configuration FailSafe Current configuration uint16be 1 1 60 value true false false false
Wie oben auch ändert die Geräte ID's nach euren Einstellungen!
So, jetzt wird es etwas kompliziert: Die Box geht nach etwa 5 Minuten in den Standbye, wenn kein Fahrzeug dran steckt: Im Standbye meldet sich die Box ab und der Modbus-Adapter schaut etwa jede Minute nach, ob sich was tut und überträgt Daten vom Zwischenzähler. Werte von der Box kommen nur, wenn ihr diese frisch mit Strom versorgt oder ein Fahrzeug dran ist.
Da ich noch keine PV-Überschuss-Ladung machen kann, sollte der Wert bei Maximal Current Command eingetragen werden.
So, ich hoffe, dass ihr etwas schneller als ich zum Erfolg kommt!
Beste Grüße aus Zwickau! -
@newpaint2
Das sieht sehr gut aus. Ich habe auch einen Eaton installiert. Von diesem hole ich mir die Daten per Modbus (über den Elfin-ee11) in den Iobroker.
Es hängt nur die WB an dem Zähler.Nun werde ich mich daran wagen, die WB an den Elfin-ee11 anzuklemmen....
Danke für deine Unterstützung
-
Ganz einfach geht das auch mit wbec für bis zu 16 Wallboxen:
https://github.com/steff393/wbec -
@newpaint2
Hallo,
Vielen Dank für deinen Post hier. Ich habe es mit mehreren Modus USB Sticks in der Vergangenheit versucht und nie eine Kommunikation erreicht. Mit dem RS485/TCP Converter von Hösi hat es dann einwandfrei und einfach funktioniert.
Nur die Holdingregister habe ich bei etwas anders konfiguriert, damit diese schreibar waren.
Ich habe aktuell 2 Heidelberg Wallboxen angeschlossen und die Kommunikation funktioniert.
Die Überschussladung konnte ich ebenso mit einem Blockly Script realisieren.
Zur Ermittlung des Überschuss habe ich separat einen Shelly 3EM im Einsatz. -
@martin12 Hallo Martin, kannst du die veränderten Registereinstellungen hier mit reinstellen, Damit bleiben vielleicht Andere auch aktuell. Wenn du das PV-Script noch dazu packst wäre das für später super. Wenn es dir geholfen hat freue ich mich sehr etwas zurückgeben zu können.
-
@newpaint2
Im Holdingregister habe ich die Haken bei CW weggelassen. Die Werte wurden sonst sofort wieder auf 0 gesetzt.
Das Script muss ich zuerst noch bei Sonnenschein testen, die letzten Tage war dazu noch keine Gelgenheit -
@herr_kuschel sagte in Heidelberg Wallbox Energy Control per Modbus verbunden?:
Deshalb, die Frage, wer hat schon installiert und würde seine Erfahrungen hier posten, damit auch Anfänger wie ich, eine Installation bewerkstelligen können.....
Einen Artikel über meine erfolgreiche Inbetriebnahme von
"PV-Überschussladen mit Wallbox Heidelberg Energy Control über Modbus, ioBroker und Blockly"
ist hier zu finden:
https://forum.iobroker.net/topic/51751/heidelberg-energy-control-pv-laden-modbus-blockly -
@martin12 @NewPaint2
Danke erst mal für die Register-Copy-Paste-Vorlagen! Das hat die Einrichtung stark vereinfacht.Bei meinen zwei Wallboxen trat das Problem auf, dass sobald die Wallbox mit Modbus ID 1 in den Standby ging die Wallbox mit ID2 zwar noch regelmäßig ihre Daten in den Input Registern aktualisiert hat, ich aber keine Werte in den Holding Registern (z.B. Maximal Current) schreiben konnte.
Abhilfe waren zwei einzelne Modbus-Instanzen eine nur für ID1, die andere nur für ID2.
Ob das mit allen Modbus-Adaptern geht kann ich nicht sagen, mit meinem Waveshare RS485 to ETH (B) (äußerlich baugleich zu dem HöSi-Adapter) ging es auf jeden Fall.
Ob es nötig ist diesen mit dem VirCOM Programm auf "Device Client & Slave mode" zu stellen kann ich nach dem ganzen hin und herstellen nicht definitiv sagen, so klappt es auf jeden Fall.Einzig störend ist es jetzt noch, dass im Standby der IOBroker Modbus-Adapter das Log vollpustet wegen "Request timed out" und nach 13 Fehlversuchen jedesmal neustartet.
Außerdem unschön ist, dass das Logging der Werte in die InfluxDB trotz Standby mit den alten Werten weiterläuft...Wer hierzu Lösungen hat: Immer her damit!
So tendiere ich eher dazu das Ganze über kurz oder lang mit einem Python-Skript zu lösen.
Ja, ich weiß, der Unterschied im Stromverbrauch zwischen "Standby" und "Normal" ist nicht sooo groß, aber nur weil die Programmierung es nicht hergibt? Da siegt der Ehrgeiz... -
@hefo
Ich kann den Fehler leider nicht nachvollziehen, ich habe nur eine Box dran. Ich habe mir auch nur behelfen können die Box mit dem "Hösi" direkt anzusteuern. Wie ich schon oben beschrieben hatte wenn der Standby anspringt wirft der Bus Fehler. Bei meiner Steuerung mit Durchlauferhitzer habe ich einen zweiten RS485-TTL-ESP32 mit einer eigenen Instanz wegen der örtlichen Entfernung zum Zähler benutzen müssen, also arbeite ich auch mit 2 Modbus-Adaptern. Das Standby in der Box ist recht nervig weil dann echt der Bus zum stehen kommt. Gut bei 5Watt... naja schön ist das nicht, aber so richtig eine Lösung habe ich im Moment auch nicht auf Lager, ich laß die Box in den Standby springen. Tut mir leid, ich denke Heidelberg läßt die Boxen mit ihren Corntroler einfach nicht ins Standby rutschen, wenn der Controler von ihnen dran ist und mehr als eine Box installiert ist. -
@martin12
Hey danke für Deine Infos! Mal ne (doofe?) Frage: Warum sind die Registernummern um 1 Erhöht? In der WallBox-Doku steht z.B. Max. Current mit "261" bei Euch ist es 262 ?!Ich tüxel mich gerade in das Thema Modbus usw. rein und hab noch nicht den Überblick und sauge alles auf was ich finde. Also das hat doch bestimmt einen Grund, oder?
VG Rötty
-
@roetty Weil der Adapter die Nummern im "Alias-Modus immer Registernummer+1" will. machst du den Alias-Modus aus, kommen die "echten" Registernummern. Leider kannst das nur probieren, manche Hersteller haben die Registeradressierung schon mit der addierten "1", Heidelberg leider nicht.
-
@hefo ich habe auch den Waveshare Adapter bekomme allerdings keine Verbindung zur Wallbox ist es möglich einmal die Konfiguration von dem Adapter zu zeigen?
-
@interimo Bei mir sieht es im Web-Frontend so aus:
Da ich gelesen hatte, dass über das Web-Frontend nicht alle Parameter zur Verfügung stehen, habe ich es dann mit VirCom auch nochmal eingestellt:
Ob die Einstellungen so 100% "richtig" sind weiß ich nicht, es funktioniert so auf jeden Fall ohne Probleme oder Ausfälle.
Gruß
Hefo