NEWS
Heidelberg Wallbox via Modbus
-
Hallo,
nachdem ich die ersten Gehversuche mit einem Temp-Sensor durch das Forum erfolgreich durchlaufen habe, habe ich mich jetzt an den Modbus der neuen Wallbox von Heidelberg gewagt. Soweit so gut. Es fehlen mir nur noch zwei writeHoldingRegister (06) mit den Adressen 258 & 259 , die der iobroker modbus einfach nicht mag - alles andere klappt super! Ich habe die, wie die readHoldingRegister (03) - Beispiel Adresse 261 unter "Holdingregister" hinterlegt. Ehrlich gesagt, pick ich auch nicht den Unterschied zwischen 03 & 06 - sorry! Vielleicht kann mir hier jemand helfen? Wie folgt: Modbus Registertabelle: ModBus_register_table.pdf
Eintragungen unter iobroker/modbus:und so sieht das Log aus (Level: silly):
modbus.0 2021-02-27 20:31:22.851 silly (16410) States user redis pmessage modbus.0.*/modbus.0.info.connection:{"val":false,"ack":true,"ts":1614454282846,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1614454281839} modbus.0 2021-02-27 20:31:22.844 debug (16410) Cleaning up request fifo. modbus.0 2021-02-27 20:31:22.843 debug (16410) Clearing timeout of the current request. modbus.0 2021-02-27 20:31:22.838 info (16410) Disconnected from slave modbus.0 2021-02-27 20:31:21.843 silly (16410) States user redis pmessage modbus.0.*/modbus.0.info.connection:{"val":false,"ack":true,"ts":1614454281839,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1614454281839} modbus.0 2021-02-27 20:31:21.835 warn (16410) Poll error count: 1 code: {"err":"timeout","timeout":5000} modbus.0 2021-02-27 20:31:21.831 error (16410) Request timed out. modbus.0 2021-02-27 20:31:21.829 warn (16410) Error: undefined modbus.0 2021-02-27 20:31:16.846 error (16410) unknown function code: 131 modbus.0 2021-02-27 20:31:16.834 silly (16410) States user redis pmessage modbus.0.*/modbus.0.inputRegisters.200_Support:{"val":32,"ack":true,"ts":1614454276831,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1614450 modbus.0 2021-02-27 20:31:16.826 debug (16410) Poll holdingRegs DevID(1) address 261 - 3 bytes modbus.0 2021-02-27 20:31:16.817 silly (16410) States user redis pmessage modbus.0.*/modbus.0.inputRegisters.101_Hardware_configuration minimal current:{"val":6,"ack":true,"ts":1614454276808,"q":0,"from":"system.adapter.modbus.0","user":"s modbus.0 2021-02-27 20:31:16.812 silly (16410) States user redis pmessage modbus.0.*/modbus.0.inputRegisters.100_Hardware_configuration maximal current:{"val":16,"ack":true,"ts":1614454276807,"q":0,"from":"system.adapter.modbus.0","user":" modbus.0 2021-02-27 20:31:16.802 debug (16410) Poll inputRegs DevID(1) address 200 - 1 bytes modbus.0 2021-02-27 20:31:16.793 silly (16410) States user redis pmessage modbus.0.*/modbus.0.inputRegisters.14_Power_Summe_VA:{"val":0,"ack":true,"ts":1614454276767,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":16 modbus.0 2021-02-27 20:31:16.791 silly (16410) States user redis pmessage modbus.0.*/modbus.0.inputRegisters.12_Voltage_L3 - N rms in Volt:{"val":8,"ack":true,"ts":1614454276767,"q":0,"from":"system.adapter.modbus.0","user":"system.user.ad modbus.0 2021-02-27 20:31:16.790 silly (16410) States user redis pmessage modbus.0.*/modbus.0.inputRegisters.11_Voltage_L2 - N rms in Volt:{"val":9,"ack":true,"ts":1614454276766,"q":0,"from":"system.adapter.modbus.0","user":"system.user.ad modbus.0 2021-02-27 20:31:16.789 silly (16410) States user redis pmessage modbus.0.*/modbus.0.inputRegisters.10_Voltage_L1 - N rms in Volt:{"val":236,"ack":true,"ts":1614454276766,"q":0,"from":"system.adapter.modbus.0","user":"system.user. modbus.0 2021-02-27 20:31:16.787 silly (16410) States user redis pmessage modbus.0.*/modbus.0.inputRegisters.9_Temperatur_PCB:{"val":187,"ack":true,"ts":1614454276766,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1 modbus.0 2021-02-27 20:31:16.778 silly (16410) States user redis pmessage modbus.0.*/modbus.0.inputRegisters.8_L3_- Current RMS:{"val":0,"ack":true,"ts":1614454276765,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1 modbus.0 2021-02-27 20:31:16.777 silly (16410) States user redis pmessage modbus.0.*/modbus.0.inputRegisters.7_L2_- Current RMS:{"val":0,"ack":true,"ts":1614454276765,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1 modbus.0 2021-02-27 20:31:16.775 silly (16410) States user redis pmessage modbus.0.*/modbus.0.inputRegisters.6_L1_- Current RMS:{"val":0,"ack":true,"ts":1614454276765,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1 modbus.0 2021-02-27 20:31:16.774 silly (16410) States user redis pmessage modbus.0.*/modbus.0.inputRegisters.5_Charging_State:{"val":10,"ack":true,"ts":1614454276764,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":16 modbus.0 2021-02-27 20:31:16.772 silly (16410) States user redis pmessage modbus.0.*/modbus.0.inputRegisters.4_Modbus_Register Version:{"val":263,"ack":true,"ts":1614454276764,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admi modbus.0 2021-02-27 20:31:16.758 debug (16410) Poll inputRegs DevID(1) address 100 - 2 bytes modbus.0 2021-02-27 20:31:16.740 silly
Vielen Dank schon mal
Grüße
Till -
Wie es scheint, muss ich ein SingleWrite Register ausführen. Unter Windows (Modpull) konnte ich erfolgreich den folgenden Request absetzen:
01 06 01 02 00 04 28 35
Wie setze ich so etwas in iobroker / der modbus-Instanz um?
Viele Grüße
Till -
Ich habe zwei Instanzen angelegt, eine modbus instanz zum Lesen der Inputregister, und eine zum Schreiben der Holding Register. Bei der zweiten in den allgemeinen Einstellungen die Anzahl der Register Leseoperationen auf 1 gesetzt.
Nun muss nur noch die Sonne scheinen, damit ich die Ladeleistung von der PV Anlage ableite...
Ich nutze mbusd auf einem RaspiZero als Gateway von RS485 auf TCP.
Du hast da auch das Setting für nicht mehrere Register schreiben verwenden im allgemeinen Teil..
Weißt Du wozu das Register 262 FailSafeCurrent dient ?
cuMichael
-
Moin!
Könntest du vielleicht deine Einstellungen als Screenshot hier posten? Das wäre mega
Die FailSafeCurrent dient dazu, wenn die Wallbox keine Verbindung zum Modbus hat, mit welchem Ladestrom sie dein Auto laden soll - so als "Absicherung".
Wenn ich hier dieses Rätsel gelöst habe, ist auch der nächste Schritt die Überschuss-Ladung in Blockly umzusetzenViele Grüße
Till -
@fatboyt sagte in Heidelberg Wallbox via Modbus:
ist auch der nächste Schritt die Überschuss-Ladung in Blockly umzusetzen
da bin ich mal auf deine Lösung gespannt.
Bei mir sieht es ganz brauchbar aus:
ab etwa 12:20; Ladestromkurve rechts in grün; Gesamtsromverbrauch (grün mit rotem Rand) und Produktion (gelb) links im ChartAllerdings mit einem go-e charger und dem dazugehörigen Adapter und einem Kostal Piko, der über http ausgelesen wird
-
Ja MEGA !!!! ist mir persönlich zu bunt, aber Respekt für alles - bis man alles zusammen und abgestimmt hat, vergeht ne Menge Zeit. bei mir noch (und auch zukünftig) sehr minimalistisch mittels JARVIS. ich kämpfe hier gerade mit dem Ultraschallsensor und Bewegungsmelder, damit der Bildschirm im Flur bei Anwesenheit auch angeht....
Grüße
Till -
@fatboyt sagte in Heidelberg Wallbox via Modbus:
ist mir persönlich zu bunt
hör ich immer wieder
Ich selber kann allerdings über Farben die Dinge (hier Werte) wesentlich schneller zuordnen.
Ist nicht jedermanns Sache, aber auf einer monochromen Seite finde ich mich nicht so schnell zurecht.Das Status Bild mit den Daten für die Zoe ist auch nur ein PopUp
-
@fatboyt Ich überleg gerade welche Wallbox ich nehmen soll. Eine Möglichkeit ist die Heidelberg.
Frage : kannst Du der Wallbox per Modbus sagen:
jetzt laden, stoppen, beenden ?
Oder macht das das Auto dann automatisch ohne die Möglichkeit per Software dies zu steuern ? -
@gargano
Ja, man ändert dazu den Ladestrom: 0A für Stop/Beenden, sonst einen Wert ungleich Null.
In Abhängigkeit von der PV-Leistung kann man dann z.B. den Strom entsprechend einstellen.Ganz einfach geht es mit wbec (https://github.com/steff393/wbec). Das kümmert sich um den Modbus und stellt alle Register per HTTP-Aufruf zur Verfügung.