Update details of a user's electric vehicle
Modify the data of an electric vehicle related to a specific user under a specific organization, with a JSON payload.
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The organization ID of the user's organization
The user ID of the user whom the electric vehicle belongs to
The ID of the modified electric vehicle
Body
20AT, AT_HOURLY, BE, CH, EE, DE_LU, HR, HU, IE_SEM, IT_CNOR, IT_CSUD, IT_NORD, IT_PUN, IT_SARD, IT_SICI, IT_SUD, PT, RO, SE_1, SE_2, SE_3, SE_4, UK How an EV's HEMS start/stop thresholds are determined (SC-137).
The preset modes derive the surplus start/stop band at session start from the
household PV size (kWp) and the actuation floor — see
core_app.services.smart_charging.thresholds.derive_preset_thresholds. The
stored raw threshold columns on ElectricVehicle are read only in CUSTOM
mode (or as fallback when no usable kWp is known).
EAGER - start on a small surplus fraction of kWp; tolerate more import. BALANCED - the default middle ground. CONSERVATIVE - start only on a large surplus; stop early on import. CUSTOM - the user/operator set the raw threshold columns explicitly.
eager, balanced, conservative, custom When set, the device is considered deleted.
300Event time of the last accepted canonical plug-state write, from any source (Smartcar telemetry, OCPP wire). The arbitration watermark: a claim whose evidence time is not newer than this is stale and does not write. NULL = no claim yet, so anything wins.
Timestamp boost was activated by the workflow. NULL when no boost is active. Retained for the whole boost (REQUESTED before is_charging=true, ONGOING once charging); cleared only when the boost ends.
Timestamp the API signalled a boost cancel (owned by the API, not the workflow). Drives BoostState.STOPPING until the workflow ends the boost and clears boost_active_at. Cleared by the API on an un-cancel (re-tap).
User tapped boost while unplugged. Workflow consumes on next session start (fires signal_boost on the schedule child) and auto-resets. Means 'don't optimize next session, charge ASAP'.
Battery level at latest plug-in event
Last steering-block recovery probe attempt. NULL = never probed.
16200Response
OK
ok, warning, error, unknown ok, warning, error, unknown ok, warning, error, unknown The device's console health tone, and the only verdict a client should render: action_required when a partner-resolvable action is pending, else the worst of connection and monitoring, with not_steered for a healthy device nobody optimizes. Do not re-derive it from connection_status/monitoring_status/steering_status — those three are cue-blind and would report a device asking for reauthentication as healthy. The status filter on GET /org/{org_id}/devices and the tone counts on …/devices/summary grade the three statuses only, so a device with a pending action reads action_required here while being counted and filtered under its status tone.
good, warning, critical, not_steered Whether the platform is doing what it should for this vehicle, component by component, and where the problem starts when it is not. Every cell is a reading of state the evaluators already recorded, so a cell nothing has observed reads not_measured rather than a guess.
Deprecated — use GET /org/{org_id}/notifications/status for per-device-type counts, or GET /org/{org_id}/notifications/actions?device_id=… for the specifics. True when at least one action is pending against this device and the partner must take that action before the device can resume normal operation.
AT, AT_HOURLY, BE, CH, EE, DE_LU, HR, HU, IE_SEM, IT_CNOR, IT_CSUD, IT_NORD, IT_PUN, IT_SARD, IT_SICI, IT_SUD, PT, RO, SE_1, SE_2, SE_3, SE_4, UK 20When set, the device is considered deleted.
255300Detected OEM-app charge cap (percent). NULL = unknown / no cap detected.
Event time of the last accepted canonical plug-state write, from any source (Smartcar telemetry, OCPP wire). The arbitration watermark: a claim whose evidence time is not newer than this is stale and does not write. NULL = no claim yet, so anything wins.
Timestamp the API signalled a boost cancel (owned by the API, not the workflow). Drives BoostState.STOPPING until the workflow ends the boost and clears boost_active_at. Cleared by the API on an un-cancel (re-tap).
Battery level at latest plug-in event
Last steering-block recovery probe attempt. NULL = never probed.
1616200URL to embeddable onboarding form
Base URL for authorizing with the Podero server
Pure boost lifecycle, shared by EVs and wallboxes (SC-154). Describes only the boost, not whether the device is charging — normal optimizer-driven charging is AVAILABLE (boostable), not ONGOING.
available, requested, unavailable, ongoing, stopping 