Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Planner: add schedule #5492

Closed
andig opened this issue Dec 18, 2022 · 78 comments · Fixed by #16091
Closed

Planner: add schedule #5492

andig opened this issue Dec 18, 2022 · 78 comments · Fixed by #16091
Assignees
Labels
backlog Things to do later ux User experience/ interface

Comments

@andig
Copy link
Member

andig commented Dec 18, 2022

Zielladen ist ein super Feature, jedoch wäre es auch für mich extrem hilfreich, wenn man das Zielladen nicht jedes mal neu aktivieren müsste.
Bei mir würde jeden Morgen 90% (gerade im Winter wo eh nichts mit PV los ist) passen. Irgendwann vergesse ich das Zielladen zu aktivieren und stehe dann morgens fast blank da. Den MinSOC habe ich nur auf 30%. Wegen meinen dynamischen Strompreisen ist der Strom wenn ich komme einfach zu teuer und will das Sofortladen möglichst unterdrücken. So will ich immer in der Nacht laden. Ein Häkchen für immer um z.B. 5:00 Uhr Zielzeit würde genügen. Wenn dann noch die Funktion "lade zum günstigsten Preis kommt" bin ich fast wunschlos glücklich.

Originally posted by @ThiloBaWue in #1433 (comment)

Depends on #5445, #5271

@andig andig added enhancement New feature or request ux User experience/ interface labels Dec 18, 2022
@andig
Copy link
Member Author

andig commented Dec 18, 2022

@naltatis I'm already working on zoned tariffs. Those need a day schedule like (Mo-Fr and Sa-So). On that basis we could also add a week schedule for target charging (like 80% Mo-Fr 7:00 instead of 80% on 16th 7:00). If you want to look at the UI part I'll work out the api.

@github-actions github-actions bot added the stale Outdated and ready to close label Jan 8, 2023
@magnifikus
Copy link

Eine Option für Wochentage wäre aber auch ideal, sowas wie MO-DO:17:00,FR:13:00,SA-SO:11:00, alternativ könnte man ja auch einfach 7 Werte für jeden Wochentag erlauben 17,17,17,17,13,11,11 z.B. alternativ nur 7 für immer den gleichen Wert.

@github-actions github-actions bot removed the stale Outdated and ready to close label Jan 10, 2023
@schenlap
Copy link
Contributor

Als Referenz, zoned tariffs: #5583

schedule könnte dann so aussehen:

tariffs:
  planner:
    - days: Mo-Fr
      targettime: 7:00
    - days: Sa
      targettime: 9:00

oder sollte es am loadpoint liegen?

@andig
Copy link
Member Author

andig commented Jan 16, 2023

Vielleicht sogar eher am Fahrzeug?

@premultiply
Copy link
Member

Oder sowohl als auch?

@github-actions github-actions bot added the stale Outdated and ready to close label Feb 6, 2023
@andig andig removed the stale Outdated and ready to close label Feb 8, 2023
@github-actions github-actions bot added the stale Outdated and ready to close label Mar 1, 2023
@DK4FT
Copy link

DK4FT commented Mar 1, 2023

Das Feature Ladeplanung ist klasse!

Gibt es schon ein Update zum "add schedule" #5492 ?
(Bin leider kein Entwickler und kann zum Coding nix beitragen, helfe aber immer gerne beim Testen...)

Hintergrund:
Habe einen PlugIn Hybrid mit kleinem Akku, sprich der muss jeden Tag an die Wallbox.
Ist halt etwas nervig jeden Abend Zielladen einzustellen...

@andig andig removed the stale Outdated and ready to close label Mar 1, 2023
@andig
Copy link
Member Author

andig commented Mar 8, 2023

Aus #6695 (reply in thread):

Die zweite Anregung: täglich X Stunden oder X kWh ist eigentlich eine Spielart von #5492 die dann nicht auf den Soc sondern einfach auf die Menge schaut. Im Prinzip wiederholtest Zielladen ohne Soc wie bei den Offlinefahrzeugen.

@maf-soft
Copy link

maf-soft commented Mar 27, 2023

Falls noch nicht bedacht: ein einmaliger Plan ("nur nächsten Samstag 9:00") wäre noch praktisch.

@andig
Copy link
Member Author

andig commented Mar 27, 2023

@maf-soft Das geht doch heute schon?

@maf-soft
Copy link

@andig Aber nur wenn das Auto schon angesteckt ist und bis dahin auch bleibt - oder habe ich was übersehen?

@andig
Copy link
Member Author

andig commented Mar 27, 2023

Das ist ein guter Punkt:

// reset plan once charge goal is met
lp.setTargetTime(time.Time{})
lp.setPlanActive(false)

Müssten wir überlegen ob wir das ändern wollen. Wenn Du aber eh noch 8x los fährst- warum dann heute schon den Plan für Samstag einstellen?

/cc @premultiply

@maf-soft
Copy link

Weil ich jetzt schon weiß, dass ich Samstag eine große Tour mache und rechtzeitig an alle wichtigen Voraussetzungen denken will. Eh noch 8x los fahre ich bis dahin für spontane Kleinigkeiten, die nicht geplant werden müssen. Am Ende möchte man das natürlich im UI einstellen, aber ich dachte das wäre jetzt hier die Gelegenheit, die Voraussetzungen zu schaffen.

@kakulukia
Copy link

Interessant wäre auch eine Option zur Schonung des Akkus hinzuzufügen. Dann muss ich da selber gar nicht drauf achten und stecke einfach immer mein Auto an.

Hier mal eine Referenz: https://www.e-mobileo.de/10-tipps-wie-der-akku-laenger-haelt/

Ergo: Es wird per default immer nur bis 80% geladen und wenn ich dann nur mal kurz zum Supermarkt fahre, das Auto direkt wieder anstecke und er mit 75% erfasst wird, lässt evcc das Auto in Ruhe bzw. würde erst wieder bei einer konfigurierbaren Schwellen anfangen zu laden.

@Marty56
Copy link

Marty56 commented Apr 16, 2023

Vielleicht könnte man das Ziel minimum SOC nach jahreszeitabhängig machen.
Das habe ich mit meiner Homeautomation und dem Rest API so gemacht.
In den Wintermonaten deutlich höher, als im Sommer. Monatsabhängig ist m.M. von der Granularität ausreichend.

@diver77
Copy link

diver77 commented Apr 21, 2023

Falls noch nicht bedacht: ein einmaliger Plan ("nur nächsten Samstag 9:00") wäre noch praktisch.
@andig Aber nur wenn das Auto schon angesteckt ist und bis dahin auch bleibt - oder habe ich was übersehen?

ja das fehlt mir sehr oft und verstehe ich auch nicht.
Hatte es heute morgen schon wieder.
Gestern den Plan eingeschalten, auf 80% laden bis heute morgen 6.00Uhr

Gestern abend ist dann meine Schwiemu nochmal losgefahren und hat das Auto auch wieder angesteckt.
Leider war das Auto heute morgen bei 30% weil der Plan nicht mehr vorhanden war.

wisst ihr denn schon bis wann der Wochenplaner kommen soll?

Danke für Eure super Arbeit.

Gruß Diver

@andig
Copy link
Member Author

andig commented Apr 21, 2023

Das ist dann #5271. Ob der Plan auch erhalten bleiben soll wenn das Auto abgesteckt wird (und nicht nur bei einem Neustart von evcc) wäre zu diskutieren.

@micw
Copy link

micw commented Apr 27, 2023

Heute morgen war das Auto leer, weil wir vergessen haben, die Zielzeit einzugeben. Zum Glück war das andere noch genügend geladen. Wäre es denkbar, erst einmal eine ganz einfache Standard-Zielzeit umzusetzen und all die konfigurierbaren Dinge wie Wochentage Stück für Stück nachzurüsten?
Beim Loadpoint kann ich ja schon mit "mode", enable und disable viel festlegen. Wenn jetzt noch "Zielzeit" als Config-Parameter hinzukäme, wären bestimmt 80% der Use-Cases erfüllt.

@JoernHei
Copy link

JoernHei commented Feb 3, 2024 via email

@hermann-59
Copy link

Die optimalen Einstellungen sind wahrscheinlich bei jedem ein bisschen anders. Wenn ich im Sommer mit "PV" lade, ist der Akku eigentlich immer bei Sonnenuntergang voll, ohne Strom dazuzukaufen.
In der restlichen Zeit lade ich mit "min+PV". Bleibt mehr als die 1,4kW übrig, nutzt das evcc, ansonsten wird mit 1,4kW geladen. Auch da ist bei Sonnenuntergang der Akku voll, aber ein Teil kommt eben vom Stromversorger.
Schön wäre es, wenn evcc beim Betrieb mit "min+PV" eine Prognose hätte, mit welcher errechnet werden könnte, wann heute mit dem höchsten Ertrag zu rechnen ist und die Ladezeit/-leistung dementsprechend anpassen könnte.

Ach ja: Das Umschalten des Lademodus per UI sollte natürlich persistent sein, der aktuell eingestellte Lademodus also auch bei einem Neustart von evcc nicht verloren gehen.

@JoernHei

This comment was marked as off-topic.

@schenlap
Copy link
Contributor

schenlap commented Feb 4, 2024

Ich poste hier nochmals mein Skript dass beim Anstecken eines Fahrzeugs einen Plan erstellt.

Änderung an der evcc.yaml:

# push messages
messaging:
  events:
    connect: # vehicle connect event
      title: Car connected
      msg: "${vehicleTitle} Car connected, mode:${mode}"
    guest:
      title: Guest connected
      msg: "${vehicleTitle} Guest connected, mode:${mode}"
  services:
    - type: script
      cmdline: /home/pi/evcc/evcc_message # ev. anpassen
      timeout: 50s

Das script liegt am server, wo auch evcc läuft, unter /home/pi/evcc/evcc_message und muss ausführbar sein:

ip=localhost:7070
log="/tmp/evcc_targettime.log"
now=$(date)
car=Audi  # Fahrzeugname laut evcc.yaml

echo "message received: $1 - $2 - $now" >> $log
if [[ "$2" == *"connected, mode:pv"* ]] # guest and car
then
        soc=50
        week_day=$(date +%w) #get the week day as a number from 0 to 6 starting with 0 as Sunday
        if [[ $week_day -ge 0 && $week_day -le 4 ]] # from monday to thursday
        then
                targettime=$(date -d "+1 day" -u +"%Y-%m-%d")T05:00:00Z
                soc=95
        else
                targettime=$(date -d "+1 day" -u +"%Y-%m-%d")T07:00:00Z
                soc=60
        fi
        curl -X POST http://localhost:7070/api/vehicles/$car/plan/soc/$soc/$targettime >> $log
        curl -X POST http://localhost:7070/api/vehicles/$car/limitsoc/100 >> $log
        echo "Setting targettime: " $targettime to $soc >> $log
else
        echo "Wrong message: " $2 >> $log
fi

Ist der nächste Tag ein Wochentag, dann wird per plan auf 95% geladen. Ist der nächste Tag ein Wochenende, dann auf 60% (Reserve für pv Ladung). Der Fahrzeugname muss mit der yaml übereinstimmen. Mit dem Script brauchte ich nur selten eingreifen.

@DK4FT
Copy link

DK4FT commented Feb 4, 2024

Habe die gleichen Bedingungen wie herman-59: Golf GTE (Hybrid) mit kleinem Akku, keinen Haus-Akku und tägliche Fahrten unter 40km, für die 80% Ladestand ausreichen, wenn er auch geladen ist und ich es nicht mal wieder vergessen habe zu aktivieren...

@schenlap top, danke fürs Teilen.
Klingt nach einer guten Lösung, bis persistente Pläne es in die Applikation schaffen.
Habe es gerade ausprobiert, aber eine Fehlermeldung vom Messaging erhalten (debug Meldung) und die evcc.yaml noch an einem Punkt angepasst...

ERROR 2024/02/04 16:53:18 invalid message template for connect: 
wanted: [vehicleTitle], 
got: [guardAction smartCostActive planEnergy batteryDischargeControl residualPower vehicleDetectionActive chargeCurrent smartCostLimit bufferStartSoc tariffPriceHome pv effectivePriority guardRemaining planProjectedStart phaseAction phases1p3p chargeDuration pvPower vehicleTargetSoc bufferSoc vehicleSoc loadpoint auth phasesConfigured gridEnergy tariffFeedIn chargerFeatureIntegratedDevice greenShareLoadpoints tariffGrid sessionCo2PerKWh sponsorTokenExpires phaseRemaining siteTitle chargerFeatureHeating homePower effectivePlanSoc chargerIcon minCurrent chargeTotalImport effectivePlanTime sessionPrice gridConfigured effectiveLimitSoc enabled vehicleClimaterActive pvEnergy phasesActive gridPower limitSoc connected charging gridPowers vehicleOdometer chargedEnergy chargePower planTime mode pvRemaining chargeCurrents planOverrun smartCostType tariffPriceLoadpoints enableThreshold sessionSolarPercentage batteryMode effectiveMinCurrent connectedDuration gridCurrents maxCurrent disableThreshold vehicleName sessionEnergy statistics version vehicles greenShareHome limitEnergy priority pvConfigured effectiveMaxCurrent pvAction title batteryConfigured sessionPricePerKWh currency phasesEnabled prioritySoc vehicleRange sponsor]

Statt "vehicleTitle" habe ich in der evcc.yaml den "vehicleName" eingesetzt, dann läuft es 1a....

Hier der aktualisierte Schnipsel...

# push messages
messaging:
  events:
    connect: # vehicle connect event
      title: Car connected
      msg: "${vehicleName} Car connected, mode:${mode}"
    guest:
      title: Guest connected
      msg: "${vehicleName} Guest connected, mode:${mode}"
  services:
    - type: script
      cmdline: /home/pi/evcc/evcc_message.sh # ev. anpassen
      timeout: 50s

@mars-wolf
Copy link

Ich schließe mich für jenen Wunsch an. Das wäre nicht das Sahnehäubchen auf evcc, das ist evcc an sich ja schon, das wäre der Goldpuder auf dem Sahnehäubchen. Für mich persönlich müsste ich nie wieder denken und was verstellen. Einstecken und fertig. Habe mir erlaubt in der Bildbearbeitung hierzu was zu erstellen. Wäre super, wenn das möglich würde,
planpv

@JoernHei
Copy link

Ich verstehe das als Laden mit min Ladeleistung bis der Plan erfüllt ist und bei PV Überschuss die Ladeleistung erhöhen und/oder den Plan überschreiten. Korrekt?

@mars-wolf
Copy link

Mh... nicht direkt. Einfach, dass der derzeitig einmal einstellbare Plan für den Folgetag als Standard immer übernommen wird beim Einstecken.

Jetzt stecke ich an und ich habe "PV" voreingestellt, muss dann aber immer evcc öffnen und unten auf "PLAN" manuell gehen und dann aktivieren. Exakt jenen Schritt möchte ich nicht mehr machen müssen.

Gewünschtes Ergebnis-Ziel:

  • Wagen wird eingesteckt, PV wird nach Möglichkeit genutzt (unter Berücksichtigung meiner Hausbatterieinstellungen); wenn nicht möglich, dann temporär abstellen und bis morgens voreingestellt 7.00h mit günstigem tibber-Strom Rest vollmachen

(das könnte man noch auf die Spitze treiben mit Einstellungen Mo-Fr und Wochenende trennen (ähnlich in der Tesla-App))

Mein Hirn kann ich damit 365 Tage im Jahr ausschalten. Alles, wirklich alles macht die Logik nach meinen Einstellungen, Präferenzen und Wünschen dann im Hintergrund.

Ich lade stets nur mit einer Phase zu 21A (Schieflast), was mir gute 5 kW bringt, der Tesla macht max. 11 kW, aber dafür wird bei 1,4 kW Überschuss schon mit laden begonnen. Da ich Durchschnittspendler mit 50 km/Tag bin, würde das alles perfekt ineinander passen.

@docolli
Copy link
Contributor

docolli commented Feb 13, 2024

Gelduld, wird kommen und sieht vom Ansatz her sehr gut aus!
Siehe Screenshots #5492 (comment)

@naltatis
Copy link
Member

Gelduld, wird kommen und sieht vom Ansatz her sehr gut aus!

So ist es 😄

@docolli
Copy link
Contributor

docolli commented Feb 13, 2024

Aktuell "behelfe" ich mich mit dem hier veröffentlichen Script. Modus steht immer auf "PV", Plan wird beim Einstecken erstellt mit 80% bis 6h in der Früh.
Heute war Sonne, aber durch das späte Einstecken war der Autoakku noch nicht auf dem Limit von 80% als die Sonne weg war. Mein Hausakku hat noch eine Weile mit 1,4kW ausgeholfen bis kurz vor 18h. Jedoch hat der Plan SOFORT nach dem PV Laden mit maximaler Ladeleistung aus dem Netz losgelegt und das Auto war auf den geplanten 80% bereits um 19h.
grafik

Grund ist klar, sofort nach dem Ende der PV Erzeugung ist der CO2 Wert aus dem Netz noch am niedrigsten (von den Werten bis 6h morgens) und somit hat der Plan CO2 optimiert geladen (mit Preisoptimiert wäre es vermutlich anders gewesen, habe aber keinen dynamischen Stromtarif).
Das ist aber nicht exakt das, was ich wollte. Mir hätte der SOC des Autos rein durch PV auch gereicht, eventuell halt morgen nochmals von PV geladen. Das könnte ein Nachteil von wiederholenden Plänen sein, dass so ein ständig aktiver Plan u.U. sofort loslegt. Hier könnte es sinnvoll sein, einen wiederholenden Plan mit Zeiten zu versehen, an denen er aktiv sein darf.
So könnte ich den wiederholenden Plan z.B. nur zwischen 22h und 6h aktiv machen, somit wäre heute rein mit PV geladen worden und vor 22h hätte ich in Ruhe ausstecken können. Hätte ich gesehen, dass mir der SOC für morgen nicht reicht, hätte ich eingesteckt gelassen und morgen früh wäre das Auto auf 80% gewesen.

@schenlap
Copy link
Contributor

Ich glaube da werden ein paar Dinge nicht verwendet wie angedacht.
Wenn es dir nicht wichtig ist dass das Auto bis 6:00 fertig geladen hat, warum erstellst du den Plan dann so? Natürlich versucht der Plan das dann auch so zu machen. Du hast außerdem eingestellt dass er CO2 optimiert laden soll (bezieht sich jetzt nur auf den Netzbezug, Prognose für PV gibt es aktuell noch nicht), dann macht er das so. Wenn dir beides nicht so wichtig ist, warum verwendest du es dann so?

Aus dem beschriebenen Use-Case würde ich ableiten:

  • CO2 beim Tarif weglassen, dann wird spätest möglich geladen
  • Für Plan ein anderes Limit verwenden wie für PV (dann wäre es möglich in der Nacht auf 60% zu laden und dann am morgen weiter)
  • Plan auf die tatsächliche Abfahrzeit einstellen
  • Einen Plan kann man auch wieder löschen wenn er nicht gebraucht wird (ist meist weniger aufwändig als das Auto auszustecken)

@docolli
Copy link
Contributor

docolli commented Feb 14, 2024

Nicht falsch verstehen, das war keine Kritik an den wiederkehrenden Plänen, sondern einfach ein Erfahrungsbericht, den ich hier teilen wollte.

Mir ist schon klar, woran es gestern lag, dass die Ladung sofort nach Ende der PV Produktion gestartet ist und wie ich das verhindern kann (keine CO2-Optimierung). Evcc hat so viele tolle Konfigurationsmöglichkeiten, aber wie so oft, ensteht aus der Kombination dieser Möglichkeiten eine Komplexität, die dann nicht immer zum erwünschten Verhalten führt.

Die Wunschvorstellung bei uns im Haus ist, dass man das Auto ansteckt und sich das "System" automatisch darum kümmert ideal (also mit möglichst wenig Netzstrom, aber auch CO2 optimiert) zu laden, aber man dennoch, wenn notwendig, z.B. 80% Ladung im Auto hat. Solange evcc die Brain-Schnittstelle noch nicht implementiert hat, stellen wir uns das so vor:

  1. Anstecken tagsüber (vor der Garage), wenn PV Überschuss vorhanden ist -> Auto wird nur mit Überschuss geladen, finaler Soc des Autos ergibt sich aus der Überschussmenge (das können eben auch mal nur wenige Prozent sein, oder eben bis zum gewählten Soc Limit). Auch wenn das Auto erstmal nach PV Produktion angesteckt bleibt, sollte zunächst nicht weiter geladen werden. Abends (20-22h) stecke ich aus und fahre das Auto in die Garage. Stecke ich dort zu dieser Zeit wieder ein, so soll 2) erfüllt werden.

  2. Auto wird (oder bleibt) angesteckt über Nacht (in der Garage) -> Auto wird Nachts bis zum eingestellten Zeitpunkt (per Plan am nächsten Morgens um 6h) auf den eingestellen Soc geladen (80%).

  3. Die Wallbox hat einen Schlüsselschalter, mit dem ich bequem beim Einstecken den evcc Lademodus von PV auf Schnell umschalten kann. So kann man das Auto, egal wann, wenn notwendig möglichst rasch auf den Ziel Soc laden, egal woher der Strom kommt.

Meine Vorstellung war, dass der wiederkehrende Plan uns Punkt 1) und 2) erfüllt, die Erfahrung gestern zeigte aber, dass, wenn CO2 optimiertes Laden aktiv ist, das Zeitfenster nach Ende PV Überschuss bis die Ladung aus dem Netz startet sehr kurz ist, also 1) so nur teilweise erfüllt wird. Hier gibt es einen Zielkonflikt zwischen "möglichst nur Überschuss laden", "wenn Auto über Nacht eingesteckt ist, dann bis morgens auf den Plan Soc laden" und "CO2 optimiert laden". Also entweder ich verzichte auf die CO2 Optimierung, oder ich kann den Start des Plans so weit verschieben (z.B. 22h), dass ich bis dahin das Auto abgesteckt und in die Garage gefahren habe. Dort kann ich dann einfach durch die Entscheidung "stecke ich nochmals ein" festlegen, ob ich morgens ein voll geladenes brauche, oder nicht.

PS: Ich kann das mal simulieren, indem ich das Script so erweitere, dass es nur dann einen Plan erstellt, wenn das Einstecken in einem bestimmten Zeitfenster (z.B. nach 22h) erfolgt ist.

@schenlap
Copy link
Contributor

Genau, es widerspricht sich "CO2 optimiert" und doch die Zeit vorgeben wollen. Mit einer zeitlichen Einschränkung auf 22-06 machst du auch nichts anderes als dass du das CO2 Optimum aufgibst. Ich denke mit einem möglichst hohen PV Anteil erreicht man da sowieso mehr.

Du kannst bei dem Script vermutlich auch auf den Loadpoint gehen und so eine Unterscheidung machen (habe ich nicht probiert)

@naltatis
Copy link
Member

@schenlap @docolli Eure Diskussion klingt nach nem Kandidaten für "Discussions" :D

@naltatis
Copy link
Member

naltatis commented Mar 8, 2024

Anwendungsfall, den wir mit berücksichtigen sollten: #10950 (comment)

@andig
Copy link
Member Author

andig commented Mar 8, 2024

Das gehört unabhängig vom Schedule eher in #11654, da ist es auch schon verlinkt.

@xieve
Copy link

xieve commented Sep 2, 2024

Wie sieht die momentane Situation aus mit diesem Feature? Das wäre für mich eigentlich der Hauptgrund, evcc zu verwenden. Kann auch gerne etwas beitragen bzw. wäre auch willens das selbst zu implementieren, anhand des UI mock-ups von @naltatis weiter oben.

@maetheagle

This comment was marked as off-topic.

@rhuss

This comment was marked as off-topic.

@GrimmiMeloni
Copy link
Collaborator

👏👏👏👏

@laenglea
Copy link

Wow ist das cool! Bin gerade heute morgen mit einer leeren Batterie dagestanden ,weil ich gestern verpennt habe die Zielladung zu aktivieren.
Jetzt wollte ich mich gerade hinsetzen um eine Loesung fuer das nachtstomlanden mit evcc zu finden und da sehe ich - es ist schon fertig. Noch dazu so elegant.

Vielen Vielen und nochmal Vielen Dank!
Das ist grossartig!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backlog Things to do later ux User experience/ interface
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.