evcc (self-hosted) · Schema
State
Complete system state as returned by /api/state and pushed via websocket and MQTT. This structure mirrors the internal UI state and carries no compatibility promise. Fields may change or disappear between releases.
CompanyEVSmartChargingOpenSourceEnergyManagementHomeAutomation
Properties
| Name | Type | Description |
|---|---|---|
| telemetry | boolean | Telemetry is enabled. |
| experimental | boolean | Experimental UI features are enabled. |
| setupRequired | boolean | Initial setup is required. |
| onboarding | object | Setup wizard and checklist state. |
| startupCompleted | boolean | Startup has completed. |
| apiReady | boolean | HTTP API is ready to accept requests. |
| loadpoints | array | Charging locations. One entry per configured loadpoint. |
| forecast | object | Price, CO₂ and solar production forecasts. |
| currency | object | Configured currency for all monetary values. |
| country | string | Configured site country as ISO 3166-1 alpha-2 code. Empty when not set. |
| fatal | array | Fatal startup errors. |
| authProviders | object | Status of configured vehicle authentication providers, keyed by provider name. |
| version | string | Running evcc version. |
| availableVersion | string | Latest available evcc version. |
| system | string | Operating system and architecture. |
| timezone | string | Server time zone abbreviation and UTC offset. |
| battery | object | Aggregated home battery state. |
| batteryMode | object | Current operation mode of the home battery. |
| grid | object | Grid meter data. |
| gridConfigured | boolean | A grid meter is configured. |
| gridConnection | object | Grid connection, with or without neutral conductor. |
| voltage | number | Nominal grid voltage in V, line-to-line without neutral. |
| pv | array | Solar meters. One entry per configured meter. |
| pvPower | number | Total solar power in W. Sum of all solar meters. |
| pvEnergy | number | Total solar production in kWh. |
| aux | array | Auxiliary consumption meters. Their power is treated as available for charging. |
| auxPower | number | Total power of all auxiliary meters in W. |
| ext | array | Additional meters for monitoring purposes. |
| consumers | array | Consumption meters of individual devices for monitoring purposes. |
| homePower | number | Home consumption power in W. |
| residualPower | number | Configured grid operating point in W. Positive values maintain grid import. |
| gridExportLimit | number | Static grid export power limit in W used as optimizer constraint, 0 = disabled. An active HEMS curtailment takes precedence. |
| profilePercentile | numbernull | Percentile of the historic energy profiles used for demand prediction in %, e.g. 50 = median. Null uses the average. |
| greenShareHome | number | Share of green energy in home consumption, between 0 and 1. |
| greenShareLoadpoints | number | Share of green energy used for charging, between 0 and 1. |
| tariffs | object | Configured tariffs. Structure depends on configuration. |
| tariffGrid | number | Current grid energy price per kWh in the configured currency. |
| tariffFeedIn | number | Current grid export price per kWh in the configured currency. |
| tariffCo2 | number | Current grid CO₂ emissions in g/kWh. |
| tariffSolar | number | Current cost of solar production per kWh in the configured currency. |
| tariffPriceHome | number | Current energy price of home consumption per kWh, taking the green energy share into account. |
| tariffPriceLoadpoints | number | Current energy price of charging per kWh, taking the green energy share into account. |
| tariffCo2Home | number | Current CO₂ emissions of home consumption in g/kWh, taking the green energy share into account. |
| tariffCo2Loadpoints | number | Current CO₂ emissions of charging in g/kWh, taking the green energy share into account. |
| tariffTemperature | number | Current outside temperature in °C. |
| mqtt | object | MQTT integration configuration. |
| influx | object | InfluxDB integration configuration. |
| network | object | Network configuration. |
| hems | object | Home energy management system integration. |
| shm | object | SMA Home Manager configuration. |
| sponsor | object | Sponsorship status. |
| eebus | object | EEBUS integration configuration and status. |
| remote | object | Remote access configuration and connection status. |
| modbusproxy | arraynull | Modbus proxy configuration. |
| messaging | object | Messaging services configuration. Structure depends on configuration. |
| messagingEvents | object | Configured notification messages per event type. |
| interval | number | Update interval of the control loop in seconds. |
| circuits | object | Load management circuits, keyed by circuit name. |
| circuitsConfig | object | Load management configuration. |
| bufferSoc | number | Battery buffer SoC in %. Energy above this level may be used for charging in smart mode. |
| prioritySoc | number | Battery priority SoC in %. Home battery is charged first while below this level. |
| bufferStartSoc | number | Battery buffer start SoC in %. Solar charging starts automatically above this level. |
| batteryDischargeControl | boolean | Home battery discharge is prevented during fast charging and planned charging. |
| batteryGridDischarge | boolean | Home battery is allowed to discharge to the grid (experimental). |
| solarAdjusted | boolean | Solar forecast is adjusted to real production data (experimental). |
| batteryGridChargeLimit | numbernull | Price or emission limit for charging the home battery from grid. |
| batteryGridChargeActive | boolean | Home battery is currently charged from grid. |
| batteryGridDischargeLimit | numbernull | Grid export price limit for discharging the home battery to the grid (experimental). |
| batteryGridDischargeActive | boolean | Home battery is currently discharged to the grid. |
| smartCostAvailable | boolean | A dynamic grid price or CO₂ forecast is configured. |
| smartCostType | object | Type of the smart charging limit, price based or emission based. |
| smartFeedInPriorityAvailable | boolean | A grid export tariff with forecast is configured. |
| historyUpdated | string | Time of the last energy history update. |
| siteTitle | string | Configured site title. |
| deviceColors | array | Colors assigned to devices for consistent UI display. |
| vehicles | object | Configured vehicles, keyed by vehicle name. |
| statistics | object | Charging statistics over different time periods. |
| authDisabled | boolean | Authentication is disabled. |
| config | string | Path of the evcc configuration file. |
| database | string | Path of the evcc database. |
| ocpp | object | OCPP server configuration and connected stations. |
| ocppforwarder | object | OCPP forwarder rules and upstream connection status. |
| optimizer | boolean | Battery optimizer is enabled. |
| optimizerAutomatic | object | What the optimizer controls instead of only advising: nothing, the home battery, or battery and loadpoints. |
| optimizerChargingStrategy | string | Selected battery optimizer charging strategy. |
| optimizerChargingStrategies | array | Available battery optimizer charging strategies. |
| mcp | boolean | Built-in MCP server is enabled. |
| demoMode | boolean | Instance runs in demo mode. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/evcc/json-schema/evcc-state-schema.json",
"title": "State",
"description": "Complete system state as returned by /api/state and pushed via websocket and MQTT. This structure mirrors the internal UI state and carries no compatibility promise. Fields may change or disappear between releases.",
"x-generated": "2026-10-28",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/evcc-openapi.yaml#/components/schemas/State",
"type": "object",
"properties": {
"telemetry": {
"description": "Telemetry is enabled.",
"type": "boolean"
},
"experimental": {
"description": "Experimental UI features are enabled.",
"type": "boolean"
},
"setupRequired": {
"description": "Initial setup is required.",
"type": "boolean"
},
"onboarding": {
"$ref": "#/$defs/OnboardingState",
"description": "Setup wizard and checklist state."
},
"startupCompleted": {
"description": "Startup has completed.",
"type": "boolean"
},
"apiReady": {
"description": "HTTP API is ready to accept requests.",
"type": "boolean"
},
"loadpoints": {
"description": "Charging locations. One entry per configured loadpoint.",
"type": "array",
"items": {
"$ref": "#/$defs/Loadpoint"
}
},
"forecast": {
"$ref": "#/$defs/Forecast",
"description": "Price, CO₂ and solar production forecasts."
},
"currency": {
"$ref": "#/$defs/Currency",
"description": "Configured currency for all monetary values."
},
"country": {
"description": "Configured site country as ISO 3166-1 alpha-2 code. Empty when not set.",
"type": "string"
},
"fatal": {
"description": "Fatal startup errors.",
"type": "array",
"items": {
"$ref": "#/$defs/FatalError"
}
},
"authProviders": {
"$ref": "#/$defs/AuthProviders",
"description": "Status of configured vehicle authentication providers, keyed by provider name."
},
"version": {
"description": "Running evcc version.",
"type": "string"
},
"availableVersion": {
"description": "Latest available evcc version.",
"type": "string"
},
"system": {
"description": "Operating system and architecture.",
"type": "string"
},
"timezone": {
"description": "Server time zone abbreviation and UTC offset.",
"type": "string"
},
"battery": {
"$ref": "#/$defs/Battery",
"description": "Aggregated home battery state."
},
"batteryMode": {
"$ref": "#/$defs/BatteryMode",
"description": "Current operation mode of the home battery."
},
"grid": {
"$ref": "#/$defs/Meter",
"description": "Grid meter data."
},
"gridConfigured": {
"description": "A grid meter is configured.",
"type": "boolean"
},
"gridConnection": {
"$ref": "#/$defs/GRID_CONNECTION",
"description": "Grid connection, with or without neutral conductor."
},
"voltage": {
"description": "Nominal grid voltage in V, line-to-line without neutral.",
"type": "number"
},
"pv": {
"description": "Solar meters. One entry per configured meter.",
"type": "array",
"items": {
"$ref": "#/$defs/Meter"
}
},
"pvPower": {
"description": "Total solar power in W. Sum of all solar meters.",
"type": "number"
},
"pvEnergy": {
"description": "Total solar production in kWh.",
"type": "number"
},
"aux": {
"description": "Auxiliary consumption meters. Their power is treated as available for charging.",
"type": "array",
"items": {
"$ref": "#/$defs/Meter"
}
},
"auxPower": {
"description": "Total power of all auxiliary meters in W.",
"type": "number"
},
"ext": {
"description": "Additional meters for monitoring purposes.",
"type": "array",
"items": {
"$ref": "#/$defs/Meter"
}
},
"consumers": {
"description": "Consumption meters of individual devices for monitoring purposes.",
"type": "array",
"items": {
"$ref": "#/$defs/Meter"
}
},
"homePower": {
"description": "Home consumption power in W.",
"type": "number"
},
"residualPower": {
"description": "Configured grid operating point in W. Positive values maintain grid import.",
"type": "number"
},
"gridExportLimit": {
"description": "Static grid export power limit in W used as optimizer constraint, 0 = disabled. An active HEMS curtailment takes precedence.",
"type": "number"
},
"profilePercentile": {
"description": "Percentile of the historic energy profiles used for demand prediction in %, e.g. 50 = median. Null uses the average.",
"type": [
"number",
"null"
]
},
"greenShareHome": {
"description": "Share of green energy in home consumption, between 0 and 1.",
"type": "number"
},
"greenShareLoadpoints": {
"description": "Share of green energy used for charging, between 0 and 1.",
"type": "number"
},
"tariffs": {
"$ref": "#/$defs/GenericConfigStatus",
"description": "Configured tariffs. Structure depends on configuration."
},
"tariffGrid": {
"description": "Current grid energy price per kWh in the configured currency.",
"type": "number"
},
"tariffFeedIn": {
"description": "Current grid export price per kWh in the configured currency.",
"type": "number"
},
"tariffCo2": {
"description": "Current grid CO₂ emissions in g/kWh.",
"type": "number"
},
"tariffSolar": {
"description": "Current cost of solar production per kWh in the configured currency.",
"type": "number"
},
"tariffPriceHome": {
"description": "Current energy price of home consumption per kWh, taking the green energy share into account.",
"type": "number"
},
"tariffPriceLoadpoints": {
"description": "Current energy price of charging per kWh, taking the green energy share into account.",
"type": "number"
},
"tariffCo2Home": {
"description": "Current CO₂ emissions of home consumption in g/kWh, taking the green energy share into account.",
"type": "number"
},
"tariffCo2Loadpoints": {
"description": "Current CO₂ emissions of charging in g/kWh, taking the green energy share into account.",
"type": "number"
},
"tariffTemperature": {
"description": "Current outside temperature in °C.",
"type": "number"
},
"mqtt": {
"$ref": "#/$defs/MqttConfig",
"description": "MQTT integration configuration."
},
"influx": {
"$ref": "#/$defs/InfluxConfig",
"description": "InfluxDB integration configuration."
},
"network": {
"$ref": "#/$defs/Network",
"description": "Network configuration."
},
"hems": {
"$ref": "#/$defs/Hems",
"description": "Home energy management system integration."
},
"shm": {
"$ref": "#/$defs/ShmConfig",
"description": "SMA Home Manager configuration."
},
"sponsor": {
"$ref": "#/$defs/Sponsor",
"description": "Sponsorship status."
},
"eebus": {
"$ref": "#/$defs/Eebus",
"description": "EEBUS integration configuration and status."
},
"remote": {
"$ref": "#/$defs/Remote",
"description": "Remote access configuration and connection status."
},
"modbusproxy": {
"description": "Modbus proxy configuration.",
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/ModbusProxy"
}
},
"messaging": {
"$ref": "#/$defs/GenericConfigStatus",
"description": "Messaging services configuration. Structure depends on configuration."
},
"messagingEvents": {
"description": "Configured notification messages per event type.",
"nullable": true,
"allOf": [
{
"$ref": "#/$defs/MessagingEvents"
}
]
},
"interval": {
"description": "Update interval of the control loop in seconds.",
"type": "number"
},
"circuits": {
"description": "Load management circuits, keyed by circuit name.",
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/Circuit"
}
},
"circuitsConfig": {
"$ref": "#/$defs/GenericConfigStatus",
"description": "Load management configuration."
},
"bufferSoc": {
"description": "Battery buffer SoC in %. Energy above this level may be used for charging in smart mode.",
"type": "number"
},
"prioritySoc": {
"description": "Battery priority SoC in %. Home battery is charged first while below this level.",
"type": "number"
},
"bufferStartSoc": {
"description": "Battery buffer start SoC in %. Solar charging starts automatically above this level.",
"type": "number"
},
"batteryDischargeControl": {
"description": "Home battery discharge is prevented during fast charging and planned charging.",
"type": "boolean"
},
"batteryGridDischarge": {
"description": "Home battery is allowed to discharge to the grid (experimental).",
"type": "boolean"
},
"solarAdjusted": {
"description": "Solar forecast is adjusted to real production data (experimental).",
"type": "boolean"
},
"batteryGridChargeLimit": {
"description": "Price or emission limit for charging the home battery from grid.",
"type": [
"number",
"null"
]
},
"batteryGridChargeActive": {
"description": "Home battery is currently charged from grid.",
"type": "boolean"
},
"batteryGridDischargeLimit": {
"description": "Grid export price limit for discharging the home battery to the grid (experimental).",
"type": [
"number",
"null"
]
},
"batteryGridDischargeActive": {
"description": "Home battery is currently discharged to the grid.",
"type": "boolean"
},
"smartCostAvailable": {
"description": "A dynamic grid price or CO₂ forecast is configured.",
"type": "boolean"
},
"smartCostType": {
"$ref": "#/$defs/SmartCostType",
"description": "Type of the smart charging limit, price based or emission based."
},
"smartFeedInPriorityAvailable": {
"description": "A grid export tariff with forecast is configured.",
"type": "boolean"
},
"historyUpdated": {
"description": "Time of the last energy history update.",
"type": "string",
"format": "date-time"
},
"siteTitle": {
"description": "Configured site title.",
"type": "string"
},
"deviceColors": {
"description": "Colors assigned to devices for consistent UI display.",
"type": "array",
"items": {
"$ref": "#/$defs/DeviceColorEntry"
}
},
"vehicles": {
"description": "Configured vehicles, keyed by vehicle name.",
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/Vehicle"
}
},
"statistics": {
"$ref": "#/$defs/Statistics",
"description": "Charging statistics over different time periods."
},
"authDisabled": {
"description": "Authentication is disabled.",
"type": "boolean"
},
"config": {
"description": "Path of the evcc configuration file.",
"type": "string"
},
"database": {
"description": "Path of the evcc database.",
"type": "string"
},
"ocpp": {
"$ref": "#/$defs/Ocpp",
"description": "OCPP server configuration and connected stations."
},
"ocppforwarder": {
"$ref": "#/$defs/OcppForwarder",
"description": "OCPP forwarder rules and upstream connection status."
},
"optimizer": {
"description": "Battery optimizer is enabled.",
"type": "boolean"
},
"optimizerAutomatic": {
"$ref": "#/$defs/OptimizerAutomatic",
"description": "What the optimizer controls instead of only advising: nothing, the home battery, or battery and loadpoints."
},
"optimizerChargingStrategy": {
"description": "Selected battery optimizer charging strategy.",
"type": "string"
},
"optimizerChargingStrategies": {
"description": "Available battery optimizer charging strategies.",
"type": "array",
"items": {
"type": "string"
}
},
"mcp": {
"description": "Built-in MCP server is enabled.",
"type": "boolean"
},
"demoMode": {
"description": "Instance runs in demo mode.",
"type": "boolean"
}
},
"required": [
"loadpoints",
"forecast",
"vehicles"
],
"$defs": {
"AlwaysCharge": {
"description": "Always charge state. Smart mode charges continuously at least at minimum power.",
"type": "string",
"enum": [
"off",
"on",
"once"
]
},
"AuthProviders": {
"description": "Status of configured vehicle authentication providers, keyed by provider name.",
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"authenticated": {
"type": "boolean"
}
},
"required": [
"id",
"authenticated"
]
}
},
"Battery": {
"description": "Home battery state. Aggregated across all battery meters.",
"type": "object",
"properties": {
"power": {
"description": "Current battery power in W. Positive means discharging, negative means charging.",
"type": "number"
},
"capacity": {
"description": "Total battery capacity in kWh.",
"type": "number"
},
"soc": {
"description": "Charge level in %. Weighted by capacity across all batteries.",
"type": "number"
},
"energy": {
"description": "Total discharged energy in kWh.",
"type": "number"
},
"returnEnergy": {
"description": "Total charged energy in kWh.",
"type": "number"
},
"devices": {
"description": "Measurement data per battery meter.",
"type": "array",
"items": {
"$ref": "#/$defs/BatteryMeter"
}
},
"forecast": {
"$ref": "#/$defs/BatteryForecast",
"description": "Projected charge levels based on the solar and price forecast."
}
},
"required": [
"power",
"capacity",
"soc"
]
},
"BatteryForecast": {
"description": "Projected home battery charge levels based on the solar and price forecast.",
"type": "object",
"properties": {
"highest": {
"$ref": "#/$defs/BatteryForecastPoint",
"description": "Projected highest charge level."
},
"lowest": {
"$ref": "#/$defs/BatteryForecastPoint",
"description": "Projected lowest charge level."
}
}
},
"BatteryForecastPoint": {
"description": "A projected home battery charge level at a point in time.",
"type": "object",
"properties": {
"soc": {
"description": "Projected charge level in %.",
"type": "number"
},
"time": {
"description": "Time of the projected charge level.",
"type": "string",
"format": "date-time"
},
"limit": {
"description": "The projection hits the upper or lower battery limit.",
"type": "boolean"
}
},
"required": [
"soc",
"time"
]
},
"BatteryMeter": {
"description": "Measurement data of a single home battery meter.",
"type": "object",
"properties": {
"name": {
"description": "Unique device name of the meter.",
"type": "string"
},
"power": {
"description": "Current power in W.",
"type": "number"
},
"title": {
"description": "Meter title for UI display.",
"type": "string"
},
"icon": {
"description": "Meter icon name for UI display.",
"type": "string"
},
"energy": {
"description": "Total energy in kWh.",
"type": "number"
},
"returnEnergy": {
"description": "Total exported energy in kWh.",
"type": "number"
},
"powers": {
"description": "Power per phase in W.",
"type": "array",
"items": {
"type": "number"
}
},
"currents": {
"description": "Current per phase in A.",
"type": "array",
"items": {
"type": "number"
}
},
"soc": {
"description": "Charge level in %.",
"type": "number"
},
"controllable": {
"description": "Battery supports external control of its operation mode.",
"type": "boolean"
},
"modes": {
"description": "Battery modes supported by the device.",
"type": "array",
"items": {
"type": "string"
}
},
"capacity": {
"description": "Battery capacity in kWh. Zero when not specified.",
"type": "number"
},
"minSoc": {
"description": "Minimum soc (reserve) in % as configured on the device.",
"type": "number"
},
"maxSoc": {
"description": "Maximum soc (charge limit) in % as configured on the device.",
"type": "number"
},
"suggestion": {
"$ref": "#/$defs/BatterySuggestion",
"description": "Battery optimizer suggestion."
}
},
"required": [
"capacity",
"controllable",
"power",
"soc"
]
},
"BatteryMode": {
"description": "Battery operation mode.",
"type": "string",
"enum": [
"unknown",
"normal",
"hold",
"charge",
"holdcharge",
"discharge"
]
},
"BatterySuggestion": {
"description": "Battery optimizer suggestion for a home battery.",
"type": "object",
"properties": {
"action": {
"description": "Suggested operation mode.",
"type": "string",
"enum": [
"normal",
"hold",
"charge",
"holdcharge",
"discharge"
]
},
"charge": {
"description": "Recommended charge power in W.",
"type": "number"
},
"discharge": {
"description": "Recommended discharge power in W.",
"type": "number"
},
"grid": {
"description": "Planned site grid flow of the slot in W, positive means import.",
"type": "number"
},
"actionable": {
"description": "Suggestion differs from the current operating mode.",
"type": "boolean"
}
},
"required": [
"action"
]
},
"Certificate": {
"description": "A TLS certificate key pair.",
"type": "object",
"properties": {
"public": {
"description": "Public certificate in PEM format.",
"type": "string"
},
"private": {
"description": "Private key in PEM format. Redacted.",
"type": "string"
}
},
"required": [
"public",
"private"
]
},
"ChargeMode": {
"description": "Charging mode.",
"type": "string",
"enum": [
"off",
"smart",
"now"
]
},
"ChargerStatusReason": {
"description": "Reason why the charger is waiting.",
"type": "string",
"enum": [
"unknown",
"waitingforauthorization",
"disconnectrequired"
]
},
"Circuit": {
"description": "A load management circuit limiting power and current of its assigned loadpoints.",
"type": "object",
"properties": {
"name": {
"description": "Circuit name used as configuration reference.",
"type": "string"
},
"title": {
"description": "Circuit title for UI display.",
"type": "string"
},
"icon": {
"description": "Circuit icon name for UI display.",
"type": "string"
},
"parent": {
"description": "Name of the parent circuit.",
"type": "string"
},
"power": {
"description": "Current power in W.",
"type": "number"
},
"current": {
"description": "Current in A.",
"type": "number"
},
"maxPower": {
"description": "Maximum allowed power in W.",
"type": "number"
},
"maxCurrent": {
"description": "Maximum allowed current in A.",
"type": "number"
}
},
"required": [
"power"
]
},
"Currency": {
"description": "Currency in ISO 4217 format.",
"type": "string",
"enum": [
"AUD",
"BGN",
"BRL",
"CAD",
"CHF",
"CNY",
"CZK",
"EUR",
"GBP",
"HUF",
"ILS",
"JPY",
"NZD",
"NOK",
"PLN",
"RON",
"USD",
"DKK",
"SEK",
"ZAR",
"TRY",
"MYR",
"THB",
"BYN",
"UAH",
"RUB",
"KZT"
]
},
"DeviceColorEntry": {
"description": "Color assigned to a device for consistent UI display.",
"type": "object",
"properties": {
"title": {
"description": "Device title the color is assigned to.",
"type": "string"
},
"color": {
"description": "Assigned color as CSS value.",
"type": "string"
}
},
"required": [
"title",
"color"
]
},
"Eebus": {
"description": "EEBUS integration configuration and status.",
"type": "object",
"properties": {
"config": {
"$ref": "#/$defs/EebusConfig",
"description": "Static configuration."
},
"status": {
"$ref": "#/$defs/EebusStatus",
"description": "Runtime status."
},
"yamlSource": {
"description": "Source of the configuration, evcc.yaml file or database.",
"type": "string",
"enum": [
"file",
"db"
]
}
}
},
"EebusConfig": {
"description": "EEBUS integration configuration.",
"type": "object",
"properties": {
"uri": {
"description": "URI the EEBUS service listens on.",
"type": "string"
},
"port": {
"description": "Port the EEBUS service listens on.",
"type": "number"
},
"shipid": {
"description": "SHIP id.",
"type": "string"
},
"interfaces": {
"description": "Network interfaces the EEBUS service uses.",
"type": "array",
"items": {
"type": "string"
}
},
"certificate": {
"$ref": "#/$defs/Certificate",
"description": "TLS certificate."
}
},
"required": [
"port",
"shipid"
]
},
"EebusStatus": {
"description": "EEBUS runtime status.",
"type": "object",
"properties": {
"ski": {
"description": "SKI (subject key identifier) used for pairing.",
"type": "string"
},
"qr": {
"description": "QR code payload for pairing.",
"type": "string"
}
},
"required": [
"ski"
]
},
"EnergyByDay": {
"description": "Expected solar production energy of a day.",
"type": "object",
"properties": {
"energy": {
"description": "Expected production energy in kWh.",
"type": "number"
},
"complete": {
"description": "Forecast data covers the whole day.",
"type": "boolean"
}
},
"required": [
"energy",
"complete"
]
},
"FatalError": {
"description": "A fatal startup error.",
"type": "object",
"properties": {
"error": {
"description": "Error message.",
"type": "string"
},
"class": {
"description": "Device class the error originates from, like meter or charger.",
"type": "string"
},
"device": {
"description": "Name of the device that caused the error.",
"type": "string"
}
},
"required": [
"error"
]
},
"Forecast": {
"description": "Price, CO₂ and solar production forecasts.",
"type": "object",
"properties": {
"grid": {
"description": "Grid price forecast. Price per kWh in the configured currency per time slot.",
"type": "array",
"items": {
"$ref": "#/$defs/ForecastSlot"
}
},
"co2": {
"description": "CO₂ emission forecast in g/kWh per time slot.",
"type": "array",
"items": {
"$ref": "#/$defs/ForecastSlot"
}
},
"solar": {
"$ref": "#/$defs/SolarDetails",
"description": "Solar production forecast."
},
"planner": {
"description": "Charging cost forecast used by the plan optimizer per time slot.",
"type": "array",
"items": {
"$ref": "#/$defs/ForecastSlot"
}
},
"feedin": {
"description": "Grid export price forecast. Price per kWh in the configured currency per time slot.",
"type": "array",
"items": {
"$ref": "#/$defs/ForecastSlot"
}
},
"temperature": {
"description": "Temperature forecast in °C per time slot.",
"type": "array",
"items": {
"$ref": "#/$defs/ForecastSlot"
}
}
}
},
"ForecastSlot": {
"description": "A forecast time slot as [start, end, value] array. Start and end are unix seconds. Value unit depends on the forecast type.",
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3
},
"GRID_CONNECTION": {
"description": "Grid connection, with or without neutral conductor.",
"type": "string",
"enum": [
"3p4w",
"3p3w"
]
},
"GenericConfigStatus": {
"description": "Configuration and runtime status of an integration. Structure depends on configuration.",
"type": "object",
"properties": {
"config": {
"description": "Static configuration."
},
"status": {
"description": "Runtime status."
},
"yamlSource": {
"description": "Source of the configuration, evcc.yaml file or database.",
"type": "string",
"enum": [
"file",
"db"
]
}
}
},
"Hems": {
"description": "Home energy management system integration.",
"type": "object",
"properties": {
"config": {
"$ref": "#/$defs/HemsConfig",
"description": "Static configuration."
},
"status": {
"$ref": "#/$defs/HemsStatus",
"description": "Runtime status."
},
"yamlSource": {
"description": "Source of the configuration, evcc.yaml file or database.",
"type": "string",
"enum": [
"file",
"db"
]
}
}
},
"HemsConfig": {
"description": "Home energy management system configuration.",
"type": "object",
"properties": {
"configured": {
"description": "A home energy management system is configured.",
"type": "boolean"
}
},
"required": [
"configured"
]
},
"HemsStatus": {
"description": "Current external limits imposed by the home energy management system.",
"type": "object",
"properties": {
"dimmed": {
"description": "Consumption is currently limited.",
"type": "boolean"
},
"curtailed": {
"description": "Allowed grid export in %. Values below 100 mean production is curtailed.",
"type": "number"
},
"maxConsumptionPower": {
"description": "Maximum allowed consumption power in W.",
"type": "number"
},
"maxProductionPower": {
"description": "Maximum allowed production power in W.",
"type": "number"
}
}
},
"InfluxConfig": {
"description": "InfluxDB integration configuration.",
"type": "object",
"properties": {
"url": {
"description": "InfluxDB server URL.",
"type": "string"
},
"database": {
"description": "Database name (InfluxDB 1.x) or bucket (InfluxDB 2.x).",
"type": "string"
},
"org": {
"description": "Organization (InfluxDB 2.x).",
"type": "string"
},
"token": {
"description": "Access token (InfluxDB 2.x). Redacted.",
"type": "string"
},
"user": {
"description": "Username (InfluxDB 1.x).",
"type": "string"
},
"password": {
"description": "Password (InfluxDB 1.x). Redacted.",
"type": "string"
},
"insecure": {
"description": "Skip TLS certificate verification.",
"type": "boolean"
}
},
"required": [
"url",
"database",
"org"
]
},
"Loadpoint": {
"description": "A charging location with a charger, an optional dedicated meter and an optional vehicle.",
"type": "object",
"properties": {
"name": {
"description": "Unique loadpoint identifier used in API routes and configuration.",
"type": "string"
},
"alwaysCharge": {
"$ref": "#/$defs/AlwaysCharge",
"description": "Always charge state. Smart mode charges continuously at least at minimum power."
},
"batteryBoost": {
"description": "Battery boost is active. When enabled, home battery power is used for fast charging.",
"type": "boolean"
},
"chargeCurrents": {
"description": "Charging current per phase in A.",
"type": "array",
"items": {
"type": "number"
}
},
"chargeDuration": {
"description": "Duration of the current charging session in seconds.",
"type": "number"
},
"chargePower": {
"description": "Current charging power in W.",
"type": "number"
},
"chargeRemainingDuration": {
"description": "Estimated remaining charging time in seconds.",
"type": "number"
},
"chargeRemainingEnergy": {
"description": "Estimated remaining energy in kWh.",
"type": "number"
},
"chargeTotalImport": {
"description": "Total energy imported by the charge meter in kWh.",
"type": "number"
},
"chargeVoltages": {
"description": "Charging voltage per phase in V.",
"type": "array",
"items": {
"type": "number"
}
},
"chargedEnergy": {
"description": "Energy charged in the current charging session in kWh.",
"type": "number"
},
"chargerFeatureAutodetectDisabled": {
"description": "The connected vehicle is not identified automatically by its status.",
"type":
# --- truncated at 32 KB (74 KB total) ---
# Full source: https://artifacts.apis.io/evcc/json-schema/evcc-state-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/evcc-state"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.