2030 lines
61 KiB
YAML
2030 lines
61 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
title: evcc
|
|
description: Solar charging. Super simple.
|
|
version: "0.2.0"
|
|
contact:
|
|
url: https://github.com/evcc-io/evcc
|
|
servers:
|
|
- url: https://demo.evcc.io/api
|
|
tags:
|
|
- name: auth
|
|
- name: battery
|
|
- name: db
|
|
- name: experimental
|
|
- name: general
|
|
- name: loadpoints
|
|
- name: sessions
|
|
- name: system
|
|
- name: tariffs
|
|
- name: vehicles
|
|
paths:
|
|
/auth/login:
|
|
post:
|
|
operationId: login
|
|
summary: Login
|
|
description: "Administrator login. Returns authorization cookie required for all protected endpoints."
|
|
tags:
|
|
- auth
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
password:
|
|
$ref: "#/components/schemas/Password"
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
headers:
|
|
Set-Cookie:
|
|
description: The authorization cookie
|
|
schema:
|
|
type: string
|
|
example: >-
|
|
auth=ey...qY; Path=/; Expires=Fri, 04 Apr 2025 14:35:37 GMT;
|
|
HttpOnly; SameSite=Strict
|
|
"401":
|
|
description: Invalid password provided
|
|
/auth/logout:
|
|
post:
|
|
operationId: logout
|
|
summary: Logout
|
|
description: Logout and delete authorization cookie
|
|
tags:
|
|
- auth
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
headers:
|
|
Set-Cookie:
|
|
description: The authorization cookie
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- auth=; Path=/; HttpOnly
|
|
/auth/password:
|
|
put:
|
|
operationId: changePassword
|
|
summary: Change admin password
|
|
description: "Changes the admin password."
|
|
tags:
|
|
- auth
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ChangePassword"
|
|
responses:
|
|
"202":
|
|
description: Success
|
|
"400":
|
|
description: Invalid password provided
|
|
/auth/status:
|
|
get:
|
|
operationId: getAuthStatus
|
|
summary: Authentication status
|
|
description: Whether the current user is logged in.
|
|
tags:
|
|
- auth
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- "true"
|
|
- "false"
|
|
/auth/apikey:
|
|
get:
|
|
operationId: getApiKeyStatus
|
|
summary: API key status
|
|
description: |
|
|
Reports whether an API key has been generated. The key itself is
|
|
only returned once at creation time (POST), never on subsequent
|
|
reads.
|
|
tags:
|
|
- auth
|
|
security:
|
|
- cookieAuth: []
|
|
- bearerAuth: []
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
configured:
|
|
type: boolean
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
post:
|
|
operationId: regenerateApiKey
|
|
summary: Generate or rotate the API key
|
|
description: |
|
|
Generates a fresh API key, replacing any existing one. The
|
|
returned key is shown only once; store it immediately.
|
|
|
|
Even when the request is authenticated via API key (Bearer), the
|
|
admin password must be supplied in the request body to prevent a
|
|
leaked key from rotating itself. The password check is skipped
|
|
when the server is started with `--disable-auth`.
|
|
tags:
|
|
- auth
|
|
security:
|
|
- cookieAuth: []
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
password:
|
|
$ref: "#/components/schemas/Password"
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
description: The new API key (cleartext, shown once).
|
|
example: evcc_aB3xYz7k0Pq2sN5mWtR4
|
|
"401":
|
|
description: Invalid admin password
|
|
"403":
|
|
description: Forbidden in demo mode
|
|
/batterydischargecontrol/{enable}:
|
|
post:
|
|
operationId: setBatteryDischargeControl
|
|
summary: Control battery-discharge
|
|
description: "Prevent home battery discharge during vehicle fast charging."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/battery
|
|
tags:
|
|
- battery
|
|
parameters:
|
|
- $ref: "#/components/parameters/enable"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/BooleanResult"
|
|
/batterygridchargelimit:
|
|
delete:
|
|
operationId: removeBatteryGridChargeLimit
|
|
summary: Remove battery grid charge limit
|
|
description: "Remove battery grid charge limit."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/battery
|
|
tags:
|
|
- battery
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NullResult"
|
|
/batterygridchargelimit/{cost}:
|
|
post:
|
|
operationId: setBatteryGridChargeLimit
|
|
summary: Set battery grid charge limit
|
|
description: "Charge home battery from grid when price or emissions are below the threshold. Uses price if a dynamic tariff exists. Uses emissions if a CO₂-tariff is configured. Ignored otherwise."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/battery
|
|
tags:
|
|
- battery
|
|
parameters:
|
|
- $ref: "#/components/parameters/costLimit"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/batterymode:
|
|
delete:
|
|
operationId: disableExternalBatteryControl
|
|
summary: Disable external battery control
|
|
description: Default evcc control behavior is restored
|
|
tags:
|
|
- battery
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/BatteryModeResult"
|
|
/batterymode/{batteryMode}:
|
|
post:
|
|
operationId: setExternalBatteryMode
|
|
summary: Set external battery mode
|
|
description: "Directly controls the mode of all controllable batteries. evcc behavior like 'price limit' or 'prevent discharge while fast charging' is overruled. External mode resets after 60s. The external system has to call this endpoint regularly."
|
|
tags:
|
|
- battery
|
|
parameters:
|
|
- $ref: "#/components/parameters/batteryMode"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/BatteryModeResult"
|
|
/buffersoc/{soc}:
|
|
post:
|
|
operationId: setBufferSoc
|
|
summary: Set battery buffer SoC
|
|
description: "Set battery buffer SoC."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/battery
|
|
tags:
|
|
- battery
|
|
parameters:
|
|
- $ref: "#/components/parameters/soc"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/bufferstartsoc/{soc}:
|
|
post:
|
|
operationId: setBufferStartSoc
|
|
summary: Set battery buffer start SoC
|
|
description: "Set battery buffer start SoC."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/battery
|
|
tags:
|
|
- battery
|
|
parameters:
|
|
- $ref: "#/components/parameters/soc"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/loadpoints/{id}/batteryboost/{enable}:
|
|
post:
|
|
operationId: setLoadpointBatteryBoost
|
|
summary: Set battery boost
|
|
description: "Enable or disable battery boost. When active, the maximum available home battery power is added until the home battery is drained to configured SoC limit. Note: boost will not work while the battery is on hold (e.g. during fast charging or planned charging with discharge prevention enabled)."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/battery#battery-boost
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/enable"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/BooleanResult"
|
|
/loadpoints/{id}/batteryboostlimit/{soc}:
|
|
post:
|
|
operationId: setLoadpointBatteryBoostLimit
|
|
summary: Set battery boost SoC limit
|
|
description: "Set the SoC limit for battery boost. Home battery will be used to support charging up to this SoC level. A value of 100 (default) disabled the boost feature in UI and API."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/battery#battery-boost
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/soc"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/IntegerResult"
|
|
/loadpoints/{id}/disable/delay/{delay}:
|
|
post:
|
|
operationId: setLoadpointDisableDelay
|
|
summary: Disable threshold-delay
|
|
description: "Delay before charging stops in solar mode."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/loadpoints
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/delay"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NanoSecondsResult"
|
|
/loadpoints/{id}/disable/threshold/{threshold}:
|
|
post:
|
|
operationId: setLoadpointDisableThreshold
|
|
summary: Disable threshold
|
|
description: "Specifies the grid draw power to stop charging in solar mode."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/loadpoints#threshold-1
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/threshold"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/loadpoints/{id}/enable/delay/{delay}:
|
|
post:
|
|
operationId: setLoadpointEnableDelay
|
|
summary: Enable threshold-delay
|
|
description: "Delay before charging starts in solar mode."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/loadpoints#delay
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/delay"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NanoSecondsResult"
|
|
/loadpoints/{id}/enable/threshold/{threshold}:
|
|
post:
|
|
operationId: setLoadpointEnableThreshold
|
|
summary: Enable threshold
|
|
description: "Specifies the available surplus power to start charging in solar mode."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/loadpoints#threshold
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/threshold"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/loadpoints/{id}/limitenergy/{energy}:
|
|
post:
|
|
operationId: setLoadpointEnergyLimit
|
|
summary: Update energy limit
|
|
description: "Updates the energy limit of the loadpoint. Only available for guest vehicles and vehicles with unknown SoC. Limit is removed on vehicle disconnect."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/limits
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/energy"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/loadpoints/{id}/limitsoc/{soc}:
|
|
post:
|
|
operationId: setLoadpointSocLimit
|
|
summary: Update session SoC limit
|
|
description: "Sets the session SoC limit. Cleared on disconnect. Takes precedence over the vehicle's configured limit while set; once cleared (set to 0), the vehicle limit applies again."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/limits
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/soc"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/loadpoints/{id}/maxcurrent/{current}:
|
|
post:
|
|
operationId: setLoadpointMaxCurrent
|
|
summary: Update maximum current
|
|
description: "Updates the maximum current of the loadpoint."
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/current"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/loadpoints/{id}/mincurrent/{current}:
|
|
post:
|
|
operationId: setLoadpointMinCurrent
|
|
summary: Update minimum current
|
|
description: "Updates the minimum current of the loadpoint."
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/current"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/loadpoints/{id}/mintemp/{temp}:
|
|
post:
|
|
operationId: setLoadpointMinTemp
|
|
summary: Update minimum temperature
|
|
description: "Sets the minimum temperature for heating devices. The device is heated as fast as possible while below this value. Set to 0 to disable."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/limits
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/temp"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/loadpoints/{id}/mode/{mode}:
|
|
post:
|
|
operationId: setLoadpointMode
|
|
summary: Update charge mode
|
|
description: "Changes the charging behavior of the loadpoint."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/solar-charging
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/mode"
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/Mode"
|
|
/loadpoints/{id}/phases/{phases}:
|
|
post:
|
|
operationId: setLoadpointPhases
|
|
summary: Update allowed phases
|
|
description: "Updates the allowed phases of the loadpoint. Selects the desired phase mode for chargers with automatic phase switching. For manual phase switching chargers (via cable or Lasttrennschalter) this value tells evcc the actual phases."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/loadpoints#phases
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/phases"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
"400":
|
|
description: "Invalid phases-value. You have most likely entered the value 0 for a wallbox that cannot switch phases automatically."
|
|
/loadpoints/{id}/plan:
|
|
get:
|
|
operationId: getLoadpointPlan
|
|
summary: Get charging plan
|
|
description: "Returns the current charging plan for this loadpoint."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
allOf:
|
|
- type: object
|
|
properties:
|
|
planId:
|
|
$ref: "#/components/schemas/Id"
|
|
- $ref: "#/components/schemas/PlanRates"
|
|
/loadpoints/{id}/plan/energy:
|
|
delete:
|
|
operationId: deleteLoadpointEnergyPlan
|
|
summary: Delete energy-based charging plan
|
|
description: "Delete charging plan. Only available when a vehicle without SoC is connected."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/EmptyResult"
|
|
/loadpoints/{id}/plan/energy/{energy}/{timestamp}:
|
|
post:
|
|
operationId: setLoadpointEnergyPlan
|
|
summary: Set energy-based charging plan
|
|
description: "Create charging plan with fixed time and energy target. Only available when a vehicle without SoC is connected."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/energy"
|
|
- $ref: "#/components/parameters/timestamp"
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/StaticEnergyPlan"
|
|
/loadpoints/{id}/plan/repeating/preview/{soc}/{weekdays}/{hourMinuteTime}/{timezone}:
|
|
get:
|
|
operationId: previewLoadpointRepeatingPlan
|
|
summary: Repeating plan preview
|
|
description: "Simulate repeating charging plan and return the result. Does not alter the actual charging plan."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/soc"
|
|
- $ref: "#/components/parameters/weekdays"
|
|
- $ref: "#/components/parameters/hourMinuteTime"
|
|
- $ref: "#/components/parameters/timezone"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/PlanRatesResult"
|
|
/loadpoints/{id}/plan/static/preview/soc/{soc}/{timestamp}:
|
|
get:
|
|
operationId: previewLoadpointSocPlan
|
|
summary: Simulate soc-based charging plan
|
|
description: "Simulate charging plan based on SoC goal. Does not alter the actual charging plan."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/soc"
|
|
- $ref: "#/components/parameters/timestamp"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/PlanRatesResult"
|
|
/loadpoints/{id}/plan/static/preview/energy/{energy}/{timestamp}:
|
|
get:
|
|
operationId: previewLoadpointEnergyPlan
|
|
summary: Simulate energy-based charging plan
|
|
description: "Simulate charging plan based on energy goal. Does not alter the actual charging plan."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/energy"
|
|
- $ref: "#/components/parameters/timestamp"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/PlanRatesResult"
|
|
/loadpoints/{id}/plan/strategy:
|
|
post:
|
|
operationId: setLoadpointPlanStrategy
|
|
summary: Set plan strategy
|
|
description: "Updates the charging plan strategy for the loadpoint."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PlanStrategy"
|
|
responses:
|
|
200:
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/PlanStrategy"
|
|
/loadpoints/{id}/priority/{priority}:
|
|
post:
|
|
operationId: setLoadpointPriority
|
|
summary: Set priority
|
|
description: "Set loadpoint priority."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/loadpoints#priority
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- name: priority
|
|
in: path
|
|
description: Higher number means higher priority.
|
|
required: true
|
|
example: 2
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/IntegerResult"
|
|
/loadpoints/{id}/smartcostlimit:
|
|
delete:
|
|
operationId: deleteLoadpointSmartCostLimit
|
|
summary: Delete smart charging cost limit
|
|
description: "Delete cost or emission limit for fast-charging with grid energy."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/dynamic-prices
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NullResult"
|
|
/loadpoints/{id}/smartcostlimit/{cost}:
|
|
post:
|
|
operationId: setLoadpointSmartCostLimit
|
|
summary: Set smart charging cost limit
|
|
description: "Set cost or emission limit for fast-charging with grid energy."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/dynamic-prices
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/costLimit"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/loadpoints/{id}/smartfeedinprioritylimit:
|
|
delete:
|
|
operationId: deleteLoadpointSmartFeedInPriorityLimit
|
|
summary: Delete smart feed-in priority limit
|
|
description: "Delete limit for feed-in priority optimization."
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NullResult"
|
|
/loadpoints/{id}/smartfeedinprioritylimit/{cost}:
|
|
post:
|
|
operationId: setLoadpointSmartFeedInPriorityLimit
|
|
summary: Set smart feed-in priority limit
|
|
description: "Set limit for feed-in priority optimization."
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/costLimit"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/loadpoints/{id}/vehicle:
|
|
delete:
|
|
operationId: removeLoadpointVehicle
|
|
summary: Remove vehicle
|
|
description: "Remove vehicle from loadpoint. Connected vehicle is treated as guest vehicle."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/vehicle
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/EmptyResult"
|
|
patch:
|
|
operationId: startLoadpointVehicleDetection
|
|
summary: Start vehicle detection
|
|
description: "Starts the automatic vehicle detection process."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/vehicle
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/EmptyResult"
|
|
/loadpoints/{id}/vehicle/{name}:
|
|
post:
|
|
operationId: assignLoadpointVehicle
|
|
summary: Assign vehicle
|
|
description: "Assigns vehicle to loadpoint."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/vehicle
|
|
tags:
|
|
- loadpoints
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
- $ref: "#/components/parameters/vehicleName"
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
type: object
|
|
properties:
|
|
vehicle:
|
|
$ref: "#/components/schemas/VehicleTitle"
|
|
/prioritysoc/{soc}:
|
|
post:
|
|
operationId: setPrioritySoc
|
|
summary: Set battery priority SoC
|
|
description: "Set battery priority SoC."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/battery
|
|
tags:
|
|
- battery
|
|
parameters:
|
|
- $ref: "#/components/parameters/soc"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/residualpower/{power}:
|
|
post:
|
|
operationId: setResidualPower
|
|
summary: Set grid residual power
|
|
description: "Set grid connection operating point."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/site#residualpower
|
|
tags:
|
|
- battery
|
|
parameters:
|
|
- $ref: "#/components/parameters/power"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/solaradjusted/{enable}:
|
|
post:
|
|
operationId: setSolarAdjusted
|
|
summary: Adjust solar forecast
|
|
description: "Adjust the solar forecast to real production data of the current day."
|
|
tags:
|
|
- experimental
|
|
parameters:
|
|
- $ref: "#/components/parameters/enable"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/BooleanResult"
|
|
/smartfeedinprioritylimit:
|
|
delete:
|
|
operationId: removeGlobalSmartFeedInPriorityLimit
|
|
summary: Remove smart feed-in priority limit for all loadpoints.
|
|
description: "Convenience method to remove limit for all loadpoints at once. Value is applied to each individual loadpoint."
|
|
tags:
|
|
- general
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NullResult"
|
|
/smartfeedinprioritylimit/{cost}:
|
|
post:
|
|
operationId: setGlobalSmartFeedInPriorityLimit
|
|
summary: Set smart feed-in priority limit for all loadpoints
|
|
description: "Convenience method to set smart feed-in priority limit for all loadpoints at once. Value is applied to each individual loadpoint."
|
|
tags:
|
|
- general
|
|
parameters:
|
|
- $ref: "#/components/parameters/costLimit"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/session/{id}:
|
|
parameters:
|
|
- $ref: "#/components/parameters/id"
|
|
put:
|
|
operationId: updateSession
|
|
summary: Update charging session
|
|
description: "Update vehicle, loadpoint or odometer of a charging session. Only provided fields are changed; a null odometer clears the stored value."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/sessions
|
|
tags:
|
|
- sessions
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
vehicle:
|
|
$ref: "#/components/schemas/VehicleName"
|
|
loadpoint:
|
|
$ref: "#/components/schemas/LoadpointName"
|
|
odometer:
|
|
$ref: "#/components/schemas/Odometer"
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
delete:
|
|
operationId: deleteSession
|
|
summary: Delete charging session
|
|
description: "Delete charging session."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/sessions
|
|
tags:
|
|
- sessions
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NullResult"
|
|
/gridsessions:
|
|
get:
|
|
operationId: getGridSessions
|
|
summary: Grid limitation sessions
|
|
description: "Returns a list of HEMS grid limitation events."
|
|
tags:
|
|
- sessions
|
|
parameters:
|
|
- name: format
|
|
in: query
|
|
description: Response format (default json)
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- csv
|
|
- name: lang
|
|
in: query
|
|
description: Language (defaults to accept header)
|
|
schema:
|
|
type: string
|
|
example: de
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/GridSessions"
|
|
text/csv:
|
|
schema:
|
|
description: Download csv-file
|
|
type: string
|
|
format: binary
|
|
/sessions:
|
|
get:
|
|
operationId: getSessions
|
|
summary: Charging sessions
|
|
description: "Returns a list of charging sessions."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/sessions
|
|
tags:
|
|
- sessions
|
|
parameters:
|
|
- name: format
|
|
in: query
|
|
description: Response format (default json)
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- csv
|
|
- name: lang
|
|
in: query
|
|
description: Language (defaults to accept header)
|
|
schema:
|
|
type: string
|
|
example: de
|
|
- name: month
|
|
in: query
|
|
description: Month filter
|
|
schema:
|
|
type: integer
|
|
example: 2
|
|
minimum: 1
|
|
maximum: 12
|
|
- name: year
|
|
in: query
|
|
description: Year filter
|
|
schema:
|
|
type: integer
|
|
example: 2025
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/ChargingSessions"
|
|
text/csv:
|
|
schema:
|
|
description: Download csv-file
|
|
type: string
|
|
format: binary
|
|
/settings/telemetry/{enable}:
|
|
post:
|
|
operationId: setTelemetryStatus
|
|
summary: Enable/disable telemetry
|
|
description: "Enable or disable telemetry. Note: Telemetry requires sponsorship."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/telemetry
|
|
tags:
|
|
- system
|
|
parameters:
|
|
- $ref: "#/components/parameters/enable"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/BooleanResult"
|
|
"400":
|
|
description: Sponsorship required
|
|
/smartcostlimit:
|
|
delete:
|
|
operationId: removeGlobalSmartCostLimit
|
|
summary: Remove smart charging cost limit for all loadpoints.
|
|
description: "Convenience method to remove limit for all loadpoints at once. Value is applied to each individual loadpoint."
|
|
tags:
|
|
- general
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NullResult"
|
|
/smartcostlimit/{cost}:
|
|
post:
|
|
operationId: setGlobalSmartCostLimit
|
|
summary: Set smart charging cost limit for all loadpoints
|
|
description: "Convenience method to set smart charging cost limit for all loadpoints at once. Value is applied to each individual loadpoint."
|
|
tags:
|
|
- general
|
|
parameters:
|
|
- $ref: "#/components/parameters/costLimit"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NumberResult"
|
|
/state:
|
|
get:
|
|
operationId: getState
|
|
summary: System state
|
|
description: "Returns the complete state of the system. This structure is used by the UI. It can be filtered by JQ to only return a subset of the data."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/integrations/rest-api
|
|
tags:
|
|
- general
|
|
parameters:
|
|
- name: jq
|
|
in: query
|
|
description: Filter the state with JQ
|
|
schema:
|
|
type: string
|
|
examples:
|
|
all:
|
|
value: .
|
|
summary: complete state
|
|
firstLoadpoint:
|
|
value: .loadpoints[0]
|
|
summary: only first loadpoint
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/State"
|
|
/system/log:
|
|
get:
|
|
operationId: getSystemLogs
|
|
summary: Logs
|
|
description: "Returns the latest log lines."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/log
|
|
security:
|
|
- cookieAuth: []
|
|
- bearerAuth: []
|
|
tags:
|
|
- system
|
|
parameters:
|
|
- $ref: "#/components/parameters/logAreas"
|
|
- $ref: "#/components/parameters/logLevel"
|
|
- name: count
|
|
in: query
|
|
description: Number of log lines to return
|
|
example: 100
|
|
schema:
|
|
type: integer
|
|
- name: format
|
|
in: query
|
|
description: File type
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- txt
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
type: array
|
|
items:
|
|
type: string
|
|
text/plain:
|
|
schema:
|
|
description: Download txt-file
|
|
type: string
|
|
format: binary
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
/system/log/areas:
|
|
get:
|
|
operationId: getLogAreas
|
|
summary: List of all log areas
|
|
description: "Returns a list of all log areas (e.g. `lp-1`, `site`, `db`)."
|
|
security:
|
|
- cookieAuth: []
|
|
- bearerAuth: []
|
|
tags:
|
|
- system
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/LogAreas"
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
/system/cache:
|
|
delete:
|
|
operationId: clearCache
|
|
summary: Clear cache
|
|
description: "Clears all cached data. This resets all cached values from tariffs, vehicle APIs, and other components that use caching."
|
|
security:
|
|
- cookieAuth: []
|
|
- bearerAuth: []
|
|
tags:
|
|
- system
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/SuccessResult"
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
/system/shutdown:
|
|
post:
|
|
operationId: shutdownSystem
|
|
summary: Shutdown evcc
|
|
description: "Shut down instance. There is no reboot command. We expect the underlying system (docker, systemd, etc.) to restart the evcc instance once it's terminated."
|
|
security:
|
|
- cookieAuth: []
|
|
- bearerAuth: []
|
|
tags:
|
|
- system
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/BlankResponse"
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
/tariff/{type}:
|
|
get:
|
|
operationId: getTariffInfo
|
|
summary: Tariff information
|
|
description: "Returns the prices or emission values for the upcoming hours"
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/tariffs
|
|
tags:
|
|
- tariffs
|
|
parameters:
|
|
- name: type
|
|
in: path
|
|
description: Tariff type
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- grid
|
|
- feedin
|
|
- co2
|
|
- planner
|
|
- solar
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
type: object
|
|
properties:
|
|
rates:
|
|
$ref: "#/components/schemas/Rates"
|
|
"404":
|
|
description: Tariff not defined
|
|
/vehicles/{name}/limitsoc/{soc}:
|
|
post:
|
|
operationId: setVehicleSocLimit
|
|
summary: Set SoC limit
|
|
description: "Charging will stop when this SoC is reached."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/limits
|
|
tags:
|
|
- vehicles
|
|
parameters:
|
|
- $ref: "#/components/parameters/vehicleName"
|
|
- $ref: "#/components/parameters/soc"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/SocResult"
|
|
/vehicles/{name}/minsoc/{soc}:
|
|
post:
|
|
operationId: setVehicleMinSoc
|
|
summary: Set minimum SoC
|
|
description: "Vehicle will be fast-charged until this SoC is reached."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/limits
|
|
tags:
|
|
- vehicles
|
|
parameters:
|
|
- $ref: "#/components/parameters/vehicleName"
|
|
- $ref: "#/components/parameters/soc"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/SocResult"
|
|
/vehicles/{name}/mode:
|
|
delete:
|
|
operationId: deleteVehicleMode
|
|
summary: Reset charge mode
|
|
description: "Resets the vehicle charge mode to keep the last selected mode."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/solar-charging
|
|
tags:
|
|
- vehicles
|
|
parameters:
|
|
- $ref: "#/components/parameters/vehicleName"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/NullResult"
|
|
/vehicles/{name}/mode/{mode}:
|
|
post:
|
|
operationId: setVehicleMode
|
|
summary: Set charge mode
|
|
description: "Sets the charge mode applied when this vehicle becomes active on a loadpoint."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/solar-charging
|
|
tags:
|
|
- vehicles
|
|
parameters:
|
|
- $ref: "#/components/parameters/vehicleName"
|
|
- $ref: "#/components/parameters/mode"
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/Mode"
|
|
/vehicles/{name}/plan/repeating:
|
|
post:
|
|
operationId: updateVehicleRepeatingPlans
|
|
summary: Update repeating plans
|
|
description: "Updates the repeating charging plan."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans
|
|
tags:
|
|
- vehicles
|
|
parameters:
|
|
- $ref: "#/components/parameters/vehicleName"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/RepeatingPlan"
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/RepeatingPlan"
|
|
/vehicles/{name}/plan/soc:
|
|
delete:
|
|
operationId: deleteVehicleSocPlan
|
|
summary: Delete a SoC-based charging plan
|
|
description: "Delete the charging plan"
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans
|
|
tags:
|
|
- vehicles
|
|
parameters:
|
|
- $ref: "#/components/parameters/vehicleName"
|
|
responses:
|
|
"200":
|
|
$ref: "#/components/responses/EmptyResult"
|
|
/vehicles/{name}/plan/soc/{soc}/{timestamp}:
|
|
post:
|
|
operationId: setVehicleSocPlan
|
|
summary: Set a SoC-based charging plan
|
|
description: "Create charging plan with fixed time and SoC target."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans
|
|
tags:
|
|
- vehicles
|
|
parameters:
|
|
- $ref: "#/components/parameters/vehicleName"
|
|
- $ref: "#/components/parameters/soc"
|
|
- $ref: "#/components/parameters/timestamp"
|
|
responses:
|
|
"200":
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
type: object
|
|
properties:
|
|
soc:
|
|
$ref: "#/components/schemas/Soc"
|
|
time:
|
|
$ref: "#/components/schemas/Timestamp"
|
|
/vehicles/{name}/plan/strategy:
|
|
post:
|
|
operationId: setVehiclePlanStrategy
|
|
summary: Set plan strategy
|
|
description: "Updates the charging plan strategy for the vehicle."
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans
|
|
tags:
|
|
- vehicles
|
|
parameters:
|
|
- $ref: "#/components/parameters/vehicleName"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PlanStrategy"
|
|
responses:
|
|
200:
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/PlanStrategy"
|
|
/db/backup:
|
|
get:
|
|
operationId: downloadBackup
|
|
summary: Download database backup
|
|
description: "Downloads the SQLite database as a backup file. Session users must supply the admin password in the X-Admin-Password header. API key holders via Bearer token are exempt."
|
|
tags:
|
|
- db
|
|
security:
|
|
- cookieAuth: []
|
|
- bearerAuth: []
|
|
parameters:
|
|
- $ref: "#/components/parameters/adminPassword"
|
|
responses:
|
|
"200":
|
|
description: SQLite database file
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
/db/restore:
|
|
post:
|
|
operationId: restoreBackup
|
|
summary: Restore database backup
|
|
description: "Restores the database from a previously downloaded backup file. Session users must supply the admin password in the X-Admin-Password header. API key holders via Bearer token are exempt. The instance restarts after a successful restore."
|
|
tags:
|
|
- db
|
|
security:
|
|
- cookieAuth: []
|
|
- bearerAuth: []
|
|
parameters:
|
|
- $ref: "#/components/parameters/adminPassword"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: SQLite database backup file
|
|
responses:
|
|
"204":
|
|
description: Restore successful, instance is restarting
|
|
"400":
|
|
description: Invalid file or missing fields
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
/db/reset:
|
|
post:
|
|
operationId: resetDatabase
|
|
summary: Reset database
|
|
description: "Selectively deletes sessions and/or settings from the database. Session users must supply the admin password in the X-Admin-Password header. API key holders via Bearer token are exempt. The instance restarts after a successful reset."
|
|
tags:
|
|
- db
|
|
security:
|
|
- cookieAuth: []
|
|
- bearerAuth: []
|
|
parameters:
|
|
- $ref: "#/components/parameters/adminPassword"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
sessions:
|
|
type: boolean
|
|
description: Delete all charging sessions
|
|
settings:
|
|
type: boolean
|
|
description: Delete all settings, configs, and meters
|
|
responses:
|
|
"204":
|
|
description: Reset successful, instance is restarting
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
/history/energy:
|
|
get:
|
|
operationId: getEnergyHistory
|
|
summary: Energy history
|
|
description: "Returns aggregated energy history data. Aggregate granularity defaults to 15 minutes. Supports CSV export."
|
|
tags:
|
|
- experimental
|
|
parameters:
|
|
- name: from
|
|
in: query
|
|
description: Start time (RFC3339)
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
example: "2026-07-01T00:00:00Z"
|
|
- name: to
|
|
in: query
|
|
description: End time (RFC3339)
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
example: "2026-07-02T00:00:00Z"
|
|
- name: aggregate
|
|
in: query
|
|
description: "Aggregation interval. Examples: 15m, 1h, day, month"
|
|
schema:
|
|
type: string
|
|
default: 15m
|
|
example: 1h
|
|
- name: grouped
|
|
in: query
|
|
description: Group results by loadpoint
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
example: false
|
|
- name: group
|
|
in: query
|
|
description: Filter by entity group
|
|
schema:
|
|
type: string
|
|
example: battery
|
|
enum:
|
|
- forecast
|
|
- battery
|
|
- grid
|
|
- pv
|
|
- home
|
|
- loadpoint
|
|
- meter
|
|
- consumer
|
|
- name: name
|
|
in: query
|
|
description: Filter by entity name
|
|
schema:
|
|
type: string
|
|
example: db:8
|
|
- name: title
|
|
in: query
|
|
description: Filter by entity title
|
|
schema:
|
|
type: string
|
|
example: Battery
|
|
- name: format
|
|
in: query
|
|
description: Response format
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- json
|
|
- csv
|
|
default: json
|
|
example: json
|
|
- name: lang
|
|
in: query
|
|
description: Language for CSV column headers (BCP 47, e.g. de, en). Defaults to Accept-Language header.
|
|
schema:
|
|
type: string
|
|
example: de
|
|
responses:
|
|
"200":
|
|
description: Energy history data
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
text/csv:
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Invalid parameters or database offline
|
|
components:
|
|
schemas:
|
|
BatteryMode:
|
|
description: Battery mode
|
|
type: string
|
|
example: normal
|
|
enum:
|
|
- unknown
|
|
- normal
|
|
- hold
|
|
- charge
|
|
- holdcharge
|
|
ChangePassword:
|
|
type: object
|
|
properties:
|
|
current:
|
|
$ref: "#/components/schemas/Password"
|
|
new:
|
|
$ref: "#/components/schemas/Password"
|
|
ChargingSessions:
|
|
description: Charging sessions
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/Id"
|
|
created:
|
|
$ref: "#/components/schemas/Timestamp"
|
|
finished:
|
|
$ref: "#/components/schemas/Timestamp"
|
|
loadpoint:
|
|
$ref: "#/components/schemas/LoadpointName"
|
|
vehicle:
|
|
$ref: "#/components/schemas/VehicleName"
|
|
odometer:
|
|
$ref: "#/components/schemas/Odometer"
|
|
meterStart:
|
|
nullable: true
|
|
type: "number"
|
|
description: Meter reading at start of charging session
|
|
meterStop:
|
|
nullable: true
|
|
type: "number"
|
|
description: Meter reading at end of charging session
|
|
chargedEnergy:
|
|
type: number
|
|
description: Charged energy in kWh
|
|
GridSessions:
|
|
description: Grid limitation sessions
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
$ref: "#/components/schemas/Id"
|
|
created:
|
|
$ref: "#/components/schemas/Timestamp"
|
|
finished:
|
|
$ref: "#/components/schemas/Timestamp"
|
|
type:
|
|
type: string
|
|
enum:
|
|
- consumption
|
|
- feedin
|
|
description: Type of grid limitation event
|
|
gridPower:
|
|
type: number
|
|
description: Grid power in watts
|
|
limitPower:
|
|
type: number
|
|
description: Limitation power in watts
|
|
chargeDuration:
|
|
type: number
|
|
description: Duration of active charging
|
|
solarPercentage:
|
|
type: number
|
|
description: Solar percentage of the session
|
|
price:
|
|
type: number
|
|
description: Total price of the session
|
|
pricePerKWh:
|
|
type: number
|
|
description: Average price per kWh
|
|
co2PerKWh:
|
|
type: number
|
|
description: Average CO₂ emissions per kWh
|
|
Current:
|
|
description: Electric current in A
|
|
type: number
|
|
example: 16
|
|
minimum: 0
|
|
Energy:
|
|
description: Energy in kWh
|
|
type: number
|
|
example: 25.5
|
|
minimum: 0
|
|
Delay:
|
|
description: "Duration in seconds."
|
|
type: integer
|
|
example: 60
|
|
HourMinuteTime:
|
|
description: Time in `HH:MM` format
|
|
type: string
|
|
pattern: "[0-1][0-9]:[0-5][0-9]"
|
|
format: HH:MM
|
|
example: 12:30
|
|
IANATimeZone:
|
|
description: Timezone in IANA format
|
|
externalDocs:
|
|
url: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
|
|
type: string
|
|
example: Europe/Berlin
|
|
Id:
|
|
description: Loadpoint index starting at 1.
|
|
type: integer
|
|
example: 1
|
|
minimum: 1
|
|
LoadpointName:
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/loadpoints#title
|
|
type: string
|
|
example: Garage
|
|
LogArea:
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/log#levels
|
|
type: string
|
|
LogAreas:
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/log#levels
|
|
type: array
|
|
example:
|
|
- lp-1
|
|
- site
|
|
- db
|
|
items:
|
|
$ref: "#/components/schemas/LogArea"
|
|
LogLevel:
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/log#log
|
|
type: string
|
|
example: DEBUG
|
|
enum:
|
|
- FATAL
|
|
- ERROR
|
|
- WARN
|
|
- INFO
|
|
- DEBUG
|
|
- TRACE
|
|
Mode:
|
|
description: "Charging mode."
|
|
type: string
|
|
enum:
|
|
- "off"
|
|
- "now"
|
|
- "minpv"
|
|
- "pv"
|
|
Odometer:
|
|
nullable: true
|
|
type: "number"
|
|
description: Vehicle odometer reading in kilometers
|
|
Password:
|
|
description: Admin password
|
|
type: string
|
|
Phases:
|
|
description: "Number of phases. (0: auto, 1: 1-phase, 3: 3-phase)"
|
|
type: string
|
|
example: "3"
|
|
enum:
|
|
- "0"
|
|
- "1"
|
|
- "3"
|
|
PlanRates:
|
|
type: object
|
|
properties:
|
|
duration:
|
|
description: Duration in s
|
|
type: integer
|
|
minimum: 0
|
|
plan:
|
|
$ref: "#/components/schemas/Rates"
|
|
planTime:
|
|
$ref: "#/components/schemas/Timestamp"
|
|
power:
|
|
$ref: "#/components/schemas/Power"
|
|
Power:
|
|
description: Power in W
|
|
type: number
|
|
minimum: 0
|
|
example: 2500
|
|
Precondition:
|
|
description: "Late charging duration in seconds."
|
|
type: integer
|
|
example: 3600
|
|
minimum: 0
|
|
Rate:
|
|
type: object
|
|
description: A charging interval
|
|
properties:
|
|
start:
|
|
description: Start
|
|
$ref: "#/components/schemas/Timestamp"
|
|
end:
|
|
description: End
|
|
$ref: "#/components/schemas/Timestamp"
|
|
value:
|
|
description: Cost
|
|
type: number
|
|
minimum: 0
|
|
Rates:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Rate"
|
|
PlanStrategy:
|
|
description: Charging plan strategy configuration
|
|
type: object
|
|
properties:
|
|
continuous:
|
|
description: "Force continuous planning"
|
|
type: boolean
|
|
precondition:
|
|
description: "Precondition duration in seconds"
|
|
type: integer
|
|
minimum: 0
|
|
RepeatingPlan:
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans#repeating-plans
|
|
type: object
|
|
properties:
|
|
active:
|
|
description: "Set plan active."
|
|
type: boolean
|
|
soc:
|
|
$ref: "#/components/schemas/Soc"
|
|
time:
|
|
$ref: "#/components/schemas/HourMinuteTime"
|
|
tz:
|
|
$ref: "#/components/schemas/IANATimeZone"
|
|
weekdays:
|
|
$ref: "#/components/schemas/Weekdays"
|
|
Soc:
|
|
description: SOC in %
|
|
type: number
|
|
example: 60
|
|
minimum: 0
|
|
maximum: 100
|
|
Temp:
|
|
description: Temperature in °C
|
|
type: number
|
|
example: 50
|
|
minimum: 0
|
|
State:
|
|
description: "The actual state structure is not documented yet. Most values should be self-explanatory. Note: While the overall structure is quite stable, details may change between releases."
|
|
type: object
|
|
StaticEnergyPlan:
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans#energy-amount-plan
|
|
type: object
|
|
properties:
|
|
energy:
|
|
$ref: "#/components/schemas/Energy"
|
|
time:
|
|
$ref: "#/components/schemas/Timestamp"
|
|
StaticSocPlan:
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/features/plans#create-charging-plan
|
|
type: object
|
|
properties:
|
|
soc:
|
|
$ref: "#/components/schemas/Soc"
|
|
time:
|
|
$ref: "#/components/schemas/Timestamp"
|
|
Timestamp:
|
|
description: Timestamp in RFC3339 format
|
|
type: string
|
|
format: date-time
|
|
VehicleName:
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/vehicles#name
|
|
type: string
|
|
minLength: 1
|
|
pattern: "[a-zA-Z0-9_.:-]+"
|
|
example: vehicle_1
|
|
VehicleTitle:
|
|
externalDocs:
|
|
url: https://docs.evcc.io/en/reference/configuration/vehicles#title
|
|
type: string
|
|
example: blauer e-Golf
|
|
Weekdays:
|
|
description: "The Weekdays"
|
|
type: array
|
|
uniqueItems: true
|
|
example:
|
|
- 1
|
|
- 3
|
|
- 4
|
|
items:
|
|
description: "0: Sunday, 1: Monday, 2: Tuesday, 3: Wednesday, 4: Thursday, 5: Friday, 6: Saturday"
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 6
|
|
parameters:
|
|
adminPassword:
|
|
name: X-Admin-Password
|
|
in: header
|
|
description: Admin password (required for session auth, not needed for API key)
|
|
schema:
|
|
$ref: "#/components/schemas/Password"
|
|
id:
|
|
name: id
|
|
description: Loadpoint index starting at 1
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/Id"
|
|
phases:
|
|
name: phases
|
|
description: "Number of phases. (0: auto, 1: 1-phase, 3: 3-phase)"
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/Phases"
|
|
weekdays:
|
|
name: weekdays
|
|
description: "The Weekdays"
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/Weekdays"
|
|
hourMinuteTime:
|
|
name: hourMinuteTime
|
|
description: Time in `HOURS:MINUTES` format
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/HourMinuteTime"
|
|
timezone:
|
|
name: timezone
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/IANATimeZone"
|
|
logAreas:
|
|
name: areas
|
|
description: "Comma-separated list of log areas"
|
|
in: query
|
|
explode: true
|
|
schema:
|
|
$ref: "#/components/schemas/LogAreas"
|
|
logLevel:
|
|
name: level
|
|
description: Log level
|
|
in: query
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/LogLevel"
|
|
delay:
|
|
name: delay
|
|
description: "Duration in seconds."
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/Delay"
|
|
mode:
|
|
name: mode
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/Mode"
|
|
soc:
|
|
name: soc
|
|
description: SOC in %
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/Soc"
|
|
temp:
|
|
name: temp
|
|
description: Temperature in °C
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/Temp"
|
|
timestamp:
|
|
name: timestamp
|
|
description: Timestamp in RFC3339 format
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/Timestamp"
|
|
vehicleName:
|
|
name: name
|
|
description: Vehicle name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/VehicleName"
|
|
current:
|
|
name: current
|
|
description: Electric current in A
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/Current"
|
|
power:
|
|
name: power
|
|
description: Power in W
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/Power"
|
|
energy:
|
|
name: energy
|
|
description: Energy in kWh
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/Energy"
|
|
threshold:
|
|
name: threshold
|
|
description: Power in W
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/Power"
|
|
batteryMode:
|
|
name: batteryMode
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/BatteryMode"
|
|
costLimit:
|
|
name: cost
|
|
description: Cost limit in configured currency (default EUR) or CO2 limit in g/kWh
|
|
example: 0.25
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
enable:
|
|
name: enable
|
|
description: "Charging mode."
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- "true"
|
|
- "false"
|
|
- "1"
|
|
- "0"
|
|
responses:
|
|
NanoSecondsResult:
|
|
description: Success - Number result - Unit is **nanoseconds**
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
type: integer
|
|
NumberResult:
|
|
description: Success - Number result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
type: number
|
|
IntegerResult:
|
|
description: Success - Integer result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
type: integer
|
|
SocResult:
|
|
description: Success - Soc result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
type: object
|
|
properties:
|
|
soc:
|
|
$ref: "#/components/schemas/Soc"
|
|
PlanRatesResult:
|
|
description: Success - PlanRates result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/PlanRates"
|
|
BooleanResult:
|
|
description: Success - Boolean result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
type: boolean
|
|
NullResult:
|
|
description: Success - Null result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
description: Value is always null
|
|
nullable: true
|
|
type: "object"
|
|
BlankResponse:
|
|
description: Success - Blank response
|
|
SuccessResult:
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
type: string
|
|
example: "OK"
|
|
EmptyResult:
|
|
description: Success - Empty result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
Unauthorized:
|
|
description: Unauthorized - Login and try again
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- Unauthorized
|
|
BatteryModeResult:
|
|
description: Battery mode
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
result:
|
|
type: integer
|
|
description: "Battery mode. 0: unknown, 1: normal, 2: hold, 3: charge, 4: holdcharge"
|
|
minimum: 0
|
|
maximum: 4
|
|
securitySchemes:
|
|
cookieAuth:
|
|
type: apiKey
|
|
in: cookie
|
|
name: auth
|
|
bearerAuth:
|
|
type: http
|
|
scheme: bearer
|
|
description: |
|
|
Long-lived API key (prefixed `evcc_`, managed via /auth/apikey).
|
|
Grants access to /api/db/* without requiring the X-Admin-Password header.
|