Various configure / template updates (#1956)
- Standardize file and template names - Move Senec template to http plugin - Template fixes - Added template documentation - Update generation doc yaml files - Visually separate eebus and sponsorship config - Rename vzlogger templates to Volkszähler - Add vzlogger template - Remove loglevel support
This commit is contained in:
parent
03e5f3f50c
commit
73016595c2
89 changed files with 258 additions and 561 deletions
|
|
@ -3,11 +3,9 @@ package configure
|
|||
import (
|
||||
"bytes"
|
||||
_ "embed"
|
||||
"fmt"
|
||||
"text/template"
|
||||
|
||||
"github.com/Masterminds/sprig/v3"
|
||||
"github.com/thoas/go-funk"
|
||||
)
|
||||
|
||||
type device struct {
|
||||
|
|
@ -40,7 +38,6 @@ type config struct {
|
|||
PVs []string
|
||||
Batteries []string
|
||||
}
|
||||
LogLevels []string
|
||||
Hems string
|
||||
EEBUS string
|
||||
SponsorToken string
|
||||
|
|
@ -50,26 +47,13 @@ type Configure struct {
|
|||
config config
|
||||
}
|
||||
|
||||
// AddLogLevel adds a log level for a specific device name to the configuration
|
||||
func (c *Configure) AddLogLevel(name string) {
|
||||
if name == "" || funk.ContainsString(c.config.LogLevels, name) {
|
||||
return
|
||||
}
|
||||
c.config.LogLevels = append(c.config.LogLevels, name)
|
||||
}
|
||||
|
||||
// AddDevice adds a device reference of a specific category to the configuration
|
||||
// e.g. a PV meter to site.PVs
|
||||
func (c *Configure) AddDevice(d device, category DeviceCategory) {
|
||||
switch DeviceCategories[category].class {
|
||||
case DeviceClassCharger:
|
||||
c.AddLogLevel(d.LogLevel)
|
||||
if c.config.EEBUS != "" {
|
||||
c.AddLogLevel("eebus")
|
||||
}
|
||||
c.config.Chargers = append(c.config.Chargers, d)
|
||||
case DeviceClassMeter:
|
||||
c.AddLogLevel(d.LogLevel)
|
||||
c.config.Meters = append(c.config.Meters, d)
|
||||
switch DeviceCategories[category].categoryFilter {
|
||||
case DeviceCategoryGridMeter:
|
||||
|
|
@ -80,7 +64,6 @@ func (c *Configure) AddDevice(d device, category DeviceCategory) {
|
|||
c.config.Site.Batteries = append(c.config.Site.Batteries, d.Name)
|
||||
}
|
||||
case DeviceClassVehicle:
|
||||
c.AddLogLevel(d.LogLevel)
|
||||
c.config.Vehicles = append(c.config.Vehicles, d)
|
||||
}
|
||||
}
|
||||
|
|
@ -101,7 +84,6 @@ func (c *Configure) DevicesOfClass(class DeviceClass) []device {
|
|||
// AddLoadpoint adds a loadpoint to the configuration
|
||||
func (c *Configure) AddLoadpoint(l loadpoint) {
|
||||
c.config.Loadpoints = append(c.config.Loadpoints, l)
|
||||
c.AddLogLevel(fmt.Sprintf("lp-%d", 1+len(c.config.Loadpoints)))
|
||||
}
|
||||
|
||||
// MetersOfCategory returns the number of configured meters of a given DeviceCategory
|
||||
|
|
|
|||
|
|
@ -2,13 +2,6 @@ uri: 0.0.0.0:7070 # uri for ui
|
|||
interval: 10s # control cycle interval
|
||||
|
||||
log: info
|
||||
levels:
|
||||
core: info
|
||||
{{- if ne (len .LogLevels) 0 }}
|
||||
{{- range .LogLevels }}
|
||||
{{ . }}: info
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if ne (len .Meters) 0 }}
|
||||
|
||||
meters:
|
||||
|
|
|
|||
|
|
@ -107,7 +107,6 @@ func (c *CmdConfigure) processDeviceValues(values map[string]interface{}, templa
|
|||
// processDeviceRequirements handles device requirements
|
||||
func (c *CmdConfigure) processDeviceRequirements(templateItem templates.Template) error {
|
||||
if len(templateItem.Requirements.Description.String(c.lang)) > 0 {
|
||||
fmt.Println()
|
||||
fmt.Println(c.localizedString("Requirements_Title", nil))
|
||||
fmt.Println(" ", templateItem.Requirements.Description.String(c.lang))
|
||||
if len(templateItem.Requirements.URI) > 0 {
|
||||
|
|
@ -117,6 +116,7 @@ func (c *CmdConfigure) processDeviceRequirements(templateItem templates.Template
|
|||
|
||||
// check if sponsorship is required
|
||||
if templateItem.Requirements.Sponsorship && c.configuration.config.SponsorToken == "" {
|
||||
fmt.Println("-- Sponsorship -----------------------------")
|
||||
fmt.Println()
|
||||
fmt.Println(c.localizedString("Requirements_Sponsorship_Title", nil))
|
||||
fmt.Println()
|
||||
|
|
@ -128,6 +128,8 @@ func (c *CmdConfigure) processDeviceRequirements(templateItem templates.Template
|
|||
required: true})
|
||||
c.configuration.config.SponsorToken = sponsortoken
|
||||
sponsor.Subject = sponsortoken
|
||||
fmt.Println()
|
||||
fmt.Println("--------------------------------------------")
|
||||
}
|
||||
|
||||
// check if we need to setup a HEMS
|
||||
|
|
@ -141,6 +143,9 @@ func (c *CmdConfigure) processDeviceRequirements(templateItem templates.Template
|
|||
// check if we need to setup an EEBUS HEMS
|
||||
if templateItem.Requirements.Eebus {
|
||||
if c.configuration.config.EEBUS == "" {
|
||||
fmt.Println()
|
||||
fmt.Println("-- EEBUS -----------------------------------")
|
||||
fmt.Println()
|
||||
eebusConfig, err := c.eebusCertificate()
|
||||
if err != nil {
|
||||
return fmt.Errorf("%s: %s", c.localizedString("Requirements_EEBUS_Cert_Error", nil), err)
|
||||
|
|
@ -156,6 +161,8 @@ func (c *CmdConfigure) processDeviceRequirements(templateItem templates.Template
|
|||
return err
|
||||
}
|
||||
c.configuration.config.EEBUS = string(eebusYaml)
|
||||
fmt.Println()
|
||||
fmt.Println("--------------------------------------------")
|
||||
}
|
||||
|
||||
fmt.Println()
|
||||
|
|
|
|||
125
templates/README.md
Normal file
125
templates/README.md
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
# Templates folder documentation
|
||||
|
||||
## Folders
|
||||
|
||||
- defintion: hold all device templates definitons in yaml files
|
||||
- charger: all charger templates
|
||||
- meter: all meter templates
|
||||
- vehicle: all vehicle templates
|
||||
- docs: content is generated via `go generate ./..` using the above templates for the evcc documentation page to be used
|
||||
|
||||
## Template Documentation
|
||||
|
||||
The following describes each possible element in a yaml file
|
||||
|
||||
## `template`
|
||||
|
||||
`template` expects a unique template name for the current device class (charger, meter, vehicle are device classes)
|
||||
|
||||
## `description`
|
||||
|
||||
`description` expects a human readable description of the device, best language neutral and containing the name of the product
|
||||
|
||||
## `generic`
|
||||
|
||||
`generic: true` defines templates that are typically not a hardware product, but rather generic implementations that can be used by a variety of products (e.g. inverters with sunspec support) or for software components like vzlogger.
|
||||
|
||||
## `guidedsetup`
|
||||
|
||||
`guidedsetup` if the device can be used for a guided setup, which are devices that provide multiple meter usages, or meter devices that are typically installed with specific other devices. Mostly used for meter devices that provided multiple usage data with the same user input. These devices are then sorted at the bottom of the product list.
|
||||
|
||||
### `enable`
|
||||
|
||||
`enable: true` to define that this device can be used for `guidedsetup`
|
||||
|
||||
### `linked`
|
||||
|
||||
Allows to define a list of meter devices that are typically installed with this device
|
||||
|
||||
#### `template`
|
||||
|
||||
`template` expects the linked device `template` value
|
||||
|
||||
#### `usage`
|
||||
|
||||
`usage` expects the meter usage type this device will be used for
|
||||
|
||||
**Possible values**:
|
||||
|
||||
- `grid`: for grid meters
|
||||
- `pv`: for pv inverter/meter
|
||||
- `battery`: for battery inverter/meter
|
||||
|
||||
## `requirements`
|
||||
|
||||
`requirements` provides an option to define various requirements / dependencies that need to be setup
|
||||
|
||||
**Possible Values**:
|
||||
|
||||
- `sponsorshipt: true`: If the device requires a sponsorship token
|
||||
- `eebus: true`: If the device is accessed via the eebus protocol and thus requires the corresponding setup
|
||||
- `hems: sma`: If the device can be used as an SMA HEMS device, only used for the SMA Home Manager 2.0 right now
|
||||
- `description`: expects language specific texts via `de`, `en` to provide specific things the user has to do, e.g. minimum firmware versions or specific hardware setup requirements
|
||||
- `uri`: a link providing more help on the requirements
|
||||
|
||||
## `loglevel`
|
||||
|
||||
`loglevel` defindes the name that can be used in the `levels` configuration for adjusting the log level of individual devices/components/...
|
||||
|
||||
## `paramsbase`
|
||||
|
||||
`paramsbase` allows to use a predefined set of params, so they don't need to be redefined in each template. The `example` and `default` values for each predefined value can be overwritten.
|
||||
|
||||
**Possible values**:
|
||||
|
||||
- `vehicle`: Provides a set of params that are used in most vehicles
|
||||
|
||||
## ´params`
|
||||
|
||||
`params` describes the set of parameters the user needs to provide a value for.
|
||||
|
||||
### `name`
|
||||
|
||||
`name` expects a name for the parameter, which will be used in the `render` section to reference the param and provide the user entered value.
|
||||
|
||||
**Note**: There a few default `name` values with specific internal meaning and consequences!
|
||||
|
||||
**Predefined name values**:
|
||||
|
||||
- `usage`: specifies a list of meter classes, the device can be used for. Possible values are `grid`, `pv`, `battery`, and `charger`
|
||||
- `modbus`: specifies that this device is accessed via modbus. It requires the `choice` property to have a list of possible interface values the device provides. These values can be `rs485` and `tcpip`. The command will use either to ask the appropriate questions and settings. The `render` section needs to include the string `{{include "modbus" .}}` in all places where the configuration needs modbus settings.
|
||||
|
||||
### `required`
|
||||
|
||||
`required: true` defines if the user has to provide a value. Default is `false`
|
||||
|
||||
### `mask`
|
||||
|
||||
`mask: true` defines if the user input should be masked, e.g. for passwords. Defaut is `false`
|
||||
|
||||
### `default`
|
||||
|
||||
`default` defines a default value to be used. For these cases the user can then simply press enter in the CLI.
|
||||
|
||||
### `example`
|
||||
|
||||
`example` provides an example value, so the user can get an idea of what is expected and what to look out for
|
||||
|
||||
### `valuetype`
|
||||
|
||||
`valuetype` allows to define the value type to let the CLI verify the user provided content
|
||||
|
||||
**Possible values**:
|
||||
|
||||
- `string`: for string values (default)
|
||||
- `bool`: for `true` and `false` values
|
||||
- `number`: for int values
|
||||
- `float`: for float values
|
||||
|
||||
### `help`
|
||||
|
||||
`help` expects language specific help texts via `de`, `en`
|
||||
|
||||
## `render`
|
||||
|
||||
`render` contains the internal device configuration. All `param` `name` values can be used as a template variable, e.g. `{{ .host }}` for a param named `host`. The content is a go template, so all of go template feature can be used, e.g. `{{- if ... }}` statements, etc.
|
||||
|
|
@ -6,7 +6,6 @@ requirements:
|
|||
params:
|
||||
- name: ski
|
||||
required: true
|
||||
example:
|
||||
help:
|
||||
en: The SKI of the wallbox, can usually be found on the web interface of the wallbox
|
||||
de: Die SKI der Wallbox, ist üblicherweise im Web Interface der Wallbox zu finden
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
template: pmcc
|
||||
description: Porsche Mobile Charger Connect
|
||||
loglevel: eebus
|
||||
requirements:
|
||||
eebus: true
|
||||
params:
|
||||
- name: ski
|
||||
required: true
|
||||
help:
|
||||
en: The SKI of the wallbox, can usually be found on the web interface of the wallbox
|
||||
de: Die SKI der Wallbox, ist üblicherweise im Web Interface der Wallbox zu finden
|
||||
- name: enforcePVLimits
|
||||
default: true
|
||||
valuetype: bool
|
||||
help:
|
||||
en: Use PV charging via overload protection (just as usual wallboxes do it) with vehicles supporting ISO15519
|
||||
de: Verwende PV Laden über eine Ladebegrenzung (wie herkömmliche Wallboxen) bei Fahrzeugen mit Unterstützung von ISO15118
|
||||
render: |
|
||||
type: eebus
|
||||
ski: {{ .ski }}
|
||||
forcePVLimits: {{ .enforcePVLimits }}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
template: pmcc_http
|
||||
description: Porsche Mobile Charger Connect (HTTP API)
|
||||
loglevel: mcc
|
||||
params:
|
||||
- name: host
|
||||
required: true
|
||||
example: 192.0.2.2
|
||||
- name: password
|
||||
mask: true
|
||||
required: true
|
||||
render: |
|
||||
type: mcc
|
||||
uri: https://{{ .host }}
|
||||
password: {{ .password }}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
template: pmcp
|
||||
description: Porsche Mobile Charger Plus
|
||||
loglevel: eebus
|
||||
requirements:
|
||||
eebus: true
|
||||
params:
|
||||
- name: ski
|
||||
required: true
|
||||
help:
|
||||
en: The SKI of the wallbox, can usually be found on the web interface of the wallbox
|
||||
de: Die SKI der Wallbox, ist üblicherweise im Web Interface der Wallbox zu finden
|
||||
render: |
|
||||
type: eebus
|
||||
ski: {{ .ski }}
|
||||
forcePVLimits: true
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
template: tinkerforge_warp
|
||||
description: TinkerForge WARP Charger
|
||||
requirements:
|
||||
description:
|
||||
en: A MQTT Broker software needs to be running on a computer. The MQTT connection also needs to be configured in the wallbox.
|
||||
de: Es muss ein sogennanter MQTT Broker auf einem Computer installiert sein. Die MQTT Verbindung muss in der Wallbox eingerichtet sein.
|
||||
uri: https://docs.evcc.io/docs/devices/chargers#tinkerforge-warp-charger
|
||||
params:
|
||||
- name: host
|
||||
required: true
|
||||
example: 192.0.2.2
|
||||
- name: port
|
||||
default: 1883
|
||||
- name: topic
|
||||
default: warp
|
||||
- name: timeout
|
||||
default: 30s
|
||||
render: |
|
||||
type: warp
|
||||
broker: {{ .host }}:{{ .port }}
|
||||
topic: {{ .topic }}
|
||||
useMeter: false
|
||||
timeout: {{ .timeout }}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
template: tinkerforge_warp_pro
|
||||
description: TinkerForge WARP Charger
|
||||
requirements:
|
||||
description:
|
||||
en: A MQTT Broker software needs to be running on a computer. The MQTT connection also needs to be configured in the wallbox.
|
||||
de: Es muss ein sogennanter MQTT Broker auf einem Computer installiert sein. Die MQTT Verbindung muss in der Wallbox eingerichtet sein.
|
||||
uri: https://docs.evcc.io/docs/devices/chargers#tinkerforge-warp-charger
|
||||
params:
|
||||
- name: host
|
||||
required: true
|
||||
example: 192.0.2.2
|
||||
- name: port
|
||||
default: 1883
|
||||
- name: topic
|
||||
default: warp
|
||||
- name: timeout
|
||||
default: 30s
|
||||
render: |
|
||||
type: warp
|
||||
broker: {{ .host }}:{{ .port }}
|
||||
topic: {{ .topic }}
|
||||
useMeter: true
|
||||
timeout: {{ .timeout }}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
template: wallbe_pre2019
|
||||
description: Wallbe (Eco, Pro) (pre ~2019)
|
||||
requirements:
|
||||
description:
|
||||
en: The Wallbe must be connected using Ethernet and the DIP switch 10 must be set to 'ON'.
|
||||
de: Die Wallbox muss über ein Netzwerkkabel angebunden sein und im Gerät muss der DIP Schalter 10 auf 'ON' gestellt sein.
|
||||
uri: https://docs.evcc.io/docs/devices/chargers#wallbe-ecopro
|
||||
params:
|
||||
- name: host
|
||||
required: true
|
||||
example: 192.0.2.2
|
||||
- name: port
|
||||
default: 502
|
||||
render: |
|
||||
type: wallbe
|
||||
uri: {{ .host }}:{{ .port }}
|
||||
legacy: true # set only for older Wallbe devices (pre ~2019, old controller firmware)
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
template: wallbe_pre2019_meter
|
||||
description: Wallbe (Eco, Pro) (pre ~2019) with Meter
|
||||
requirements:
|
||||
description:
|
||||
en: The Wallbe must be connected using Ethernet and the DIP switch 10 must be set to 'ON'.
|
||||
de: Die Wallbox muss über ein Netzwerkkabel angebunden sein und im Gerät muss der DIP Schalter 10 auf 'ON' gestellt sein.
|
||||
uri: https://docs.evcc.io/docs/devices/chargers#wallbe-ecopro
|
||||
params:
|
||||
- name: host
|
||||
required: true
|
||||
example: 192.0.2.2
|
||||
- name: port
|
||||
default: 502
|
||||
render: |
|
||||
type: wallbe
|
||||
uri: {{ .host }}:{{ .port }}
|
||||
legacy: true # set only for older Wallbe devices (pre ~2019, old controller firmware)
|
||||
meter: # only if a charge meter is connected to the controller
|
||||
power: true
|
||||
energy: true
|
||||
currents: true
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
template: wallbe_meter
|
||||
description: Wallbe (Eco, Pro) with Meter
|
||||
requirements:
|
||||
description:
|
||||
en: The Wallbe must be connected using Ethernet and the DIP switch 10 must be set to 'ON'.
|
||||
de: Die Wallbox muss über ein Netzwerkkabel angebunden sein und im Gerät muss der DIP Schalter 10 auf 'ON' gestellt sein.
|
||||
uri: https://docs.evcc.io/docs/devices/chargers#wallbe-ecopro
|
||||
params:
|
||||
- name: host
|
||||
required: true
|
||||
example: 192.0.2.2
|
||||
- name: port
|
||||
default: 502
|
||||
render: |
|
||||
type: wallbe
|
||||
uri: {{ .host }}:{{ .port }}
|
||||
legacy: false # set only for older Wallbe devices (pre ~2019, old controller firmware)
|
||||
meter: # only if a charge meter is connected to the controller
|
||||
power: true
|
||||
energy: true
|
||||
currents: true
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
template: wallbe_sdm
|
||||
description: Wallbe (Eco, Pro) with SDM Meter
|
||||
requirements:
|
||||
description:
|
||||
en: The Wallbe must be connected using Ethernet and the DIP switch 10 must be set to 'ON'.
|
||||
de: Die Wallbox muss über ein Netzwerkkabel angebunden sein und im Gerät muss der DIP Schalter 10 auf 'ON' gestellt sein.
|
||||
uri: https://docs.evcc.io/docs/devices/chargers#wallbe-ecopro
|
||||
params:
|
||||
- name: host
|
||||
required: true
|
||||
example: 192.0.2.2
|
||||
- name: port
|
||||
default: 502
|
||||
render: |
|
||||
type: wallbe
|
||||
uri: {{ .host }}:{{ .port }}
|
||||
legacy: false # set only for older Wallbe devices (pre ~2019, old controller firmware)
|
||||
meter: # only if a charge meter is connected to the controller
|
||||
power: true
|
||||
energy: true
|
||||
currents: true
|
||||
encoding: sdm # add only when SDM meter is connected, see https://github.com/evcc-io/evcc/discussions/1398
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
template: cfos_meter
|
||||
template: cfos-meter
|
||||
description: cFos PowerBrain
|
||||
requirements:
|
||||
sponsorship: true
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
template: huawei_sun2000_8ktl
|
||||
template: huawei-sun2000-8ktl
|
||||
description: Huawei SUN2000-8KTL
|
||||
params:
|
||||
- name: usage
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
template: kostal_piko_energy_meter
|
||||
template: kostal-piko-energy-meter
|
||||
description: Kostal Piko (BA) Energy Meter
|
||||
params:
|
||||
- name: usage
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
template: kostal_piko
|
||||
template: kostal-piko
|
||||
description: Kostal Piko + Piko BA
|
||||
guidedsetup:
|
||||
enable: true
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
template: kostal_plenticore
|
||||
template: kostal-plenticore
|
||||
description: Kostal Plenticore Hybrid
|
||||
guidedsetup:
|
||||
enable: true
|
||||
linked:
|
||||
- template: kostal_smart_energy_meter
|
||||
- template: kostal-smart-energy-meter
|
||||
usage: grid
|
||||
params:
|
||||
- name: usage
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
template: kostal_smart_energy_meter
|
||||
template: kostal-smart-energy-meter
|
||||
description: Kostal Smart Energy Meter
|
||||
params:
|
||||
- name: usage
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
template: lg_ess_home_8_10
|
||||
description: LG ESS Home 8/10
|
||||
guidedsetup:
|
||||
enable: true
|
||||
params:
|
||||
- name: usage
|
||||
choice: [ "grid", "pv", "battery" ]
|
||||
- name: host
|
||||
required: true
|
||||
example: 192.0.2.2
|
||||
- name: registration
|
||||
required: true
|
||||
example: "DE200..."
|
||||
help:
|
||||
en: Registration number of the LG ESS HOME inverter.
|
||||
de: Registriernummer des LG ESS HOME Wechselrichters.
|
||||
render: |
|
||||
type: lgess
|
||||
usage: {{ .usage }}
|
||||
# uri and password are only required once if multiple lgess usages are defined
|
||||
uri: https://{{ .host }}
|
||||
password: {{ .registration }}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
template: powerfox_poweropti
|
||||
template: powerfox-poweropti
|
||||
description: Powerfox Poweropti (Cloud)
|
||||
params:
|
||||
- name: usage
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
template: rct_power
|
||||
description: RCT Power
|
||||
guidedsetup:
|
||||
enable: true
|
||||
params:
|
||||
- name: usage
|
||||
choice: [ "grid", "pv", "battery" ]
|
||||
- name: host
|
||||
required: true
|
||||
example: 192.0.2.2
|
||||
render: |
|
||||
type: rct
|
||||
uri: {{ .host }}
|
||||
usage: {{ .usage }}
|
||||
cache: 2s
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
template: senec_home_linux
|
||||
description: SENEC.Home (Linux)
|
||||
template: senec-home
|
||||
description: SENEC.Home
|
||||
guidedsetup:
|
||||
enable: true
|
||||
params:
|
||||
|
|
@ -13,22 +13,34 @@ params:
|
|||
render: |
|
||||
type: custom
|
||||
power:
|
||||
source: script
|
||||
timeout: 5s
|
||||
cmd: >
|
||||
source: http
|
||||
unpack: hex
|
||||
decode: float32
|
||||
uri: http://{{ .host }}/lala.cgi
|
||||
method: POST
|
||||
headers:
|
||||
- content-type: application/json
|
||||
{{- if eq .usage "grid" }}
|
||||
/bin/bash -c "set +H; curl --data '{\"ENERGY\":{\"GUI_GRID_POW\":\"\"}}' --header \"Content-Type: application/json\" --request POST http://{{ .host }}/lala.cgi | jq .ENERGY.GUI_GRID_POW | python3 -c 'import struct;print(struct.unpack(\"!f\",bytes.fromhex(input()[4:12]))[0])'"
|
||||
body: '{"ENERGY":{"GUI_GRID_POW":""}}'
|
||||
jq: .ENERGY.GUI_GRID_POW | sub("fl_"; "")
|
||||
scale: -1
|
||||
{{- end }}
|
||||
{{- if eq .usage "pv" }}
|
||||
/bin/bash -c "set +H; curl --data '{\"ENERGY\":{\"GUI_INVERTER_POWER\":\"\"}}' --header \"Content-Type: application/json\" --request POST http://{{ .host }}/lala.cgi | jq .ENERGY.GUI_INVERTER_POWER | python3 -c 'import struct;print(struct.unpack(\"!f\",bytes.fromhex(input()[4:12]))[0])'"
|
||||
body: '{"ENERGY":{"GUI_INVERTER_POWER":""}}'
|
||||
jq: .ENERGY.GUI_INVERTER_POWER | sub("fl_"; "")
|
||||
{{- end }}
|
||||
{{- if eq .usage "battery" }}
|
||||
/bin/bash -c "set +H; curl --data '{\"ENERGY\":{\"GUI_BAT_DATA_POWER\":\"\"}}' --header \"Content-Type: application/json\" --request POST http://{{ .host }}/lala.cgi | jq .ENERGY.GUI_BAT_DATA_POWER | python3 -c 'import struct;print(struct.unpack(\"!f\",bytes.fromhex(input()[4:12]))[0])'"
|
||||
body: '{"ENERGY":{"GUI_BAT_DATA_POWER":""}}'
|
||||
jq: .ENERGY.GUI_BAT_DATA_POWER | sub("fl_"; "")
|
||||
scale: -1
|
||||
soc:
|
||||
source: script
|
||||
cmd: >
|
||||
/bin/bash -c "set +H; curl --data '{\"ENERGY\":{\"GUI_BAT_DATA_FUEL_CHARGE\":\"\"}}' --header \"Content-Type: application/json\" --request POST http://{{ .host }}/lala.cgi | jq .ENERGY.GUI_BAT_DATA_FUEL_CHARGE | python3 -c 'import struct;print(struct.unpack(\"!f\",bytes.fromhex(input()[4:12]))[0])'"
|
||||
timeout: 5s
|
||||
source: http
|
||||
uri: http://{{ .host }}/lala.cgi
|
||||
method: POST
|
||||
headers:
|
||||
- content-type: application/json
|
||||
body: '{"ENERGY":{"GUI_BAT_DATA_FUEL_CHARGE":""}}'
|
||||
jq: .ENERGY.GUI_BAT_DATA_FUEL_CHARGE | sub("fl_"; "")
|
||||
unpack: hex
|
||||
decode: float32
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
template: shelly_3em
|
||||
description: Shelly 3EM
|
||||
params:
|
||||
- name: usage
|
||||
choice: [ "grid" ]
|
||||
- name: host
|
||||
required: true
|
||||
example: 192.0.2.2
|
||||
render: |
|
||||
type: custom
|
||||
power:
|
||||
source: http
|
||||
uri: http://{{ .host }}/status
|
||||
jq: .emeters | map(.power) | add
|
||||
energy:
|
||||
source: http
|
||||
uri: http://{{ .host }}/status
|
||||
jq: .emeters | map(.total) | add
|
||||
scale: 0.001
|
||||
currents:
|
||||
- source: http
|
||||
uri: http://{{ .host }}/emeter/0
|
||||
jq: .current
|
||||
- source: http
|
||||
uri: http://{{ .host }}/emeter/1
|
||||
jq: .current
|
||||
- source: http
|
||||
uri: http://{{ .host }}/emeter/2
|
||||
jq: .current
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
template: solarwatt_myreserve
|
||||
description: Solarwatt MyReserve
|
||||
guidedsetup:
|
||||
enable: true
|
||||
params:
|
||||
- name: usage
|
||||
choice: [ "grid", "pv", "battery" ]
|
||||
- name: host
|
||||
required: true
|
||||
example: 192.0.2.2
|
||||
render: |
|
||||
type: custom
|
||||
power:
|
||||
source: http
|
||||
uri: http://{{ .host }}/rest/kiwigrid/wizard/devices # EnergyManager
|
||||
{{- if eq .usage "grid" }}
|
||||
jq: .result.items[] | select(.deviceModel[].deviceClass == "com.kiwigrid.devices.location.Location" ) | .tagValues.PowerConsumedFromGrid.value - .tagValues.PowerOut.value
|
||||
{{- end }}
|
||||
{{- if eq .usage "pv" }}
|
||||
jq: .result.items[] | select(.deviceModel[].deviceClass == "com.kiwigrid.devices.location.Location" ) | .tagValues.PowerProduced.value
|
||||
{{- end }}
|
||||
{{- if eq .usage "battery" }}
|
||||
jq: .result.items[] | select(.deviceModel[].deviceClass == "com.kiwigrid.devices.location.Location" ) | .tagValues.PowerConsumedFromStorage.value - .tagValues.PowerBuffered.value
|
||||
soc:
|
||||
source: http
|
||||
uri: http://{{ .host }}/rest/kiwigrid/wizard/devices # EnergyManager
|
||||
jq: .result.items[] | select(.deviceModel[].deviceClass == "com.kiwigrid.devices.solarwatt.MyReserve") | .tagValues.StateOfCharge.value
|
||||
{{- end }}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
template: sonnenbatterie_eco10
|
||||
description: Sonnenbatterie Eco/10
|
||||
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 }}/api/v1/status
|
||||
{{- if eq .usage "grid" }}
|
||||
jq: .GridFeedIn_W
|
||||
scale: -1 # reverse direction
|
||||
{{- end }}
|
||||
{{- if eq .usage "pv" }}
|
||||
jq: .Production_W
|
||||
{{- end }}
|
||||
{{- if eq .usage "battery" }}
|
||||
jq: .Pac_total_W
|
||||
soc:
|
||||
source: http
|
||||
uri: http://{{ .host }}:{{ .port }}/api/v1/status
|
||||
jq: .USOC
|
||||
{{- end }}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
template: sunspec
|
||||
description: SunSpec compliant inverter
|
||||
description: Inverter / Wechselrichter (SunSpec)
|
||||
generic: true
|
||||
params:
|
||||
- name: usage
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
template: tesla_powerwall
|
||||
template: tesla-powerwall
|
||||
description: Tesla Powerwall
|
||||
guidedsetup:
|
||||
enable: true
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
template: varta_energiespeicher
|
||||
template: varta-energiespeicher
|
||||
description: VARTA Energiespeicher
|
||||
guidedsetup:
|
||||
enable: true
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
template: vzlogger_http
|
||||
description: vzlogger (HTTP)
|
||||
template: volkszaehler-http
|
||||
description: Volkszähler (HTTP API)
|
||||
generic: true
|
||||
params:
|
||||
- name: usage
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
template: vzlogger_importexport
|
||||
description: vzlogger (Import & Export getrennt)
|
||||
template: volkszaehler-importexport
|
||||
description: Volkszähler (HTTP API, Import & Export)
|
||||
generic: true
|
||||
params:
|
||||
- name: usage
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
template: vzlogger_ws
|
||||
description: vzlogger (Websocket)
|
||||
template: volkszaehler-ws
|
||||
description: Volkszähler (WebSocket API)
|
||||
generic: true
|
||||
params:
|
||||
- name: usage
|
||||
19
templates/definition/meter/vzlogger.yaml
Normal file
19
templates/definition/meter/vzlogger.yaml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
template: vzlogger
|
||||
description: vzlogger
|
||||
generic: true
|
||||
params:
|
||||
- name: usage
|
||||
choice: [ "grid" ]
|
||||
- name: host
|
||||
example: 192.0.2.2
|
||||
required: true
|
||||
- name: port
|
||||
default: 8081
|
||||
- name: uuid
|
||||
required: true
|
||||
render: |
|
||||
type: custom
|
||||
power: # power reading
|
||||
source: http # use http plugin
|
||||
uri: http://{{ .host }}:{{ .port }}/
|
||||
jq: .data[] | select(.uuid=="{{ .uuid }}") | .tuples[0][1] # parse response json
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
template: niu
|
||||
description: NIU E-Scooter
|
||||
params:
|
||||
- name: title
|
||||
- name: user
|
||||
required: true
|
||||
- name: password
|
||||
required: true
|
||||
mask: true
|
||||
- name: serial
|
||||
required: true
|
||||
render: |
|
||||
type: niu
|
||||
{{- if ne .title "" }}
|
||||
title: {{ .title }}
|
||||
{{- end }}
|
||||
user: {{ .user }} # NIU app user
|
||||
password: {{ .password }} # NIU app password
|
||||
serial: {{ .serial }} # NIU E-Scooter serial number like shown in app
|
||||
capacity: 4
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
type: template
|
||||
template: pmcc
|
||||
description: Porsche Mobile Charger Connect
|
||||
ski: # Die SKI der Wallbox, ist üblicherweise im Web Interface der Wallbox zu finden
|
||||
enforcePVLimits: true # Verwende PV Laden über eine Ladebegrenzung (wie herkömmliche Wallboxen) bei Fahrzeugen mit Unterstützung von ISO15118
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
type: template
|
||||
template: pmcc_http
|
||||
description: Porsche Mobile Charger Connect (HTTP API)
|
||||
host: 192.0.2.2
|
||||
password:
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
type: template
|
||||
template: pmcp
|
||||
description: Porsche Mobile Charger Plus
|
||||
ski: # Die SKI der Wallbox, ist üblicherweise im Web Interface der Wallbox zu finden
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
type: template
|
||||
template: tinkerforge_warp
|
||||
description: TinkerForge WARP Charger
|
||||
host: 192.0.2.2
|
||||
port: 1883
|
||||
topic: warp
|
||||
timeout: 30s
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
type: template
|
||||
template: tinkerforge_warp_pro
|
||||
description: TinkerForge WARP Charger
|
||||
host: 192.0.2.2
|
||||
port: 1883
|
||||
topic: warp
|
||||
timeout: 30s
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
type: template
|
||||
template: wallbe_meter
|
||||
description: Wallbe (Eco, Pro) with Meter
|
||||
host: 192.0.2.2
|
||||
port: 502
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
type: template
|
||||
template: wallbe_pre2019
|
||||
description: Wallbe (Eco, Pro) (pre ~2019)
|
||||
host: 192.0.2.2
|
||||
port: 502
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
type: template
|
||||
template: wallbe_pre2019_meter
|
||||
description: Wallbe (Eco, Pro) (pre ~2019) with Meter
|
||||
host: 192.0.2.2
|
||||
port: 502
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
type: template
|
||||
template: wallbe_sdm
|
||||
description: Wallbe (Eco, Pro) with SDM Meter
|
||||
host: 192.0.2.2
|
||||
port: 502
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
type: template
|
||||
template: cfos_meter
|
||||
template: cfos-meter
|
||||
description: cFos PowerBrain
|
||||
usage: charger
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
type: template
|
||||
template: huawei_sun2000_8ktl
|
||||
template: huawei-sun2000-8ktl
|
||||
description: Huawei SUN2000-8KTL
|
||||
usage: pv
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
type: template
|
||||
template: kostal_piko_energy_meter
|
||||
template: kostal-piko-energy-meter
|
||||
description: Kostal Piko (BA) Energy Meter
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
type: template
|
||||
template: kostal_piko
|
||||
template: kostal-piko
|
||||
description: Kostal Piko + Piko BA
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
type: template
|
||||
template: kostal_piko
|
||||
template: kostal-piko
|
||||
description: Kostal Piko + Piko BA
|
||||
usage: pv
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
type: template
|
||||
template: kostal_plenticore
|
||||
template: kostal-plenticore
|
||||
description: Kostal Plenticore Hybrid
|
||||
usage: battery
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
type: template
|
||||
template: kostal_plenticore
|
||||
template: kostal-plenticore
|
||||
description: Kostal Plenticore Hybrid
|
||||
usage: pv
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
type: template
|
||||
template: kostal_smart_energy_meter
|
||||
template: kostal-smart-energy-meter
|
||||
description: Kostal Smart Energy Meter
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
type: template
|
||||
template: lg_ess_home_8_10
|
||||
description: LG ESS Home 8/10
|
||||
usage: battery
|
||||
host: 192.0.2.2
|
||||
registration: DE200... # Registriernummer des LG ESS HOME Wechselrichters.
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
type: template
|
||||
template: lg_ess_home_8_10
|
||||
description: LG ESS Home 8/10
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
registration: DE200... # Registriernummer des LG ESS HOME Wechselrichters.
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
type: template
|
||||
template: lg_ess_home_8_10
|
||||
description: LG ESS Home 8/10
|
||||
usage: pv
|
||||
host: 192.0.2.2
|
||||
registration: DE200... # Registriernummer des LG ESS HOME Wechselrichters.
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
type: template
|
||||
template: powerfox_poweropti
|
||||
template: powerfox-poweropti
|
||||
description: Powerfox Poweropti (Cloud)
|
||||
usage: grid
|
||||
user:
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
type: template
|
||||
template: rct_power
|
||||
description: RCT Power
|
||||
usage: battery
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
type: template
|
||||
template: rct_power
|
||||
description: RCT Power
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
type: template
|
||||
template: rct_power
|
||||
description: RCT Power
|
||||
usage: pv
|
||||
host: 192.0.2.2
|
||||
6
templates/docs/meter/senec-home-battery.yaml
Normal file
6
templates/docs/meter/senec-home-battery.yaml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
type: template
|
||||
template: senec-home
|
||||
description: SENEC.Home
|
||||
usage: battery
|
||||
host: 192.0.2.2
|
||||
port: 8080
|
||||
6
templates/docs/meter/senec-home-grid.yaml
Normal file
6
templates/docs/meter/senec-home-grid.yaml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
type: template
|
||||
template: senec-home
|
||||
description: SENEC.Home
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
port: 8080
|
||||
6
templates/docs/meter/senec-home-pv.yaml
Normal file
6
templates/docs/meter/senec-home-pv.yaml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
type: template
|
||||
template: senec-home
|
||||
description: SENEC.Home
|
||||
usage: pv
|
||||
host: 192.0.2.2
|
||||
port: 8080
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
type: template
|
||||
template: senec_home_linux
|
||||
description: SENEC.Home (Linux)
|
||||
usage: battery
|
||||
host: 192.0.2.2
|
||||
port: 8080
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
type: template
|
||||
template: senec_home_linux
|
||||
description: SENEC.Home (Linux)
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
port: 8080
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
type: template
|
||||
template: senec_home_linux
|
||||
description: SENEC.Home (Linux)
|
||||
usage: pv
|
||||
host: 192.0.2.2
|
||||
port: 8080
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
type: template
|
||||
template: shelly_3em
|
||||
description: Shelly 3EM
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
type: template
|
||||
template: solarwatt_myreserve
|
||||
description: Solarwatt MyReserve
|
||||
usage: battery
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
type: template
|
||||
template: solarwatt_myreserve
|
||||
description: Solarwatt MyReserve
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
type: template
|
||||
template: solarwatt_myreserve
|
||||
description: Solarwatt MyReserve
|
||||
usage: pv
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
type: template
|
||||
template: sonnenbatterie_eco10
|
||||
description: Sonnenbatterie Eco/10
|
||||
usage: battery
|
||||
host: 192.0.2.2
|
||||
port: 8080
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
type: template
|
||||
template: sonnenbatterie_eco10
|
||||
description: Sonnenbatterie Eco/10
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
port: 8080
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
type: template
|
||||
template: sonnenbatterie_eco10
|
||||
description: Sonnenbatterie Eco/10
|
||||
usage: pv
|
||||
host: 192.0.2.2
|
||||
port: 8080
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
type: template
|
||||
template: sunspec
|
||||
description: SunSpec compliant inverter
|
||||
description: Inverter / Wechselrichter (SunSpec)
|
||||
usage: battery
|
||||
host: 192.0.2.2
|
||||
id: 1
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
type: template
|
||||
template: sunspec
|
||||
description: SunSpec compliant inverter
|
||||
description: Inverter / Wechselrichter (SunSpec)
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
id: 1
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
type: template
|
||||
template: sunspec
|
||||
description: SunSpec compliant inverter
|
||||
description: Inverter / Wechselrichter (SunSpec)
|
||||
usage: pv
|
||||
host: 192.0.2.2
|
||||
id: 1
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
type: template
|
||||
template: tesla_powerwall
|
||||
template: tesla-powerwall
|
||||
description: Tesla Powerwall
|
||||
usage: battery
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
type: template
|
||||
template: tesla_powerwall
|
||||
template: tesla-powerwall
|
||||
description: Tesla Powerwall
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
type: template
|
||||
template: tesla_powerwall
|
||||
template: tesla-powerwall
|
||||
description: Tesla Powerwall
|
||||
usage: pv
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
type: template
|
||||
template: varta_energiespeicher
|
||||
template: varta-energiespeicher
|
||||
description: VARTA Energiespeicher
|
||||
usage: battery
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
type: template
|
||||
template: varta_energiespeicher
|
||||
template: varta-energiespeicher
|
||||
description: VARTA Energiespeicher
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
type: template
|
||||
template: varta_energiespeicher
|
||||
template: varta-energiespeicher
|
||||
description: VARTA Energiespeicher
|
||||
usage: pv
|
||||
host: 192.0.2.2
|
||||
7
templates/docs/meter/volkszaehler-http-grid.yaml
Normal file
7
templates/docs/meter/volkszaehler-http-grid.yaml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
type: template
|
||||
template: volkszaehler-http
|
||||
description: Volkszähler (HTTP API)
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
port: 80
|
||||
uuid:
|
||||
8
templates/docs/meter/volkszaehler-importexport-grid.yaml
Normal file
8
templates/docs/meter/volkszaehler-importexport-grid.yaml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
type: template
|
||||
template: volkszaehler-importexport
|
||||
description: Volkszähler (HTTP API, Import & Export)
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
port: 80
|
||||
importuuid:
|
||||
exportuuid:
|
||||
7
templates/docs/meter/volkszaehler-ws-grid.yaml
Normal file
7
templates/docs/meter/volkszaehler-ws-grid.yaml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
type: template
|
||||
template: volkszaehler-ws
|
||||
description: Volkszähler (WebSocket API)
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
port: 8082
|
||||
uuid:
|
||||
7
templates/docs/meter/vzlogger-grid.yaml
Normal file
7
templates/docs/meter/vzlogger-grid.yaml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
type: template
|
||||
template: vzlogger
|
||||
description: vzlogger
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
port: 8081
|
||||
uuid:
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
type: template
|
||||
template: vzlogger_http
|
||||
description: vzlogger (HTTP)
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
port: 80
|
||||
uuid:
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
type: template
|
||||
template: vzlogger_importexport
|
||||
description: vzlogger (Import & Export getrennt)
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
port: 80
|
||||
importuuid:
|
||||
exportuuid:
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
type: template
|
||||
template: vzlogger_ws
|
||||
description: vzlogger (Websocket)
|
||||
usage: grid
|
||||
host: 192.0.2.2
|
||||
port: 8082
|
||||
uuid:
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
type: template
|
||||
template: niu
|
||||
description: NIU E-Scooter
|
||||
user:
|
||||
password:
|
||||
serial:
|
||||
Loading…
Add table
Add a link
Reference in a new issue