Hoymiles DTU und Solaranzeige - Eine Frage der Verbindung

Moderatoren: Ulrich, TeamO

Antworten
gzi
Beiträge: 9
Registriert: Mo 16. Jan 2023, 20:43
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Hoymiles DTU und Solaranzeige - Eine Frage der Verbindung

Beitrag von gzi »

Hallo Leute,
die Hoymiles DTU Pro kann über ein RS485 Kabel mit einem Stromzähler verbunden werden, um eine Nulleinspeisung zu realisieren. Deshalb muss man die DTU in der Nähe vom Stromzähler positionieren, wenn man kein langes Kabel verlegen will. Um die DTU Pro wiederum mit der Solaranzeige zu verbinden, muss man die Ethernet-Schnittstelle der DTU Pro benutzen. Da ich auch keinen Ethernet-Anschluss in der Nähe des Stromzählers habe, habe ich folgende Lösung entwickelt.

Vielleicht will das ja jemand nachbauen.
Architektur
Architektur
Die Solaranzeige ist damit im WLAN erreichbar. (Geplant habe ich auch mein Daly BMS per WLAN mit der Solaranzeige zu verbinden)

WLAN einrichten
Via Putty

Code: Alles auswählen

sudo Raspi-config
Prüfen ob WLAN Verbindung besteht:

Code: Alles auswählen

ifconfig
IP für wlan0 notieren
10.0.0.23
Falls es eine WLAN Verbindung gibt,
• Ethernet abstecken und
• Raspi mit DTU via Ethernet-Kabel verbinden.

Ethernet Subnetz am Raspi einrichten
Planung

Code: Alles auswählen

Hoymiles          Solaranzeige.local             Internet
   DTU <---------> (eth1)Raspi(wlan0) <---------> ROUTER <--> │ INTERNET │
     \   Ethernet    /          \       WLAN     /       wan  │          │
   (by dhcp)        /            \              /
              192.168.2.1     10.0.0.23    10.0.0.139
                (static)      (by dhcp)


Statische IP-Adresse an Ethernet-Schnittstelle vergeben
Der DHCP Client ist am Raspi bereits installiert.

Code: Alles auswählen

sudo nano /etc/dhcpd.conf
Folgende Zeilen in dhcpd.conf einfügen:

Code: Alles auswählen

interface eth0
inform 192.168.2.1
noipv6
Nach Reboot mit

Code: Alles auswählen

sudo reboot
Überprüfen ob es funktioniert:

Code: Alles auswählen

ifconfig

Die IP-Adresse 192.168.2.1 wurde bei eth0 eingetragen.

DHCP Server für das Ethernet Subnetz installieren

Siehe https://raspberrytips.com/dhcp-server-on-raspberry-pi/ . DNSmasq Server installieren.

Code: Alles auswählen

sudo apt install dnsmasq
Die an Clients an der Ethernet-Schnittstelle zu vergebenden IP-Adressen festlegen.

Code: Alles auswählen

sudo nano /etc/dnsmasq.conf


Dort eintragen:

Code: Alles auswählen

interface=eth0
bind-dynamic
domain-needed
bogus-priv
dhcp-range=192.168.2.3,192.168.2.10,255.255.255.0,12h
Die Hoymiles DTU mit einem Ethernet-Kabel mit dem Raspi verbinden, Service neu starten und Ergebnis prüfen:

Code: Alles auswählen

pi@solaranzeige:~ $ sudo service dnsmasq restart
pi@solaranzeige:~ $ cat /var/lib/misc/dnsmasq.leases
1674602563 48:4d:82:24:38:68 192.168.2.10 DTUP-10F882243868 *
Die DTU hat also eine IP-Adresse 192.168.2.10 von unserem DHCP-Server bekommen. Aber ein Ping auf die DTU funktioniert noch nicht, weil Anfragen auf das Ethernet Subnetz nicht dorthin gelangen, Standardmäßig wird alles zum WLAN-Router geleitet:

Code: Alles auswählen

pi@solaranzeige:~ $ ip route list
default via 10.0.0.138 dev wlan0 proto dhcp src 10.0.0.23 metric 303
10.0.0.0/24 dev wlan0 proto dhcp scope link src 10.0.0.23 metric 303
Wir müssen daher eine extra Route in der IP Table eintragen:

Code: Alles auswählen

sudo nano /etc/dhcpcd.exit-hook
Diese Zeile eintragen:

Code: Alles auswählen

ip route add 192.168.2.0/24 via 192.168.2.1 dev eth0
Nach Reboot;

Code: Alles auswählen

pi@solaranzeige:~ $ ip route list
default via 10.0.0.138 dev wlan0 proto dhcp src 10.0.0.23 metric 303
10.0.0.0/24 dev wlan0 proto dhcp scope link src 10.0.0.23 metric 303
192.168.2.0/24 via 192.168.2.1 dev eth0
Nun funktioniert auch Ping vom Raspi zur DTU:

Code: Alles auswählen

pi@solaranzeige:~ $ ping 192.168.2.10
PING 192.168.2.10 (192.168.2.10) 56(84) bytes of data.
64 bytes from 192.168.2.10: icmp_seq=1 ttl=255 time=0.610 ms
64 bytes from 192.168.2.10: icmp_seq=2 ttl=255 time=0.374 ms
64 bytes from 192.168.2.10: icmp_seq=3 ttl=255 time=0.367 ms
--- 192.168.2.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 57ms

Antworten