Replies: 1 comment
-
Von meiner Seite hier tausend Dank für diese geniale Lösung. Besser gehts nun wirklich nicht. E3DC summiert korrekt auf, evcc.io übernimmt die volle Logik. Tausend Dank!!! an @docolli |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Da das E3DC Hauskraftwerk mehrere Wallboxen nur anhand der IP-Adressen unterscheiden kann und stets den Port 502 nimmt, ist es eine Herausforderung zwei Wallboxen so anzubinden, dass beide über den modbusproxy im readonly Modus angesprochen werden. Der modbusproxy von evcc ist notwendig, damit das HKW nur noch lesend die Werte der Wallboxen ermitteln kann und sich ansonsten nicht in die Ladung durch evcc einmischt.
Die Lösung ist, dass das System, auf dem evcc läuft (ich gehe hier von einer direkten Installation auf einem Linux aus) zwei zusätzliche IP-Adressen auf der Netzwerk-Schnittstelle anbietet und mit Hilfe von iptables für eine dieser zwei Adressen der Port 502 auf den Port 1502 der IP des Systems umgebogen (NAT) wird. Dann den modbusproxy für Port 502 bzw. 1502 entsprechend einrichten.
Im folgenden verwende ich zur Erklärung diese IP-Adressen. Bitte für sein eigenes Netzwerk passende, freie Adressen selber festlegen und verwenden:
Diese müssen fix bleiben, also entweder im DCHP fixieren, oder in den Wallboxen manuell setzen.
Desweiteren benötigen wir noch folgende IP-Adressen, ich nehme als Beispiel zwei aus dem .50er Bereich:
Zunächst müssen wir dem Linux System beibringen, dass es neben der 192.168.1.100 auf seiner Schnittstelle auch auf die Adressen 192.168.1.50 und 192.168.1.51 reagieren soll.
Meine Anleitung bezieht sich übrigens auf das aktuelle Debian 12 (bookworm). Für andere Systeme muss eventuell anders vorgegangen werden.
Ein Backup des System, das man einfach wieder herstellen kann, ist ebenfalls kein Fehler bevor man loslegt. 😎 Es kann sein, dass das System durch kleine Fehler per SSH nicht mehr im Zugriff ist, also bitte, wenn möglich, direkt am System mit Tastatur und Monitor arbeiten.
Zuerst ergänzen wir die zwei IP-Adressen für den modbusproxy über die später das E3DC HKW auf die Wallboxen zugreifen soll. Meine Schnittstelle heißt
ens3
, also müssen bei mir die folgenden Einträgeens3:0
bzw.ens3:1
lauten. Bitte fürs eigene System entsprechend anpassen. Mit dem Editor der Wahl (ich nehme joe) die Datei/etc/network/interfaces
ergänzen:Wenn noch nicht vorhanden folgende Pakete installieren
sudo apt install iptables iptables-persistent
.Dann iptables konfigurieren:
Wir akzeptieren jeden OUTPUT und INPUT für die Ports 22 (ssh), 7070 (evcc-web), 1883 (MQTT) und wichtig (!) INPUT für Port 502 und 1502.
Dann kommt die Magie, welche Anfragen auf 192.168.1.51:502 umleitet auf die IP des Linux Systems 192.168.1.100 Port 1502.
Nun kann man in der evcc.yaml den modbusproxy folgendermaßen konfigurieren:
Anfragen an die 192.168.1.50:502 gehen damit gefiltert (readonly) an die 192.168.1.40:502 raus (und zurück).
Anfragen an die 192.168.1.51:502 werden auf den Port 1502 umleitet und gehen damit gefiltert (readonly) an die 192.168.1.41:502 raus (und zurück).
Zuletzt noch (nicht vergessen!) die iptables Regeln sichern:
Die aktuell gültigen iptables Regeln kann man sich übrigens mit folgenden Befehlen ansehen.
Zu guter Letzt geht man ans E3DC HKW und löscht dort die Wallboxen. Dann wieder eine Easy Connect verbinden, dabei die IP 192.168.1.50 verwenden (nicht auf Suchen drücken !!!). Etwas warten und dann oben links auf "Wallbox" drücken, die Wallbox sollte auftauchen. Man sieht dann auch in der Titelzeile die Seriennummer und kann prüfen ob die richtige gefunden wurde.
Die zweite Wallbox ebenfalls manuell verbinden, diesmal als IP die 192.168.1.51 eingeben.
Großer Dank an @0x3d13f für den Hinweis mit iptables!!!
Beta Was this translation helpful? Give feedback.
All reactions