Tern EV-Charging Analytics (dev)
EV-charging site analytics: utilization, demand, peak saturation and corridor benchmarks.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"usetern-dev": {
"url": "https://tern-mcp-dev-537572042041.europe-west4.run.app/mcp"
}
}
}Remote-Endpunkte
https://tern-mcp-dev-537572042041.europe-west4.run.app/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (26)
🟢search_charging_stations(country_iso3, id, title, address, operator, ...)
Find charging stations in one country by structured filter — id, title, address, operator. The reply is the API payload inline: station ids, titles, addresses and operators, which is what the claim tools take as site_id and station_id.
Eingabe-Schema
{
"type": "object",
"properties": {
"country_iso3": {
"description": "ISO-3166 alpha-3 scope, e.g. NOR.",
"maxLength": 3,
"minLength": 3,
"title": "Country Iso3",
"type": "string"
},
"id": {
"anyOf": [
{
"pattern": "^[0-9a-fA-F]{32}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "One 32-char hex station id.",
"title": "Id"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Title"
},
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Address"
},
"operator": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Operator"
},
"limit": {
"anyOf": [
{
"maximum": 50,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Limit"
}
},
"required": [
"country_iso3"
],
"title": "search_charging_stationsArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "search_charging_stationsOutput"
}🟢nearby_charging_stations(country_iso3, lat, lng, radius_km, limit)
List the charging stations within a radius of a point, nearest first. The radius is in kilometres and at most 10; the reply is the API payload inline. This is how a site's competitors are found before any claim is read.
Eingabe-Schema
{
"type": "object",
"properties": {
"country_iso3": {
"description": "ISO-3166 alpha-3 scope, e.g. NOR.",
"maxLength": 3,
"minLength": 3,
"title": "Country Iso3",
"type": "string"
},
"lat": {
"title": "Lat",
"type": "number"
},
"lng": {
"title": "Lng",
"type": "number"
},
"radius_km": {
"description": "km, > 0 and <= 10.",
"exclusiveMinimum": 0,
"maximum": 10,
"title": "Radius Km",
"type": "number"
},
"limit": {
"anyOf": [
{
"maximum": 50,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Limit"
}
},
"required": [
"country_iso3",
"lat",
"lng",
"radius_km"
],
"title": "nearby_charging_stationsArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "nearby_charging_stationsOutput"
}🟢list_evses(country_iso3, station_ids)
List the individual EVSEs (connectors) of up to 20 stations, with their capacity in kW. Stall counts and capacity bands come from here rather than from a station record.
Eingabe-Schema
{
"type": "object",
"properties": {
"country_iso3": {
"description": "ISO-3166 alpha-3 scope, e.g. NOR.",
"maxLength": 3,
"minLength": 3,
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "string"
}
],
"description": "1-20 station ids (array or comma-separated).",
"title": "Station Ids"
}
},
"required": [
"country_iso3",
"station_ids"
],
"title": "list_evsesArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "list_evsesOutput"
}⚪aggregate_charging_utilization(country_iso3, geometry, date_from, date_to, min_capacity_kw, ...)
Station-level utilization aggregated over a GeoJSON area and a date window of at most 92 days, optionally filtered to a capacity band (default 150 kW = HPC; pass 100 for fast charging). The reply is one row per station, so it reads an area without pulling any station's daily rows.
Eingabe-Schema
{
"type": "object",
"properties": {
"country_iso3": {
"description": "ISO-3166 alpha-3 scope, e.g. NOR.",
"maxLength": 3,
"minLength": 3,
"title": "Country Iso3",
"type": "string"
},
"geometry": {
"description": "GeoJSON Polygon/MultiPolygon as a JSON string.",
"title": "Geometry",
"type": "string"
},
"date_from": {
"description": "YYYY-MM-DD (required).",
"title": "Date From",
"type": "string"
},
"date_to": {
"description": "YYYY-MM-DD (required; window <= 92 days, >= date_from).",
"title": "Date To",
"type": "string"
},
"min_capacity_kw": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "kW floor (default 150 = HPC; pass 100 for fast-charging).",
"title": "Min Capacity Kw"
},
"max_capacity_kw": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Capacity Kw"
}
},
"required": [
"country_iso3",
"geometry",
"date_from",
"date_to"
],
"title": "aggregate_charging_utilizationArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "aggregate_charging_utilizationOutput"
}⚪aggregate_evse_utilization(country_iso3, geometry, date_from, date_to, min_capacity_kw, ...)
EVSE-level utilization aggregated over a GeoJSON area and a date window of at most 92 days, optionally filtered to a capacity band. The per-connector counterpart of aggregate_charging_utilization.
Eingabe-Schema
{
"type": "object",
"properties": {
"country_iso3": {
"description": "ISO-3166 alpha-3 scope, e.g. NOR.",
"maxLength": 3,
"minLength": 3,
"title": "Country Iso3",
"type": "string"
},
"geometry": {
"description": "GeoJSON Polygon/MultiPolygon as a JSON string.",
"title": "Geometry",
"type": "string"
},
"date_from": {
"description": "YYYY-MM-DD (required).",
"title": "Date From",
"type": "string"
},
"date_to": {
"description": "YYYY-MM-DD (required; window <= 92 days, >= date_from).",
"title": "Date To",
"type": "string"
},
"min_capacity_kw": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "kW floor (default 150 = HPC; pass 100 for fast-charging).",
"title": "Min Capacity Kw"
},
"max_capacity_kw": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Capacity Kw"
}
},
"required": [
"country_iso3",
"geometry",
"date_from",
"date_to"
],
"title": "aggregate_evse_utilizationArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "aggregate_evse_utilizationOutput"
}🟢area_benchmark(params)
How hard is each EVSE at this site working compared with the area around it? Reads the area_benchmark claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/AreaBenchmarkParams"
}
},
"required": [
"params"
],
"$defs": {
"AreaBenchmarkParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"observation_params": {
"$ref": "#/$defs/StationUtilizationParams"
},
"aggregate_params": {
"$ref": "#/$defs/EvseAggregateParams"
}
},
"required": [
"site_id",
"observation_params",
"aggregate_params"
],
"title": "AreaBenchmarkParams",
"type": "object"
},
"CapacityBand": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Min Capacity Kw"
},
"max_capacity_kw": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Capacity Kw"
}
},
"title": "CapacityBand",
"type": "object"
},
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"EvseAggregateParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"geometry": {
"minLength": 1,
"title": "Geometry",
"type": "string"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityBand",
"default": {
"min_capacity_kw": null,
"max_capacity_kw": null
}
}
},
"required": [
"country_iso3",
"geometry",
"date_range"
],
"title": "EvseAggregateParams",
"type": "object"
},
"StationUtilizationParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "StationUtilizationParams",
"type": "object"
}
},
"title": "area_benchmarkArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "area_benchmarkOutput"
}🟢avg_session_minutes(params)
How long does a session at this site actually last? Reads the avg_session_minutes claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/AvgSessionMinutesParams"
}
},
"required": [
"params"
],
"$defs": {
"AvgSessionMinutesParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"observation_params": {
"$ref": "#/$defs/StationUtilizationParams"
},
"station_id": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Station Id"
}
},
"required": [
"site_id",
"observation_params"
],
"title": "AvgSessionMinutesParams",
"type": "object"
},
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"StationUtilizationParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "StationUtilizationParams",
"type": "object"
}
},
"title": "avg_session_minutesArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "avg_session_minutesOutput"
}🟢busy_evse_hours(params)
How many EVSE-hours at this station carried charging on the drilled day, and how many of its EVSEs were charging at once in the busiest hour? Reads the busy_evse_hours claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/BusyEvseHoursParams"
}
},
"required": [
"params"
],
"$defs": {
"BusyEvseHoursParams": {
"additionalProperties": false,
"properties": {
"observation_params": {
"$ref": "#/$defs/EvseHourlyParams"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"station_id": {
"minLength": 1,
"title": "Station Id",
"type": "string"
},
"peak_window": {
"$ref": "#/$defs/PeakWindow",
"default": {
"from_hour": 6,
"until_hour": 23
}
}
},
"required": [
"observation_params",
"date_range",
"site_id",
"station_id"
],
"title": "BusyEvseHoursParams",
"type": "object"
},
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateList": {
"additionalProperties": false,
"properties": {
"dates": {
"items": {
"type": "string"
},
"minLength": 1,
"title": "Dates",
"type": "array"
}
},
"required": [
"dates"
],
"title": "DateList",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"EvseHourlyParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Date"
},
"dates": {
"anyOf": [
{
"$ref": "#/$defs/DateList"
},
{
"type": "null"
}
],
"default": null
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids"
],
"title": "EvseHourlyParams",
"type": "object"
},
"PeakWindow": {
"additionalProperties": false,
"properties": {
"from_hour": {
"default": 6,
"maximum": 23,
"minimum": 0,
"title": "From Hour",
"type": "integer"
},
"until_hour": {
"default": 23,
"maximum": 24,
"minimum": 1,
"title": "Until Hour",
"type": "integer"
}
},
"title": "PeakWindow",
"type": "object"
}
},
"title": "busy_evse_hoursArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "busy_evse_hoursOutput"
}🟢corridor_benchmark(params)
How does this site's demand per EVSE-day compare with the corridor drawn around it? Reads the corridor_benchmark claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/CorridorBenchmarkParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityBand": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Min Capacity Kw"
},
"max_capacity_kw": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Capacity Kw"
}
},
"title": "CapacityBand",
"type": "object"
},
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"CorridorBenchmarkParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"observation_params": {
"$ref": "#/$defs/StationUtilizationParams"
},
"station_id": {
"minLength": 1,
"title": "Station Id",
"type": "string"
},
"aggregate_params": {
"$ref": "#/$defs/EvseAggregateParams"
}
},
"required": [
"site_id",
"observation_params",
"station_id",
"aggregate_params"
],
"title": "CorridorBenchmarkParams",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"EvseAggregateParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"geometry": {
"minLength": 1,
"title": "Geometry",
"type": "string"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityBand",
"default": {
"min_capacity_kw": null,
"max_capacity_kw": null
}
}
},
"required": [
"country_iso3",
"geometry",
"date_range"
],
"title": "EvseAggregateParams",
"type": "object"
},
"StationUtilizationParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "StationUtilizationParams",
"type": "object"
}
},
"title": "corridor_benchmarkArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "corridor_benchmarkOutput"
}🟢corridor_comparison(params)
How does this site compare with the named stations around it — distance, EVSE count, max kW, and sessions per EVSE-day each? Reads the corridor_comparison claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/CorridorComparisonParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"CorridorComparisonParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"pattern": "^[0-9a-fA-F]{32}$",
"title": "Site Id",
"type": "string"
},
"location": {
"$ref": "#/$defs/NearbyStationParams"
},
"observation_params": {
"$ref": "#/$defs/StationUtilizationParams"
}
},
"required": [
"site_id",
"location",
"observation_params"
],
"title": "CorridorComparisonParams",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"NearbyStationParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"lat": {
"maximum": 90,
"minimum": -90,
"title": "Lat",
"type": "number"
},
"lng": {
"maximum": 180,
"minimum": -180,
"title": "Lng",
"type": "number"
},
"radius_km": {
"exclusiveMinimum": 0,
"maximum": 10,
"title": "Radius Km",
"type": "number"
},
"limit": {
"anyOf": [
{
"maximum": 50,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Limit"
}
},
"required": [
"country_iso3",
"lat",
"lng",
"radius_km"
],
"title": "NearbyStationParams",
"type": "object"
},
"StationUtilizationParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "StationUtilizationParams",
"type": "object"
}
},
"title": "corridor_comparisonArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "corridor_comparisonOutput"
}🟢daily_spike(params)
Which days ran far above this site's normal, and by how much? Reads the daily_spike claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/DailySpikeParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DailySpikeParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"observation_params": {
"$ref": "#/$defs/StationUtilizationParams"
},
"factor": {
"default": 1.5,
"exclusiveMinimum": 0,
"title": "Factor",
"type": "number"
}
},
"required": [
"site_id",
"observation_params"
],
"title": "DailySpikeParams",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"StationUtilizationParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "StationUtilizationParams",
"type": "object"
}
},
"title": "daily_spikeArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "daily_spikeOutput"
}🟢day_vs_similar(params)
Was one particular day unusual for the day of week it fell on? Reads the day_vs_similar claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/DayVsSimilarParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"DayVsSimilarParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"observation_params": {
"$ref": "#/$defs/StationUtilizationParams"
},
"station_id": {
"minLength": 1,
"title": "Station Id",
"type": "string"
},
"target_date": {
"title": "Target Date",
"type": "string"
}
},
"required": [
"site_id",
"observation_params",
"station_id",
"target_date"
],
"title": "DayVsSimilarParams",
"type": "object"
},
"StationUtilizationParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "StationUtilizationParams",
"type": "object"
}
},
"title": "day_vs_similarArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "day_vs_similarOutput"
}🟢demand_share_multiple(params)
How much of the area's demand does this one site take, said as a multiple of the mean station? Reads the demand_share_multiple claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/DemandShareMultipleParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityBand": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Min Capacity Kw"
},
"max_capacity_kw": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Capacity Kw"
}
},
"title": "CapacityBand",
"type": "object"
},
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"DemandShareMultipleParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"observation_params": {
"$ref": "#/$defs/StationUtilizationParams"
},
"aggregate_params": {
"$ref": "#/$defs/StationAggregateParams"
}
},
"required": [
"site_id",
"observation_params",
"aggregate_params"
],
"title": "DemandShareMultipleParams",
"type": "object"
},
"StationAggregateParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"geometry": {
"minLength": 1,
"title": "Geometry",
"type": "string"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityBand",
"default": {
"min_capacity_kw": null,
"max_capacity_kw": null
}
}
},
"required": [
"country_iso3",
"geometry",
"date_range"
],
"title": "StationAggregateParams",
"type": "object"
},
"StationUtilizationParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "StationUtilizationParams",
"type": "object"
}
},
"title": "demand_share_multipleArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "demand_share_multipleOutput"
}🟢estate_coverage(params)
Which estate sites reported on every day of the window, which are partial or young, and how full is the window's final day? Reads the estate_coverage claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/EstateCoverageParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"EstateCoverageParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"estate": {
"$ref": "#/$defs/EstateScope"
}
},
"required": [
"site_id",
"estate"
],
"title": "EstateCoverageParams",
"type": "object"
},
"EstateScope": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"pattern": "^[0-9a-fA-F]{32}$",
"type": "string"
},
"maxLength": 50,
"minLength": 2,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "EstateScope",
"type": "object"
}
},
"title": "estate_coverageArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "estate_coverageOutput"
}🟢estate_monthly_series(params)
Did demand per EVSE across the estate move month over month, and did each focus site move with it? Reads the estate_monthly_series claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/EstateMonthlySeriesParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"EstateMonthlySeriesParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"estate": {
"$ref": "#/$defs/EstateScope"
},
"focus_station_ids": {
"default": [],
"items": {
"pattern": "^[0-9a-fA-F]{32}$",
"type": "string"
},
"maxItems": 6,
"title": "Focus Station Ids",
"type": "array"
}
},
"required": [
"site_id",
"estate"
],
"title": "EstateMonthlySeriesParams",
"type": "object"
},
"EstateScope": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"pattern": "^[0-9a-fA-F]{32}$",
"type": "string"
},
"maxLength": 50,
"minLength": 2,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "EstateScope",
"type": "object"
}
},
"title": "estate_monthly_seriesArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "estate_monthly_seriesOutput"
}🟢hourly_spike(params)
When in the day does demand at this site peak? Reads the hourly_spike claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/HourlySpikeParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateList": {
"additionalProperties": false,
"properties": {
"dates": {
"items": {
"type": "string"
},
"minLength": 1,
"title": "Dates",
"type": "array"
}
},
"required": [
"dates"
],
"title": "DateList",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"EvseHourlyParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Date"
},
"dates": {
"anyOf": [
{
"$ref": "#/$defs/DateList"
},
{
"type": "null"
}
],
"default": null
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids"
],
"title": "EvseHourlyParams",
"type": "object"
},
"HourlySpikeParams": {
"additionalProperties": false,
"properties": {
"observation_params": {
"$ref": "#/$defs/EvseHourlyParams"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"peak_window": {
"$ref": "#/$defs/PeakWindow",
"default": {
"from_hour": 6,
"until_hour": 23
}
}
},
"required": [
"observation_params",
"date_range",
"site_id"
],
"title": "HourlySpikeParams",
"type": "object"
},
"PeakWindow": {
"additionalProperties": false,
"properties": {
"from_hour": {
"default": 6,
"maximum": 23,
"minimum": 0,
"title": "From Hour",
"type": "integer"
},
"until_hour": {
"default": 23,
"maximum": 24,
"minimum": 1,
"title": "Until Hour",
"type": "integer"
}
},
"title": "PeakWindow",
"type": "object"
}
},
"title": "hourly_spikeArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "hourly_spikeOutput"
}🟢monthly_sessions_per_stall_day(params)
Is demand per EVSE rising or falling month over month? Reads the monthly_sessions_per_stall_day claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/MonthlySessionsPerStallDayParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"MonthlySessionsPerStallDayParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"observation_params": {
"$ref": "#/$defs/StationUtilizationParams"
},
"station_id": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Station Id"
}
},
"required": [
"site_id",
"observation_params"
],
"title": "MonthlySessionsPerStallDayParams",
"type": "object"
},
"StationUtilizationParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "StationUtilizationParams",
"type": "object"
}
},
"title": "monthly_sessions_per_stall_dayArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "monthly_sessions_per_stall_dayOutput"
}🟢peak_hour_co_saturation(params)
When the site reaches its busiest hour of the day, do the stations around it reach their own busiest hours at the same time? Reads the peak_hour_co_saturation claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/PeakHourCoSaturationParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateList": {
"additionalProperties": false,
"properties": {
"dates": {
"items": {
"type": "string"
},
"minLength": 1,
"title": "Dates",
"type": "array"
}
},
"required": [
"dates"
],
"title": "DateList",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"EvseHourlyParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Date"
},
"dates": {
"anyOf": [
{
"$ref": "#/$defs/DateList"
},
{
"type": "null"
}
],
"default": null
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids"
],
"title": "EvseHourlyParams",
"type": "object"
},
"PeakHourCoSaturationParams": {
"additionalProperties": false,
"properties": {
"observation_params": {
"$ref": "#/$defs/EvseHourlyParams"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"site_id": {
"pattern": "^[0-9a-fA-F]{32}$",
"title": "Site Id",
"type": "string"
},
"peak_window": {
"$ref": "#/$defs/PeakWindow",
"default": {
"from_hour": 6,
"until_hour": 23
}
},
"tolerance_hours": {
"default": 1,
"maximum": 6,
"minimum": 0,
"title": "Tolerance Hours",
"type": "integer"
}
},
"required": [
"observation_params",
"date_range",
"site_id"
],
"title": "PeakHourCoSaturationParams",
"type": "object"
},
"PeakWindow": {
"additionalProperties": false,
"properties": {
"from_hour": {
"default": 6,
"maximum": 23,
"minimum": 0,
"title": "From Hour",
"type": "integer"
},
"until_hour": {
"default": 23,
"maximum": 24,
"minimum": 1,
"title": "Until Hour",
"type": "integer"
}
},
"title": "PeakWindow",
"type": "object"
}
},
"title": "peak_hour_co_saturationArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "peak_hour_co_saturationOutput"
}🟢poi_context(params, places)
What kind of place is this site sitting in? Reads the poi_context claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading. places carries the rows this claim reads, because they are transcribed by the caller rather than fetched.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/PoiContextParams"
},
"places": {
"items": {
"$ref": "#/$defs/PlaceRow"
},
"title": "Places",
"type": "array"
}
},
"required": [
"params",
"places"
],
"$defs": {
"PlaceRow": {
"additionalProperties": true,
"properties": {
"name": {
"minLength": 1,
"title": "Name",
"type": "string"
},
"station_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Station Id"
},
"kind": {
"minLength": 1,
"title": "Kind",
"type": "string"
},
"dist_m": {
"minimum": 0,
"title": "Dist M",
"type": "integer"
},
"lat": {
"title": "Lat",
"type": "number"
},
"lon": {
"title": "Lon",
"type": "number"
},
"place_ref": {
"minLength": 1,
"title": "Place Ref",
"type": "string"
},
"source": {
"enum": [
"google_places",
"chargefinder"
],
"title": "Source",
"type": "string"
},
"rating": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Rating"
},
"reviews": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Reviews"
},
"co_located": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Co Located"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Note"
}
},
"required": [
"name",
"kind",
"dist_m",
"lat",
"lon",
"place_ref",
"source"
],
"title": "PlaceRow",
"type": "object"
},
"PoiContextParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
}
},
"required": [
"site_id"
],
"title": "PoiContextParams",
"type": "object"
}
},
"title": "poi_contextArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "poi_contextOutput"
}🟢rank_gap(params)
Where does this site sit in its estate's ranking, and how far is it from the estate median and the estate leader? Reads the rank_gap claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/RankGapParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"EstateScope": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"pattern": "^[0-9a-fA-F]{32}$",
"type": "string"
},
"maxLength": 50,
"minLength": 2,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "EstateScope",
"type": "object"
},
"RankGapParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"pattern": "^[0-9a-fA-F]{32}$",
"title": "Site Id",
"type": "string"
},
"estate": {
"$ref": "#/$defs/EstateScope"
},
"station_id": {
"pattern": "^[0-9a-fA-F]{32}$",
"title": "Station Id",
"type": "string"
}
},
"required": [
"site_id",
"estate",
"station_id"
],
"title": "RankGapParams",
"type": "object"
}
},
"title": "rank_gapArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "rank_gapOutput"
}🟢road_context(params)
What road does this site sit on, and what class is it? Reads the road_context claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/RoadContextParams"
}
},
"required": [
"params"
],
"$defs": {
"OvertureRoadsParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"radius_m": {
"anyOf": [
{
"exclusiveMinimum": 0,
"maximum": 10000,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Radius M"
}
},
"required": [
"country_iso3",
"station_ids"
],
"title": "OvertureRoadsParams",
"type": "object"
},
"RoadContextParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"observation_params": {
"$ref": "#/$defs/OvertureRoadsParams"
}
},
"required": [
"site_id",
"observation_params"
],
"title": "RoadContextParams",
"type": "object"
}
},
"title": "road_contextArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "road_contextOutput"
}🟢sessions_per_stall_day(params)
How hard is each EVSE at this site working per day? Reads the sessions_per_stall_day claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/SessionsPerStallDayParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"SessionsPerStallDayParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"observation_params": {
"$ref": "#/$defs/StationUtilizationParams"
},
"station_id": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Station Id"
}
},
"required": [
"site_id",
"observation_params"
],
"title": "SessionsPerStallDayParams",
"type": "object"
},
"StationUtilizationParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "StationUtilizationParams",
"type": "object"
}
},
"title": "sessions_per_stall_dayArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "sessions_per_stall_dayOutput"
}🟢site_profile(params)
What is this site — how many EVSEs, and how close is the nearest station? Reads the site_profile claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/SiteProfileParams"
}
},
"required": [
"params"
],
"$defs": {
"NearbyStationParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"lat": {
"maximum": 90,
"minimum": -90,
"title": "Lat",
"type": "number"
},
"lng": {
"maximum": 180,
"minimum": -180,
"title": "Lng",
"type": "number"
},
"radius_km": {
"exclusiveMinimum": 0,
"maximum": 10,
"title": "Radius Km",
"type": "number"
},
"limit": {
"anyOf": [
{
"maximum": 50,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Limit"
}
},
"required": [
"country_iso3",
"lat",
"lng",
"radius_km"
],
"title": "NearbyStationParams",
"type": "object"
},
"SiteProfileParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"pattern": "^[0-9a-fA-F]{32}$",
"title": "Site Id",
"type": "string"
},
"location": {
"$ref": "#/$defs/NearbyStationParams"
}
},
"required": [
"site_id",
"location"
],
"title": "SiteProfileParams",
"type": "object"
}
},
"title": "site_profileArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "site_profileOutput"
}🟢site_ranking(params)
How do the estate's sites rank on sessions per EVSE-day over one window, and how far is the leader above the estate median? Reads the site_ranking claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/SiteRankingParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"EstateScope": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"pattern": "^[0-9a-fA-F]{32}$",
"type": "string"
},
"maxLength": 50,
"minLength": 2,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "EstateScope",
"type": "object"
},
"SiteRankingParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"estate": {
"$ref": "#/$defs/EstateScope"
}
},
"required": [
"site_id",
"estate"
],
"title": "SiteRankingParams",
"type": "object"
}
},
"title": "site_rankingArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "site_rankingOutput"
}🟢total_charging_minutes(params)
How many minutes of charging did this site actually deliver over the window? Reads the total_charging_minutes claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/TotalChargingMinutesParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"StationUtilizationParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "StationUtilizationParams",
"type": "object"
},
"TotalChargingMinutesParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"observation_params": {
"$ref": "#/$defs/StationUtilizationParams"
},
"station_id": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Station Id"
}
},
"required": [
"site_id",
"observation_params"
],
"title": "TotalChargingMinutesParams",
"type": "object"
}
},
"title": "total_charging_minutesArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "total_charging_minutesOutput"
}🟢total_sessions(params)
How much charging demand did this site see over the window? Reads the total_sessions claim for one site and returns only its result: the status the claim decided from its own observations (computed or insufficient), the typed result, and the display a deliverable would print. The observations behind it are pulled into a scratch directory that is deleted before the call returns, so the rows never enter the conversation and nothing is left on the server to read back later — this call is the whole reading.
Eingabe-Schema
{
"type": "object",
"properties": {
"params": {
"$ref": "#/$defs/TotalSessionsParams"
}
},
"required": [
"params"
],
"$defs": {
"CapacityRange": {
"additionalProperties": false,
"properties": {
"min_capacity_kw": {
"default": 150,
"title": "Min Capacity Kw",
"type": "number"
},
"max_capacity_kw": {
"default": 1000,
"title": "Max Capacity Kw",
"type": "number"
}
},
"title": "CapacityRange",
"type": "object"
},
"DateRange": {
"additionalProperties": false,
"properties": {
"date_from": {
"title": "Date From",
"type": "string"
},
"date_to": {
"title": "Date To",
"type": "string"
}
},
"required": [
"date_from",
"date_to"
],
"title": "DateRange",
"type": "object"
},
"StationUtilizationParams": {
"additionalProperties": false,
"properties": {
"country_iso3": {
"maxLength": 3,
"minLength": 3,
"pattern": "^[A-Za-z]{3}$",
"title": "Country Iso3",
"type": "string"
},
"station_ids": {
"items": {
"type": "string"
},
"maxLength": 20,
"minLength": 1,
"title": "Station Ids",
"type": "array"
},
"date_range": {
"$ref": "#/$defs/DateRange"
},
"capacity": {
"$ref": "#/$defs/CapacityRange",
"default": {
"min_capacity_kw": "150.0",
"max_capacity_kw": "1000.0"
}
}
},
"required": [
"country_iso3",
"station_ids",
"date_range"
],
"title": "StationUtilizationParams",
"type": "object"
},
"TotalSessionsParams": {
"additionalProperties": false,
"properties": {
"site_id": {
"minLength": 1,
"title": "Site Id",
"type": "string"
},
"observation_params": {
"$ref": "#/$defs/StationUtilizationParams"
},
"station_id": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Station Id"
}
},
"required": [
"site_id",
"observation_params"
],
"title": "TotalSessionsParams",
"type": "object"
}
},
"title": "total_sessionsArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "total_sessionsOutput"
}Community
Nachweis