[Modul] KEBA KeConnect P30

Hallo,
ich nutze schon länger dieses tolle Modul für meine Keba X und C. Danke @demel42
Seit zwei Monaten beobachte ich, das bei der X immer wieder ein falscher Zählerstand übermittelt wird und zwar der von der Nachbarbox, der „C“. Das passiert in unregelmäßigen Abständen. Weiß jemand einen Rat? Das ist sehr nervig, da ich den Zählerstand für die Auswertung nutze.

so kann ich dazu nix spontanes sagen, so ohne konkrete Debusg etc.

Allerdings erinnere ich mich daran, das schon mal jemand (@Dustin723) einen Wallbox-Verbund im Einsatz hatte und das ich m.E. die Seriennummer letztendlich eingeführt haben, um die beidem Boxen auseinander zu halten
Hast Du diese Information in der Instanz-Konfiguration eingepflegt?

Ansonsten brauche ich ein konkretes Beispiel, Log’s der beiden Wallboxen, die aussagefähig sind (also den Ladeabschluss mit Übernahme der Status-Historie) und lang genug („Limitierung“ erhöhen!) sowie ein paar Info’s zu deinem Aufbau.

HI @demel42,

meine Keba laufen, wie Du schon sagst, im Verbund.
Seit dem das mit der Serienummer drin ist, werden auch alle drei korrekt einzeln abgefragt.

Wobei auf den Zählerstand der Box habe ich noch nie geguckt, mit interessieren ja nur die einzelnen RFIDs. Alle Boxen haben ein gesamt Zähler, der Interessiert mich wiederrum.
Da man immer eine andere Box bekommt interessiert halt nur der Hauptzähler.

@DeejayT , ist das nur der Zähler der nicht korrekt ist? Dann müsste ich das mal prüfen wie die einzelnen WB Zähler so drauf sind

Es passiert nur bei dem Zähler der KEBA x.
Da kommt alle paar Tage der Zählerstand von der KEBA C bei dem Zählerstand der X an.

Ich habe jetzt mal beide Seriennummern eingetragen.

HI,
du musst in IPS für jede Wallbox Instanz die Seriennummer eintragen. Es ist auch egal welche IP Adresse Du aus dem Verbund abfragst, da kommen auf allen die gleichen Daten.
Das Modul Filtert dann nach Seriennummer.

Das war damals auch bei mir das Problem.

1 „Gefällt mir“

Ich habe das Modul vorbereitet für PV-Überschussladen, sowie wie von @7weazel7 und @paresy in Energiemanagment mit Symcon - #47 von 7weazel7) angeregt.

Ich habe es so gemacht, das es eine Variable (mit dem Dient SurplusPower) gibt, in die z.B. vom „Energieverbrauch Optimierer“ die verfügbare Leistung in Watt eingetragen wird. Er rechnet das dann um in die Stromstärke und parametriert die Wallbox.

Weiterhin füllt das Modul eine Variable (Ident SurplusReady), die anzeigt, ob die Wallbox grundsätzlich überhaupt laden könnte.

Weiterhin habe ich die Phasenumschaltung (1/3) vorbereit (testen kann ich das noch nicht, weil die Hardware noch nicht installiert ist). Das setzt in der Keba P30 eine entsprechende Firmware (3.10.51) voraus und natürlich die entsprechende Hardware/Verkabelung. Die Wallbox macht dann die Umschaltung so (Unterbricht das Laden, schaltet um und aktiviert das wieder), das das Auto damit klar kommt (so Aussage von Keba)

Verfügbar ist diese Erweiterung zZt nur als „Testing“ über diesen Link:

@paresy : es hat sich auf jeden Fall herausgestellt, das der Ablauf schon etwas komplexer ist, u.a. lässt die Wallbox manche Aktionen nicht jederzeit zu sondern achtet auf Wartezeiten (zB nach 1/3-Phasenumschaltung 5 Minuten, aber auch die Umschaltung der Leistung braucht einige Zeit). Das wird im Modul berücksichtigt, bedeutet aber, das die abgenommene Leistung auch aus diesem Grund nicht unbedingt die Leistung ist, die vom Optimierter angeboten wird (auch daher mein Vorschlag, das der Optimierter die wirklich benutzte Leistung (optional) aus einer entsprechenden Variable abruft).

1 „Gefällt mir“

Bekomme beim Start Ladevorgang über RFID folgende Fehler angezeigt.

Gruß
Stephen

merde … bitte mal die aktuelle beta 1.9.2 ausprobieren

Hi demel42,

erstmal danke für das Modul. Seit den letzten Updates habe ich aber das Problem, dass ich den Ladestrom und die Ladeenergie nicht mehr setzen kann. In den Variablen sind die Standardaktionen aktiviert, also hier nichts geändert.

Grüße, bertel2013

hmm, kann natürlich sein, durch den modus „PV-Überschuss“ habe ich intern das ein oder andere umgestellt.

mach mir doch mal ein Debug (Limitierung deutlich erhöhen!) von den beiden Aktionen - also in der GUI andere Werte einstellen und aufzeichnen, was so kommuniziert wird.
Das als Dump dann an mich (via PN oder per Mail)

Hallo Demel42,

erst mal danke für das tolle Modul. Ich nutze es seit längerem. Und ich hatte bis vor Weihnachten die 1/3 Phasenumschaltung per Modbus direkt gesteuert. Mit dem aktuellen Stand vom Modul hat das nicht mehr geklappt. Ich habe so den verdacht, dass das Modul, wenn in der Konfig der Instanz die Phasenumschaltung deaktiviert ist, diesen Status auch in der Keba Wallbox schreibt. Und damit war der Zugriff per Modbus deaktiviert. Das als Info.

Nun habe ich heute die Phasenumschaltung auf das Keba Modul umgestellt. Mir sein ein paar Punkte aufgefallen, wo ich mir nicht sicher bin, in wie weit das so „gewünscht“ ist:

Über das Webfront kann ich problemlos zw. 1 / 3 Phasen umschalten (per Button Netzanschluss Phasenumschalten). Per Skript klappt das nicht ganz so einfach. Ich benötige aktuell zwei Befehle:

KebaConnect_SetMainsConnectionPhases($IDKebaModul, 3);
SetValueInteger($IDNetzanschlussPhasenumschaltung, 3);

Das gleiche wenn ich zurück auf 1-phasig schalten will. Der 1. Befehl alleine führt nicht zur Umschaltung (ich habe es grundsätzlich bei aktiver Ladung getestet). Der Button im Webfront funktioniert in dem Fall immer.

Dann ist mir noch aufgefallen, dass vermutlich in der Funktion „private function ExtractSeries()“ (module.php) ein Buchstabe für die Erkennung fehlt. Ich hatte anfänglich das Problem, dass ich die Phasenumschaltung im Modul / in der Instanz nicht aktivieren konnte: „phase switching is only supported by series C and X“

Ich habe definitiv eine P30 x-series. Aber die meldet sich in dieser Funktion mit einem B - mit dieser Anpassung hat es dann geklappt:


    private function ExtractSeries()
    {
        $product = $this->ReadAttributeString('Product');
        if (strlen($product) < 14) {
            $this->SendDebug(__FUNCTION__, 'product: ' . $product, 0);
            return false;
        }
        $code = substr($product, 13, 1);
        $map_series = [
            '0'=> 'E',
            '1'=> 'B',
            '2'=> 'C',
            '3'=> 'A',
            **'B'=> 'X',**
            'R'=> 'X',
            'C'=> 'X',
            'E'=> 'X',
            'G'=> 'X',
            'H'=> 'X',
        ];
        $series = isset($map_series[$code]) ? $map_series[$code] : '';
        $this->SendDebug(__FUNCTION__, 'product: ' . $product, 0);
        $this->SendDebug(__FUNCTION__, 'series: ' . $series, 0);
        return $series;
    }

Weiterhin ist mir aufgefallen, dass beim de- / aktivieren der Phasenumschaltung im Modul / in der Instanz der Fehler kommt:

Fehler beim Übernehmen der Änderungen

Warning: Variable kann nicht gelöscht werden solange Unterobjekte vorhanden sind in C:\ProgramData\Symcon\modules\.store\demel42.keba.keconnect\KeConnectP30udp\module.php on line 427
 (Code: -32603)

Auswirkungen zu diesem Fehler konnte ich bis jetzt keine feststellen.

Sorry das alles ein wenig unstrukturiert hier aufgelistet ist. Aber ich wollte es mal hier schreiben. Falls zukünftig noch jemand ähnliche Erfahrungen macht.

Installierte Version: 1.10 per Store

ich hatte bisher die Phasenumschaltung nur „trocken“ kodiert, weil der Umschalter (KeConnect S10) bei mir immer noch nicht fertig verdrahtet ist. Kam bei mir viel dazwischen diese Jahr. Insofern habe ich das nicht wirklich ausgetestet und insofern ist das Verhalten nicht endgültig.

Welche Variable ist denn hiermit $IDNetzanschlussPhasenumschaltung gemeint?

Es gibt ja zwei Variable
a) MainsConnectionMode („Netzanschluss Phasenumschaltung“) => setzt den Modus auf dynamisch, 1 Phase (fix) oder 3 Phasen (fix)
dynamisc bedeutet, das er die Anzahl der Phasen aufgrund von SurplusPower („Verfügbare Überschussleistung“) anpasst (bei PV-Überschussladen erforderlich).
b) MainsConnectionPhases („Netzanschluss genutzte Phasen“) => das ist die Anzahl der derzeit genutzten Phases (1 oder 3)

(a) kann man m.E: über den Webfront ändert (b) nicht. Das man SetMainsConnectionPhases direkt ändern kann sehe ich als Fehler, da habe ich fälschlicherweise die Funktion public gemacht; es sollte MainsConnectionMode manipuliert werden. MainsConnectionPhases wird nur gesetzt, wenn der Befehl geklappt hat.

ja, das ist einTipfehler

allerdings sind die Beschreibungen auch gewissen Veränderungen unterworfen … die 3G-Modelle werden aktuell nicht mehr aufgeführt, lasst ich aber natürlich drin (weil die ja eventuell in Verwendung sein könnten).

P30 Installationshandbuch   V3.29       V3.32           

Geräteserie
e-series                    0           0           
b-series                    1           1
c-series                    2           2
a-series                    3           3
x-series WLAN               B           B
x-series WLAN, 3G           C            
x-series WLAN, 4G           E           E
x-series 3G                 G            
x-series 4G                 H           H
x-series 4G, w/o LM                     S
x-series WLAN, w/o LM                   U

Deine Änderung ist richtig und übernehme ich

das kann ich nicht nachvollziehen. Was hängt denn bei dir an Objekten unter der Variable (es sollte lt. Zeile MaxChargingCurrent sein)?

so ganz habe ich das nicht verstanden, aber folgendes passiert: da sich das Modul ja jetzt auch für die Phasen „interessiert“, muss ich ja schon sicherstellen, das die Informationen in der Wallbox und dem Modul gleich sind. Das bedeutet, ich setze die Keba-Variable X2src auf UDP bzw eben auf NONE - bedeutet, das Kommandos für X2 nicht mehr auf UDP reagieren. Insofern trifft das vermutlich den erwähnten Sachverhalt.

Die Variable Netzanschluss Phasenumschaltung hatte ich damit gemeint.
Mir ist bei dem ersten Test aufgefallen, dass der Befehl alleine keine Umschaltung ausgelöst hat:

KebaConnect_SetMainsConnectionPhases($IDKebaModul, 3);

Ich hatte dann mal im Webfront den Button „Netzanschluss Phasenumschaltung“ „3 Phasen (fix)“ angeklickt und kam zu langsam zu dem Ergebnis.

Sprich ich „manipuliere“ den Status des Buttons:

SetValueInteger($IDNetzanschlussPhasenumschaltung, 3);

Und führe diese Funktion aus:

KebaConnect_SetMainsConnectionPhases($IDKebaModul, 3);

Vermutlich aus Unwissenheit wie es einfach geht. Wenn ich hier was testen kann, einfach melden.


Danke


Da hängt in der Tat ein Aktionsskript dran - damit ich im Webfront den Ladestrom ggf. manuell anpassen kann. Das könnte eine Altlast von mir sein.


Das erklärt das Verhalten exakt. Ich habe die Phasenumschaltung in der Instanz deaktiviert und mich dann gewundert, warum der Modbus auch nicht mehr ging. Es stand auf NONE … aber das ist jetzt ja geklärt.

naja, versuch einfach mal KebaConnect_MainsConnectionMode zu nutzen.
Das sollte auch MainsConnectionPhases entsprechend setzen.

Rein aus Interesse: wozu setzt du die Anzahl der Netzphases eigentlich selbst?
Es müsste (mit Vorbehalt, weil ich das eben noch nicht selbst real getestet habe) in Abhängigkeit von SurplusPower sowohl die Anzahl der Phasen anpassen auch auch die max. Ladeleistung.

Gemacht ist das (auch), um das Modul „EnergieOptimierer“ direkt nutzen zu können - dafür auch die Variable SurplusReady die sagt, das die Wallbox auch wirklich laden könnte (Kabel eingesteckt etc)

Das muss unnötig sein, das Setzen des Ladestrom ist direkt möglich - entweder über ein RequestAction der Variable MaxChargingCurrent als über die entsprechende Action

Teste ich und melde mich dazu

Ich habe hier ein stark auf meine Bedürfnisse angepasstes Skript erstellt. Da laufen der PV Akku, der aktuelle PV Ertrag, das Auto, die Jahreszeit und noch ein paar mehr Dinge zusammen. Damit entscheide ich dann, wie viel Leistung und KW das Auto bekommt (es hilft ja nicht viel, wenn das Auto unnötiger weise ganz voll ist aber dafür in der Nacht Energie zugekauft werden muss). Sicherlich wäre das auch mit dem EnergieOptimierer möglich. Nur ich war schon fertig, als der kam - und bisher scheue ich den Umstieg.

Kann ich bestätigen - gelöscht und das Problem ist weg.

Danke!

Noch ein Hinweis: wenn der MainsConnectionMode auf „dynamic“ steht, macht er die Umschaltung der Anzahl der Phasen automatisch, wenn SurplusPower gesetzt wird und setzt dann entsprechend auch MaxChargingCurrent.
Mit dem OperationMode kann man das Verhalten (temporär) auf „manuell“ stellen, um die Automatik zu übersteuern und selbst zu steuern.

Wie gesagt, praktisch noch nicht von mir getestet mangels Verkabelung.

Ja, das verstehe ich. So ganz warm werde ich mit dem Modul auch noch nicht. Der Ansatz ist super, es fehlen mir aber noch ein paar Punkte (und die praktische Erfahrung)

Es kann ja auch sinnvoll sein, eine (kleinere) Menge an Netzstrom zu verwenden, damit die minimale zum Laden benötigte Leistung erreicht wird; sonst würde der überschüssige Strom ja ggfs. in das Netz eingespeist werden.

Und mir fehlt auch, das die wirklich von der Wallbox genutzte Leistung bei der Kalkulation berücksichtig wird. Wenn die WB mit 11 kW im Energie-Optimierer eingestellt ist, gibt es ja bis zu der Schwelle ab. Was ist aber, wenn manchmal an der WB ein Auto geladen wird, was zB nur bis 7 kW lädt? Dann werden trotzdem 11 kW für die WB kalkuliert und das die genutzte Leistung wird dann ins Netz abgegeben - könnte aber von der Wärmepumpe genutzt werden.

@CGastager: Änderungen sind abgebracht und im Modulstore als Beta (v1.11) eingereicht

Moin,

unter den Wallboxen ist ein Gesamtverbrauch für jede RFID Karte. Ende Februar hat der sich das letzte mal bei mir aktuallsiert.

Gab es da evlt. in der Zeit ein Update, ich abe das nicht mehr im Kopf…

danke.

Das wir eigentlich nur gesteuert über die Einstellung in der Instanz „Speichern des Stromverbrauchs pro RFID“ und natürlich „Lade-Historie speichern“.
Natürlich nur dann, wenn neue Einträge in der Lade-Historie eingetragen werden.

Da hat sich auch in der letzen Monaten nichts dran geändert

das ist bei mir an. Hast du eine Idee wo ich gucken könnte?