Heidelberg Wallbox über Modbus mit einem RaspberryPi verbinden

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: Image
  • Das andere Ende des Netzwerkkabels an einen Modbus2USB Adapter anschließen und einen 120 Ohm Widerstand (ich hatte nur 100 Ohm) parallel schalten: Image
  • 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
  • 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 per lsusb).
  • Mit udevadm control --reload-rules && udevadm trigger die Regeln neu laden und prüfen ob der Symlink erstellt wurde.

EVCC installieren

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