Heidelberg Wallbox über Modbus mit einem RaspberryPi verbinden

Im Folgenden ist Einrichtung einer Steuerung einer Heidelberg Wallbox per Modbus aus EVCC beschrieben.
Physikalische Verkabelung
- Ein Drahtpäarchen aus einem schon verlegten CAT6 Netzwerkkabel
- An der Heidelberg Wallbox auf die entsprechenden Klemmen A (blau) und B (weiss) angeschlossen und den Schirm der Leitung an der vorgesehenen Stelle mit dem Gehäuse verbunden:
- Das andere Ende des Netzwerkkabels an einen Modbus2USB Adapter anschließen und einen 120 Ohm Widerstand (ich hatte nur 100 Ohm) parallel schalten:
- Am Raspberry PI den USB-Stick anschließen
- Verwendet wird ein Wingoneer USB-485 “USB to RS 485” Stick BTE17-07
Test auf der Kommandozeile
- Mit
modbus_cli
kann die Installation auf einfache Weise getestet werden - Installation:
pip3 install modbus_cli
- Der Aufruf liest das Input-Register 4 aus (Serielle Einstellungen 19200 8E1 lt. Anleitung Heidelberg):
modbus -b 19200 -p 1 -P e -B be /dev/ttyUSB0 i@4
(hier das richtige USB-Serial-Device auswählen)- Der Aufruf liefert in meinem Fall
0x108
, was Version 1.0.8 der Firmware entspricht
- Der Aufruf liefert in meinem Fall
UDev Regeln für einen stabilen Device Symlink
- In
/etc/udev/rules.d/99-usb-serial.rules
eine Zeile ergänzen:SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="ttyUSB_WB"
(die IDs erhält man perlsusb
). - Mit
udevadm control --reload-rules && udevadm trigger
die Regeln neu laden und prüfen ob der Symlink erstellt wurde.
EVCC installieren
- Installation wie unter Debian, Ubuntu, Raspberry Pi | evcc - Sonne tanken ☀️🚘 beschrieben.
- Config anlegen
evcc configure
- Sponsortoken erstellen: Sponsorship | evcc - Sonne tanken ☀️🚘
- TODO: Finale Config dokumentieren
- TODO: Laden hat nicht gestartet wenn Auto schläft → wiederholbar?
Sonstiges
Die Verwendung von mbusd
um den Modbus per TCP weiterzuleiten schlug bei mir fehl. Trotzdem hier das Vorgehen zur Dokumentation
mbusd
Siehe GitHub - 3cky/mbusd: Open-source Modbus TCP to Modbus RTU (RS-232/485) gateway.
Installation
git clone https://github.com/3cky/mbusd.git
$ cd mbusd
$ mkdir -p build && cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
$ make
$ sudo make install
Konfiguration
nano /usr/local/etc/mbusd/mbusd-ttyUSB_WB.conf
# Serial port device name
device = /dev/ttyUSB_WB
# Serial port speed
speed = 19200
# Serial port mode
mode = 8e1
systemctl start mbusd@ttyUSB_WB.service