evcc-io/schema.json
Andreas Linde 7e41a970d5
Experimentelle geführte Erstellung der Konfigurationsdatei (#1888)
Dies ist eine experimentelle Umsetzung im folgenden aufgeführten Ziele.

Wie es verwendet:
- Start über `evcc configure`
- Die Konfiguration wird in evcc.yaml geschrieben. Falls diese existiert kann ein alternativer Dateiname angegeben werden

Was es kann:
- Eine geführte Erstellung der Konfigurationsdatei
- Direktes Testen ob die Konfiguration jedes Gerätes auch funktioniert
- Konfigurationsabhängigkeiten durch direkte Konfiguration der Abhängigkeit lösen (z.B. Sponsorshipt required)
- Konfiguration in für Anwender bekannte Informationen und möglichst wenig Informationseingabe zu ermöglichen, z.B. anhand von Produkten anstatt aus der Implementierungssicht
- Bisherige Konfiguration funktioniert weiter
2021-11-30 14:29:09 +01:00

175 lines
No EOL
3.5 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "EVCC configuration schema",
"type": "object",
"properties": {
"uri": {
"type": "string",
"format": "uri"
},
"interval": {
"$ref": "#/definitions/duration"
},
"log": {
"description": "Global log level",
"$ref": "#/definitions/loglevel"
},
"levels": {
"type": "object",
"description": "Log levels per area",
"additionalProperties": {
"type": "string"
}
},
"sponsortoken": {
"type": "string"
},
"chargers": {
"type": "array",
"description": "List of chargers",
"items": {
"$ref": "#/definitions/namedObject"
}
},
"meters": {
"type": "array",
"description": "List of meters",
"items": {
"$ref": "#/definitions/namedObject"
}
},
"vehicles": {
"type": "array",
"description": "List of vehicles",
"items": {
"$ref": "#/definitions/namedObject"
}
},
"site": {
"type": "object",
"required": [
"meters"
],
"properties": {
"title": {
"type": "string"
},
"meters": {
"type": "object",
"properties": {
"grid": {
"type": "string"
},
"pv": {
"type": "string"
},
"battery": {
"type": "string"
}
}
}
}
},
"loadpoints": {
"type": "array",
"description": "List of loadpoints",
"items": {
"type": "object",
"required": [
"charger"
],
"properties": {
"title": {
"type": "string"
},
"mode": {
"$ref": "#/definitions/mode"
},
"charger": {
"type": "string"
},
"meters": {
"type": "object",
"properties": {
"charge": {
"type": "string"
}
}
},
"vehicles": {
"type": "array",
"items": {
"type": "string"
}
},
"soc": {
"type": "object",
"properties": {
"poll": {
"type": "object",
"properties": {
"mode": {
"type": "string"
},
"interval": {
"$ref": "#/definitions/duration"
}
}
},
"min": {
"type": "integer"
},
"target": {
"type": "integer"
},
"estimate": {
"type": "boolean"
}
}
}
}
}
}
},
"definitions": {
"duration": {
"type": "string",
"pattern": "\\d[msh]$"
},
"namedObject": {
"type": "object",
"required": [
"name",
"type"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"template": {
"type": "string"
}
}
},
"loglevel": {
"enum": [
"trace",
"debug",
"info",
"error",
"fatal"
]
},
"mode": {
"enum": [
"off",
"on",
"pv",
"minpv"
]
}
}
}