Einbindung eines LP via Modbus/TCP

ruffieuxh
Beiträge: 145
Registriert: So Jul 07, 2019 9:02 am

Einbindung eines LP via Modbus/TCP

Beitrag von ruffieuxh »

Hallo zusammen,

OpenWB Series 1
installierte Version: 1.9.224

Kürzlich hat einer meiner Mieter, nach langer Bearbeitung :mrgreen: , ebenfalls ein EA gekauft! :D Ich habe ihm versprochen, das die Ladeinfrastruktur bei mir nie das Problem sein wird. Nun muss ich natürlich liefern! :o

Eigentlich wollte ich dazu voerst mal meine alte WB aus dem Jahre 2014 einsetzen und diese via einen Sonoff/Tasmota Schalter als Smarthome Gerät in die OpenWB integrieren.
wbtogo.png
Zu meinem grossen Erstaunen hat der eingebaute Phoenix Contact Charge Controller (siehe Beilage) aber bereits einen Netzwerkanschluss und eingebauten Webserver, sowie eine Modbus/TCP Schnittstelle! Es ist mir bereits gelungen, die WB mit Webhooks anzusteuern (Ladung ein/aus und die Stromstärke der Ladung zu setzen).
Bildschirmfoto vom 2021-05-01 15-57-35.png
Nun wäre es natürlich schön, wenn ich diesen sogar als Modbus (?) Ladepunkt in der OpenWB definieren könnte. Leider kenne ich aber Modbus GAR NICHT....
Die Anleitung sagt im Kapitel 9 dazu folgendes:
Sie können über Modbus auf die Register des Gerätes zugreifen. Das Gerät arbeitet als
Modbus-Slave mit der Adresse 180. Es wartet am Port 502 auf eingehende Modbus/TCP-
Anfragen.

Modbus ermöglicht vier Registerarten, die wie folgt benutzt werden.

Modbus-Registerart Wert Zugriff
Input 16 Bit Lesen
Discrete 1 Bit Lesen
Holding 16 Bit Lesen / Schreiben
Coils 1 Bit Lesen / Schreiben
Könnte mir jemand helfen, falls überhaupt möglich, das Gerät als Ladepunkt in der OpenWB zu definieren?
Wegen der Distanz (Carport über die Strasse) möchte das direkt via IP Netzwerk machen. Der Modbus Ladepunkt scheint aber eine serielle Schnittstelle zu verlangen oder aber einen TCP/RS485 Adapter, was im vorliegenden Fall ja nicht nötig ist.

Vielen herzlichen Dank

Heinz
Dateianhänge
um_de_ev_charge_control_104924_de_02.pdf
(1.46 MiB) 213-mal heruntergeladen
Zuletzt geändert von ruffieuxh am So Mai 02, 2021 3:15 pm, insgesamt 1-mal geändert.
Gero
Beiträge: 2368
Registriert: Sa Feb 20, 2021 9:55 am

Re: Einbindung eines LP via Modbus/TCP

Beitrag von Gero »

Die Wallbes direkt anzusteuern klappt mangels support seitens Wallbe nicht. Siehe viewtopic.php?f=5&t=247

Da werden auch andere Lösungsansätze diskutiert.
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
ruffieuxh
Beiträge: 145
Registriert: So Jul 07, 2019 9:02 am

Re: Einbindung eines LP via Modbus/TCP

Beitrag von ruffieuxh »

Gero hat geschrieben: So Mai 02, 2021 9:26 am Die Wallbes direkt anzusteuern klappt mangels support seitens Wallbe nicht. Siehe viewtopic.php?f=5&t=247

Da werden auch andere Lösungsansätze diskutiert.
Danke für den Hinweis. Die Frage in diesem Post war aber eine andere. Es wurde nach einem selbst konfigurierbaren Modul gefragt.

Ohne Modbus zu kennen: Es gibt ja in der openWB einen konfigurierbaren, generischen Modbus Ladepunkt. Meine Frage war mehr, wie ich den konfigurieren muss, für Modbus/TCP. Wozu dient diese Möglichkeit den sonst, als einen solchen Controller anzusteuern?
aiole
Beiträge: 6779
Registriert: Mo Okt 08, 2018 4:51 pm

Re: Einbindung eines LP via Modbus/TCP

Beitrag von aiole »

ruffieuxh hat geschrieben: So Mai 02, 2021 3:21 pm Ohne Modbus zu kennen: Es gibt ja in der openWB einen konfigurierbaren, generischen Modbus Ladepunkt. Meine Frage war mehr, wie ich den konfigurieren muss, für Modbus/TCP. Wozu dient diese Möglichkeit den sonst, als einen solchen Controller anzusteuern?
ModbusEVSE - Der ist für RS485 angebundene Ladecontroller (Modbus/RTU) und geht nicht für Deinen LC.
JSAnyone
Beiträge: 291
Registriert: Fr Jun 05, 2020 5:56 pm

Re: Einbindung eines LP via Modbus/TCP

Beitrag von JSAnyone »

Ich denke das müsstest du über den HTTP oder MQTT Ladepunkt machen, mit einem zwischengeschalteten System (z.B NodeRed), dass die HTTP/MQTT Befehle der OpenWB per Modbus an die Wallbox weitergibt und andersrum.
Dateianhänge
61E0F7BC-A665-4AA0-9B9B-7AB78531ACBB.png
ruffieuxh
Beiträge: 145
Registriert: So Jul 07, 2019 9:02 am

Re: Einbindung eines LP via Modbus/TCP

Beitrag von ruffieuxh »

aiole hat geschrieben: So Mai 02, 2021 4:20 pm
ruffieuxh hat geschrieben: So Mai 02, 2021 3:21 pm Ohne Modbus zu kennen: Es gibt ja in der openWB einen konfigurierbaren, generischen Modbus Ladepunkt. Meine Frage war mehr, wie ich den konfigurieren muss, für Modbus/TCP. Wozu dient diese Möglichkeit den sonst, als einen solchen Controller anzusteuern?
ModbusEVSE - Der ist für RS485 angebundene Ladecontroller (Modbus/RTU) und geht nicht für Deinen LC.
Ja, das dachte ich zunächst auch. Was mich aber zur Frage bewogen hat, ist der folgende Eintrag in der LP Konfiguration:
Bildschirmfoto vom 2021-05-02 19-01-41.png
Wenn ich die IP Adresse eines Konvertes angeben kann, brauche ich auf der openWB ja auch keinen seriellen Anschluss. Mit einem Konverter würde ich ja auch Modbus/TCP verwenden, somit müsste das doch auch direkt gehen....oder stehe ich total auf dem Schlauch....:-)
LutzB
Beiträge: 3479
Registriert: Di Feb 25, 2020 9:23 am

Re: Einbindung eines LP via Modbus/TCP

Beitrag von LutzB »

Dafür müsstest Du aber auch noch die ganzen Register inklusive Verarbeitung angeben können. Das ist für ein allgemeines Modul etwas zu komplex.
Das derzeitige Modul erwartet eine EVSE mit den bekannten Registern.
ruffieuxh
Beiträge: 145
Registriert: So Jul 07, 2019 9:02 am

Re: Einbindung eines LP via Modbus/TCP

Beitrag von ruffieuxh »

JSAnyone hat geschrieben: So Mai 02, 2021 4:32 pm Ich denke das müsstest du über den HTTP oder MQTT Ladepunkt machen, mit einem zwischengeschalteten System (z.B NodeRed), dass die HTTP/MQTT Befehle der OpenWB per Modbus an die Wallbox weitergibt und andersrum.
Ui....neue Herausforderung. Keine Ahnung von diesem Tool, aber ich versuche es mal! :-)

Danke.
ruffieuxh
Beiträge: 145
Registriert: So Jul 07, 2019 9:02 am

Re: Einbindung eines LP via Modbus/TCP

Beitrag von ruffieuxh »

ruffieuxh hat geschrieben: So Mai 02, 2021 6:19 pm
JSAnyone hat geschrieben: So Mai 02, 2021 4:32 pm Ich denke das müsstest du über den HTTP oder MQTT Ladepunkt machen, mit einem zwischengeschalteten System (z.B NodeRed), dass die HTTP/MQTT Befehle der OpenWB per Modbus an die Wallbox weitergibt und andersrum.
Ui....neue Herausforderung. Keine Ahnung von diesem Tool, aber ich versuche es mal! :-)

Danke.
So, ich habe nun meine Wall-be WB via MQTT und Node-Red integriert und der Ladeprozess funktioniert grundsätzlich. Super Sache! Macht Freude!
Bei folgenden Punkten wäre ich aber froh um Hilfe:
  • Im Modus Min+PV wird immer nur mit dem Minimalstrom geladen, auch wenn genügend Überschuss vorhanden wäre. Im Modus PV beginnt die Ladung nie. Wenn ich aber die Vorgabe via MQTT Explorer auf dem LP2 manuell ändere, funktioniert der ganze Prozess bis zur WB und der Ladestrom wird erhöht. Auch die Anzeige des Vorgabestroms in der openWB ändert sich entsprechen.
    Aus irgendeinem Grund scheint die open WB Stromvorgabe nicht zu funktionieren, wenn das Auto am LP2 angeschlossen ist.
    Interessanterweise, wird die Nachtladung aber mit der voreingestellten Stromstärke korrekt durchgeführt.
  • Ich errechne in Node-Red jeweils die Ladeleistung aus Spannung und Strom und schicke die resultierende Ladeleistung an openWB/lp/2/W zurück. Diese wird angezeigt, aber erscheint dann im Graphen als Hausverbrauch. Die Ladeleistung im Graphen bleibt immer 0. Wie bringe ich openWB dazu, die Ladeleistung korrekt anzuzeigen?
  • Die Spannung openWB/lp/2/VPhase1 scheint nur sporadisch vorzuliegen (ev. bei Änderungen). Deshalb wird dann auch nur sporadisch die Ladeleistung errechnet und angezeigt. Dazu verwende ich eine Node-Red Funktion. Gibt es eine Cachingmöglichkeit? So, dass ich den letzten Spannungswert an der Funktion immer zur Verfügung habe? Siehe Programmierung unten.
Bildschirmfoto vom 2021-05-13 20-23-30.png

Funktion zur Ladeleistungserrechnung:

Code: Alles auswählen

context.data = context.data || new Object();

switch (msg.topic) {
    case "Ladestrom":
        context.data.Ladestrom = msg.payload;
        if (context.data.Ladestrom < 6){
            context.data.Ladestrom = 0;
        } 
        msg = null;
        break;
    case "openWB/lp/1/VPhase1":
        context.data.VPhase1 = msg.payload; //-15 wegen Spannungsverlust
        msg = null;
        break;
    case "AutoAngeschlossen":
        context.data.AutoAngeschlossen = msg.payload;
        if (context.data.AutoAngeschlossen > 65){
            context.data.AutoAngeschlossen = 1;
        } else {
            context.data.AutoAngeschlossen = 0;
        }
        msg = null;
        break;
    case "LadeVorgangStatus":
        context.data.LadevorgangStatus = msg.payload[0];
        if (context.data.LadevorgangStatus = true) {
            context.data.LadeVorgangStatus = 1;
        }else {
            context.data.LadeVorgangStatus = 0;
        }
        msg = null;
        break;
    default:
        msg = null;
    	break;

}
Ladeleistung = new Object();
if(context.data.Ladestrom != null && context.data.VPhase1 != null && context.data.AutoAngeschlossen != null) {
	Ladeleistung.payload = context.data.Ladestrom*context.data.VPhase1*context.data.AutoAngeschlossen*context.data.LadeVorgangStatus;
    context.data=null;
} else 
    Ladeleistung.payload = 0;
return Ladeleistung;
Besten Dank für Eure Hilfe

Schöne Grüsse

Heinz
Zuletzt geändert von ruffieuxh am Do Mai 13, 2021 7:09 pm, insgesamt 2-mal geändert.
LutzB
Beiträge: 3479
Registriert: Di Feb 25, 2020 9:23 am

Re: Einbindung eines LP via Modbus/TCP

Beitrag von LutzB »

Sieh nochmal genau nach, in welches Topic die Ladeleistung geschrieben werden muss. Steht in der Modulkonfiguration beim MQTT Modul.
Antworten