Steuerung einer Tinkerforge WARP Wallbox

Begonnen von chris_kmn, 04 November 2021, 12:04:13

Vorheriges Thema - Nächstes Thema

smoudo

Wow, das ist richtig umfangreich geworden! Danke das du Deine Arbeit mit uns teilst!
Ich werde das heute abend mal testen.
So wie ich das verstehe ist damit die nfc Freigabe der Wallbox aktiv gesetzt richtig? Muss in der Wallbox noch ein virtueller NFC angelegt werden?

Der PV-Bereich ist ja nach wie vor in der myutils untergebracht. und beschränkt sich auf die 3 readings:

"RCTPower_AR","overpow" = Überschuss, welcher gerade eingespeist wird - fehlt in deiner aktuellen Fassung?
"RCTPower_AR","power_battery" = Ladezustand Batterie
"RCTPower_AR","power_grid_total" = Netzbezug

richtig?

wenn ich die Zeile mit der Batterie auskommentiere sollte das ganze auch ohne Akku laufen?! Mein Akku lässt noch auf sich warten. Meine PV hat einen Fronius WR und ist komplett in Fhem integriert.
Bzw. könnte ich einfach ein reading erzeugen welches mit 0 gefüllt ist wenn das hilft?

Viele Grüße

Matze



chris_kmn

#31
Gern geschehen. Aber das Delta für das Sofortladen per Taster war nicht so viel Arbeit. So kann man sich auch mal für die viele Arbeit der anderen revanchieren :)

Zu deinen Fragen:

- NFC muss in der Wallbox aktiv geschaltet werden. Das macht fhem nicht.
- du kannst einen virtuellen NFC in der WB anlegen, wenn du für FHEM einen extra User/Ladebericht haben willst. Aber aktuell nutzt meine Konfiguration keine NFC-Simulation, da man ja eh per Tag freigeben muss. Wenn du per FHEM ohne NFC Tag das Laden starten willst, dann muss man den ,,taginject" Befehl des WB device nutzen.

- overpow: wird berechnet. In meiner letzten myutils war das auskommentiert. Ich habe jetzt nur den Kommentar gelöscht
- power_battery: ist die Leistung des PV Speichers, (-)=laden (+)=entladen.  Ich erhöhe den Ladestrom für das Auto so lange, bis der PV Speicher nicht weiter geladen wird. Auskommentieren wäre nicht gut, aber du kannst es standardmäßig auf 0 setzen.
- power_grid_total: ist Einspeisung vom Wechselrichter in das Netz (-) bzw. die Entnahmeleistung aus dem Netz (+)

Falls du auch eine RCT Anlage hast, kann ich dir gerne mein Device dazu schicken.

chris_kmn

So sieht ein Überschussladen bei mir aus. Das Auto wurde Abends angesteckt und am nächsten Morgen beim erreichen der PV-Mindestleistung hat fhem den Ladevorgang gestartet.

smoudo

#33
hab das ganze übernommen und werde es morgen früh testen.
Noch eine Verständnisfrage:
Ich habe ein Fahrzeug das nur 1 phasig lädt.

PwrFaktor habe ich dementsprechend auf 1 gesetzt. Muss an den Multiplikatoren im Bereich nurPV etwas verändert werden? wo kommen die 21.5 als Multiplikator her?


Wie oft bekommst du readings vom WR? meinen hatte ich auf ein interval von 60 gestellt. Das hatte aber sehr grobe Leistungssprünge der Wallbox zur Folge. Ich habe auch keine Ahnung wie das Auto dauerhaft auf unterschiedliche Ladeströme reagiert.

Das tolle an dem Wechselrichter ist, es ist ein hybrid und dementsprechend ist das battery reading schon da. Wenn byd irgendwann man wieder akkus (zu vernünftigen Preisen) liefern kann ist das praktisch schon integriert und sollte funktionieren.



smoudo

Nach ersten versuchen, funktioniert es gut! Danke!!
Was auch eine coole Funktion währe, wenn man unterschieden bekommt wieviel Anteil mit pv geladen und wieviel aus dem Netz bezogen wurde.
Lt. Zähler haben wir seit März schon über 1000kwh ins Auto geladen. Alles Kurzstreckenfahrten  :o

chris_kmn

Zitat von: smoudo am 11 August 2022, 00:15:03
hab das ganze übernommen und werde es morgen früh testen.
Noch eine Verständnisfrage:
Ich habe ein Fahrzeug das nur 1 phasig lädt.

PwrFaktor habe ich dementsprechend auf 1 gesetzt. Muss an den Multiplikatoren im Bereich nurPV etwas verändert werden? wo kommen die 21.5 als Multiplikator her?


Wie oft bekommst du readings vom WR? meinen hatte ich auf ein interval von 60 gestellt. Das hatte aber sehr grobe Leistungssprünge der Wallbox zur Folge. Ich habe auch keine Ahnung wie das Auto dauerhaft auf unterschiedliche Ladeströme reagiert.

Das tolle an dem Wechselrichter ist, es ist ein hybrid und dementsprechend ist das battery reading schon da. Wenn byd irgendwann man wieder akkus (zu vernünftigen Preisen) liefern kann ist das praktisch schon integriert und sollte funktionieren.

Bei Einphasig ist die 1 richtig. Aber am besten nur bei der ,,if-Abfrage auf 0" aus der dortigen 2 eine 1 machen. Sonst keine Faktoren ändern.

Die 21.5 sind abgeleitet von 220 Volt zur Berechnung der Leistung. Beim Laden sink bei mir die Spannung etwas. Zur Rundung und integer Bildung hab ich die 215 (220) Volt durch 10 geteilt. Man muss ja leider zwischen Leistung vom WR und Strom der Wallbox hin und her rechnen.

Von meinen WR hole ich die Werte alle 10 Sekunden. 60 Sek. ist tatsächlich etwas langsam für die Überschussregelung. Da ist die Wahrscheinlichkeit höher Strom aus dem Netz zu ziehen wenn die Lasten im Haus dynamisch sind (z.b. Waschmaschine) oder bei wechselnder Bewölkung. Wobei, wenn du einen Speicher hast ist das dann wieder abgepuffert und kein Problem.

Freut mich, dass es bei dir läuft :)

Den PV Ladestrom zu berechnen ist etwas kniffelig. Dann bräuchtest du noch die Hauslast als Meßwert und dann auf jeden Fall einen schnelleren Werteupdate als 60 sek.

ABER: du hast ja NFC. Wenn du also mit ,,nurPV" lädst könntest du einen virtuellen NFC Tag anlegen und mit diesem per tagstart laden. Dann hast du in der WB ein eigenes Profil mit eigenem Ladeenergie-Wert, der dann nur PV ist.

smoudo

Ich hatte heute das phänomen das er heute früh ganz normal mit pv Strom angefangen hat zu laden, dann war meine Frau unterwegs und als sie kam hat sie das Auto angesteckt und nichts ist passiert. Ich habe dann erneut auf ,,nurpv" geklickt, ging nichts. Erst nachdem ich die nfc Abfrage raus gemacht habe ging es sofort los. Muss ich den injecttag noch irgendwo setzen?

Dann hat er allerdings dauernd geladen, stop, geladen, stop obwohl insgesamt 3,2kw an Überschuss da war.
Das reading hat auch -3200 angezeigt. Verstehe ich noch nicht so ganz.

Das mit dem virtuellen nfc zum auswerten ist eine super Idee!

Viele Grüße

Matze

chris_kmn

#37
Moin Matze,

hat sie denn das Laden auch mit einem NFC Tag gestartet oder nur das Auto angesteckt ?

Das mit dem An/aus ist in der Tat merkwürdig. Hat es denn vorher mit dem alten Code funktioniert? Könnte am 1-Phasen-Betrieb liegen. Ich schaue mir die Funktion nochmal an.

Zeigt er im WB-FHEM-Device an, dass zwei Phasen aus und eine aktiv ist (phases_active_0-2)?

smoudo

Moin Chris,

ich gehe davon aus das sie das Auto nur eingesteckt hat. Ich habe gestern Abend nochmal in der WB geschaut, das Auto hatte wohl morgens noch den Tag aktiv mit dem ich abends vorher getestet hatte.

Das mit den aktiven Phasen schau ich mir an, geht momentan nicht, weil das Auto voll ist.
Aber da das Auto nur 1 phasig kann, dürfte da auch nichts anderes stehen oder?

Viele Grüße

Matte

chris_kmn

Hi Matte,

was sein könnte ist, dass das Ladegerät im Auto mit 400V betrieben wird, dann also über zwei Phasen anstatt einer Phase und Nulleiter. Dann passen meine Grenzwerte in den Formeln nicht mehr. Wäre mal interessant zu wissen, wie das bei dir ist und ob es vorher funktioniert hat. In meinem Ursprungscode waren glaube ich zwei Phasen fest eingestellt.

VG, Chris

smoudo

#40
Das Auto lädt nur mit einer Phase. Mehr ist auch pintechnisch nicht belegt.
Anbei ein Bild der readings. Geht alle 10 sek. An-aus
Überschuss zum zeitpunkt des screenshots: PowerFlow_Site_P_Grid -2771.01


Alter Code in 99myutils bislang mit V1.1.2:
sub myChargeCurrent() {
#my ($overcurr,$maxcurr,$WBState,$ChargeMode) = @_;
my $overcurr = ReadingsVal("Primo","Einspeisung",0); # Stromüberschuss
my $maxcurr = ReadingsVal("WARP2_CP","MaxCurrent",0); # Maximaler Ladestrom
my $WBState = ReadingsVal("WARP2_CP","Status",0); # IEC Status WB
my $ChargeMode = ReadingsVal("WARP2_CP","charge_mode",0); # Startmodus (Autostart - manuelles Starten)
my $VehicleState = ReadingsVal("WARP2_CP","vehicle_state",0); # Fahrzeugstatus

if ($VehicleState == 1 && $overcurr >= 1500 ) { # Fahrzeug ist angeschlossen -> Laden starten bei PV Überschuss
$maxcurr = 6000;
{fhem("set WARP2_CP current $maxcurr")};
{fhem("set WARP2_CP start_charging")};
#qx(curl -H "Content-Type: application/json" -X PUT -d "null" http://192.168.1.60/evse/start_charging);
return;
}

if ($VehicleState == 2)  {

if ( $overcurr >= 500 ) {

$maxcurr = $maxcurr + 1000;
if ($maxcurr > 10000) {$maxcurr = 10000};
{fhem("set WARP2_CP current $maxcurr")};
#qx(curl -H "Content-Type: application/json" -X PUT -d "{\"current\":$maxcurr}" 192.168.1.60/evse/current_limit);
}

elsif ($overcurr < 100) { # Überschuss zu reging ?

if ($overcurr < 100 && $maxcurr <= 6000) { # Überschuss kleiner als kleinster Ladestrom?

{fhem("set WARP2_CP stop_charging")}; # Laden unterbrechen !
# Alternative per curl:
#qx(curl -H "Content-Type: application/json" -X PUT -d "null" http://192.168.1.60/evse/stop_charging);
if ($ChargeMode == 0) {fhem("set WARP2_CP auto_start_charging 0")}; # Falls Autostart aktiv: deaktivieren
return; # Funktionsabbruch
}

$maxcurr = $maxcurr - 1000; # Ladestrom reduzieren
{fhem("set WARP2_CP current $maxcurr")};
#qx(curl -H "Content-Type: application/json" -X PUT -d "{\"current\":$maxcurr}" 192.168.1.60/evse/current_limit);
return;
}
}

return;
}


Strom hatte ich auf 10A begrenzt, weil meine PV meist nicht mehr bringt und sonst zuviel zurückregelt. Damit hatte ich das An-Aus problem eigentlich nur ganz früh morgens



Viele Grüße

Matze

chris_kmn

Du machst es einem aber auch nicht leicht   ;)

Du hast die myUtils noch von meiner alten Version für die WB Firmware 1.x. Das Device aber für die Firmware 2.x. Es gab doch einen API Bruch mit der neuen Firmware. Meine myutils und das WB device sind beide für 2.x.

Die vehicle_state Abfrage ist z.B. nicht mehr auf 2 beim Laden sondern auf 3. Daher kommen sicher deine Abbrüche nach 10 Sek.


smoudo

#42
Sorry, das war missverständlich. Ich habe dir die alte konfig für die stromkonfiguration gepostet( deshalb der Verweis auf V1.1.2) Als Code aktuell habe ich natürlich den von dir zuletzt geposteten übernommen. Lediglich auf 1 Phase gestellt.

Viele Grüße

Matze

chris_kmn

Ich vermute, dass die Umrechnung zwischen Strom und Leistung nicht passt. Was du tun kannst ist fhem auszuschalten und händisch den Ladestrom an der Wallbox beim Laden einstellen und ablesen wie viel Leistung der Zähler anzeigt.

Hast du es denn mal probehalber mit einer 2 als powerfaktor versucht oder geschaut, ob er beim Laden im FHEM Device auf 1 stehen bleibt ?

smoudo

Das teste ich mal.

Was mir noch aufgefallen ist:

- das notify Vehiclestate_uplg funktioniert nicht. Das steht zwar auf active, aber setzt den Sofortlade Button nicht zurück auf off wenn das auto abgezogen wird. geht das bei dir?
- Bei NFC direkt an der wallbox fängt es jetzt auch sofort das laden an. (wollte ich ja ursprünglich so, sollte aber für mein verständnis nur in zusammenhang mit dem Knopf drücken sein)
- virtuellen nutzer fhem habe ich angelegt und das virtuelle tag vergeben. Zeigt jetzt sauber fhem als user an beim laden. Top!

Gedankenspiel meinerseits:
was hälst du davon aus dem inject_tag_start einfach den inject_tag zu machen und den mit dem Sofortladebutton zu koppeln?  Dann sollte das ganze auch in fhem mit dem Sofortladeknopf funktionieren ohne nochmal set tagstart zu drücken.