Kommunikation mit KEBA Wallbox

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
Haki
Beiträge: 3
Registriert: 06.09.2017, 18:57
Wohnort: Berlin

Kommunikation mit KEBA Wallbox

Beitrag von Haki » 06.09.2017, 20:22

Hallo,
ich bin dabei meine KEBA Wallbox in die Heimautomatisierung zu integrieren. Die Wallbox hat ein UDP Interface http://www.keba.com/web/downloads/e-mob ... ide_en.pdf .

Habe bisher schon sehr gute Beiträge im Forum gefunden und dadurch die Steuerung in Abhängigkeit von der solaren Überschussleistung erfolgreich realisiert. Ich verwende dazu CuXD und das CUX2801001:1 Gerät mit einem socat Aufruf.

Als Beispiel schalte ich die Wallbox frei mit 'ena 1' und gebe den Sollstrom z.B. 12A mit 'curr 12000' aus.

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("echo 'ena 1' | /usr/local/addons/cuxd/extra/socat UDP:KEBA Adresse:Port -");
	var Ladesollstrom = I_soll.ToString(I_soll);
    string KebaUdpCommand = "curr "+Ladesollstrom;
    
    !Shell Script Kommando mit Soll Ladestrom, SOCAT Aufruf und UDP Zieladresse zusammenstellen
    string KebaCommand = "echo '"+KebaUdpCommand+"' | /usr/local/addons/cuxd/extra/socat UDP:KEBA Adresse:Port -";
 
    dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(KebaCommand); !UDP Kommando ausführen
Soweit sogut. Aber mit meinen beschränkten Linux und socat Kenntnissen komme ich mitlerweile an meine Grenzen.
Ich möchte jetzt noch UDP Antworten der KEBA Wallbox wieder einlesen (z.B. zum Archivieren der Ladeleistungen)

Wenn ich das Kommando 'report 100' mit einem UDP Tool absetze kann ich folgende Antwort der Wallbox mitschneiden:

Code: Alles auswählen

\n"ID": "100",\n"Session ID": 20,\n"Curr HW": 32000,\n"E start": 972748,\n"E pres": 89323,\n"started[s]": 1504254542,\n"ended[s]": 1504346193,\n"started": "2017-09-01 08:29:02.000",\n"ended": "2017-09-02 09:56:33.000",\n"reason": 1,\n"RFID tag": "0000000000000000",\n"RFID class": "00000000000000000000",\n"Serial": "17551406",\n"Sec": 2749767\n
Es ist mir aber bis jetzt noch nicht gelungen über Putty mit der Konsole eine Antwort der Wallbox aufzufangen.
Habe diverse socat Options rauf und runter versucht und die man page aufgesaugt. :cry:

Hat vielleicht einer von euch einen Tipp für mich?

Gruß Haki

Haki
Beiträge: 3
Registriert: 06.09.2017, 18:57
Wohnort: Berlin

Re: Kommunikation mit KEBA Wallbox

Beitrag von Haki » 16.09.2017, 18:11

Hallo @Linux-Cracks,

kann mir denn keiner einen Tipp geben, wie ich eine UDP Antwort in meine CCU bekomme?

Gruß Haki

LeoPix
Beiträge: 2
Registriert: 31.10.2017, 13:11

Re: Kommunikation mit KEBA Wallbox

Beitrag von LeoPix » 31.10.2017, 13:44

Hallo,

ich bin durch Zufall auf deine Anfrage gestoßen und habe mich extra registriert, um dir eine Antwort zu geben. Da die Frage schon sechs Wochen alt ist komme ich hoffentlich nicht zu spät. Ich habe ein ähnliches Projekt laufen. 1. wird bei mir der Ladestrom, Zeitpunkt und Zeitdauer der Wallbox abhängig vom selbst produzierten Überschuss-Strom gesteuert. Zweitens werden die Daten im Hintergrund mitgeschrieben, um statistische Auswertungen machen zu können. Ich habe die Anwendung zuerst in C++ geschrieben, bin dann draufgekommen, dass sie nicht ausreichend Plattform unabhängig ist. Ich habe mich daher entschlossen, die Anwendung in Java neu zu schreiben. Ursprünglich wollte ich dazu mein Android-Handy verwenden. Android läuft ja unterJava. Leider musste ich feststellen, dass Google ziemlich schlampig arbeitet. Das Runtime Environmint wurde neu geschrieben und ist fehlerhaft. Ich habe zwei Tage herumgetan, bis ich die Ursache fand. Sie ist unter https://github.com/ConnectSDK/Connect-S ... issues/357 schon von anderer Seite beschrieben worden.

Wenn du noch Interesse hast, dann kopiere ich dir das "Herzstück" des Java-Scripts hier herein. Voraussetzung für die Umsetzung ist, dass du auf deinem PC das JRE (Java Runtime Environment) oder das JDK (Java Development Kit) installierst. Weiters schlage ich vor, zu Anpassung meines Scripts z.B. die Java Entwicklungsumgebung Eclipse zu installieren. Und nicht zuletzt: Die Wallbox (Server) muss im selben Netzwerk laufen wie der abfragende PC (Client). Dann ist es möglich, meinen Script in ein Projekt zu kopieren, die nötigen Anpssungen zu machen (IP-Adresse, Ausgabe usw.) Und schon läuft's. Der UDP-Befehl "report 2" liefert z.B. folgende Text-Antwort, die z.B.in eine Textdatei ausgegeben werden kann:
report 2
{
"ID": "2"
"State": 1
"Error1": 0
"Error2": 0
"Plug": 0
"AuthON": 1
"Authreq": 1
"Enable sys": 0
"Enable user": 0
"Max curr": 0
"Max curr %": 1000
"Curr HW": 0
"Curr user": 6000
"Curr FS": 0
"Tmo FS": 0
"Curr timer": 0
"Tmo CT": 0
"Setenergy": 0
"Output": 0
"Input": 1
"Serial": "17513098"
"Sec": 144291
}

Gruß
LeoPix

Haki
Beiträge: 3
Registriert: 06.09.2017, 18:57
Wohnort: Berlin

Re: Kommunikation mit KEBA Wallbox

Beitrag von Haki » 01.11.2017, 19:46

Hallo LeoPix,
danke für deine Antwort. Schön zu hören, dass noch mehr an so einer Realisierung dran sind.
Auf welchem Target lässt du dein Script später laufen, oder hast du vor einen 24/7 PC laufen zu lassen?

Ich habe auf alle Fälle Interesse an dem Java-Script Code. Alleine schon wegen der Anregungen.

Ich bin in der Zwischenzeit schon etwas weitergekommen, habe allerdings auf der CCU2 Performance Probleme.
Ich vermute, dass es an meiner Befehlsstruktur liegt. Mit einem UDP Tool (z.B. Paket Sender) erhalte ich vom PC aus ohne Verzögerung eine Antwort bei allen Keba Reports. Auf der Homatic verwende ich diesen Script Code

Code: Alles auswählen

!Auslesen der KEBA Daten mit UDP Protokoll
!UDP Protokoll ist im KeContact_P20_P30_UDP_ProgrGuide_en beschrieben
dom.GetObject("CUxD.CUX2801001:2.CMD_SETS").State("echo 'report 3' | /usr/local/addons/cuxd/extra/socat UDP-LISTEN:7090 -");
dom.GetObject("CUxD.CUX2801001:2.CMD_QUERY_RET").State(1);
var response_keba = dom.GetObject("CUxD.CUX2801001:2.CMD_RETS").State();
WriteLine(response_keba);
Damit ergeben sich aber unterschiedliche Antwortzeiten (10-50s). So kann ich es noch nicht im Dauereinsatz laufen lassen. Die Daten schreibe ich dann mit CuxD auf eine SD Karte zur Auswertung und Anzeige mit HighCharts.

Gruß
Haki

LeoPix
Beiträge: 2
Registriert: 31.10.2017, 13:11

Re: Kommunikation mit KEBA Wallbox

Beitrag von LeoPix » 01.11.2017, 21:20

Hallo Haki,

bei mir laufen Heizung, PV-Anlage, Energiespeicher, Notstromumschaltung und jetzt auch die Wallbox übers Netz. Bis auf die Wallbox kann ich alles über das Handy steuern. Leider bin ich bei der Wallbox gescheitert. Ich habe mir daher ein Tablett bestellt - noch nicht geliefert (https://www.quelle.at/p/lenovo-miix-320 ... 0068046865). Das liegt zukünftig im Wohnbereich herum, für händischen Eingriff und Ein- und Ausgaben für alle Aggregate. Eigentlich müsste es als Smart Home Server geeignet sein, das wird die Zukunft weisen.

In nächster Zeit werde ich mir trotzdem einen alten PC (den meine Kinder nicht mehr verwenden weil sie ein Notebook haben) neu aufsetzen (4 GB Ram, 64 bit Linux). Da kommt dann auch ein Apache drauf usw. Sollte das Tablett wider Erwarten nicht ausreichen, dann wird das meine Smart Home-Steuerkiste, die betreibe ich im Remote-Betrieb oder über den Apache. Ich habe immer eine geklonte HD in Reserve. Somit kann ich auch bei einem Ausfall schnell reagieren - im schlimmsten Fall mit einem anderen alten PC.

Ich habe mein Java-Programm soweit, dass ich es herzeigen kann. Wenn du Interesse hast, dann gib mir Kontaktdaten bekannt, ich stelle das Programm auf die Cloud und schicke dir einen Link. In diesem Forum möchte ich den Link nicht weitergeben.

Die zentralen Java-Zeilen für die Kommunikation lade ich im Anhang hoch. Die Datei ist in name.java umzuändern, kann in einem Texteditor geöffnet werden. Die IP ist anzupassen. In den String message kann das gewünschte UDP-Kommando eingegeben werden. Die Datei läuft im JRE. Die Ausgabe erfolgt auf der Konsole.

Viel Spaß
LeoPix
Dateianhänge
Kommunikation.txt
(999 Bytes) 180-mal heruntergeladen

Antworten

Zurück zu „CUxD“