Closed cschlipf closed 10 months ago
Also mit Version 0.123.1 (d3fe1fc0) funktioniert es
Also mit Version 0.123.1 (d3fe1fc) funktioniert es
0.123.1 habe ich übersprungen, aber wie Du sehen kannst, fehlen mir alle Daten seit dem 0.123 upgrade. Zufall? Oder habe ich in meiner Config seit dem Update noch einen Fehler drin?
Wenn evcc vehicle den SoC anzeigen kann und er auch im UI angezeigt wird, dann sollte es doch auch in die Influx geschrieben werden, oder nicht?
ich hab jetzt das aktuelle nightly drauf. Bei mir kommen Daten an.
> select * from vehicleSoc order by time desc limit 10
name: vehicleSoc
time loadpoint value vehicle
---- --------- ----- -------
1703780996000000000 Carport 50 (T)Raumschiff
1703780951000000000 Carport 49.495867768595154 (T)Raumschiff
1703780861000000000 Carport 49.37190082644622 (T)Raumschiff
1703780694000000000 Carport 49.247933884297574 (T)Raumschiff
1703780591000000000 Carport 49.12396694214893 (T)Raumschiff
1703780151000000000 WP SG+ 50 WasserSG
1703780096000000000 WP -Anzeige- 10 WasserWP
1703780088000000000 Garage 95 E-Bikes
1703780087000000000 Carport 49 (T)Raumschiff
1703780070000000000 Waschen -Anzeige- 0 Waschmaschine
> select value from vehicleSoc order by desc limit 10
name: vehicleSoc
time value
---- -----
1703780996000000000 50
1703780951000000000 49.495867768595154
1703780861000000000 49.37190082644622
1703780694000000000 49.247933884297574
1703780591000000000 49.12396694214893
1703780151000000000 50
1703780096000000000 10
1703780088000000000 95
1703780087000000000 49
1703780070000000000 0
>
Ich glaube Dir ja, dass es bei Dir tut. Aber was tut bei mir nicht?
Aktueller Stand:
cschlipf@home:~ $ evcc vehicle
[main ] INFO 2023/12/28 18:45:29 evcc 0.123.2
[main ] INFO 2023/12/28 18:45:29 using config file: /home/cschlipf/evcc.yaml
[db ] INFO 2023/12/28 18:45:30 using sqlite database: /home/cschlipf/.evcc/evcc.db
[mqtt ] INFO 2023/12/28 18:45:30 connecting evcc-384595332 at tcp://localhost:1883
Soc: 55%
Capacity: 79.0kWh
Charge status: C
Charged: 0.4kWh
Range: 306km
Odometer: 26097km
Finish time: 2023-12-28 20:55:00 +0100 CET
Position: 0,0
Target Soc: 85%
OnIdentified: Mode:pv
Features: [CoarseCurrent]
EVCC erkennt das Fahrzeug, sieht den Soc. In die InfluxDB werden eifrige Daten geschrieben (die Charts aus dem Grafana Dashboard kommen alle aus EVCC Daten und chargePower wird parallel dazu, das vehicleSoc in der Influx absolut null neue Daten bekommt, ebenfalls eifrig aktualisiert (wie alle anderen InfluxDB Tabellen auch - eben nur nicht vehicleSoc).
Letzter Ladevorgang, bei dem noch vehicleSoc geschrieben wurde vor 0.123:
Heute während des aktuellen Ladevorganges:
Irgendeinen Tipp, was ich nun machen kann?
Gerade nochmal EVCC neu gestartet während der Ladevorgang läuft und das Auto wach ist. Für den Loadpoint Stellplatz (an dem das Auto nicht dran hängt) wird ein Wert von 0 geschrieben beim Neustart. Für den Loadpoint Garage, wo gerade geladen wird, wird gar nichts geschrieben:
Hm. Habe nun ein Downgrade auf 0.122.1 gemacht. Auch damit habe ich nun dasselbe Verhalten wie mit der 0.123.2. Einziger Unterschied: Beim Restart wird auch für den Stellplatz gar kein Wert mehr geschrieben.
Ich habe deine Konfig mit meiner verglichen und eigentlich nur einen Unterschied festgestellt.
Ich habe an meinen Loadpoints einen soc
Eintrag.
Bei den Shellies nur mit estimate: false
am Carport auch noch mit poll
.
Habe nun diese Loadpoint Config:
loadpoints:
- title: Garage
charger: easee-garage
# vehicle: tesla-m3-lr
# mode: pv
phases: 0
minCurrent: 6
maxCurrent: 16
soc:
poll:
mode: charging
interval: 60m
estimate: true
- title: Stellplatz
charger: easee-stellplatz
# vehicle: tesla-m3-lr
# mode: pv
phases: 0
minCurrent: 6
maxCurrent: 16
soc:
poll:
mode: charging
interval: 60m
estimate: true
Keine Änderung :-(
Habe nun mal die Config vom 17.12. aus dem Backup geholt mit 0.122.1 (beim Upgrade zu 0.123 mussten ja einige Parameter entfernt werden). Auch damit keine Änderung. Ich werde wahnsinnig. Alles wird geschrieben - außer dieser blöde vehicleSoc.
Und wenn der Soc im EVCC UI angezeigt wird und evcc vehicle
ihn auch korrekt erfasst, dann sollte EVCC den Wert doch auch wie alle anderen Werte in die Influx schreiben. Oder wo ist hier mein Gedankenfehler?
Was sagt denn das log mit influx: trace
?
Auch seltsam:
Beim EVCC restart wird für den Loadpoint 'Garage' nur ein Wert geschrieben, wenn kein Auto dran hängt oder wenn das Auto abgekoppelt wird.
Was sagt denn das log mit
influx: trace
?
Kannst Du mir mal genauer erklären, was ich hier tun muss?
Den Eintrag beim Log-Level ergänzen.
log: info
levels:
cache: error
influx: trace
evtl noch soc.poll auf "always" mit 1 Minute ändern (nur testweise) Neustart, evtl Ladung starten und dann nach ein paar Minuten Log abrufen https://docs.evcc.io/docs/guides/setup#wie-kann-ich-ein-logfile-zur-fehleranalyse-erstellen
Ich habe mal einfach evcc -l trace ausgeführt und alle influx Einträge in obiges Files gegrepped. EVCC wurde gestartet. Auto war nicht verbunden. Dann Auto verbunden und einen Ladevorgang gestartet.
Bei der suche nach vehicleSoc bin hier auf diese Zeilen gestoßen:
cschlipf@home:~ $ grep vehicleSoc evcc.influx.trace.log
[influx] TRACE 2023/12/28 19:54:20 write vehicleSoc=map[value:0] (map[loadpoint:Garage])
[influx] TRACE 2023/12/28 19:54:20 write vehicleSoc=map[value:0] (map[loadpoint:Garage])
[influx] TRACE 2023/12/28 19:54:29 write vehicleSoc=map[value:0] (map[loadpoint:Stellplatz])
[influx] TRACE 2023/12/28 19:54:29 write vehicleSoc=map[value:0] (map[loadpoint:Stellplatz])
[influx] TRACE 2023/12/28 19:55:35 write vehicleSoc=map[value:64] (map[loadpoint:Garage vehicle:Mr White])
Nach der letzten zu Urteilen hätte er also einen Wert für das Auto in der Garage von einem Soc von 64% schreiben müssen (welcher der aktuelle Wert ist).
Aber:
> select * from vehicleSoc order by desc limit 10
name: vehicleSoc
time loadpoint value vehicle
---- --------- ----- -------
2023-12-28T19:05:25Z Stellplatz 0
2023-12-28T18:54:29Z Stellplatz 0
2023-12-28T18:54:20Z Garage 0
2023-12-28T18:53:34Z Stellplatz 0
2023-12-28T18:53:26Z Garage 0
2023-12-28T18:44:42Z Stellplatz 0
2023-12-28T18:44:23Z Garage 0
2023-12-28T18:43:50Z Garage 0
2023-12-28T18:42:40Z Stellplatz 0
2023-12-28T18:26:48Z Stellplatz 0
Das volle Trace Log um das schreiben des vehicleSoc sieht so aus:
[influx] TRACE 2023/12/28 19:55:33 write effectiveLimitSoc=map[value:100] (map[loadpoint:Garage vehicle:Mr White])
[db ] TRACE 2023/12/28 19:55:33 UPDATE `sessions` SET `created`="2023-12-28 19:55:33.405",`finished`="0000-00-00 00:00:00",`loadpoint`="Garage",`identifier`="",`vehicle`="Mr White",`odometer`=NULL,`meter_start_kwh`=5288.064575833339,`meter_end_kwh`=NULL,`charged_kwh`=0,`charge_duration`=NULL,`solar_percentage`=NULL,`price`=NULL,`price_per_kwh`=NULL,`co2_per_kwh`=NULL WHERE `id` = 8 1 <nil>
[easee ] TRACE 2023/12/28 19:55:33 POST https://api.easee.com/api/chargers/XXXX/settings
[easee ] TRACE 2023/12/28 19:55:33 {"smartCharging":true}
--
[{"device":"XXXX","commandId":11,"ticks":638393865338928810}]
[easee ] TRACE 2023/12/28 19:55:35 CommandResponse XXXX: {SerialNumber:XXXX ID:11 Timestamp:2023-12-28 18:55:33.892881 +0000 UTC DeliveredAt:2023-12-28 18:55:33.83 +0000 UTC WasAccepted:true ResultCode:0 Comment: Ticks:638393865338928810}
[lp-1 ] DEBUG 2023/12/28 19:55:35 vehicle status: C
[lp-1 ] DEBUG 2023/12/28 19:55:35 vehicle soc: 64%
[lp-1 ] DEBUG 2023/12/28 19:55:35 vehicle soc limit: 85%
[lp-1 ] DEBUG 2023/12/28 19:55:35 vehicle range: 352km
[influx] TRACE 2023/12/28 19:55:35 write vehicleSoc=map[value:64] (map[loadpoint:Garage vehicle:Mr White])
[lp-1 ] WARN 2023/12/28 19:55:35 charger logic error: disabled but charging
[influx] TRACE 2023/12/28 19:55:35 write vehicleRange=map[value:352] (map[loadpoint:Garage vehicle:Mr White])
[easee ] TRACE 2023/12/28 19:55:35 POST https://api.easee.com/api/chargers/XXXX/commands/resume_charging
[influx] TRACE 2023/12/28 19:55:35 write vehicleTargetSoc=map[value:85] (map[loadpoint:Garage vehicle:Mr White])
[influx] TRACE 2023/12/28 19:55:35 write chargeRemainingEnergy=map[value:18433.333333333332] (map[loadpoint:Garage vehicle:Mr White])
[easee ] TRACE 2023/12/28 19:55:35 {"device":"XXXX","commandId":48,"ticks":638393865352364190}
Ich sehe hier keine Fehlermeldungen.
Was mir auch noch auffällt:
Ich kann die Trace Einträge für den Soc von 0 auf die DB Mappen. Jedoch habe ich hier jedesmal zwei Trace Einträge für jeweils einen Influx Eintrag.
Beim Schreiben des Wertes von 64 fehlt mir der passende Eintrag in der Influx DB und im Trace Log wird die 64 nur einmal erwähnt. Nicht doppelt wie bei den 0er Werten, die wirklich geschrieben worden sind.
Ich habe bei mir mal geschaut. Wenn geladen wird, wird ca alle 2 Minuten einmal ein Wert geschickt. Vermutlich wegen einer Soc- Änderung durch den Estimator. Doppelwerte habe ich keine. Sorry, dass ich dir nicht weiterhelfen kann.
Hab noch einen Strohhalm gefunden. Letztes gab es irgendwie Probleme mit Leerzeichen im Namen (Details nicht bekannt). Ändere doch mal deinen "Mr White" in "Mr-White".
Danke für Deine Mühe. Das Leerzeichen war es leider auch nicht. Und ChargePower schreibt er ja die ganze Zeit ohne Probleme. Ich scheine wirklich nur mit vehicleSoc ein Problem zu haben. Und es scheint unabhängig von der EVCC version zu sein...
Welche InfluxDB Version hast Du denn bei Dir am laufen? Bei mir läuft 1.8.10
das ist influx -version
? Dann auch 1.8.10
Noch ne Idee.
Erstell ein custom vehicle mit soc. Das wählst du dann im UI aus und schau mal, was dann in influx passiert.
Ich kann mir zwar nicht wirklich vorstellen, dass das etwas damit zu tun hat, aber der Tesla hat coarsecurrent
.
- name: test
type: custom
title: test
capacity: 50
soc:
source: const
value: 44
Sehr seltsam. Was hat sich geändert? Warum trifft es nur vehicleSoc und sonst keinen anderen Wert?
Bin kein Code-freak. mit einfachen Worten: Vehicle wurde vom Loadpoint entkoppelt. UNd warum bei dir und bei mir nicht.
Auch mit test, keine Änderung. ChargePower - kein Problem. VehicleSoc - Nada :-(
Und ob das Vehicle vom Loadpoint entkoppelt ist bezweifle ich. Denn der Soc wird ja weiterhin im UI angezeigt und auch via MQTT korrekt aktualisiert. Einzig und allein das Schreiben in Influx tut nicht.
Noch etwas hat sich in dem Zeitraum geändert: Das Tesla Weihnachtsupdate kam. Aber dann müsste ja das Test Vehicle trotzdem tun :-(
@cschlipf ich habe gerade mal eine minimale Repro versucht.
Habe eine Influx erzeugt, und die demo.yaml um Deine Influx Konfiguration ergänzt. Ich sehe hier Werte vom blauen e-Golf in Chronograph.
Query:
SELECT mean("value") AS "mean_value" FROM "evcc"."autogen"."vehicleSoc" WHERE time > :dashboardTime: AND time < :upperDashboardTime: GROUP BY time(:interval:) FILL(null)
Für mich riecht das nach einem Problem mit Deiner Influx. Hast Du dort mal die Logs geprüft? Vielleicht hat die irgendwie Schluckauf.
Edit: Mein Versuch basiert auf einem lokalen build vom git tag 0.123.2
.
@GrimmiMeloni Ich habe mir jetzt mal das Write Logging der Influx angeschaltet. Unten sieht man was geschrieben wird während EVCC neu startet:
Dec 29 17:16:09 home influxd-systemd-start.sh[24096]: ts=2023-12-29T16:16:09.870494Z lvl=info msg="Write body received by handler" log_id=0mPaXlw0000 service=httpd body="gridCurrents l1=0,l2=0,l3=0 1703866569\ngridEnergy value=1566.8000000000002 1703866569\nhomePower value=590 1703866569\ngreenShareHome value=1 1703866569\ngreenShareLoadpoints value=0 1703866569\nchargeCurrents,loadpoint=Stellplatz l1=0,l2=0,l3=0 1703866569\nvehicleSoc,loadpoint=Stellplatz value=0i 1703866569\nchargeCurrent,loadpoint=Stellplatz value=0 1703866569\nsessionEnergy,loadpoint=Stellplatz value=0 1703866569\nsessionSolarPercentage,loadpoint=Stellplatz value=0 1703866569\neffectivePriority,loadpoint=Stellplatz value=0i 1703866569\nvehicleClimaterActive,loadpoint=Stellplatz value=\"
In Fett habe ich die Daten markiert, die für vehicleSoc gesetzt werden. Der Stellplatz wird beim Neustart wieder auf 0 gesetzt.
Dec 29 17:28:54 home influxd-systemd-start.sh[24096]: ts=2023-12-29T16:28:54.549461Z lvl=info msg="Write body received by handler" log_id=0mPaXlw0000 service=httpd body="gridCurrents l1=0,l2=0,l3=0 1703867333\ngridEnergy value=1566.8000000000002 1703867334\nhomePower value=530 1703867334\nchargeCurrents,loadpoint=Garage,vehicle=Tesla l1=0.009999999776482582,l2=0.00800000037997961,l3=0.00800000037997961 1703867334\nchargeCurrent,loadpoint=Garage,vehicle=Tesla value=0 1703867334\nchargeTotalImport,loadpoint=Garage,vehicle=Tesla value=5301.967351666672 1703867334\nsessionEnergy,loadpoint=Garage,vehicle=Tesla value=0 1703867334\nsessionSolarPercentage,loadpoint=Garage,vehicle=Tesla value=0 1703867334\neffectivePriority,loadpoint=Garage,vehicle=Tesla value=0i 1703867334\neffectiveLimitSoc,loadpoint=Garage,vehicle=Tesla value=80i 1703867334\neffectiveMaxCurrent,loadpoint=Garage,vehicle=Tesla value=16 1703867334\neffectivePlanSoc,loadpoint=Garage,vehicle=Tesla value=0i 1703867334\neffectiveMinCurrent,loadpoint=Garage,vehicle=Tesla value=6 1703867334\ngreenShareHome value=1 1703867334\neffectivePriority,loadpoint=Garage,vehicle=Tesla value=0i 1703867334\neffectivePlanSoc,loadpoint=Garage,vehicle=Tesla value=0i 1703867334\neffectiveLimitSoc,loadpoint=Garage,vehicle=Tesla value=80i 1703867334\neffectiveMinCurrent,loadpoint=Garage,vehicle=Tesla value=6 1703867334\neffectiveMaxCurrent,loadpoint=Garage,vehicle=Tesla value=16 1703867334\ngreenShareLoadpoints value=0 1703867334\ntariffPriceHome value=0.082 1703867334\ntariffCo2Home value=0 1703867334\ntariffPriceLoadpoints value=0.227 1703867334\ntariffCo2Loadpoints value=90 1703867334\n"
Und für die Garage sieht man, dass vehicleSoc nicht gesetzt wird.
Ich habe jetzt einen Eintrag gefunden wo für die Garage der vehicle Soc gesetzt wird. Allerdings in einem Request einmal auf 0 und einmal auf 80 (der aktuell, korrekte Wert). Warum werden hier innerhalb eines Requests die Werte zweimal mit geschickt und dann mit inkonsistenten Werten?:
Dec 29 17:18:41 home influxd-systemd-start.sh[24096]: ts=2023-12-29T16:18:41.549789Z lvl=info msg="Write body received by handler" log_id=0mPaXlw0000 service=httpd body="effectivePriority,loadpoint=Garage,vehicle=Tesla value=0i 1703866721\nvehicleRange,loadpoint=Garage,vehicle=Tesla value=0i 1703866721\nvehicleCapacity,loadpoint=Garage,vehicle=Tesla value=79 1703866721\nphasesActive,loadpoint=Garage,vehicle=Tesla value=1i 1703866721\nvehicleRange,loadpoint=Garage,vehicle=Tesla value=443i 1703866721\nvehicleClimaterActive,loadpoint=Garage,vehicle=Tesla value=\"
Allerdings fehlt für 17:18:41 (16:18:41 UTC) ein Eintrag in der DB:
> select * from vehicleSoc order by desc limit 10
name: vehicleSoc
time loadpoint value
---- --------- -----
2023-12-29T16:17:48Z Stellplatz 0
2023-12-29T16:16:09Z Stellplatz 0
2023-12-29T16:13:33Z Stellplatz 0
2023-12-29T16:03:24Z Stellplatz 0
2023-12-29T16:01:31Z Stellplatz 0
2023-12-29T15:39:41Z Stellplatz 0
2023-12-29T15:39:14Z Stellplatz 0
Eine Fehlermeldung kann ich in der DB nicht finden.
Soweit ich den Code richtig interpretiere, werden die Werte nur mit einem Vehicle Tag versehen, wenn auch ein Fahrzeug am Loadpoint erkannt wurde.
Das würde zumindest beim Neustart ggf. erklären warum ohne Vehicle Tag geschrieben wird. Dann ist auch 0 sicherlich der richtige Wert. Ob für "kein Auto" immer einen "Ladestand 0" zu loggen sinnvoll oder überflüssig ist könnte man nochmal hinterfragen. Ich sehe hier aber erstmal noch keinen direkten Zusammenhang zu fehlenden Werten.
Allerdings fehlt für 17:18:41 (16:18:41 UTC) ein Eintrag in der DB:
Ich kenne das Timing Deiner DB Abfragen nicht. Wurde die Query einfach zu früh abgesetzt? Oder bleibt 2023-12-29T16:17:48Z
jetzt für immer der aktuellste Timestamp in der DB? Wenn nein, ab wann siehst Du wieder Werte?
Die Sache ist ja die: Solange das Auto an der Garage angehängt ist, wird hier gar nichts mehr geschrieben. Es werden nur die 0er für den Stellplatz geschrieben, wo kein Auto dran hängt.
Für alle anderen Measurements (also alles außer vehicleSoc) bekomme ich weiterhin aktuelle Timestamps. Für vehicleSoc derzeit nur, wenn ich EVCC neu starte, da die Werte für das verbundene Fahrzeug ja nicht mehr geschrieben werden. Auch nicht, wenn ich das Fahrzeug anstecke. Nur beim abstecken, erhalte ich dann wieder eine 0 für die Garage:
(Fahrzeug wurde gestern abend abgesteckt und heute morgen gerade eben zum testen).
Also wird der SoC nur aktualisiert, wenn kein Fahrzeug dran hängt.
Ich erkenne hier kein Todo. Wir können gerne wieder auf machen, wenn es ein evcc Log gibt es dem sichtbar wird, dass ein Wert der eigentlich da wäre nicht geschrieben wird. Die unkorrelierten Influxlogs helfen leider nicht bei der Fehlersuche.
Ich habe auch überprüft, dass der soc geschrieben wird:
Vielen Dank für all Eure Mühe.
Ich verstehe ja auch nicht was bei mir da schief läuft. An der EVCC Version scheint es nicht zu liegen (alte Version mit alter Config tut auch nicht mehr). Im UI und über MQTT zeigt EVCC die korrekten Werte an. Laut Influx Log kommt ein Schreibzugriff.
Und alle anderen Werte werden ganz normal wie eh und je korrekt in die Influx geschrieben...
Für mein Dashboard hole ich mir jetzt den SoC von TeslaMate als Workaround.
Ich melde mich, falls ich neue hilfreiche Erkenntnisse finde - aber aktuell kann ich nicht sagen, dass es an EVCC liegt. Sieht eher nicht so aus.
Ich weiß jetzt nicht was genau ihr geändert habt, aber irgendwas in entweder 0.123.8 oder 0.123.9 hat das jetzt gefixt. Habe es schon aufgegeben gehabt und sonst nichts mehr geändert. Als ich aber heute von 0.123.7 aktualisiert habe wurden die Werte auf einmal wieder geschrieben:
> select * from vehicleSoc order by desc limit 10
name: vehicleSoc
time loadpoint value vehicle
---- --------- ----- -------
2024-01-17T12:54:49Z Garage 53.164412936077845 Tesla
2024-01-17T12:53:52Z Garage 52.001349683544284 Tesla
2024-01-17T12:47:52Z Garage 52 Tesla
2024-01-17T12:46:23Z Stellplatz 0
selbiges Problem in Version 0.124.2 heute beobachten müssen
Evcc erkennt Fahrzeug ohne Probleme (Tesla mit neuer Fleet-API) ins MQTT kommen sowohl Akkustand, wie auch vehicleRange und alles weitere, in die influxdb gelangt allerdings nur vehicleRange, vehicleOdometer,... aber vehicleSoC ist immer null :-/
Das wundert mich nicht, denn der Wert heisst vehicleSoc
Describe the bug
Even though
evcc vehicle
still shows the current SOC:It is no longer written to the connected InfluxDB:
The 0's here are from recent restarts of EVCC. Last updated value is from an EVCC version prior to 0.123. Vehicle was charged after the last time stamp:
All data that is visualized here is from the EVCC connected InfluxDB.
At the same time the vehicleSoc however is still correctly sent via MQTT. Here logged via Home Assistant:
Steps to reproduce
precision rfc3339
select value from vehicleSoc order by desc limit 10
Configuration details
Log details
What type of operating system are you running?
Linux
Version
0.123.2