Lademanagement E-Auto, PV & Netz

Begonnen von martin2day, 03 August 2022, 15:58:27

Vorheriges Thema - Nächstes Thema

martin2day

Moin moin zusammen,

ich nutze schon sehr lange FHEM bei mir im Eigenheim zusammen mit einer SPS und HomeMatic.
Nun Wechsel ich gerade mein Auto gegen ein E-Auto und baue mir eine Solaranlage aufs Dach.
Da mir viele Lösungen der Hersteller zu unflexibel oder nicht smart genug sind, würde ich hier gern auch das Lademanagement in FHEM abbilden.

Im Gunde wünsche ich mir hier eine ganz einfach Lösung wo man nicht viel nachdenken muss. Es soll wie alles bei mir smart und möglichst Selbststeuernd sein.
In der SPS wüsste ich sofort wie ich es Programmiere, das kann ich gut.
In FHEM benötige ich etwas Hilfe.

Was schwebt mir vor.
1. so viel wie möglich das Auto nur mit PV Energie laden.
2. tagesabhängig einstellen wann ich losfahren will und welche Ladung das Auto zu dieser Zeit haben soll, wenn kein PV dann mit Netz auf diesen Wert laden.
3. maximalen Ladezustand festlegen
4. FHEM für die Stromreglung der Überschussenergie einsetzen.

und das wäre es dann auch schon.
Interessant wären noch die Parameter für das Einschalten und Ausschalten der PV Ladung... z.b. wenn mehr wie 10A verfügbar sind ein und bei weniger wie 6A aus...

Wie würde man so etwas am besten umsetzen, dass man es auch einfach in FHEM Web parametrieren kann?

Euch einen schönen Tag
Gruß Martin

sledge

Hi,

mit knapp 3 Jahren Erfahrung bin ich der Meinung, dass die openwb genau das macht, was Du möchtest. Solltest Du schon eine Wallbox haben, kannst Du diese mit der openwb (standalone oder selber installieren) vermutlich problemlos steuern.

Ich hatte auch zuerst über eine Steuerung aus FHEM heraus nachgedacht, aber die openwb erfüllt hinsichtlich PV-gestützter Ladung, Mindestladung für geplante Touren usw. alle Wünsche (für mich).

Vielleicht mal einen Blick riskieren? Bei herumliegendem Raspbi hat man schnell ein System aufgesetzt. Hilfe biete ich gerne an.
FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

martin2day

Hallo sledge,

danke dir für deine Antwort.
Ich kenne die Systeme schon die da so am Markt sind... gibt es ja einige wie das von dir genannten openWB oder auch EVCC...
Sicher allesamt besser und erprobter wie das was ich mache ;-)

Ich hab nur bei mir über die Jahre mehr und mehr verschiedene Systeme rückgerüstet und alles in einem System verbaut.
Das war der Grund hier auch auf FHEM zu setzen...

Gruß Martin

sledge

Hi Martin,

ich verstehe Dich voll und ganz - muss jedoch sagen, dass ich "hier und da" durchaus ein Freund davon bin, "one trick ponies" einzusetzten. Und openwb (oder EVCC, korrekt) macht genau das - und meines Erachtens recht autark - und damit bin ich dann wiederum sehr zufrieden.

Klar - die Solarprognose fließt bei mir auch (noch) nicht in die Ladesteuerung ein, aber in den letzten 3 Jahren gab es nur wenig, was ich vermisst habe. Und die Oberfläche - sollte man mal was umstellen müssen, ist sehr benutzerfreundlich.

Das war mir durchaus wichtig für meine Frau und die Kids (Umschaltung Sofortladen, PV-Laden, Nachtladen...)

Gruß0,

Tom
FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

martin2day

Hallo Tom,

okay... ich schau mir da openWB noch mal an.
Gleichzeitig würd ich mir die Lösung in FHEM mal erarbeiten wollen, einfach auch um wieder ein wenig zu lernen :-)
Ich habe mit dieser Art der Programmierung noch immer meine liebe Not, warum auch immer.

Mal für mein Verständnis... mit den passenden Modulen kann ich Auto, Smartmeter und Wallbox auslesen und ansteuern, dass ist klar.
Ich benötige jetzt sozusagen noch ein Bauteil wo ich meine Steuerung abbilde.

Sehe ich das korrekt, dass ich dazu zunächst ein Dummy erstelle was für die Bedienung und die Parameter da ist.
Oder muss man hier eine ReadingGroup nutzen, da hab ich aber z.b. keine ReadingList gefunden...
Und dann noch ein DOIF benötige wie die Ablaufsteuerung eingearbeitet ist?

Gruß Martin

kjmEjfu

https://forum.fhem.de/index.php/topic,114849.0.html dürfte eigentlich eine gute Basis für eigene Umsetzungen bieten.
Oder auch https://forum.fhem.de/index.php/topic,128480.0.html

Ich würde allerdings auch EVCC in den Raum werfen - oder, falls noch keine Wallbox vorhanden, dann openWB.
Migriere derzeit zu Home Assistant

martin2day

Hallo zusammen,

ich habe mich entschieden hier erst einmal zweigleisig zu fahren.
Zunächst eine fertige Lösung nutzen und damit auch meine Gewohnheiten erfahren.
Dann möchte ich aber parallel dazu eine eigene Lösung erarbeiten, einfach auch um zu lernen und diese Art der Programmierung besser zu verstehen und anwenden zu können, was mir bisher immer sehr schwer Fällt.

Ich habe bisher einige auch sehr komplexe Verfahrenstechnische Analgen Programmiert, aber dieser Art hier will mir irgendwie noch so recht von der Hand gehen, warum auch immer. Dieses möchte ich gern abstellen und dafür ist dann so ein praxisnahes einfaches Beispiel doch sehr hilfreich, finde ich.

Ich würde das ganze zunächst etwas vereinfachen und später dann erweitern.
Die Idee ist hier erst einmal für den Ladeziegel eine einfache SOC Ladung durchzuführen...

Ein/aus vom Modul -Eingang
SOC Sollwert - Eingang
EV vorhanden - Eingang
EV SOC Istwert - Eingang
Ladung EIN/AUS - Ausgang

Ich habe nun den Ein/Ausschalter und den Sollwert in einem Dummy nachgebildet. (Sollwertvorgabe)
Die beiden Signale vom EV sind auch vorhanden im Modul vom EV.

Nun bin ich an einer Stelle wo ich nicht richtig weiter komme.
In FhemWeb würde ich gern in einem Raum oder Modul sowohl Soll als auch Ist-Daten anzeigen.
In das Dummy bekomme ich zwar den SOC Istwert über UserReadings eingelesen, aber wie kann ich das dann extra Anzeigen.
Auch habe ich mitbekommen, dass es mir das UserReading nur einließt, wenn ich im Dummy einen Wert ändere. Sprich auch hier muss eine gewisse Logik her... wann wird was aktualisiert. In der SPS wird "fast immer" alles in einem Zyklus abgearbeitet... hier muss ich es denke ich definieren. :-) Aber wie und wo.  ;D

Und dann muss ich noch die Ladelogik abbilden und Zyklisch oder per Ereignis anstoßen. Nutzt man dafür dann ein DOIF?
Eventuell hat ja wer etwas Lust mir dabei etwas zu helfen... ich bin lernfähig :-)

Vielen Dank schon mal
Gruß Martin

martin2day

Guten Morgen,

ich versuche mal meine Fragen etwas präziser zu stellen... einiges habe ich bereits hinbekommen, mit etwas probieren und lesen. (100% verstanden habe ich es aber nicht  8) )
Ich habe jetzt zum spielen erst mal mehrere dummys erzeugt.
Jetzt möchte ich in dem Dummy was am Ende die Soll und Istwerte für die Regelung abbilden soll einen Istwert darstellen.

Dazu habe ich in readingList tester aufgenommen.
Wie kann ich diese Variable in fhemWeb einfach nur anzeigen... Wenn ich tester nur in webCmd aufnehme wird nicht der Inhalt der Variable sondern der Name angezeigt...
In der setList kann ich die Variable natürlich aufnehmen, aber dann ist es ja ein Input...

Oder muss ich hier den "Umweg" über Readinggroup gehen?

Gruß Martin

kjmEjfu

Migriere derzeit zu Home Assistant

pldemon

#9
Hi Martin,

Sei mir nicht böse, aber irgendwie erinnerst du an mich. Ich habe das Angebot des Soleteurs ausgeschlagen und eine eigene Lösung angefangen zu entwickeln, da die bestehenden alle zu unflexibel waren und ich meine eigenen Ideen hatte :) Dazu habe mir extra eine recht ,,dumme" Wallbox gekauft (Go-e), damit ich die Steuerung in Fhem realisieren kann.

Nach ein paar Tagen habe ich allerdings erkannt, dass all das was ich brauche (und, das waren die gleichen Punkte wie bei dir + noch noch viel mehr) bereits implementiert ist. Ich habe mich dann für Evcc entschieden und es direkt parallel auf der selben Hardware wie Fhem installiert.

Damit konnte ich auf einen Schlag die von dir genannten Punkte 1-4 vollumfänglich abdecken. Zudem waren mir noch diese Punkte wichtig, die ich ebenfalls mit EVCC realisieren konnte:
- Umschaltung zwischen 1,2 und 3 Phasen (je nach Ausbeute der PV)
- Fahrzeugfüllstand Abfragen und in Fhem verarbeiten
- Schnelladen bei bestimmten Annahmen, ansonsten nur Überschussladen

Mut EVCC war das alles recht einfach und zudem ziemlich flexibel. Möglich war das, weil EVCC mittels MQTT abgefragt UND gesteuert werden kann. So kann ich das System standardmäßig in einen ,,Automatikmodus" betreiben und mittels Fhem überwachen. Passiert etwas unerwartetes, kann ich in Fhem reagieren und die Ladeparameter augenblicklich ändern oder Aktionen absetzen. Damit ist das System autark, aber auch flexibel genug um auf alle Eventualitäten reagieren zu können.

Gruß,
Mirko

P.S: Im Anhang noch eine kleiner Ausschnitt der Daten, die ich aus EVCC heraushole und in Fhem verarbeite.

martin2day

Hallo Mirko,  8)

warum soll ich die den bösen sein... ganz und gar nicht, ganz im Gegenteil!
Ich frag ja auch hier, um eben auch zu erfahren wie und warum es andere Leute gemacht haben.
Da bin ich über jeden Hinweiß und jede Idee dankbar.

Und das was du da schreibst ist doch ebenfalls ein sehr guter Input. Mein aktueller Favorit ist ja eine GO-E Box und EVCC... und da hilft mir deine Aussage schon sehr.

Und ich habe heute mal wieder 2h versucht zu programmieren... und ich bin wieder wie verrückt gescheitert weil ich einfach nicht weiß warum oder wieso es nicht geht... oder wo ich lesen muss...

Ich habe versucht in einem DOIF eine Variable zu setzen und diese dann auf ein UserReading zu schreiben...
Sprich:

([car:SOC] >50) (
my $abc = 50;
set ladekontrolle $abc;
)
DOELSE
...


Hintergrund ist ich würde ja einige Sollwerte zunächst erst mal im Code setzen... die ja fest sind.
So will ich erst mal die Rechnung testen... aber wenn ich schon wieder hier nicht weiter komme....  :-(

Gruß Martin

martin2day

Zitat von: kjmEjfu am 05 August 2022, 10:20:22
stateFormat?

Ja das geht zumindest mit einem Reading ganz gut... wenn ich mehrere Reading nutze, dann kann ich das zusammenhängen, sieht aber optisch nicht mehr so toll aus... ich teste das aber mal so.
Vielen Dank

daedalus0815


...ich steh auf der Leitung...(alles unter Vorbehalt)


([car:SOC] >50)
     (set ladekontrolle 50)   ### zu einfach ???
DOELSE
...


([car:SOC] >50)
    (set ladekontrolle [car:SOC] )
    (setreading $SELF ladekontrolle [car:SOC] )                    ## legt Reading ladekontrolle zum Testen an
    (setreading $SELF ladekontrolle2  {( [car:SOC:d]-10)}    ) ## legt Raeding ladekontrolle2 zum Testen an // optional  :d für dezimal
DOELSE
...




...wo das Problem liegt.

Falls dein $abc das Ergebnis irgendeiner vorgelagerten Operation ist, kannst du es womöglich in ein Reading  einstellen und du hättest dann:


([car:SOC] >50)
     (set ladekontrolle [$SELF:abc]  )
DOELSE
...



sweetie-pie

Zitat von: pldemon am 05 August 2022, 17:51:20P.S: Im Anhang noch eine kleiner Ausschnitt der Daten, die ich aus EVCC heraushole und in Fhem verarbeite.

Hi,

das sieht sehr interessant aus und trifft in etwa meine Vorstellungen.
Da ich auch evcc per mqtt in fhem eingebunden habe, die Frage:

Kannst Du evtl. die Definitionen für evcc, log und svgs zur Verfügung stellen?

Man muss ja nicht immer das Rad neu erfinden. :-)

Gruß
  sweetie-pie