MPP-Solar und MrPow Wechselrichter mit ioBroker auslesen

Zunächst benötigen wir einen Raspberry Pi der mittels USB zu RS 232 Schnittstelle die Daten erfassen kann. das nötige Kabel findet man hier: https://amzn.to/46Ix1a4

Raspberry Pi mit aktuellem OS installieren, ins Netzwerk bringen, SSH und VNC Verbindung einrichten usw.
(Wie das alles funktioniert, erkläre ich hier nicht, dafür gibt es schon genug Anleitungen)

Auf dem Raspberry Pi einloggen und ein neues Verzeichnis anlegen und das Programm solpiplog herunterladen: https://github.com/njfaria/SolPipLog/releases

mkdir sol
cd sol
wget https://github.com/njfaria/SolPipLog/releases/download/3.2.1.20230701/solpiplog321_arm.zip
unzip solpiplog321_arm.zip
bash setup.sh

USB Setup

Man kann es sich jetzt leicht machen, und einfach die USB Schnittstelle in solpiplog auswählen.
Das hat aber den Nachteil, dass wenn man den Pi neu startet oder die USB Stecker einmal anders einsteckt als sie jetzt stecken, das ganze Setup nicht mehr funktioniert, weil die USB Ports eventuell neu zugewiesen werden.

Deshalb setzen wir mittels UDEV die USB Ports auf einen bestimmten Wert. Normalerweise kann man diesen Wert sprechend wählen, wie zB /dev/ttyUSB-Wechselrichter. Allerdings kann die aktuelle Version von solpiplog nur mit USB Nummern umgehen, also /dev/ttyUSB5. Das ist nicht schön, macht aber nichts.

USB-Seriennummer des Steckers herausfinden

Im ersten Anlauf alle USB Geräte ziehen und nur den seriellen Stecker einstecken. Danach taucht ein USB Device auf.
Das kann man mit tail -f /var/log/syslog auch sehen.

ls -lha /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 27. Okt 00:54 /dev/ttyUSB0

Danach schauen wir uns das Gerät mal an:

udevadm info --query=all --name=/dev/ttyUSB0
# oder
udevadm info -a -p  $(udevadm info -q path -n /dev/ttyUSB0) 
bla bla
E: ID_PATH=platform-3f990000.usb-usb-0:1.4.4:1.0
E: ID_PATH_TAG=platform-3f990000_usb-usb-0_1_4_4_1_0
E: ID_BUS=usb
E: ID_MODEL=FT232R_USB_UART
E: ID_MODEL_ENC=FT232R\x20USB\x20UART
E: ID_MODEL_ID=6010
E: ID_SERIAL=FTDI_FT232R_USB_UART_A10MYA232
E: ID_SERIAL_SHORT=A10MYA232
E: ID_VENDOR=FTDI
E: ID_VENDOR_ENC=FTDI
E: ID_VENDOR_ID=0404
E: ID_REVISION=0600
bla bla

Das ganze Blabla der Ausgabe vor und nach diesem Block interessiert uns im Moment nicht. Interessant ist nur die ID_SERIAL_SHORT und eventuell die ID_VENDOR_ID=0404.
Dann bauen wir mal eine Regel:

sudo nano /etc/udev/rules.d/99_hg_usb_rules.rules

In der Datei werden die oben erfassten Zahlen wie folgt eingetragen:

SUBSYSTEM=="tty", ATTRS{idVendor}=="0404", ATTRS{serial}=="A10MYA232", SYMLINK+="Wechselrichter"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0404", ATTRS{serial}=="A10MYA232", SYMLINK+="ttyUSB5"

Wie man sieht, kann man den Geräten sowohl sprechende als auch technische Namen geben. Eigentlich ist nur der zweite Eintrag wichtig, aber für’s debugging in einem Jahr hilft einem der andere Eintrag.

Danach udev-Regeln neu laden (hat bei mir leider hin und wieder nicht funktioniert) oder einfach reboot

sudo udevadm control --reload-rules; sudo udevadm trigger

Damit ist der USB-Setup erledigt und wir können uns der Konfiguration von solpiplog widmen – und den findest Du auf diversen anderen Seiten besser beschrieben als hier.

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert