[Modul] OCPP

Ist deren lokales OCPP Update endlich verfügbar? Meine letzte Info war, dass es immer noch in Entwicklung ist.

paresy

Hallo zusammen,
hat einer von Euch schon mal versucht einen NRGKICK über OCPP einzubinden? Habe es mit den Vorgaben in der Doku versucht und bekomme leider kein Gerät im Modul-Konfigurator angezeigt.

Hast du mal im Debug vom Konfigurator geschaut ob dort Daten kommen?

@tharit Das Update ist eingereicht und sollte die Tage dann als Stable verfügbar sein.

paresy

@paresy Gerade gemacht. Leider kommen da keine Infos/Nachrichten

Dürfte gemäss Doku unten seit FW 328 nach wie vor im Beta-Stadium sein.

Introduction

Habe nun mal den Händler aufgefordert, sich nochmals mit dem Easee-Support in Verbindung zu setzen und dies genau abzuklären. Ich gehe aber davon aus. das dabei auch nicht mehr rauskommt, als oben in der Doku zum nativen OCPP aufgeführt ist.

Funktioniert das Modul auch mit der ZAPPY ?

Die Anleitung bei Symcon zum Modul erschließt sich mir noch nicht so richtig. Wird da der Datenstrom online abgegriffen zum MyEnergieHub oder muss man da noch irgendeine Schnittstelle über einen Bus schaffen?

Das hängt von der ZAPPY ab. Wie kannst du denn dort OCPP konfigurieren?

paresy

Habe das Update installiert; Fehlermeldungen sind weg, klasse!

Das neue “Start transaction” Verhalten ist mir aber noch nicht so ganz klar. Oder ich verstehe die Konfig meiner Wallbox nicht.

Ich dachte ich könnte auf “when an Id tag is validated - Allow only local” stellen, und dann lokal eine liste pflegen, bzw vorallem ausschliessen dass “irgendwelche” Tags erlaubt sind..

Eigentlich will ich nur “OCPP_RemoteStartTransaction” nutzen zum überschussladen bzw aktivieren aus symcon raus; mit RFID soll garnichts aktivierbar sein. Im Code vom Modul sieht es auch so aus als ob der “symcon”-Tag der dabei genutzt wird dann immer erlaubt sein sollte?

OCPP_RemoteStartTransaction klappt aber nicht mehr wenn die Option auf “allow local only” steht; “allow only central” und “allow both” geht auch nicht.. nur bei “Allow all id tags” geht es.

Ist das ein ein Thema der Konfiguration der Wallbox, oder was am Modul? Bin nicht ganz sicher wo ich hier suchen soll, verhalten ist irgendwie unintuitiv.

Randbemerkung: Meine Wallbox zeigt die Tags in uppercaps an, also “SYMCON”, nicht “symcon”.. macht das eventuell einen unterschied irgendwo?

Update zu NRGKICK über OCPP koppeln.
Also der NRGKICK kommuniziert nur über die Cloud des Herstellers und somit ist eine netzinterne IP sinnlos. Lösung war die angabe der externe URL meiner Fritzbox kombiniert mit einer Portweiterleitung an den IP-Symcon (UDP / 3777). Leider gab es bei der Einrichtung des Geräts dann nur 4 Werte (Variabeln) die zur Steuerung des NRGKICK unbrauchbar sind (Hersteller, Modell, Seriennummer, Letzer ID Tag). Ist das normal?

Es kann sein, dass die anderen Variablen erst kommen, sobald du eine Transaktion startest.

paresy

Moin,

wie komme ich denn an die Mailadresse zu einem ID Tag?

Ich möchte nach einem Ladevorgang die Kosten per Mail versenden.

Gruß

Marc

Hallo, ich habe heute folgendes Problem mit dem Modul OCPP endeckt.

Weiß aber nicht wie ich das lösen kann, ich habe das Modul einmal erneut installiert.

VG, Dominik

Hi,

ich habe auch das Problem von fehlenden Variablen (Zählerstände etc), nur die Grundvariablen wurden angelegt.
Ich bin momentan am Laden, da sollten die Verbrauchswerte doch eigentlich auftauchen?
Ich musste das Modul einmal komplett entfernen und neu einrichten, seitdem tritt diese Situation auf, vorher waren alle Variablen da.
Kann ich da was grundsätzliches falsch gemacht haben, bzw. übersehe ich was ?

Gruß,

Fred

Hallo,

hat keiner eine Idee dazu?

Viele Grüße

Dominik

Ich hatte das Modul auch mal getestet, habe aber nie relevante Daten gesehen, nur die gleichen wie bei die. Wollte eigentlich Laden starten, Strom einstellen…

Du Dixie,

hattest du mal geschaut, ob du die Version vom Beta Kanal nutzen kannst?

paresy

Hi parsey, ich nutze bereits die Beta Version, das mache ich eigentlich immer gleich :slight_smile:

VG, Dominik

Hallo, jetzt habe ich mal den alten Splitter und Konfigurator gelöscht und neu angelegt, jetzt findet er auch wieder die Wallboxen, jetzt habe ich nur das Problem, das meine Wallbox Instanzen neu angelegt wurden und die alten kommen immer mit dem Fehler hoch, kann ich da irgendwie den Gateway oder übergeordnete Instanz ändern? Über die Eigenschaftsseite der Instanz komme ich da nicht dran.

Vielen Dank & Gruß

Dominik

Hallo,
ich habe meinen Fronius Wattpilot Flex C6 mit dem Modul erfolgreich eingebunden.
Leider kann ich die Physikalische Ladung über das Modul weder Starten noch Stoppen.
Wenn ich z.b. den Switch „Verfügbar (Anschluss 1)“ schalten will, dann kommt folgende Fehlermeldung:

Konnte Wert nicht Setzen

Fatal error: Uncaught TypeError: OCPPChargingPoint::getChangeAvailabilityRequest(): Argument #1 ($connectorId) must be of type int, string given, called in /var/lib/symcon/modules/.store/de.symcon.ocpp/OCPP Charging Point/module.php on line 116 and defined in /var/lib/symcon/modules/.store/de.symcon.ocpp/OCPP Charging Point/module.php:622
Stack trace:
#0 /var/lib/symcon/modules/.store/de.symcon.ocpp/OCPP Charging Point/module.php(116): OCPPChargingPoint->getChangeAvailabilityRequest(‚1‘, ‚Inoperative‘)
#1 /-(3): OCPPChargingPoint->RequestAction(‚Available‘, false)
#2 {main}
thrown in /var/lib/symcon/modules/.store/de.symcon.ocpp/OCPP Charging Point/module.php on line 622
(Code: -32603)

Kann jemand damit was anfangen?

Edit:
ich habe die Zeile 116 mal mit (int) ergänzt:
$this->send($this->getChangeAvailabilityRequest((int)$ConnectorId, $Value ? ‚Operative‘ : ‚Inoperative‘));
Die Fehlermeldung kommt jetzt zwar nicht mehr aber der Schalter funktioniert leider trotzdem nicht.

Ich glaube, ich habe einen Fehler bei der MeterValues Verarbeitung:

Ich bekomme z.b. folgendes Übertragen:
10.04.2026, 16:00:00 | Received | [2,„….“,„MeterValues“,{„connectorId“:1,„meterValue“:[{„timestamp“:„2026-04-10T13:59:59.898Z“,„sampledValue“:[{„value“:„5.84“,„measurand“:„Current.Import“,„unit“:„A“,„phase“:„L1“},{„value“:„0.00“,„measurand“:„Current.Import“,„unit“:„A“,„phase“:„L2“},{„value“:„0.00“,„measurand“:„Current.Import“,„unit“:„A“,„phase“:„L3“},{„value“:„6.00“,„measurand“:„Current.Offered“,„unit“:„A“},{„value“:„18960.46“,„measurand“:„Energy.Active.Import.Register“,„unit“:„Wh“},{„value“:„50.03“,„measurand“:„Frequency“},{„value“:„1284.00“,„measurand“:„Power.Active.Import“,„unit“:„W“,„phase“:„L1“},{„value“:„0.00“,„measurand“:„Power.Active.Import“,„unit“:„W“,„phase“:„L2“},{„value“:„0.00“,„measurand“:„Power.Active.Import“,„unit“:„W“,„phase“:„L3“},{„value“:„1284.00“,„measurand“:„Power.Active.Import“,„unit“:„W“},{„value“:„1380.00“,„measurand“:„Power.Offered“,„unit“:„W“}]}]}]

–> es wird die Leistung und die Ampere pro Phase übergeben. Bei der Leistung wird nach L1, L2,L3 zum Schluss noch die Summe aus den 3 übermittelt. Wenn die Wallbox aber in den ein Phasen Betrieb wechselt, wird in der Variable “Zählerstand (Anschluss 1), Current.Import” der letzte Wert (hier L3) in die Variable geschrieben.

Ich habe die Funktion im Skript bei mir mal angepasst:

private function processMeterValue(string $messageID, $payload) {
    $values = $payload['meterValue'];
    $currentValue = null;
    $currentTime = 0;
    foreach ($values as $value) {
        $newTime = strtotime($value['timestamp']);
        if ($newTime > $currentTime) {
            $currentTime = $newTime;
            $currentValue = $value;
        }
    }

    foreach ($currentValue['sampledValue'] as $sampledValue) {
        $suffix_ident = '';
        $suffix_name  = '';
        $phase = '';

        if (isset($sampledValue['measurand'])) {
            $suffix_ident = str_replace('.', '_', $sampledValue['measurand']);
            $phase = $sampledValue['phase'] ?? '';
            $suffix_name = ', ' . $sampledValue['measurand'] . $phase;
        }

        $ident = sprintf('MeterValue_%d_%s%s', $payload['connectorId'], $suffix_ident, $phase);

        $this->RegisterVariableFloat(
            $ident,
            sprintf($this->Translate('Meter Value (Connector %d)%s'), $payload['connectorId'], $suffix_name),
            [
                'PRESENTATION' => VARIABLE_PRESENTATION_VALUE_PRESENTATION,
                'SUFFIX'       => ' ' . ($sampledValue['unit'] ?? 'Wh')
            ],
            ($payload['connectorId'] + 1) * 100 + 10
        );

        $this->SetValue($ident, $sampledValue['value']);
    }

    $this->send($this->getMeterValueResponse($messageID));
}