Skip to content

EV briefly resumes on Core startup before restored plan is rejected as stale #1718

Open

Description

@segran2

Problem

On FTW v0.150.0-beta.1, an Easee charger briefly resumed during Core startup even though the site had been in a planned zero-power pause. Core sent a positive EV command before rejecting the restored MPC plan as stale. About five seconds later, after replanning, Core sent zero again.

This is a directly observed startup start/stop sequence. It is not yet evidence that the same mechanism caused the separate unexplained stop on 17 October at 23:32.

All times below are Europe/Stockholm, CEST (UTC+02:00).

Verified startup sequence — 18 October, 00:24

The restart was intentionally performed to install local diagnostic logging, while measured EV power and the current planned command were both zero. The user saw FTW temporarily lack contact with Easee before the brief charging pulse.

Time Evidence
00:24:13.369 Core starts.
00:24:14.216–14.346 Driver default mode pauses the charger and writes dynamic current 0 A.
00:24:14.515 MPC logs that an active plan was restored from persisted diagnostic data.
00:24:14.520–16.525 Initial replanning lacks online battery capacity/SoC; the previous plan is retained.
00:24:19.420 First recorded Easee observation: awaiting start, 0 W, dynamic current 0 A.
00:24:19.542–19.784 Core calls ev_set_current with 10,350 W. The driver writes 15 A, auto-resumes its paused charger and returns success.
00:24:19.784 Core logs mpc plan stale — falling back to self_consumption.
00:24:20.993 A new plan is produced, reason missing_plan_retry.
00:24:24.573 Charger reports Charging, about 554 W; physical source time is 00:24:23.
00:24:24.620–24.704 Core calls ev_set_current with 0 W; the driver writes 0 A and returns success.

Selected original log evidence:

00:24:14.515 INFO  mpc: restored active plan from persisted diagnostic
00:24:14.520 WARN  mpc: no online battery capacity with SoC — keeping previous plan
00:24:19.784 INFO  Easee: auto-resumed after pause (offer=15 A)
00:24:19.784 WARN  mpc plan stale — falling back to self_consumption
00:24:20.993 INFO  mpc: replanned ... reason=missing_plan_retry

Additional driver-boundary tracing records the positive and zero calls above, including their return values. A successful driver call means API acceptance, not proof of physical delivery. The subsequent measured pulse supplies separate delivery evidence.

No Easee HTTP, authentication or poll error was found in this startup window. The temporary contact indication is consistent with waiting for the first observation after restart; an actual Easee cloud outage has not been established. The exact Core path choosing the first positive EV target still needs a deterministic regression test.

Separate unresolved stop — 17 October, 23:32

  • At 23:32:49.348, Core detected EV power dropping from 4,712 W to 0 W and triggered replanning.
  • No Core restart occurred then; the process had been running since 19:44.
  • The retained household balance remained valid, approximately 2.6 kW. There was no invalid_balance at this transition.
  • Easee's observed dynamic current remained 8 A through the stop, increasing to 9 A afterwards. The later 15 A offer was observed around 23:46:30, not at the stop.
  • Highest retained phase samples in the inspected 23:31:50–23:33:10 window were 23.73 / 17.58 / 16.87 A, with configured 25 A fuses. These samples do not rule out unrecorded transients or thermal constraints.
  • At 23:45:34, automatic vehicle wake failed because the VAG driver is read_only. A subsequent wallbox pause/resume returned success, without immediate measured charging.
  • Charging was observed again at 23:56:19, with charger source state Charging at 23:56:11. The user confirmed no manual app action or cable change. Which automatic mechanism resumed charging is unknown.
  • An Easee observation read at 23:58:55 still contained reason 78, but its source timestamp was 23:45:41, predating renewed charging. Code 78 alone is not proof of the original stop cause or a currently blocking fault.

An unlogged pause command, another charger/circuit constraint or a vehicle-side decision cannot yet be distinguished for this older incident. Do not classify it as solved by the startup evidence.

Environment and scope

Expected behavior and next verification

  1. Reproduce startup with a restored stale plan, delayed first telemetry, a valid saved charging goal and a previously paused schedule.
  2. Establish plan validity and the applicable charging decision before dispatching a positive EV command. Avoid a transient start followed immediately by the planned pause, while preserving intentional immediate charging and all safety limits.
  3. Trace the target-selection reason, requested power, final constrained command, API result and independently timestamped charger response. Use source and receipt times separately; do not treat old change-only observations as new physical measurements.
  4. Test both Core restart and genuine driver reconnection, with and without an active charging window. Compare planned, constrained and measured delivery during the next scheduled charge.
  5. Keep the older 23:32 stop unresolved until equivalent command/response evidence identifies who initiated it.

A bounded local capture is running for the next scheduled charging period. Diagnostic instrumentation should remain outside the production fix/merge.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions