PV Überschussladung mit Raspberry Pi, UMC, teslajson.

Ich habe jetzt mal experimentell ein wenig Software in C++ und Python gemacht, die eine PV Überschussladung ermöglicht.
Ich verwende dafür ausschließlich Hardware, die ich ohnehin schon habe (z.B. den UMC), so dass mir keine weiteren Kosten entstanden sind.

Das Ganze sieht so aus: In der Hausverteilung stecken 2 Drehstromzähler DRT428DC mit S0 Ausgang.
Diese Ausgänge habe ich mit 2 GPIO Eingängen eines Raspberry PI verbunden, auf dem ein kleines C++ Programm läuft, welches ich ursprünglich geschrieben hatte, um den Energieverbrauch meines Hauses und die Energieeinspeisung meiner Dach-PV zu loggen.
In der Garage habe ich noch einmal 2 DRT428DC und einen Raspberry PI mit demselben C++ Program, um den Energieverbrauch meiner CEE-Steckdose und die Energieeinspeisung meiner Garagen-PV zu loggen.

Ich habe jetzt das C++ Programm um server threads erweitert, so dass ich die Momentanleistung jedes Zählers von überall aus dem Hausnetz abfragen kann. Zum Beispiel erzeugt meine Dach-PV in diesem Moment 7627W:

telnet raspberry 50001 Trying 192.168.25.8... Connected to raspberry. Escape character is '^]'. 7627 Connection closed by foreign host.

Dann habe ich ein kleines Python tool geschrieben, das jeweils 10 Minuten lang 1x pro Sekunde die Leistungswerte des Hauses und der Garagen-PV abfragt, aus diesen je 600 Werten den Median ermittelt und dann anhand der Differenz der beiden Mediane entscheidet, ob das Auto laden soll.

Leider habe ich noch keinen Weg gefunden, über teslajson den Ladestrom dynamisch einzustellen, ich muss ihn also statisch am Auto einstellen und dafür den idealen Kompromiss finden zwischen niedrigem und hohem Ladestrom.
Bei niedrigem Ladestrom wird die PV Anlange oft ausreichend Leistung haben, es wir also oft aber langsam geladen.
Bei hohem Ladestrom wird die PV Anlange seltener genug Leistung haben, es wir also seltener aber schneller geladen und es wird auch öfter mit dem Auto kommuniziert (setzt Tesla da irgendwelche Grenzen?).

Der code ist noch unfertig und experimentell, scheint aber zu tun, was er soll.
Ich werde wohl an den nächsten Wochenenden gelegentlich etwas weiter machen.
Falls jemand von Euch Ideen oder eigenen code beitragen will, ist das natürlich herzlich willkommen.
Falls das Projekt sich als nützlich herausstellt und etwas Reife erlangt hat, kann ich es ja auch auf github veröffentlichen.
Bis dahin kann ich die wenigen 100 Zeilen code bei Bedarf auch per Mail verschicken.