Template Updates (#2447)
This commit is contained in:
parent
fa3055ccad
commit
33e6bd8531
85 changed files with 1180 additions and 143 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -6,6 +6,7 @@ __debug_bin
|
|||
*.json
|
||||
*.yaml
|
||||
!templates/**/*.yaml
|
||||
!templates/**/*-schema.json
|
||||
!util/templates/**/*.yaml
|
||||
!package*.json
|
||||
!evcc.dist.yaml
|
||||
|
|
|
|||
|
|
@ -25,7 +25,8 @@ var acceptable = []string{
|
|||
"can only have either uri or device", // modbus
|
||||
"sponsorship required, see https://github.com/evcc-io/evcc#sponsorship",
|
||||
"eebus not configured",
|
||||
"unexpected status: 400", // easee
|
||||
"Get \"http://192.0.2.2/shelly\": context deadline exceeded", // shelly
|
||||
"unexpected status: 400", // easee
|
||||
"Get \"http://192.0.2.2/getParameters\": context deadline exceeded", // evsewifi
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package configure
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
|
|
@ -80,6 +81,26 @@ func (c *CmdConfigure) processDeviceValues(values map[string]interface{}, templa
|
|||
|
||||
templateItem.Params = append(templateItem.Params, templates.Param{Name: "name", Value: device.Name})
|
||||
if !c.expandedMode {
|
||||
for index, param := range templateItem.Params {
|
||||
// reduce help texts to one line and add ...
|
||||
help := param.Help.String(c.lang)
|
||||
if help != "" {
|
||||
scanner := bufio.NewScanner(strings.NewReader(help))
|
||||
line := 0
|
||||
for scanner.Scan() {
|
||||
if line == 0 {
|
||||
help = scanner.Text()
|
||||
} else {
|
||||
help += "..."
|
||||
break
|
||||
}
|
||||
}
|
||||
if help != param.Help.String(c.lang) {
|
||||
templateItem.Params[index].Help.SetString(c.lang, help)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
b, err := templateItem.RenderProxyWithValues(values, c.lang)
|
||||
if err != nil {
|
||||
c.addedDeviceIndex--
|
||||
|
|
@ -128,7 +149,7 @@ func (c *CmdConfigure) processDeviceRequirements(templateItem templates.Template
|
|||
|
||||
// check if sponsorship is required
|
||||
if funk.ContainsString(templateItem.Requirements.EVCC, templates.RequirementSponsorship) && c.configuration.config.SponsorToken == "" {
|
||||
if err := c.askSponsortoken(true); err != nil {
|
||||
if err := c.askSponsortoken(true, false); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
@ -183,17 +204,47 @@ func (c *CmdConfigure) processDeviceRequirements(templateItem templates.Template
|
|||
return nil
|
||||
}
|
||||
|
||||
func (c *CmdConfigure) askSponsortoken(required bool) error {
|
||||
// processParamRequirements handles param requirements
|
||||
func (c *CmdConfigure) processParamRequirements(param templates.Param) error {
|
||||
requirementDescription := stripmd.Strip(param.Requirements.Description.String(c.lang))
|
||||
if len(requirementDescription) > 0 {
|
||||
fmt.Println()
|
||||
fmt.Println("-------------------------------------------------")
|
||||
fmt.Println(c.localizedString("Requirements_Title", nil))
|
||||
fmt.Println(requirementDescription)
|
||||
if len(param.Requirements.URI) > 0 {
|
||||
fmt.Println(" " + c.localizedString("Requirements_More", nil) + " " + param.Requirements.URI)
|
||||
}
|
||||
fmt.Println("-------------------------------------------------")
|
||||
}
|
||||
|
||||
// check if sponsorship is required
|
||||
if funk.ContainsString(param.Requirements.EVCC, templates.RequirementSponsorship) && c.configuration.config.SponsorToken == "" {
|
||||
if err := c.askSponsortoken(true, true); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *CmdConfigure) askSponsortoken(required bool, feature bool) error {
|
||||
fmt.Println("-- Sponsorship -----------------------------")
|
||||
if required {
|
||||
fmt.Println()
|
||||
fmt.Println(c.localizedString("Requirements_Sponsorship_Title", nil))
|
||||
if feature {
|
||||
fmt.Println(c.localizedString("Requirements_Sponsorship_Feature_Title", nil))
|
||||
} else {
|
||||
fmt.Println(c.localizedString("Requirements_Sponsorship_Title", nil))
|
||||
}
|
||||
} else {
|
||||
fmt.Println()
|
||||
fmt.Println(c.localizedString("Requirements_Sponsorship_Optional_Title", nil))
|
||||
}
|
||||
fmt.Println()
|
||||
if !c.askYesNo(c.localizedString("Requirements_Sponsorship_Token", nil)) {
|
||||
fmt.Println()
|
||||
fmt.Println("--------------------------------------------")
|
||||
return c.errItemNotPresent
|
||||
}
|
||||
|
||||
|
|
@ -201,12 +252,16 @@ func (c *CmdConfigure) askSponsortoken(required bool) error {
|
|||
label: c.localizedString("Requirements_Sponsorship_Token_Input", nil),
|
||||
mask: true,
|
||||
required: true})
|
||||
c.configuration.config.SponsorToken = sponsortoken
|
||||
sponsor.Subject = sponsortoken
|
||||
|
||||
err := sponsor.ConfigureSponsorship(sponsortoken)
|
||||
if err != nil {
|
||||
c.configuration.config.SponsorToken = sponsortoken
|
||||
}
|
||||
|
||||
fmt.Println()
|
||||
fmt.Println("--------------------------------------------")
|
||||
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *CmdConfigure) configureMQTT(templateItem templates.Template) (map[string]interface{}, error) {
|
||||
|
|
@ -423,9 +478,18 @@ func (c *CmdConfigure) processParams(templateItem *templates.Template, deviceCat
|
|||
|
||||
switch param.ValueType {
|
||||
case templates.ParamValueTypeStringList:
|
||||
additionalConfig[param.Name] = c.processListInputConfig(param)
|
||||
values := c.processListInputConfig(param)
|
||||
var nonEmptyValues []string
|
||||
for _, value := range values {
|
||||
if value != "" {
|
||||
nonEmptyValues = append(nonEmptyValues, value)
|
||||
}
|
||||
}
|
||||
additionalConfig[param.Name] = nonEmptyValues
|
||||
default:
|
||||
additionalConfig[param.Name] = c.processInputConfig(param)
|
||||
if value := c.processInputConfig(param); value != "" {
|
||||
additionalConfig[param.Name] = value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -462,14 +526,28 @@ func (c *CmdConfigure) processInputConfig(param templates.Param) string {
|
|||
label = langLabel
|
||||
}
|
||||
|
||||
return c.askValue(question{
|
||||
help := param.Help.String(c.lang)
|
||||
if funk.ContainsString(param.Requirements.EVCC, templates.RequirementSponsorship) {
|
||||
help = fmt.Sprintf("%s\n\n%s", help, c.localizedString("Requirements_Sponsorship_Feature_Title", nil))
|
||||
}
|
||||
|
||||
value := c.askValue(question{
|
||||
label: label,
|
||||
defaultValue: param.Default,
|
||||
exampleValue: param.Example,
|
||||
help: param.Help.String(c.lang),
|
||||
help: help,
|
||||
valueType: param.ValueType,
|
||||
validValues: param.ValidValues,
|
||||
mask: param.Mask,
|
||||
required: param.Required})
|
||||
|
||||
if param.ValueType == templates.ParamValueTypeBool && value == "true" {
|
||||
if err := c.processParamRequirements(param); err != nil {
|
||||
return "false"
|
||||
}
|
||||
}
|
||||
|
||||
return value
|
||||
}
|
||||
|
||||
// handle user input for a device modbus configuration
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ Requirements_More = "Weitere Informationen:"
|
|||
|
||||
Requirements_Sponsorship_Title = "Dieses Gerät benötigt ein Sponsorship von evcc. Wie das funktioniert und was ist, findest du hier: https://docs.evcc.io/docs/sponsorship"
|
||||
Requirements_Sponsorship_Optional_Title = "Die Entwicklung von evcc kann über Sponsoring unterstützt werden. Wie das funktioniert und was ist, findest du hier: https://docs.evcc.io/docs/sponsorship"
|
||||
Requirements_Sponsorship_Feature_Title = "Dies Verwendung dieser Funktionalität benötigt ein Sponsorship von evcc. Wie das funktioniert und was ist, findest du hier: https://docs.evcc.io/docs/sponsorship"
|
||||
Requirements_Sponsorship_Token = "Bist du ein Sponsor?"
|
||||
Requirements_Sponsorship_Token_Input = "Bitte gib das Sponsortoken ein"
|
||||
|
||||
|
|
@ -90,9 +91,11 @@ Config_No = "Nein"
|
|||
Cancel = "Die Konfiguration wurde abgebrochen.\n\nFalls diese geführte Konfiguration für dich noch nicht funktioniert, versuche es doch mal mit der manuellen Konfiguration. Details findest du auf der folgenden Webseite: https://docs.evcc.io/docs/\n"
|
||||
InputError = "Bei der Eingabe ist ein Fehler aufgetreten:"
|
||||
|
||||
Value_Help = "Hilfe:"
|
||||
Value_Required = "erforderlich"
|
||||
Value_Optional = "optional"
|
||||
Value_Sample = "Beispiel"
|
||||
ValueError_Invalid = "Ungültiger Wert"
|
||||
ValueError_Used = "Dieser Wert wird bereits verwendet."
|
||||
ValueError_Empty = "Der Wert darf nicht leer sein."
|
||||
ValueError_Float = "Der Wert muss eine Zahl sein. Nachkommastellen mit . anstatt mit , trennen."
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ Requirements_More = "Additional information:"
|
|||
|
||||
Requirements_Sponsorship_Title = "This device requires an evcc sponsorship. Check the following link for what this is and how it works: https://docs.evcc.io/docs/sponsorship"
|
||||
Requirements_Sponsorship_Optional_Title = "The development of evcc can be supported via sponsoring. Check the following link for what this is and how it works: https://docs.evcc.io/docs/sponsorship"
|
||||
Requirements_Sponsorship_Feature_Title = "To use this feature a evcc sponsorship is required. Check the following link for what this is and how it works: https://docs.evcc.io/docs/sponsorship"
|
||||
Requirements_Sponsorship_Token = "Are you already a sponsor?"
|
||||
Requirements_Sponsorship_Token_Input = "Please enter the sponsortoken"
|
||||
|
||||
|
|
@ -90,9 +91,11 @@ Config_No = "No"
|
|||
Cancel = "The configuration was cancelled.\n\nIf this guided configuration process doesn't work for you yet, please try the manual configuration. You can find more details about that on our website: https://docs.evcc.io/docs/\n"
|
||||
InputError = "An input error occurred:"
|
||||
|
||||
Value_Help = "Help:"
|
||||
Value_Required = "required"
|
||||
Value_Optional = "optional"
|
||||
Value_Sample = "Example"
|
||||
ValueError_Invalid = "This value is invalid"
|
||||
ValueError_Used = "This value is aready in use."
|
||||
ValueError_Empty = "The value may not be empty."
|
||||
ValueError_Float = "The value has to be a number."
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ func (c *CmdConfigure) flowNewConfigFile() {
|
|||
}
|
||||
|
||||
if c.advancedMode && c.configuration.config.SponsorToken == "" {
|
||||
_ = c.askSponsortoken(false)
|
||||
_ = c.askSponsortoken(false, false)
|
||||
}
|
||||
|
||||
yaml, err := c.configuration.RenderConfiguration()
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import (
|
|||
"github.com/evcc-io/evcc/api"
|
||||
"github.com/evcc-io/evcc/util/templates"
|
||||
"github.com/thoas/go-funk"
|
||||
stripmd "github.com/writeas/go-strip-markdown"
|
||||
)
|
||||
|
||||
// surveyAskOne asks the user for input
|
||||
|
|
@ -107,6 +108,7 @@ type question struct {
|
|||
label, help string
|
||||
defaultValue, exampleValue string
|
||||
invalidValues []string
|
||||
validValues []string
|
||||
valueType string
|
||||
minNumberValue, maxNumberValue int64
|
||||
mask, required bool
|
||||
|
|
@ -127,7 +129,11 @@ func (c *CmdConfigure) askValue(q question) string {
|
|||
if q.valueType == templates.ParamValueTypeBool {
|
||||
label := q.label
|
||||
if q.help != "" {
|
||||
label = q.help
|
||||
helpDescription := stripmd.Strip(q.help)
|
||||
fmt.Println("-------------------------------------------------")
|
||||
fmt.Println(c.localizedString("Value_Help", nil))
|
||||
fmt.Println(helpDescription)
|
||||
fmt.Println("-------------------------------------------------")
|
||||
}
|
||||
|
||||
return c.askBoolValue(label)
|
||||
|
|
@ -159,6 +165,10 @@ func (c *CmdConfigure) askValue(q question) string {
|
|||
return errors.New(c.localizedString("ValueError_Used", nil))
|
||||
}
|
||||
|
||||
if q.validValues != nil && !funk.ContainsString(q.validValues, value) {
|
||||
return errors.New(c.localizedString("ValueError_Invalid", nil))
|
||||
}
|
||||
|
||||
if q.required && len(value) == 0 {
|
||||
return errors.New(c.localizedString("ValueError_Empty", nil))
|
||||
}
|
||||
|
|
|
|||
37
cmd/setup.go
37
cmd/setup.go
|
|
@ -1,7 +1,6 @@
|
|||
package cmd
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
|
|
@ -10,7 +9,6 @@ import (
|
|||
|
||||
paho "github.com/eclipse/paho.mqtt.golang"
|
||||
"github.com/evcc-io/evcc/api"
|
||||
"github.com/evcc-io/evcc/api/proto/pb"
|
||||
"github.com/evcc-io/evcc/cmd/shutdown"
|
||||
"github.com/evcc-io/evcc/core"
|
||||
"github.com/evcc-io/evcc/core/loadpoint"
|
||||
|
|
@ -21,13 +19,10 @@ import (
|
|||
"github.com/evcc-io/evcc/server"
|
||||
"github.com/evcc-io/evcc/tariff"
|
||||
"github.com/evcc-io/evcc/util"
|
||||
"github.com/evcc-io/evcc/util/cloud"
|
||||
"github.com/evcc-io/evcc/util/pipe"
|
||||
"github.com/evcc-io/evcc/util/sponsor"
|
||||
"github.com/spf13/viper"
|
||||
"golang.org/x/text/currency"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
|
@ -52,7 +47,7 @@ func loadConfigFile(cfgFile string) (conf config, err error) {
|
|||
func configureEnvironment(conf config) (err error) {
|
||||
// setup sponsorship
|
||||
if conf.SponsorToken != "" {
|
||||
err = configureSponsorship(conf.SponsorToken)
|
||||
err = sponsor.ConfigureSponsorship(conf.SponsorToken)
|
||||
}
|
||||
|
||||
// setup mqtt client listener
|
||||
|
|
@ -73,36 +68,6 @@ func configureEnvironment(conf config) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func configureSponsorship(token string) error {
|
||||
host := util.Getenv("GRPC_URI", cloud.Host)
|
||||
conn, err := cloud.Connection(host)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
client := pb.NewAuthClient(conn)
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
defer cancel()
|
||||
|
||||
res, err := client.IsAuthorized(ctx, &pb.AuthRequest{Token: token})
|
||||
if err == nil && res.Authorized {
|
||||
sponsor.Subject = res.Subject
|
||||
sponsor.Token = token
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
if s, ok := status.FromError(err); ok && s.Code() != codes.Unknown {
|
||||
sponsor.Subject = "sponsorship unavailable"
|
||||
err = nil
|
||||
} else {
|
||||
err = fmt.Errorf("sponsortoken: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// setup influx database
|
||||
func configureDatabase(conf server.InfluxConfig, loadPoints []loadpoint.API, in <-chan util.Param) {
|
||||
influx := server.NewInfluxClient(
|
||||
|
|
|
|||
|
|
@ -108,9 +108,9 @@ Example Use Case: With SMA Home Manager, there can be a SMA Energy Meter used fo
|
|||
|
||||
`params` describes the set of parameters the user needs to provide a value for.
|
||||
|
||||
## `base`
|
||||
## `preset`
|
||||
|
||||
`base` reference value of a predefined params set defined in `parambaselist.yaml`, so these params don't need to be redefined in each template. The `example` and `default` values for each predefined value can be overwritten.
|
||||
`preset` reference value of a predefined params set defined in `parambaselist.yaml`, so these params don't need to be redefined in each template. The `example` and `default` values for each predefined value can be overwritten.
|
||||
|
||||
### `name`
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
template: heidelberg
|
||||
products:
|
||||
products:
|
||||
- brand: Heidelberg
|
||||
description:
|
||||
generic: Energy Control (Modbus RTU)
|
||||
|
|
|
|||
284
templates/definition/common-schema.json
Normal file
284
templates/definition/common-schema.json
Normal file
|
|
@ -0,0 +1,284 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-06/schema#",
|
||||
"title": "EVCC common templates schema",
|
||||
"definitions": {
|
||||
"LanguageText": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"generic": {
|
||||
"type": "string"
|
||||
},
|
||||
"de": {
|
||||
"type": "string"
|
||||
},
|
||||
"en": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"oneOf": [
|
||||
{"required": ["generic"]},
|
||||
{"required": ["de", "en"]}
|
||||
],
|
||||
"title": "LanguageText"
|
||||
},
|
||||
"Requirements": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"evcc": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"enum": ["sponsorship", "eebus", "mqtt"]
|
||||
}
|
||||
},
|
||||
"description": {
|
||||
"$ref": "#/definitions/LanguageText"
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
}
|
||||
},
|
||||
"anyOf":[
|
||||
{"required": ["evcc"]},
|
||||
{"required": ["description"]}
|
||||
],
|
||||
"title": "Requirements"
|
||||
},
|
||||
"ParamDevice": {
|
||||
"anyOf": [
|
||||
{"$ref": "#/definitions/ParamTemplate"},
|
||||
{"$ref": "#/definitions/ParamUsage"},
|
||||
{"$ref": "#/definitions/ParamModbus"}
|
||||
]
|
||||
},
|
||||
"ParamUsage": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"value": "usage"
|
||||
},
|
||||
"choice": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"enum": ["charge", "grid", "pv", "battery"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"choice"
|
||||
],
|
||||
"title": "ParamUsage"
|
||||
},
|
||||
"ParamModbus": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"value": "modbus"
|
||||
},
|
||||
"choice": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"enum": ["tcpip", "rs485"]
|
||||
}
|
||||
},
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"port": {
|
||||
"type": "integer"
|
||||
},
|
||||
"baudrate": {
|
||||
"type": "integer",
|
||||
"enum": [9600, 19200, 38400, 57600, 115200]
|
||||
},
|
||||
"comset": {
|
||||
"enum": [8E1, "8N1"]
|
||||
},
|
||||
"help": {
|
||||
"$ref": "#/definitions/LanguageText"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"choice"
|
||||
],
|
||||
"title": "ParamModbus"
|
||||
},
|
||||
"ParamTemplate": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"preset": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"mask": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"required": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"advanced": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"hidden": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"example": {
|
||||
"minLength": 1
|
||||
},
|
||||
"default": {
|
||||
"minLength": 1
|
||||
},
|
||||
"deprecated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"valuetype": {
|
||||
"type": "string",
|
||||
"enum": ["string", "bool", "number", "float", "stringlist", "chargemodes", "duration"]
|
||||
},
|
||||
"validvalues": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"choice": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/ParamDependency"
|
||||
}
|
||||
},
|
||||
"description": {
|
||||
"$ref": "#/definitions/LanguageText"
|
||||
},
|
||||
"help": {
|
||||
"$ref": "#/definitions/LanguageText"
|
||||
},
|
||||
"requirements": {
|
||||
"$ref": "#/definitions/Requirements"
|
||||
}
|
||||
},
|
||||
"oneOf": [
|
||||
{"required": ["name"]},
|
||||
{"required": ["preset"]}
|
||||
],
|
||||
"title": "ParamTemplate"
|
||||
},
|
||||
"ParamDefaults": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"reference": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"referencename": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"mask": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"required": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"advanced": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"hidden": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"example": {
|
||||
"minLength": 1
|
||||
},
|
||||
"default": {
|
||||
"minLength": 1
|
||||
},
|
||||
"valuetype": {
|
||||
"type": "string",
|
||||
"enum": ["string", "bool", "number", "float", "stringlist", "chargemodes", "duration"]
|
||||
},
|
||||
"validvalues": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/ParamDependency"
|
||||
}
|
||||
},
|
||||
"description": {
|
||||
"$ref": "#/definitions/LanguageText"
|
||||
},
|
||||
"help": {
|
||||
"$ref": "#/definitions/LanguageText"
|
||||
},
|
||||
"requirements": {
|
||||
"$ref": "#/definitions/Requirements"
|
||||
}
|
||||
},
|
||||
"required": ["name"],
|
||||
"title": "ParamDefaults"
|
||||
},
|
||||
"ParamDependency": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"check": {
|
||||
"type": "string",
|
||||
"enum": ["empty", "notempty", "equal"]
|
||||
},
|
||||
"value": {
|
||||
"minLength": 1
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"check"
|
||||
],
|
||||
"anyOf": [
|
||||
{
|
||||
"properties": {
|
||||
"check": {
|
||||
"value": "equal"
|
||||
}
|
||||
},
|
||||
"required": ["value"]
|
||||
},
|
||||
{"required": ["check"]}
|
||||
],
|
||||
"title": "ParamDependency"
|
||||
}
|
||||
}
|
||||
}
|
||||
147
templates/definition/defaults-schema.json
Normal file
147
templates/definition/defaults-schema.json
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-06/schema#",
|
||||
"title": "EVCC defaults configuration schema",
|
||||
"$ref": "#/definitions/root",
|
||||
"definitions": {
|
||||
"root": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"params": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "common-schema.json#/definitions/ParamDefaults"
|
||||
}
|
||||
},
|
||||
"presets": {
|
||||
"$ref": "#/definitions/Presets"
|
||||
},
|
||||
"modbus": {
|
||||
"$ref": "#/definitions/Modbus"
|
||||
},
|
||||
"devicegroups": {
|
||||
"$ref": "#/definitions/Devicegroups"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"devicegroups",
|
||||
"modbus",
|
||||
"params",
|
||||
"presets"
|
||||
],
|
||||
"title": "Defaults"
|
||||
},
|
||||
"Devicegroups": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"generic": {
|
||||
"$ref": "#/definitions/Generic"
|
||||
},
|
||||
"switchsockets": {
|
||||
"$ref": "#/definitions/Generic"
|
||||
},
|
||||
"sockets": {
|
||||
"$ref": "#/definitions/Generic"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"generic",
|
||||
"sockets",
|
||||
"switchsockets"
|
||||
],
|
||||
"title": "Devicegroups"
|
||||
},
|
||||
"Generic": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"de": {
|
||||
"type": "string"
|
||||
},
|
||||
"en": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"de",
|
||||
"en"
|
||||
],
|
||||
"title": "Generic"
|
||||
},
|
||||
"Modbus": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"interfaces": {
|
||||
"$ref": "#/definitions/Interfaces"
|
||||
},
|
||||
"types": {
|
||||
"$ref": "#/definitions/Types"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"interfaces",
|
||||
"types"
|
||||
],
|
||||
"title": "Modbus"
|
||||
},
|
||||
"Interfaces": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^[a-z]": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"title": "Interfaces"
|
||||
},
|
||||
"Types": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^[a-z]": {
|
||||
"type": "object",
|
||||
"$ref": "#/definitions/TypeElement"
|
||||
}
|
||||
},
|
||||
"title": "Types"
|
||||
},
|
||||
"TypeElement": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"description": {
|
||||
"$ref": "common-schema.json#/definitions/LanguageText"
|
||||
},
|
||||
"params": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "common-schema.json#/definitions/ParamDefaults"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Presets": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^[a-z]": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"params": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "common-schema.json#/definitions/ParamTemplate"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"title": "Presets"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -101,6 +101,30 @@ params:
|
|||
de: Das zeitliche Interval, in welchem Daten vom Fahrzeug neu geladen werden soll
|
||||
en: Time interval with when data should be reloaded from the vehicle
|
||||
example: 5m
|
||||
- name: cloud
|
||||
description:
|
||||
de: evcc Cloud
|
||||
en: evcc Cloud
|
||||
help:
|
||||
de: |
|
||||
Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,
|
||||
wird dies über die evcc Cloud gemacht. Die Zugangsdaten und VIN werden sicher und verschlüsselt
|
||||
übertragen und in der Cloud nicht gespeichert.
|
||||
|
||||
Die Vorteile sind:
|
||||
- Falls sich etwas an der Online API des Fahrzeugherstellers ändert, können Updates für alle Benutzer viel schneller zur Verfügung gestellt werden
|
||||
- Man muss nicht auf eine neue Version von evcc warten und dann ein lokales Update von evcc durchführen
|
||||
en: |
|
||||
Instead of connecting to the vehicle manufacturers online API from your local installation,
|
||||
this will use the evcc Cloud instead. Your credentials and VIN will be transfered encrypted and
|
||||
securely and won't be stored in the cloud.
|
||||
|
||||
The benefits are:
|
||||
- If the vehicles online API changes, we can update this for all users more quickly
|
||||
- No waiting for a new evcc version in this case and then requiring an update
|
||||
requirements:
|
||||
evcc: ["sponsorship"]
|
||||
valuetype: bool
|
||||
- name: timeout
|
||||
description:
|
||||
de: Zeitüberschreitung
|
||||
|
|
@ -170,6 +194,15 @@ params:
|
|||
de: Leistung oberhalb des angegebenen Wertes wird als Ladeleistung gewertet
|
||||
en: Power values above this value will be considered as charging pow
|
||||
valuetype: number
|
||||
- name: language
|
||||
description:
|
||||
de: Sprache
|
||||
en: Language
|
||||
help:
|
||||
de: "'de' für Deutsch und 'en' für Englisch"
|
||||
en: "'en' for English and 'de' for German"
|
||||
default: en
|
||||
validvalues: ["de", "en"]
|
||||
|
||||
presets:
|
||||
vehiclebase:
|
||||
|
|
@ -220,7 +253,7 @@ presets:
|
|||
advanced: true
|
||||
- name: identifiers
|
||||
advanced: true
|
||||
valueType: stringlist
|
||||
valuetype: stringlist
|
||||
render: |
|
||||
{{define "vehicle-identify"}}
|
||||
{{- if or (ne .mode "") (ne .minSoC "") (ne .targetSoC "") (ne .minCurrent "") (ne .maxCurrent "") }}
|
||||
|
|
@ -248,6 +281,21 @@ presets:
|
|||
{{- end }}
|
||||
{{- end }}
|
||||
{{end}}
|
||||
vehiclelanguage:
|
||||
params:
|
||||
- name: language
|
||||
render: |
|
||||
{{define "vehicle-language"}}
|
||||
language: {{ .language }}
|
||||
{{end}}
|
||||
|
||||
vehiclecloud:
|
||||
params:
|
||||
- name: cloud
|
||||
render: |
|
||||
{{define "vehicle-cloud"}}
|
||||
cloud: {{ .cloud }}
|
||||
{{end}}
|
||||
|
||||
modbus:
|
||||
interfaces:
|
||||
|
|
|
|||
126
templates/definition/devices-schema.json
Normal file
126
templates/definition/devices-schema.json
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-06/schema#",
|
||||
"title": "EVCC device templates schema",
|
||||
"$ref": "#/definitions/root",
|
||||
"definitions": {
|
||||
"root": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"template": {
|
||||
"$": "#/definitions/Template"
|
||||
},
|
||||
"products": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/Product"
|
||||
}
|
||||
},
|
||||
"group": {
|
||||
"$ref": "#/definitions/Groups"
|
||||
},
|
||||
"guidedsetup": {
|
||||
"$ref": "#/definitions/GuidedSetup"
|
||||
},
|
||||
"capabilities": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/Capability"
|
||||
}
|
||||
},
|
||||
"requirements": {
|
||||
"$ref": "common-schema.json#/definitions/Requirements"
|
||||
},
|
||||
"params": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "common-schema.json#/definitions/ParamDevice"
|
||||
}
|
||||
},
|
||||
"render": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"template",
|
||||
"products",
|
||||
"params",
|
||||
"render"
|
||||
]
|
||||
},
|
||||
"Template": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": ["name"],
|
||||
"title": "Template"
|
||||
},
|
||||
"Product": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"brand": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": {
|
||||
"$ref": "common-schema.json#/definitions/LanguageText"
|
||||
}
|
||||
},
|
||||
"anyOf": [
|
||||
{"required": ["brand"]},
|
||||
{"required": ["description"]}
|
||||
],
|
||||
"title": "Product"
|
||||
},
|
||||
"Groups": {
|
||||
"type": "string",
|
||||
"enum": ["generic", "switchsockets", "sockets"]
|
||||
},
|
||||
"GuidedSetup": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"enable": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"linked": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/Linked"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": ["enable"]
|
||||
},
|
||||
"Linked": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"template": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"usage": {
|
||||
"type": "string",
|
||||
"enum": ["grid", "pv", "battery"]
|
||||
},
|
||||
"multiple": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"excludetemplate": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
}
|
||||
},
|
||||
"required": ["template", "usage"]
|
||||
},
|
||||
"Capability": {
|
||||
"type": "string",
|
||||
"enum": ["1p3p", "iso151182", "rfid", "smahems"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -19,10 +19,24 @@ params:
|
|||
id: 71
|
||||
port: 1502
|
||||
render: |
|
||||
type: modbus
|
||||
model: sunspec
|
||||
{{ include "modbus" . }}
|
||||
{{- if eq .usage "pv" }}
|
||||
type: custom
|
||||
power:
|
||||
type: calc
|
||||
add: # The add plugin sums up both string values
|
||||
- type: modbus
|
||||
model: sunspec
|
||||
{{ include "modbus" . | indent 4 }}
|
||||
value: 160:1:DCW # string 1
|
||||
- type: modbus
|
||||
model: sunspec
|
||||
{{ include "modbus" . | indent 4 }}
|
||||
value: 160:2:DCW # string 2
|
||||
{{- end }}
|
||||
{{- if eq .usage "battery" }}
|
||||
type: modbus
|
||||
{{ include "modbus" . }}
|
||||
model: sunspec
|
||||
power: 802:W # sunspec model 802 battery
|
||||
soc: 802:SoC # sunspec model 802 battery
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -16,12 +16,14 @@ params:
|
|||
- name: timeout
|
||||
default: 3s
|
||||
render: |
|
||||
type: modbus
|
||||
model: sunspec
|
||||
{{ include "modbus" . }}
|
||||
timeout: {{ .timeout }}
|
||||
type: custom
|
||||
power:
|
||||
source: modbus
|
||||
model: sunspec
|
||||
{{ include "modbus" . | indent 2 }}
|
||||
timeout: {{ .timeout }}
|
||||
{{- if eq .usage "grid" }}
|
||||
subdevice: 1
|
||||
power: 203:W # sunspec 3-phase meter power reading
|
||||
scale: -1
|
||||
subdevice: 1
|
||||
value: 203:W # sunspec 3-phase meter power reading
|
||||
scale: -1
|
||||
{{- end -}}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,14 @@ products:
|
|||
generic: Solarlog
|
||||
guidedsetup:
|
||||
enable: true
|
||||
requirements:
|
||||
description:
|
||||
de: |
|
||||
Wir empfehlen dieses Gerät für den Netzbezug/Einspeisewerte nur zu verwenden, wenn kein anderes Gerät diese Daten liefert.
|
||||
Falls eine Hausbatterie angeschlossen ist sollte dieses Gerät auf keinen Fall für die erwähnten Werte verwendet werden!
|
||||
en: |
|
||||
We recommend to use this device for grid power values only, if no other device is available providing this data.
|
||||
If you have a home battery installed, please do not use this device at all for grid power values.
|
||||
params:
|
||||
- name: usage
|
||||
choice: [ "grid", "pv" ]
|
||||
|
|
|
|||
33
templates/definition/meter/solarwatt-myreserve-matrix.yaml
Normal file
33
templates/definition/meter/solarwatt-myreserve-matrix.yaml
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
template: solarwatt-myreserve-matrix
|
||||
products:
|
||||
- brand: Solarwatt
|
||||
description:
|
||||
generic: MyReserve Matrix (LAN oder PowerGateway)
|
||||
guidedsetup:
|
||||
enable: true
|
||||
params:
|
||||
- name: usage
|
||||
choice: [ "grid", "pv", "battery" ]
|
||||
- name: host
|
||||
required: true
|
||||
example: 192.0.2.2
|
||||
- name: port
|
||||
default: 8080
|
||||
render: |
|
||||
type: custom
|
||||
power:
|
||||
source: http
|
||||
uri: http://{{ .host }}:{{ .port }}/
|
||||
{{- if eq .usage "grid" }}
|
||||
jq: .FData.PGrid
|
||||
{{- end }}
|
||||
{{- if eq .usage "pv" }}
|
||||
jq: .FData.IBat * .FData.VBa * -1
|
||||
{{- end }}
|
||||
{{- if eq .usage "battery" }}
|
||||
jq: .FData.IBat * .FData.VBat
|
||||
soc:
|
||||
source: http
|
||||
uri: http://{{ .host }}:{{ .port }}/
|
||||
jq: .SData.SoC
|
||||
{{- end }}
|
||||
|
|
@ -13,23 +13,49 @@ params:
|
|||
render: |
|
||||
type: custom
|
||||
power:
|
||||
{{- if eq .usage "grid" }}
|
||||
source: modbus
|
||||
{{include "modbus" . | indent 2}}
|
||||
register:
|
||||
type: input
|
||||
{{- if eq .usage "grid" }}
|
||||
address: 13009 # Export power
|
||||
decode: int32s
|
||||
scale: -1
|
||||
{{- end }}
|
||||
{{- if eq .usage "pv" }}
|
||||
source: modbus
|
||||
{{include "modbus" . | indent 2}}
|
||||
register:
|
||||
type: input
|
||||
address: 5016 # Total DC power
|
||||
decode: uint32s
|
||||
{{- end }}
|
||||
{{- if eq .usage "battery" }}
|
||||
address: 13021 # Battery power
|
||||
decode: int16
|
||||
#scale: -1 # charging sign form 13000 & 0x2
|
||||
source: calc
|
||||
mul:
|
||||
- source: modbus
|
||||
{{include "modbus" . | indent 4}}
|
||||
register:
|
||||
type: holding
|
||||
address: 13022 # Battery power
|
||||
decode: int16
|
||||
- source: calc
|
||||
add:
|
||||
- source: modbus
|
||||
{{include "modbus" . | indent 6}}
|
||||
register:
|
||||
type: holding
|
||||
address: 13001 # Battery running state
|
||||
decode: bool16
|
||||
bitmask: 2 # Charging
|
||||
scale: -1
|
||||
- source: modbus
|
||||
{{include "modbus" . | indent 6}}
|
||||
register:
|
||||
type: holding
|
||||
address: 13001 # Battery running state
|
||||
decode: bool16
|
||||
bitmask: 4 # Discharging
|
||||
soc:
|
||||
source: modbus
|
||||
{{include "modbus" . | indent 2}}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ params:
|
|||
example: WAUZZZ...
|
||||
- name: capacity
|
||||
default: 60
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: audi
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ params:
|
|||
example: WBMW...
|
||||
- name: capacity
|
||||
default: 65
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: bmw
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ params:
|
|||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 50
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: carwings
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@ params:
|
|||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 50
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: citroen
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@ params:
|
|||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 27.4
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: renault
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@ params:
|
|||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 50
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: ds
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ params:
|
|||
- name: phases
|
||||
advanced: true
|
||||
- preset: vehicleidentify
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: custom
|
||||
{{- if ne .title "" }}
|
||||
|
|
@ -29,3 +30,4 @@ render: |
|
|||
uri: https://app.evnotify.de/soc?akey={{ .akey }}&token={{ .token }} # evNotify Server + AKEY
|
||||
method: GET
|
||||
jq: .soc_display
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ params:
|
|||
- name: pin
|
||||
mask: true
|
||||
- preset: vehicleidentify
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: fiat
|
||||
{{include "vehicle-base" .}}
|
||||
|
|
@ -17,3 +18,4 @@ render: |
|
|||
pin: {{ .pin }} #mandatory to deep refresh SoC
|
||||
{{- end }}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ params:
|
|||
example: WF0FXX...
|
||||
- name: capacity
|
||||
default: 10
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: ford
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,18 @@
|
|||
template: hyundai
|
||||
products:
|
||||
- brand: Hyundai
|
||||
description:
|
||||
generic: Bluelink
|
||||
params:
|
||||
- preset: vehiclebase
|
||||
- preset: vehiclelanguage
|
||||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 64
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: hyundai
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-language" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
17
templates/definition/vehicle/jaguar-landrover.yaml
Normal file
17
templates/definition/vehicle/jaguar-landrover.yaml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
template: jaguar-landrover
|
||||
products:
|
||||
- brand: Jaguar
|
||||
- brand: Land Rover
|
||||
params:
|
||||
- preset: vehiclebase
|
||||
- preset: vehicleidentify
|
||||
- name: vin
|
||||
example: W...
|
||||
- name: capacity
|
||||
- preset: vehiclecloud
|
||||
default: 60
|
||||
render: |
|
||||
type: jaguar
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
@ -1,12 +1,18 @@
|
|||
template: kia
|
||||
products:
|
||||
- brand: Kia
|
||||
description:
|
||||
generic: Bluelink
|
||||
params:
|
||||
- preset: vehiclebase
|
||||
- preset: vehiclelanguage
|
||||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 64
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: kia
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-language" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
template: mercedes
|
||||
products:
|
||||
- brand: Mercedes
|
||||
description:
|
||||
generic: EQC
|
||||
params:
|
||||
- base: vehiclebase
|
||||
- name: clientId
|
||||
example: b8f717b3-f1b7-4169-a8ef-7ffd80c5327c
|
||||
- name: clientSecret
|
||||
mask: true
|
||||
example: QxSNLrIepEmcjGFdZpeUczqyqoOrhmxhASDasdvhizjhxHSEWFDfunfbeu
|
||||
- base: vehicleidentify
|
||||
render: |
|
||||
type: mercedes
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
|
||||
|
|
@ -8,7 +8,9 @@ params:
|
|||
example: WBMW...
|
||||
- name: capacity
|
||||
default: 32
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: mini
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ params:
|
|||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 60
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: nissan
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ params:
|
|||
example: WP0...
|
||||
- name: capacity
|
||||
default: 50
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: opel
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@ params:
|
|||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 50
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: peugeot
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@ params:
|
|||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 83.4
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: porsche
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ params:
|
|||
example: WREN...
|
||||
- name: capacity
|
||||
default: 60
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: renault
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@ params:
|
|||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 10
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: seat
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ params:
|
|||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 10
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: skoda
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ params:
|
|||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 50
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: enyaq
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -4,11 +4,13 @@ products:
|
|||
description:
|
||||
generic: EQ
|
||||
params:
|
||||
- base: vehiclebase
|
||||
- base: vehicleidentify
|
||||
- preset: vehiclebase
|
||||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 17.6
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: smart
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ params:
|
|||
- name: phases
|
||||
advanced: true
|
||||
- preset: vehicleidentify
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: tesla
|
||||
{{- if ne .title "" }}
|
||||
|
|
@ -52,3 +53,4 @@ render: |
|
|||
vin: {{ .vin }}
|
||||
{{- end }}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -11,10 +11,6 @@ params:
|
|||
required: true
|
||||
- name: secret
|
||||
required: true
|
||||
- name: accessToken
|
||||
required: true
|
||||
- name: refreshToken
|
||||
required: true
|
||||
- name: vin
|
||||
example: W...
|
||||
- name: capacity
|
||||
|
|
@ -30,9 +26,6 @@ render: |
|
|||
credentials:
|
||||
id: {{ .userid }}
|
||||
secret: {{ .secret }}
|
||||
tokens:
|
||||
access: {{ .accessToken }}
|
||||
refresh: {{ .refreshToken }}
|
||||
capacity: {{ .capacity }}
|
||||
{{- if ne .phases "" }}
|
||||
phases: {{ .phases }}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@ params:
|
|||
- preset: vehicleidentify
|
||||
- name: capacity
|
||||
default: 50
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: volvo
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ params:
|
|||
example: WVWZZZ...
|
||||
- name: capacity
|
||||
default: 10
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: vw
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ params:
|
|||
example: WVWZZZ...
|
||||
- name: capacity
|
||||
default: 50
|
||||
- preset: vehiclecloud
|
||||
render: |
|
||||
type: id
|
||||
{{include "vehicle-base" .}}
|
||||
{{include "vehicle-identify" .}}
|
||||
{{include "vehicle-cloud" .}}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
product:
|
||||
description: Solarlog
|
||||
description: |
|
||||
Wir empfehlen dieses Gerät für den Netzbezug/Einspeisewerte nur zu verwenden, wenn kein anderes Gerät diese Daten liefert.
|
||||
Falls eine Hausbatterie angeschlossen ist sollte dieses Gerät auf keinen Fall für die erwähnten Werte verwendet werden!
|
||||
|
||||
|
||||
render:
|
||||
- usage: grid
|
||||
|
|
|
|||
26
templates/docs/meter/solarwatt-myreserve-matrix_0.yaml
Normal file
26
templates/docs/meter/solarwatt-myreserve-matrix_0.yaml
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
product:
|
||||
brand: Solarwatt
|
||||
description: MyReserve Matrix (LAN oder PowerGateway)
|
||||
|
||||
render:
|
||||
- usage: grid
|
||||
default: |
|
||||
type: template
|
||||
template: solarwatt-myreserve-matrix
|
||||
usage: grid
|
||||
host: 192.0.2.2 # IP-Adresse oder Hostname
|
||||
port: 8080 # Port # Optional
|
||||
- usage: pv
|
||||
default: |
|
||||
type: template
|
||||
template: solarwatt-myreserve-matrix
|
||||
usage: pv
|
||||
host: 192.0.2.2 # IP-Adresse oder Hostname
|
||||
port: 8080 # Port # Optional
|
||||
- usage: battery
|
||||
default: |
|
||||
type: template
|
||||
template: solarwatt-myreserve-matrix
|
||||
usage: battery
|
||||
host: 192.0.2.2 # IP-Adresse oder Hostname
|
||||
port: 8080 # Port # Optional
|
||||
|
|
@ -10,6 +10,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: WAUZZZ... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 60 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: audi
|
||||
|
|
@ -24,4 +25,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -10,6 +10,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: WBMW... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 65 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: bmw
|
||||
|
|
@ -24,4 +25,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -11,6 +11,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 50 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: carwings
|
||||
|
|
@ -25,4 +26,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -10,6 +10,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 50 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: citroen
|
||||
|
|
@ -24,4 +25,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -10,6 +10,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 27.4 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: dacia
|
||||
|
|
@ -24,4 +25,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -10,6 +10,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 50 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: ds
|
||||
|
|
@ -24,4 +25,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -11,6 +11,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 50 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: enyaq
|
||||
|
|
@ -25,4 +26,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -10,6 +10,7 @@ render:
|
|||
akey:
|
||||
token:
|
||||
capacity: 64 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: evnotify
|
||||
|
|
@ -23,4 +24,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -11,6 +11,7 @@ render:
|
|||
vin: ZFAE... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 42 # Akku-Kapazität in kWh # Optional
|
||||
pin: # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: fiat
|
||||
|
|
@ -26,4 +27,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -10,6 +10,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: WF0FXX... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 10 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: ford
|
||||
|
|
@ -24,4 +25,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
product:
|
||||
brand: Hyundai
|
||||
description: Bluelink
|
||||
|
||||
render:
|
||||
- default: |
|
||||
|
|
@ -10,6 +11,8 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 64 # Akku-Kapazität in kWh # Optional
|
||||
language: en # 'de' für Deutsch und 'en' für Englisch # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: hyundai
|
||||
|
|
@ -19,9 +22,11 @@ render:
|
|||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 64 # Akku-Kapazität in kWh # Optional
|
||||
phases: 3 # Die maximale Anzahl der Phasen welche genutzt werden können # Optional
|
||||
language: en # 'de' für Deutsch und 'en' für Englisch # Optional
|
||||
mode: # Möglich sind Off, Now, MinPV und PV, oder leer wenn keiner definiert werden soll # Optional
|
||||
minSoC: 25 # Lade sofort mit maximaler Geschwindigkeit bis zu dem angegeben Ladestand, wenn der Lademodus nicht auf 'Aus' steht # Optional
|
||||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -11,6 +11,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: WVWZZZ... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 50 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: id
|
||||
|
|
@ -25,4 +26,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
29
templates/docs/vehicle/jaguar-landrover_0.yaml
Normal file
29
templates/docs/vehicle/jaguar-landrover_0.yaml
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
product:
|
||||
brand: Jaguar
|
||||
|
||||
render:
|
||||
- default: |
|
||||
type: template
|
||||
template: jaguar-landrover
|
||||
title: # Wird in der Benutzeroberfläche angezeigt # Optional
|
||||
user: # Benutzername um auf das Gerät zuzugreifen
|
||||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 41.5 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: jaguar-landrover
|
||||
title: # Wird in der Benutzeroberfläche angezeigt # Optional
|
||||
user: # Benutzername um auf das Gerät zuzugreifen
|
||||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 41.5 # Akku-Kapazität in kWh # Optional
|
||||
phases: 3 # Die maximale Anzahl der Phasen welche genutzt werden können # Optional
|
||||
mode: # Möglich sind Off, Now, MinPV und PV, oder leer wenn keiner definiert werden soll # Optional
|
||||
minSoC: 25 # Lade sofort mit maximaler Geschwindigkeit bis zu dem angegeben Ladestand, wenn der Lademodus nicht auf 'Aus' steht # Optional
|
||||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
29
templates/docs/vehicle/jaguar-landrover_1.yaml
Normal file
29
templates/docs/vehicle/jaguar-landrover_1.yaml
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
product:
|
||||
brand: Land Rover
|
||||
|
||||
render:
|
||||
- default: |
|
||||
type: template
|
||||
template: jaguar-landrover
|
||||
title: # Wird in der Benutzeroberfläche angezeigt # Optional
|
||||
user: # Benutzername um auf das Gerät zuzugreifen
|
||||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 41.5 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: jaguar-landrover
|
||||
title: # Wird in der Benutzeroberfläche angezeigt # Optional
|
||||
user: # Benutzername um auf das Gerät zuzugreifen
|
||||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 41.5 # Akku-Kapazität in kWh # Optional
|
||||
phases: 3 # Die maximale Anzahl der Phasen welche genutzt werden können # Optional
|
||||
mode: # Möglich sind Off, Now, MinPV und PV, oder leer wenn keiner definiert werden soll # Optional
|
||||
minSoC: 25 # Lade sofort mit maximaler Geschwindigkeit bis zu dem angegeben Ladestand, wenn der Lademodus nicht auf 'Aus' steht # Optional
|
||||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
product:
|
||||
brand: Kia
|
||||
description: Bluelink
|
||||
|
||||
render:
|
||||
- default: |
|
||||
|
|
@ -10,6 +11,8 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 64 # Akku-Kapazität in kWh # Optional
|
||||
language: en # 'de' für Deutsch und 'en' für Englisch # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: kia
|
||||
|
|
@ -19,9 +22,11 @@ render:
|
|||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 64 # Akku-Kapazität in kWh # Optional
|
||||
phases: 3 # Die maximale Anzahl der Phasen welche genutzt werden können # Optional
|
||||
language: en # 'de' für Deutsch und 'en' für Englisch # Optional
|
||||
mode: # Möglich sind Off, Now, MinPV und PV, oder leer wenn keiner definiert werden soll # Optional
|
||||
minSoC: 25 # Lade sofort mit maximaler Geschwindigkeit bis zu dem angegeben Ladestand, wenn der Lademodus nicht auf 'Aus' steht # Optional
|
||||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
product:
|
||||
brand: Mercedes
|
||||
description: EQC
|
||||
|
||||
render:
|
||||
- default: |
|
||||
type: template
|
||||
template: mercedes
|
||||
: # Optional
|
||||
clientId: b8f717b3-f1b7-4169-a8ef-7ffd80c5327c # Optional
|
||||
clientSecret: QxSNLrIepEmcjGFdZpeUczqyqoOrhmxhASDasdvhizjhxHSEWFDfunfbeu # Optional
|
||||
|
|
@ -10,6 +10,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: WBMW... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 32 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: mini
|
||||
|
|
@ -24,4 +25,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -11,6 +11,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 60 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: nissan
|
||||
|
|
@ -25,4 +26,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -10,6 +10,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: WP0... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 50 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: opel
|
||||
|
|
@ -24,4 +25,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -10,6 +10,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 50 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: peugeot
|
||||
|
|
@ -24,4 +25,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -10,6 +10,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 83.4 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: porsche
|
||||
|
|
@ -24,4 +25,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -10,6 +10,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: WREN... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 60 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: renault
|
||||
|
|
@ -24,4 +25,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -11,6 +11,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 10 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: seat
|
||||
|
|
@ -25,4 +26,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -11,6 +11,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 10 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: seat
|
||||
|
|
@ -25,4 +26,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -11,6 +11,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 10 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: skoda
|
||||
|
|
@ -25,4 +26,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -6,5 +6,25 @@ render:
|
|||
- default: |
|
||||
type: template
|
||||
template: smart
|
||||
: # Optional
|
||||
capacity: 17.6 # Akku-Kapazität in kWh # Optional
|
||||
title: # Wird in der Benutzeroberfläche angezeigt # Optional
|
||||
user: # Benutzername um auf das Gerät zuzugreifen
|
||||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 17.6 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: smart
|
||||
title: # Wird in der Benutzeroberfläche angezeigt # Optional
|
||||
user: # Benutzername um auf das Gerät zuzugreifen
|
||||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 17.6 # Akku-Kapazität in kWh # Optional
|
||||
phases: 3 # Die maximale Anzahl der Phasen welche genutzt werden können # Optional
|
||||
mode: # Möglich sind Off, Now, MinPV und PV, oder leer wenn keiner definiert werden soll # Optional
|
||||
minSoC: 25 # Lade sofort mit maximaler Geschwindigkeit bis zu dem angegeben Ladestand, wenn der Lademodus nicht auf 'Aus' steht # Optional
|
||||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -18,6 +18,7 @@ render:
|
|||
refreshToken: # Siehe https://docs.evcc.io/docs/devices/vehicles#tesla
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 90 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: tesla
|
||||
|
|
@ -32,4 +33,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -10,8 +10,6 @@ render:
|
|||
title: # Wird in der Benutzeroberfläche angezeigt # Optional
|
||||
userid:
|
||||
secret:
|
||||
accessToken:
|
||||
refreshToken:
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 10 # Akku-Kapazität in kWh # Optional
|
||||
advanced: |
|
||||
|
|
@ -20,8 +18,6 @@ render:
|
|||
title: # Wird in der Benutzeroberfläche angezeigt # Optional
|
||||
userid:
|
||||
secret:
|
||||
accessToken:
|
||||
refreshToken:
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 10 # Akku-Kapazität in kWh # Optional
|
||||
phases: 3 # Die maximale Anzahl der Phasen welche genutzt werden können # Optional
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: W... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 50 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: volvo
|
||||
|
|
@ -24,4 +25,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -11,6 +11,7 @@ render:
|
|||
password: # Passwort des Benutzerkontos
|
||||
vin: WVWZZZ... # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind # Optional
|
||||
capacity: 10 # Akku-Kapazität in kWh # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
advanced: |
|
||||
type: template
|
||||
template: vw
|
||||
|
|
@ -25,4 +26,5 @@ render:
|
|||
targetSoC: 80 # Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden # Optional
|
||||
minCurrent: 6 # Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
maxCurrent: 16 # Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
identifiers: # Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox # Optional
|
||||
cloud: # Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen,... # Optional
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
package util
|
||||
|
||||
import "math/rand"
|
||||
import (
|
||||
"math/rand"
|
||||
)
|
||||
|
||||
// RandomString creates random string of N integers
|
||||
func RandomString(n int) string {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,50 @@
|
|||
package sponsor
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/evcc-io/evcc/api/proto/pb"
|
||||
"github.com/evcc-io/evcc/util"
|
||||
"github.com/evcc-io/evcc/util/cloud"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
var Subject, Token string
|
||||
|
||||
func IsAuthorized() bool {
|
||||
return len(Subject) > 0
|
||||
}
|
||||
|
||||
// check and set sponsorship token
|
||||
func ConfigureSponsorship(token string) error {
|
||||
host := util.Getenv("GRPC_URI", cloud.Host)
|
||||
conn, err := cloud.Connection(host)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
client := pb.NewAuthClient(conn)
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
defer cancel()
|
||||
|
||||
res, err := client.IsAuthorized(ctx, &pb.AuthRequest{Token: token})
|
||||
if err == nil && res.Authorized {
|
||||
Subject = res.Subject
|
||||
Token = token
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
if s, ok := status.FromError(err); ok && s.Code() != codes.Unknown {
|
||||
Subject = "sponsorship unavailable"
|
||||
err = nil
|
||||
} else {
|
||||
err = fmt.Errorf("sponsortoken: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
type: template
|
||||
template: {{ .Template }}
|
||||
{{ range .Params -}}
|
||||
{{- range .Params }}
|
||||
{{- if or (ne (len .Value) 0) (ne (len .Values) 0) }}
|
||||
{{ .Name }}:
|
||||
{{- if len .Value }} {{ .Value }} {{ end }}
|
||||
{{- if .Help.DE }} # {{ .Help.DE }} {{- end }}
|
||||
{{- if ne (len .Values) 0 }}
|
||||
{{- range .Values }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{ end -}}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package templates
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
_ "embed"
|
||||
"fmt"
|
||||
"strings"
|
||||
"text/template"
|
||||
|
||||
"github.com/Masterminds/sprig/v3"
|
||||
|
|
@ -67,6 +69,25 @@ func (t *Template) RenderDocumentation(product Product, values map[string]interf
|
|||
var hasAdvancedParam bool
|
||||
var newParams []Param
|
||||
for _, param := range t.Params {
|
||||
// reduce help texts to one line and add ...
|
||||
help := param.Help.String(lang)
|
||||
if help != "" {
|
||||
scanner := bufio.NewScanner(strings.NewReader(help))
|
||||
line := 0
|
||||
for scanner.Scan() {
|
||||
line++
|
||||
if line == 1 {
|
||||
help = scanner.Text()
|
||||
} else {
|
||||
help += "..."
|
||||
break
|
||||
}
|
||||
}
|
||||
if help != param.Help.String(lang) {
|
||||
param.Help.SetString(lang, help)
|
||||
}
|
||||
}
|
||||
|
||||
if param.Deprecated || param.Name == ParamUsage {
|
||||
continue
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,13 @@ func (t *Template) ModbusParams(modbusType string, values map[string]interface{}
|
|||
return
|
||||
}
|
||||
|
||||
// check if the modbus params are already added
|
||||
if index, _ := t.ParamByName("id"); index >= 0 {
|
||||
return
|
||||
}
|
||||
|
||||
modbusParams := t.ConfigDefaults.Config.Modbus.Types[values[ParamModbus].(string)].Params
|
||||
|
||||
// add the modbus params at the beginning
|
||||
t.Params = append(modbusParams, t.Params...)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package templates
|
||||
|
||||
import "reflect"
|
||||
|
||||
const (
|
||||
ParamUsage = "usage"
|
||||
ParamModbus = "modbus"
|
||||
|
|
@ -127,7 +129,7 @@ func (t *TextLanguage) Update(new TextLanguage, always bool) {
|
|||
|
||||
// Requirements
|
||||
type Requirements struct {
|
||||
EVCC []string
|
||||
EVCC []string // EVCC requirements, e.g. sponsorship
|
||||
Description TextLanguage // Description of requirements, e.g. how the device needs to be prepared
|
||||
URI string // URI to a webpage with more details about the preparation requirements
|
||||
}
|
||||
|
|
@ -179,9 +181,11 @@ type Param struct {
|
|||
Help TextLanguage // cli configuration help
|
||||
Test string // testing default value
|
||||
Value string // user provided value via cli configuration
|
||||
Values []string // user provided list of values
|
||||
Values []string // user provided list of values e.g. for ValueType "stringlist"
|
||||
ValueType string // string representation of the value type, "string" is default
|
||||
ValidValues []string // list of valid values the user can provide
|
||||
Choice []string // defines a set of choices, e.g. "grid", "pv", "battery", "charge" for "usage"
|
||||
Requirements Requirements // requirements for this param to be usable, only supported via ValueType "bool"
|
||||
|
||||
Baudrate int // device specific default for modbus RS485 baudrate
|
||||
Comset string // device specific default for modbus RS485 comset
|
||||
|
|
@ -211,9 +215,9 @@ func (p *Param) DefaultValue(renderMode string) interface{} {
|
|||
|
||||
// overwrite specific properties by using values from another param
|
||||
//
|
||||
// always overwrites if not provided empty: description, valuetype, default
|
||||
// always overwrites if not provided empty: description, valuetype, default, mask
|
||||
//
|
||||
// only overwrite if not provided empty and empty in param: help, example
|
||||
// only overwrite if not provided empty and empty in param: help, example, requirements
|
||||
func (p *Param) OverwriteProperties(withParam Param) {
|
||||
// always overwrite if defined
|
||||
p.Description.Update(withParam.Description, true)
|
||||
|
|
@ -226,12 +230,24 @@ func (p *Param) OverwriteProperties(withParam Param) {
|
|||
p.Default = withParam.Default
|
||||
}
|
||||
|
||||
if withParam.Mask {
|
||||
p.Mask = withParam.Mask
|
||||
}
|
||||
|
||||
// only set if empty
|
||||
p.Help.Update(withParam.Help, false)
|
||||
|
||||
if p.Example == "" && withParam.Example != "" {
|
||||
p.Example = withParam.Example
|
||||
}
|
||||
|
||||
if p.ValidValues == nil && withParam.ValidValues != nil {
|
||||
p.ValidValues = withParam.ValidValues
|
||||
}
|
||||
|
||||
if reflect.DeepEqual(p.Requirements, Requirements{}) {
|
||||
p.Requirements = withParam.Requirements
|
||||
}
|
||||
}
|
||||
|
||||
// Product contains naming information about a product a template supports
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue