Yaml: apply prettier (#3023)

This commit is contained in:
andig 2022-03-29 15:54:02 +02:00 • committed by GitHub
parent 7efe7c3436
commit cef008f9af
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
272 changed files with 4387 additions and 4532 deletions

View file

@ -1,4 +1,4 @@
label-alias:
bug: 'bug'
feature_request: 'enhancement'
question: 'question'
bug: "bug"
feature_request: "enhancement"
question: "question"

1
.github/stale.yml vendored
View file

@ -15,4 +15,3 @@ markComment: >
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

View file

@ -8,95 +8,94 @@ on:
workflow_call:
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: ^1.18
id: go
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: ^1.18
id: go
- name: Set up Node
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Set up Node
uses: actions/setup-node@v2
with:
node-version: "16"
- name: Cache Go modules
uses: actions/cache@v2
with:
path: |
~/go/pkg
~/.cache/go-build
key: ${{ runner.os }}-${{ matrix.go-version }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-${{ matrix.go-version }}-go-
- name: Cache Go modules
uses: actions/cache@v2
with:
path: |
~/go/pkg
~/.cache/go-build
key: ${{ runner.os }}-${{ matrix.go-version }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-${{ matrix.go-version }}-go-
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: gofmt
run: |
gofmt -w -l $(find . -name '*.go')
- name: gofmt
run: |
gofmt -w -l $(find . -name '*.go')
- name: Install tools
run: make install
- name: Install tools
run: make install
- name: Assets
run: make assets
- name: Assets
run: make assets
- name: Porcelain
run: |
go mod tidy
test -z "$(git status --porcelain)" || (git status; git diff; false)
- name: Porcelain
run: |
go mod tidy
test -z "$(git status --porcelain)" || (git status; git diff; false)
- name: Build
run: make build
- name: Build
run: make build
- name: Lint
uses: golangci/golangci-lint-action@v3
with:
version: latest
skip-pkg-cache: true
skip-build-cache: true
- name: Lint
uses: golangci/golangci-lint-action@v3
with:
version: latest
skip-pkg-cache: true
skip-build-cache: true
- name: Test
run: make test
- name: Test
run: make test
build-ui:
name: Build UI
runs-on: ubuntu-latest
steps:
- name: Cache NPM modules
uses: actions/cache@v2
with:
path: |
**/node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-npm-
- name: Cache NPM modules
uses: actions/cache@v2
with:
path: |
**/node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-npm-
- name: Checkout
uses: actions/checkout@v2
- name: Checkout
uses: actions/checkout@v2
- name: Install tools
run: make install-ui
- name: Install tools
run: make install-ui
- name: Build
run: make ui
- name: Build
run: make ui
- name: Lint
run: make lint-ui
- name: Lint
run: make lint-ui
- name: Test
run: make test-ui
- name: Test
run: make test-ui
- name: Porcelain
run: |
test -z "$(git status --porcelain)" || (git status; git diff; false)
- name: Porcelain
run: |
test -z "$(git status --porcelain)" || (git status; git diff; false)

View file

@ -9,24 +9,24 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Clean git
run: |
git checkout go.*
rm -rf flags buildflags
- name: Clean git
run: |
git checkout go.*
rm -rf flags buildflags
- name: Deploy to docs repo
uses: peaceiris/actions-gh-pages@v3
with:
personal_token: ${{ secrets.GH_REPO }}
publish_dir: ./templates/docs
external_repository: evcc-io/docs
publish_branch: main
destination_dir: templates
allow_empty_commit: false
commit_message: Templates update
if: ${{ success() }}
- name: Deploy to docs repo
uses: peaceiris/actions-gh-pages@v3
with:
personal_token: ${{ secrets.GH_REPO }}
publish_dir: ./templates/docs
external_repository: evcc-io/docs
publish_branch: main
destination_dir: templates
allow_empty_commit: false
commit_message: Templates update
if: ${{ success() }}

View file

@ -2,7 +2,7 @@ name: Nightly Build
on:
schedule: # runs on the default branch: master
- cron: '0 2 * * *' # run at 2 AM UTC
- cron: "0 2 * * *" # run at 2 AM UTC
workflow_dispatch:
jobs:
@ -34,84 +34,83 @@ jobs:
docker:
name: Publish Docker :nightly
needs:
- call-build-workflow
- call-build-workflow
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install
env:
SEIHON_VERSION: v0.9.0
run: curl -sfL https://raw.githubusercontent.com/ldez/seihon/master/godownloader.sh | sudo bash -s -- -b $GOPATH/bin ${SEIHON_VERSION}
- name: Install
env:
SEIHON_VERSION: v0.9.0
run: curl -sfL https://raw.githubusercontent.com/ldez/seihon/master/godownloader.sh | sudo bash -s -- -b $GOPATH/bin ${SEIHON_VERSION}
- name: Login
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Publish
run: make publish-nightly
- name: Login
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Publish
run: make publish-nightly
apt:
name: Publish APT nightly
needs:
- call-build-workflow
- call-build-workflow
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Cache Go modules
uses: actions/cache@v2
with:
path: |
~/go/pkg
~/.cache/go-build
key: ${{ runner.os }}-${{ matrix.go-version }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-${{ matrix.go-version }}-go-
- name: Cache Go modules
uses: actions/cache@v2
with:
path: |
~/go/pkg
~/.cache/go-build
key: ${{ runner.os }}-${{ matrix.go-version }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-${{ matrix.go-version }}-go-
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: ^1.18
id: go
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: ^1.18
id: go
- name: Set up Node
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Set up Node
uses: actions/setup-node@v2
with:
node-version: "16"
- name: Install Cloudsmith CLI
run: pip install --upgrade cloudsmith-cli
- name: Install Cloudsmith CLI
run: pip install --upgrade cloudsmith-cli
- name: Clean git
run: |
git checkout go.*
rm -rf flags buildflags
- name: Clean git
run: |
git checkout go.*
rm -rf flags buildflags
- name: Create nightly build
uses: goreleaser/goreleaser-action@v2
with:
version: latest
args: --snapshot -f .goreleaser-nightly.yml --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create nightly build
uses: goreleaser/goreleaser-action@v2
with:
version: latest
args: --snapshot -f .goreleaser-nightly.yml --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Publish .deb to Cloudsmith
env:
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
run: |
for filename in release/*.deb; do
echo "Pushing $filename to 'unstable'"
cloudsmith push deb evcc/unstable/any-distro/any-version $filename
done
- name: Publish .deb to Cloudsmith
env:
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
run: |
for filename in release/*.deb; do
echo "Pushing $filename to 'unstable'"
cloudsmith push deb evcc/unstable/any-distro/any-version $filename
done

View file

@ -13,12 +13,12 @@ jobs:
&& contains(github.event.comment.body, '/rebase')
&& (github.event.comment.author_association == 'MEMBER' || github.event.comment.author_association == 'OWNER')
steps:
- name: Checkout the latest code
uses: actions/checkout@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: Automatic Rebase
uses: cirrus-actions/rebase@1.5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout the latest code
uses: actions/checkout@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: Automatic Rebase
uses: cirrus-actions/rebase@1.5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -3,7 +3,7 @@ name: Release
on:
push:
tags:
- '*'
- "*"
jobs:
call-build-workflow:
@ -13,99 +13,98 @@ jobs:
docker:
name: Publish Docker :release
needs:
- call-build-workflow
- call-build-workflow
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
ref: refs/heads/master # force master
fetch-depth: 0
- name: Checkout
uses: actions/checkout@v2
with:
ref: refs/heads/master # force master
fetch-depth: 0
- name: Install
env:
SEIHON_VERSION: v0.9.0
run: curl -sfL https://raw.githubusercontent.com/ldez/seihon/master/godownloader.sh | sudo bash -s -- -b $GOPATH/bin ${SEIHON_VERSION}
- name: Install
env:
SEIHON_VERSION: v0.9.0
run: curl -sfL https://raw.githubusercontent.com/ldez/seihon/master/godownloader.sh | sudo bash -s -- -b $GOPATH/bin ${SEIHON_VERSION}
- name: Login
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Publish
run: make publish-release
- name: Login
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Publish
run: make publish-release
apt:
name: Publish Github & APT release
needs:
- call-build-workflow
- call-build-workflow
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Cache Go modules
uses: actions/cache@v2
with:
path: |
~/go/pkg
~/.cache/go-build
key: ${{ runner.os }}-${{ matrix.go-version }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-${{ matrix.go-version }}-go-
- name: Cache Go modules
uses: actions/cache@v2
with:
path: |
~/go/pkg
~/.cache/go-build
key: ${{ runner.os }}-${{ matrix.go-version }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-${{ matrix.go-version }}-go-
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: ^1.18
id: go
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: ^1.18
id: go
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: "16"
- name: Install Cloudsmith CLI
run: pip install --upgrade cloudsmith-cli
- name: Install Cloudsmith CLI
run: pip install --upgrade cloudsmith-cli
# gokrazy image
# - name: Prepare Image
# run: |
# make prepare-image
# sed -i -e 's#-ld.*$#& -X github.com/evcc-io/evcc/server/updater.Password=${{ secrets.IMAGE_PASS }}#' buildflags/github.com/evcc-io/evcc/buildflags.txt
# mkdir /home/runner/.config/gokrazy
# echo ${{ secrets.IMAGE_PASS }}> /home/runner/.config/gokrazy/http-password.txt
# gokrazy image
# - name: Prepare Image
# run: |
# make prepare-image
# sed -i -e 's#-ld.*$#& -X github.com/evcc-io/evcc/server/updater.Password=${{ secrets.IMAGE_PASS }}#' buildflags/github.com/evcc-io/evcc/buildflags.txt
# mkdir /home/runner/.config/gokrazy
# echo ${{ secrets.IMAGE_PASS }}> /home/runner/.config/gokrazy/http-password.txt
# - name: Build Image
# run: make image
# - name: Build Image
# run: make image
# - name: Build Root Filesystem
# run: make image-rootfs
# - name: Build Root Filesystem
# run: make image-rootfs
- name: Clean git
run: |
git checkout go.*
rm -rf flags buildflags
- name: Clean git
run: |
git checkout go.*
rm -rf flags buildflags
- name: Create Github Release
uses: goreleaser/goreleaser-action@v2
with:
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GH_REPO }}
- name: Create Github Release
uses: goreleaser/goreleaser-action@v2
with:
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GH_REPO }}
- name: Publish .deb to Cloudsmith
env:
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
run: |
for filename in release/*.deb; do
echo "Pushing $filename to 'stable'"
cloudsmith push deb evcc/stable/any-distro/any-version $filename
done
- name: Publish .deb to Cloudsmith
env:
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
run: |
for filename in release/*.deb; do
echo "Pushing $filename to 'stable'"
cloudsmith push deb evcc/stable/any-distro/any-version $filename
done

View file

@ -3,22 +3,22 @@ name: Validate Schema
on:
push:
paths:
- "*.yaml"
- "*.json"
- "*.yaml"
- "*.json"
pull_request:
paths:
- "*.yaml"
- "*.json"
- "*.yaml"
- "*.json"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: nwisbeta/validate-yaml-schema@v1.0.3
with:
yamlSchemasJson: |
{
"./schema.json": ["evcc.dist.yaml"]
}
- uses: actions/checkout@v2
- uses: nwisbeta/validate-yaml-schema@v1.0.3
with:
yamlSchemasJson: |
{
"./schema.json": ["evcc.dist.yaml"]
}

View file

@ -1,8 +1,9 @@
name: 'Stale issue handler'
name: "Stale issue handler"
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
- cron: "0 0 * * *"
jobs:
stale:
@ -13,6 +14,6 @@ jobs:
with:
days-before-stale: 20
days-before-close: 5
exempt-issue-labels: 'blocked,must,should,keep,pinned'
exempt-issue-labels: "blocked,must,should,keep,pinned"
- name: Print outputs
run: echo ${{ join(steps.stale.outputs.*, ',') }}

View file

@ -2,9 +2,9 @@ run:
go: 1.18
issues:
exclude:
- .regActualCurrent. is unused
- "`routeLogger` is unused"
- .regActualCurrent. is unused
- "`routeLogger` is unused"
linters-settings:
staticcheck:
checks:
- '-SA1019'
- "-SA1019"

View file

@ -3,41 +3,41 @@ release:
disable: true
builds:
- id: evcc
main: main.go
flags:
- -tags=release,viper_yaml3
ldflags:
- -X github.com/evcc-io/evcc/server.Version={{.Version}} -X github.com/evcc-io/evcc/server.Commit={{.ShortCommit}} -s -w
env:
- CGO_ENABLED=0
goos:
- linux
goarch:
- amd64
- arm
- arm64
goarm:
- "6"
- id: evcc
main: main.go
flags:
- -tags=release,viper_yaml3
ldflags:
- -X github.com/evcc-io/evcc/server.Version={{.Version}} -X github.com/evcc-io/evcc/server.Commit={{.ShortCommit}} -s -w
env:
- CGO_ENABLED=0
goos:
- linux
goarch:
- amd64
- arm
- arm64
goarm:
- "6"
archives:
- builds:
- evcc
replacements:
darwin: macOS
format: tar.gz
format_overrides:
- goos: windows
format: zip
files:
- evcc.dist.yaml
name_template: "{{.ProjectName}}_{{ .Version }}_{{.Os}}-{{.Arch}}{{ if .Arm }}hf{{ end }}"
- builds:
- evcc
replacements:
darwin: macOS
format: tar.gz
format_overrides:
- goos: windows
format: zip
files:
- evcc.dist.yaml
name_template: "{{.ProjectName}}_{{ .Version }}_{{.Os}}-{{.Arch}}{{ if .Arm }}hf{{ end }}"
universal_binaries:
- replace: true
- replace: true
checksum:
name_template: 'checksums.txt'
name_template: "checksums.txt"
snapshot:
name_template: "{{ .Version }}.{{.Timestamp}}"
@ -46,30 +46,30 @@ changelog:
sort: asc
filters:
exclude:
- '^chore'
- '^bump'
- '^docs:'
- '^test:'
- "^chore"
- "^bump"
- "^docs:"
- "^test:"
nfpms:
- id: default
package_name: evcc
file_name_template: "{{.ProjectName}}_{{ .Version }}_{{.Os}}-{{.Arch}}{{ if .Arm }}hf{{ end }}"
- id: default
package_name: evcc
file_name_template: "{{.ProjectName}}_{{ .Version }}_{{.Os}}-{{.Arch}}{{ if .Arm }}hf{{ end }}"
homepage: https://evcc.io
description: EV Charge Controller
maintainer: andig <cpuidle@gmx.de>
license: MIT
vendor: evcc.io
homepage: https://evcc.io
description: EV Charge Controller
maintainer: andig <cpuidle@gmx.de>
license: MIT
vendor: evcc.io
formats:
- deb
formats:
- deb
contents:
- src: ./packaging/init/evcc.service
dst: /lib/systemd/system/evcc.service
contents:
- src: ./packaging/init/evcc.service
dst: /lib/systemd/system/evcc.service
scripts:
postinstall: ./packaging/scripts/postinstall.sh
preremove: ./packaging/scripts/preremove.sh
postremove: ./packaging/scripts/postremove.sh
scripts:
postinstall: ./packaging/scripts/postinstall.sh
preremove: ./packaging/scripts/preremove.sh
postremove: ./packaging/scripts/postremove.sh

View file

@ -5,47 +5,47 @@ release:
name: evcc
builds:
- id: evcc
main: main.go
flags:
- -tags=release,viper_yaml3
ldflags:
- -X github.com/evcc-io/evcc/server.Version={{.Version}} -s -w
env:
- CGO_ENABLED=0
goos:
- linux
- darwin
- windows
goarch:
- amd64
- arm
- arm64
goarm:
- "6"
ignore:
- goos: windows
goarch: arm
- goos: windows
goarch: arm64
- id: evcc
main: main.go
flags:
- -tags=release,viper_yaml3
ldflags:
- -X github.com/evcc-io/evcc/server.Version={{.Version}} -s -w
env:
- CGO_ENABLED=0
goos:
- linux
- darwin
- windows
goarch:
- amd64
- arm
- arm64
goarm:
- "6"
ignore:
- goos: windows
goarch: arm
- goos: windows
goarch: arm64
archives:
- builds:
- evcc
replacements:
darwin: macOS
format: tar.gz
format_overrides:
- goos: windows
format: zip
files:
- evcc.dist.yaml
- builds:
- evcc
replacements:
darwin: macOS
format: tar.gz
format_overrides:
- goos: windows
format: zip
files:
- evcc.dist.yaml
universal_binaries:
- replace: true
- replace: true
checksum:
name_template: 'checksums.txt'
name_template: "checksums.txt"
snapshot:
name_template: "{{ .Tag }}-next"
@ -54,65 +54,65 @@ changelog:
sort: asc
filters:
exclude:
- '^chore'
- '^bump'
- '^docs:'
- '^test:'
- "^chore"
- "^bump"
- "^docs:"
- "^test:"
nfpms:
- id: default
package_name: evcc
file_name_template: '{{ .ConventionalFileName }}'
- id: default
package_name: evcc
file_name_template: "{{ .ConventionalFileName }}"
homepage: https://evcc.io
description: EV Charge Controller
maintainer: andig <cpuidle@gmx.de>
license: MIT
vendor: evcc.io
homepage: https://evcc.io
description: EV Charge Controller
maintainer: andig <cpuidle@gmx.de>
license: MIT
vendor: evcc.io
formats:
- deb
formats:
- deb
contents:
- src: ./packaging/init/evcc.service
dst: /lib/systemd/system/evcc.service
contents:
- src: ./packaging/init/evcc.service
dst: /lib/systemd/system/evcc.service
scripts:
postinstall: ./packaging/scripts/postinstall.sh
preremove: ./packaging/scripts/preremove.sh
postremove: ./packaging/scripts/postremove.sh
scripts:
postinstall: ./packaging/scripts/postinstall.sh
preremove: ./packaging/scripts/preremove.sh
postremove: ./packaging/scripts/postremove.sh
brews:
- tap:
owner: evcc-io
name: homebrew-tap
commit_author:
name: andig
email: cpuidle@gmx.de
folder: Formula
homepage: "https://evcc.io"
description: "Sonne tanken ☀️🚘"
license: "MIT"
test: |
system "#{bin}/evcc --version"
plist: |
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>#{plist_name}</string>
<key>Program</key>
<string>#{bin}/evcc</string>
<key>WorkingDirectory</key>
<string>#{var}</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>#{var}/log/evcc.log</string>
<key>StandardErrorPath</key>
<string>#{var}/log/evcc.log</string>
</dict>
</plist>
- tap:
owner: evcc-io
name: homebrew-tap
commit_author:
name: andig
email: cpuidle@gmx.de
folder: Formula
homepage: "https://evcc.io"
description: "Sonne tanken ☀️🚘"
license: "MIT"
test: |
system "#{bin}/evcc --version"
plist: |
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>#{plist_name}</string>
<key>Program</key>
<string>#{bin}/evcc</string>
<key>WorkingDirectory</key>
<string>#{var}</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>#{var}/log/evcc.log</string>
<key>StandardErrorPath</key>
<string>#{var}/log/evcc.log</string>
</dict>
</plist>

View file

@ -3,107 +3,107 @@ log: info
interval: 3s
javascript:
- vm: shared
script: |
state = {
residualpower: 300,
batterypower: 0,
pvpower: 6200,
gridpower: 0,
chargepower: 0,
maxcurrent: 0,
battery: 63, // car
};
function log() { console.log("state:", JSON.stringify(state)); }
function set() { console.log("set:", param+"="+val); }
- vm: shared
script: |
state = {
residualpower: 300,
batterypower: 0,
pvpower: 6200,
gridpower: 0,
chargepower: 0,
maxcurrent: 0,
battery: 63, // car
};
function log() { console.log("state:", JSON.stringify(state)); }
function set() { console.log("set:", param+"="+val); }
meters:
- name: grid
type: custom
power:
source: js
vm: shared
script: |
state.pvpower += 200*(Math.random()-0.5);
state.chargepower = 0;
if (state.enabled) {
state.chargepower = state.maxcurrent * 3 * 230;
state.batterypower = 0;
}
state.gridpower = -state.pvpower + state.chargepower + state.residualpower + state.batterypower;
// if (state.gridpower < 0) {
// state.batterypower = -state.gridpower;
// if (state.batterypower > 1000) {
// state.batterypower = 1000;
// }
// state.gridpower += state.batterypower;
// } else {
// state.batterypower = 0;
// }
state.gridpower;
- name: grid
type: custom
power:
source: js
vm: shared
script: |
state.pvpower += 200*(Math.random()-0.5);
state.chargepower = 0;
if (state.enabled) {
state.chargepower = state.maxcurrent * 3 * 230;
state.batterypower = 0;
}
state.gridpower = -state.pvpower + state.chargepower + state.residualpower + state.batterypower;
// if (state.gridpower < 0) {
// state.batterypower = -state.gridpower;
// if (state.batterypower > 1000) {
// state.batterypower = 1000;
// }
// state.gridpower += state.batterypower;
// } else {
// state.batterypower = 0;
// }
state.gridpower;
- name: pv
type: custom
power:
source: js
vm: shared
script: state.pvpower
- name: pv
type: custom
power:
source: js
vm: shared
script: state.pvpower
- name: battery
type: custom
power:
source: js
vm: shared
script: state.batterypower;
soc:
source: js
vm: shared
script: "30"
- name: charge
type: custom
power:
source: js
vm: shared
script: state.chargepower;
soc:
source: js
vm: shared
script: "30"
- name: battery
type: custom
power:
source: js
vm: shared
script: state.batterypower;
soc:
source: js
vm: shared
script: "30"
- name: charge
type: custom
power:
source: js
vm: shared
script: state.chargepower;
soc:
source: js
vm: shared
script: "30"
chargers:
- name: demo
type: custom
enable:
source: js
vm: shared
script: state.enabled = val;
enabled:
source: js
vm: shared
script: |
state.enabled;
status:
source: js
vm: shared
script: |
if (state.enabled) "C"; else "B";
maxcurrent:
source: js
vm: shared
script: state.maxcurrent = val;
- name: demo
type: custom
enable:
source: js
vm: shared
script: state.enabled = val;
enabled:
source: js
vm: shared
script: |
state.enabled;
status:
source: js
vm: shared
script: |
if (state.enabled) "C"; else "B";
maxcurrent:
source: js
vm: shared
script: state.maxcurrent = val;
vehicles:
- name: demo
title: e-Golf
type: custom
soc:
source: js
vm: shared
script: |
if (state.chargepower > 0) state.battery++; else state.battery--;
if (state.battery < 15) state.battery = 15;
if (state.battery > 100) state.battery = 100;
state.battery;
- name: demo
title: e-Golf
type: custom
soc:
source: js
vm: shared
script: |
if (state.chargepower > 0) state.battery++; else state.battery--;
if (state.battery < 15) state.battery = 15;
if (state.battery > 100) state.battery = 100;
state.battery;
site:
title: Demo
@ -113,7 +113,7 @@ site:
battery: battery
loadpoints:
- title: Carport
charger: demo
meter: charge
vehicle: demo
- title: Carport
charger: demo
meter: charge
vehicle: demo

View file

@ -15,45 +15,45 @@ levels:
# name can be freely chosen and is used as reference when assigning meters to site and loadpoints
# for examples see https://github.com/evcc-io/config#meters
meters:
- name: grid
type: modbus
model: sdm # SDM630
uri: rs485.fritz.box:23
rtu: true # rs485 device connected using ethernet adapter
id: 2
power: Power # default value, optionally override
energy: Sum # default value, optionally override
- name: pv
type: ...
- name: battery
type: ...
- name: charge
type: ...
- name: grid
type: modbus
model: sdm # SDM630
uri: rs485.fritz.box:23
rtu: true # rs485 device connected using ethernet adapter
id: 2
power: Power # default value, optionally override
energy: Sum # default value, optionally override
- name: pv
type: ...
- name: battery
type: ...
- name: charge
type: ...
# charger definitions
# name can be freely chosen and is used as reference when assigning charger to vehicle
# for examples see https://github.com/evcc-io/config#chargers
chargers:
- name: wallbe
type: wallbe # Wallbe charger
uri: 192.168.0.8:502 # ModBus address
- name: keba
type: ...
- name: wallbe
type: wallbe # Wallbe charger
uri: 192.168.0.8:502 # ModBus address
- name: keba
type: ...
# vehicle definitions
# name can be freely chosen and is used as reference when assigning vehicle to loadpoint
# for examples see https://github.com/evcc-io/config#vehicles
vehicles:
- name: car1
type: renault
title: Zoe
capacity: 60 # kWh
user: myuser # user
password: mypassword # password
vin: WREN...
onIdentify: # set defaults when vehicle is identified
minSoC: 20 # charge to at least 20% independent of charge mode
targetSoC: 90 # limit charge to 90%
- name: car1
type: renault
title: Zoe
capacity: 60 # kWh
user: myuser # user
password: mypassword # password
vin: WREN...
onIdentify: # set defaults when vehicle is identified
minSoC: 20 # charge to at least 20% independent of charge mode
targetSoC: 90 # limit charge to 90%
# site describes the EVU connection, PV and home battery
site:
@ -61,47 +61,47 @@ site:
meters:
grid: grid # grid meter
pvs:
- pv # list of pv inverters/ meters
- pv # list of pv inverters/ meters
battery: battery # battery meter
prioritySoC: # give home battery priority up to this soc (empty to disable)
bufferSoC: # ignore home battery discharge above soc (empty to disable)
# loadpoint describes the charger, charge meter and connected vehicle
loadpoints:
- title: Garage # display name for UI
charger: wallbe # charger
meter: charge # charge meter
vehicle: audi
# vehicles: # use if multiple vehicles allowed to charge on this loadpoint
# - ID.3
# - e-Up
mode: pv
resetOnDisconnect: true # set defaults when vehicle disconnects
soc:
# polling defines usage of the vehicle APIs
# Modifying the default settings it NOT recommended. It MAY deplete your vehicle's battery
# or lead to vehicle manufacturer banning you from API use. USE AT YOUR OWN RISK.
poll:
# poll mode defines under which condition the vehicle API is called:
# charging: update vehicle ONLY when charging (this is the recommended default)
# connected: update vehicle when connected (not only charging), interval defines how often
# always: always update vehicle regardless of connection state, interval defines how often (only supported for single vehicle)
mode: charging
# poll interval defines how often the vehicle API may be polled if NOT charging
interval: 60m
min: 0 # immediately charge to 0% regardless of mode unless "off" (disabled)
target: 100 # always charge to 100%
estimate: false # set true to interpolate between api updates
phases: 3 # ev phases (default 3)
enable: # pv mode enable behavior
delay: 1m # threshold must be exceeded for this long
threshold: 0 # grid power threshold (in Watts, negative=export). If zero, export must exceed minimum charge power to enable
disable: # pv mode disable behavior
delay: 10m # threshold must be exceeded for this long
threshold: 200 # maximum import power (W)
guardDuration: 5m # switch charger contactor not more often than this (default 10m)
minCurrent: 6 # minimum charge current (default 6A)
maxCurrent: 16 # maximum charge current (default 16A)
- title: Garage # display name for UI
charger: wallbe # charger
meter: charge # charge meter
vehicle: audi
# vehicles: # use if multiple vehicles allowed to charge on this loadpoint
# - ID.3
# - e-Up
mode: pv
resetOnDisconnect: true # set defaults when vehicle disconnects
soc:
# polling defines usage of the vehicle APIs
# Modifying the default settings it NOT recommended. It MAY deplete your vehicle's battery
# or lead to vehicle manufacturer banning you from API use. USE AT YOUR OWN RISK.
poll:
# poll mode defines under which condition the vehicle API is called:
# charging: update vehicle ONLY when charging (this is the recommended default)
# connected: update vehicle when connected (not only charging), interval defines how often
# always: always update vehicle regardless of connection state, interval defines how often (only supported for single vehicle)
mode: charging
# poll interval defines how often the vehicle API may be polled if NOT charging
interval: 60m
min: 0 # immediately charge to 0% regardless of mode unless "off" (disabled)
target: 100 # always charge to 100%
estimate: false # set true to interpolate between api updates
phases: 3 # ev phases (default 3)
enable: # pv mode enable behavior
delay: 1m # threshold must be exceeded for this long
threshold: 0 # grid power threshold (in Watts, negative=export). If zero, export must exceed minimum charge power to enable
disable: # pv mode disable behavior
delay: 10m # threshold must be exceeded for this long
threshold: 200 # maximum import power (W)
guardDuration: 5m # switch charger contactor not more often than this (default 10m)
minCurrent: 6 # minimum charge current (default 6A)
maxCurrent: 16 # maximum charge current (default 16A)
# tariffs are the fixed or variable tariffs
# cheap (tibber/awattar) can be used to define a tariff rate considered cheap enough for charging

View file

@ -5,7 +5,7 @@
"scripts": {
"build": "vue-cli-service build",
"test": "vue-cli-service test:unit",
"lint": "prettier assets --write && eslint assets/**/*.js assets/**/*.vue --fix",
"lint": "prettier assets './**/*.{yml,yaml}' --write && eslint assets/**/*.js assets/**/*.vue --fix",
"build-storybook": "build-storybook",
"dev": "vue-cli-service build --watch --mode=development",
"storybook": "start-storybook -p 6006 -s assets,node_modules/bootstrap/dist"

View file

@ -1,18 +1,18 @@
template: abl
products:
- brand: ABL
description:
generic: eMH
- brand: SENEC
description:
generic: Wallbox pro
- brand: ABL
description:
generic: eMH
- brand: SENEC
description:
generic: Wallbox pro
requirements:
evcc: ["sponsorship"]
params:
- name: modbus
choice: ["rs485"]
baudrate: 38400
comset: 8E1
- name: modbus
choice: ["rs485"]
baudrate: 38400
comset: 8E1
render: |
type: abl
{{include "modbus" .}}

View file

@ -1,14 +1,14 @@
template: alfen
products:
- brand: Alfen
description:
generic: Eve
- brand: Alfen
description:
generic: Eve
capabilities: ["1p3p"]
requirements:
evcc: ["sponsorship"]
params:
- name: modbus
choice: ["tcpip"]
- name: modbus
choice: ["tcpip"]
render: |
type: alfen
{{include "modbus" .}}

View file

@ -1,15 +1,15 @@
template: alphatec
products:
- brand: Alphatec
description:
generic: Wallbox Mini
- brand: Alphatec
description:
generic: Wallbox Mini
requirements:
evcc: ["sponsorship"]
params:
- name: modbus
choice: ["rs485"]
baudrate: 9600
comset: 8N1
- name: modbus
choice: ["rs485"]
baudrate: 9600
comset: 8N1
render: |
type: alphatec
{{include "modbus" .}}

View file

@ -1,17 +1,17 @@
template: amtron
products:
- brand: Mennekes
description:
generic: AMTRON XTRA
- brand: Mennekes
description:
generic: AMTRON PREMIUM
- brand: Mennekes
description:
generic: AMTRON XTRA
- brand: Mennekes
description:
generic: AMTRON PREMIUM
requirements:
evcc: ["sponsorship"]
params:
- name: modbus
choice: ["tcpip"]
id: 255
- name: modbus
choice: ["tcpip"]
id: 255
render: |
type: amtron
{{include "modbus" .}}

View file

@ -1,14 +1,14 @@
template: cfos
products:
- brand: cFos
description:
generic: PowerBrain
- brand: cFos
description:
generic: PowerBrain
requirements:
evcc: ["sponsorship"]
params:
- name: host
required: true
example: 192.0.2.2
- name: host
required: true
example: 192.0.2.2
render: |
type: cfos
uri: {{ .host }}

View file

@ -1,18 +1,18 @@
template: daheimladen
products:
- brand: DaheimLaden
description:
generic: Wallbox (Cloud API)
- brand: DaheimLaden
description:
generic: Wallbox (Cloud API)
params:
- name: token
help:
de: "Sie bekommen dieses Access Token vom Daheimladen Support: info@daheimladen.de"
en: "Request your access token from Daheimladen support: info@daheimladen.de"
- name: stationid
example: "xxxxxxxxxxxx990"
help:
de: "Die Software Seriennummer, welche auf dem Bildschirm der Wallbox angezeigt wird"
en: "Software Serial Number displayed on the display of the wallbox"
- name: token
help:
de: "Sie bekommen dieses Access Token vom Daheimladen Support: info@daheimladen.de"
en: "Request your access token from Daheimladen support: info@daheimladen.de"
- name: stationid
example: "xxxxxxxxxxxx990"
help:
de: "Die Software Seriennummer, welche auf dem Bildschirm der Wallbox angezeigt wird"
en: "Software Serial Number displayed on the display of the wallbox"
render: |
type: daheimladen
stationID: {{ .stationid }}

View file

@ -1,20 +1,20 @@
template: easee
products:
- brand: Easee
description:
generic: Home (Cloud API)
- brand: Easee
description:
generic: Home (Cloud API)
capabilities: ["1p3p"]
requirements:
evcc: ["sponsorship"]
params:
- name: user
required: true
- name: password
required: true
mask: true
- name: charger
required: true
example: EH______
- name: user
required: true
- name: password
required: true
mask: true
- name: charger
required: true
example: EH______
render: |
type: easee
user: {{ .user }}

View file

@ -1,24 +1,24 @@
template: eebus
products:
- description:
de: EEBUS kompatible Wallbox
en: EEBUS compatible Wallbox
- description:
de: EEBUS kompatible Wallbox
en: EEBUS compatible Wallbox
group: generic
capabilities: ["iso151182"]
requirements:
evcc: ["eebus"]
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
- 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 }}

View file

@ -1,10 +1,10 @@
template: evse_din
products:
- description:
generic: EVSE DIN
- description:
generic: EVSE DIN
params:
- name: modbus
choice: ["rs485"]
- name: modbus
choice: ["rs485"]
render: |
type: evsedin
{{include "modbus" .}}

View file

@ -1,11 +1,11 @@
template: evsewifi
products:
- description:
generic: EVSE-Wifi
- description:
generic: EVSE-Wifi
params:
- name: host
required: true
example: 192.0.2.2
- name: host
required: true
example: 192.0.2.2
render: |
type: evsewifi
uri: http://{{ .host }}

View file

@ -1,26 +1,26 @@
template: fritzdect
products:
- brand: AVM
description:
generic: FritzDECT
- brand: AVM
description:
generic: FritzDECT
group: switchsockets
params:
- name: uri
default: https://fritz.box
- name: user
required: true
- name: password
required: true
mask: true
- name: ain
required: true
mask: true
example: '007788992233'
help:
en: The AIN is printed on the type label on the back of the device.
de: Die AIN ist auf dem Typenschild auf der Geräterückseite aufgedruckt.
- name: standbypower
default: 15
- name: uri
default: https://fritz.box
- name: user
required: true
- name: password
required: true
mask: true
- name: ain
required: true
mask: true
example: "007788992233"
help:
en: The AIN is printed on the type label on the back of the device.
de: Die AIN ist auf dem Typenschild auf der Geräterückseite aufgedruckt.
- name: standbypower
default: 15
render: |
type: fritzdect
uri: {{ .uri }}

View file

@ -1,11 +1,11 @@
template: go-e-v3
products:
- brand: go-e
description:
generic: Charger HOME+ (V3)
- brand: go-e
description:
generic: Charger HOMEfix (V3)
- brand: go-e
description:
generic: Charger HOME+ (V3)
- brand: go-e
description:
generic: Charger HOMEfix (V3)
capabilities: ["1p3p"]
requirements:
description:
@ -19,9 +19,9 @@ requirements:
For 1P/3P-Phase switching the HTTP API v2 in the charger setup needs to be activated.
uri: https://docs.evcc.io/docs/devices/chargers#go-echarger-homeprov3
params:
- name: host
required: true
example: 192.0.2.2
- name: host
required: true
example: 192.0.2.2
render: |
type: go-e
uri: http://{{ .host }}

View file

@ -1,22 +1,22 @@
template: go-e
products:
- brand: go-e
description:
generic: Charger HOME+
- brand: go-e
description:
generic: Charger HOMEfix
- brand: go-e
description:
generic: Charger Pro
- brand: go-e
description:
generic: Charger HOME+
- brand: go-e
description:
generic: Charger HOMEfix
- brand: go-e
description:
generic: Charger Pro
requirements:
description:
en: Requires firmware 040.0 or later.
de: Benötigt mindestens Firmware 040.0 oder neuer.
params:
- name: host
required: true
example: 192.0.2.2
- name: host
required: true
example: 192.0.2.2
render: |
type: go-e
uri: http://{{ .host }}

View file

@ -1,12 +1,12 @@
template: hardybarth-ecb1
products:
- brand: hardybarth-ecb1
description:
generic: HardyBarth cPH1 (eCB1 controller)
- brand: hardybarth-ecb1
description:
generic: HardyBarth cPH1 (eCB1 controller)
params:
- name: host
required: true
example: 192.0.2.2
- name: host
required: true
example: 192.0.2.2
render: |
type: hardybarth-ecb1
uri: http://{{ .host }}

View file

@ -1,12 +1,12 @@
template: hardybarth-salia
products:
- brand: hardybarth-salia
description:
generic: HardyBarth (Salia PLCC controller)
- brand: hardybarth-salia
description:
generic: HardyBarth (Salia PLCC controller)
params:
- name: host
required: true
example: 192.0.2.2
- name: host
required: true
example: 192.0.2.2
render: |
type: hardybarth-salia
uri: http://{{ .host }}

View file

@ -1,21 +1,21 @@
template: heidelberg
products:
- brand: Heidelberg
description:
generic: Energy Control (Modbus RTU)
- brand: SENEC
description:
generic: Wallbox pro s
- brand: Walther Werke
description:
generic: Basic Evo Pro
- brand: Heidelberg
description:
generic: Energy Control (Modbus RTU)
- brand: SENEC
description:
generic: Wallbox pro s
- brand: Walther Werke
description:
generic: Basic Evo Pro
requirements:
evcc: ["sponsorship"]
params:
- name: modbus
choice: ["rs485"]
baudrate: 19200
comset: 8E1
- name: modbus
choice: ["rs485"]
baudrate: 19200
comset: 8E1
render: |
type: heidelberg
{{include "modbus" .}}

View file

@ -1,11 +1,11 @@
template: ichargecion
products:
- brand: i-CHARGE
description:
generic: CION
- brand: i-CHARGE
description:
generic: CION
params:
- name: modbus
choice: ["tcpip"]
- name: modbus
choice: ["tcpip"]
render: |
type: custom
status:

View file

@ -1,13 +1,13 @@
template: innogy-ebox
products:
- brand: Innogy
description:
generic: eBox
- brand: Innogy
description:
generic: eBox
requirements:
evcc: ["sponsorship"]
params:
- name: modbus
choice: ["tcpip"]
- name: modbus
choice: ["tcpip"]
render: |
type: innogy
{{include "modbus" .}}

View file

@ -1,34 +1,34 @@
template: keba
products:
- brand: KEBA
description:
generic: KeContact P20
- brand: KEBA
description:
generic: KeContact P30
- brand: BMW
description:
generic: i Wallbox
- brand: KEBA
description:
generic: KeContact P20
- brand: KEBA
description:
generic: KeContact P30
- brand: BMW
description:
generic: i Wallbox
capabilities: ["rfid"]
requirements:
description:
de: Es muss eine sogenannte UDP Funktion über den DIP Schalter 1.3 eingeschaltet (ON) werden. Die Installationsanleitung der Wallbox hilft hier weiter.
en: This requires the UDP function to be enabled with DIP 1.3 = ON, see the installation manual.
params:
- name: host
required: true
example: 192.0.2.2
- name: rfid
example: 765765348
advanced: true
help:
de: Die Kennung eines RFID Tags um den Lademodus zu starten, selbst wenn die Wallbox gesperrt ist.
en: A RFID tag ID to enable charging even when the wallbox is locked.
- name: serial
advanced: true
help:
de: Die Seriennummer, ermöglicht es auch mit der Wallbox zu kommunizieren wenn evcc in Docker läuft.
en: The serial number, allows to communicate with the Wallbox when running evcc in docker
- name: host
required: true
example: 192.0.2.2
- name: rfid
example: 765765348
advanced: true
help:
de: Die Kennung eines RFID Tags um den Lademodus zu starten, selbst wenn die Wallbox gesperrt ist.
en: A RFID tag ID to enable charging even when the wallbox is locked.
- name: serial
advanced: true
help:
de: Die Seriennummer, ermöglicht es auch mit der Wallbox zu kommunizieren wenn evcc in Docker läuft.
en: The serial number, allows to communicate with the Wallbox when running evcc in docker
render: |
type: keba
uri: {{ .host }}

View file

@ -1,14 +1,14 @@
template: nrgkick-bluetooth
products:
- brand: NRGKick
description:
generic: Bluetooth
- brand: NRGKick
description:
generic: Bluetooth
params:
- name: mac
required: true
- name: pin
required: true
mask: true
- name: mac
required: true
- name: pin
required: true
mask: true
render: |
type: nrgkick-bluetooth
mac: {{ .mac }}

View file

@ -1,17 +1,17 @@
template: nrgkick-connect
products:
- brand: NRGKick
description:
generic: Connect
- brand: NRGKick
description:
generic: Connect
params:
- name: host
required: true
example: 192.0.2.2
- name: mac
required: true
- name: password
required: true
mask: true
- name: host
required: true
example: 192.0.2.2
- name: mac
required: true
- name: password
required: true
mask: true
render: |
type: nrgkick-connect
uri: http://{{ .host }}

View file

@ -1,18 +1,18 @@
template: openwb
products:
- description:
generic: openWB (MQTT)
- description:
generic: openWB (MQTT)
requirements:
description:
en: The wallbox has to be configured running as a loadpoint.
de: Die Wallbox muss als Ladepunkt konfiguriert sein.
uri: https://docs.evcc.io/docs/devices/chargers#openwb
params:
- name: host
required: true
example: 192.0.2.2
- name: loadpointid
default: 1
- name: host
required: true
example: 192.0.2.2
- name: loadpointid
default: 1
render: |
type: openwb
broker: {{ .host }}

View file

@ -1,17 +1,17 @@
template: pcelectric-garo
products:
- brand: PC Electric
description:
generic: Garo
- brand: PC Electric
description:
generic: Garo
requirements:
evcc: ["sponsorship"]
description:
de: Es können momentan nur als Master konfigurierte Geräte verwendet werden!
en: Only devices configured as master can be used right now!
params:
- name: host
- name: port
default: 8080
- name: host
- name: port
default: 8080
render: |
type: garo
uri: http://{{ .host }}:{{ .port }}/servlet

View file

@ -1,7 +1,7 @@
template: phoenix-em-eth
products:
- description:
generic: Phoenix EM-CP-PP-ETH Controller (Modbus TCP)
- description:
generic: Phoenix EM-CP-PP-ETH Controller (Modbus TCP)
group: generic
requirements:
description:
@ -9,11 +9,11 @@ requirements:
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#phoenix-contact
params:
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
render: |
type: phoenix-em-eth
uri: {{ .host }}:{{ .port }}

View file

@ -1,7 +1,7 @@
template: phoenix-ev-eth
products:
- description:
generic: Phoenix EV-ETH Controller (Modbus TCP)
- description:
generic: Phoenix EV-ETH Controller (Modbus TCP)
group: generic
requirements:
description:
@ -9,11 +9,11 @@ requirements:
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#phoenix-contact
params:
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
render: |
type: phoenix-ev-eth
uri: {{ .host }}:{{ .port }}

View file

@ -1,11 +1,11 @@
template: phoenix-ev-ser
products:
- description:
generic: Phoenix EV-SER Controller (Modbus RTU)
- description:
generic: Phoenix EV-SER Controller (Modbus RTU)
group: generic
params:
- name: modbus
choice: ["rs485"]
- name: modbus
choice: ["rs485"]
render: |
type: phoenix-ev-ser
{{include "modbus" .}}

View file

@ -1,25 +1,24 @@
template: pmcc
products:
- brand: Porsche
description:
generic: Mobile Charger Connect
- brand: Porsche
description:
generic: Mobile Charger Connect
capabilities: ["iso151182"]
requirements:
evcc: ["eebus"]
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
- 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 }}

View file

@ -1,18 +1,17 @@
template: pmcp
products:
- brand: Porsche
description:
generic: Mobile Charger Plus
- brand: Porsche
description:
generic: Mobile Charger Plus
requirements:
evcc: ["eebus"]
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: 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

View file

@ -1,14 +1,14 @@
template: shelly
products:
- description:
generic: Shelly
- description:
generic: Shelly
group: switchsockets
params:
- name: host
required: true
example: 192.0.2.2
- name: standbypower
default: 15
- name: host
required: true
example: 192.0.2.2
- name: standbypower
default: 15
render: |
type: shelly
uri: http://{{ .host }} # shelly device ip address (local)

View file

@ -1,19 +1,19 @@
template: tapo
products:
- brand: TP-Link
description:
generic: Tapo
- brand: TP-Link
description:
generic: Tapo
group: switchsockets
params:
- name: uri
required: true
- name: user
required: true
- name: password
required: true
mask: true
- name: standbypower
default: 15
- name: uri
required: true
- name: user
required: true
- name: password
required: true
mask: true
- name: standbypower
default: 15
render: |
type: tapo
uri: {{ .uri }}

View file

@ -1,23 +1,23 @@
template: tasmota
products:
- description:
generic: Tasmota
- description:
generic: Tasmota
group: switchsockets
params:
- name: host
required: true
example: 192.0.2.2
- name: user
help:
en: (optional) in case user + password are defined
de: (optional) nur erforderlich falls diese Werte im Gerät gesetzt sind
- name: password
mask: true
help:
en: (optional) in case user + password are defined
de: (optional) nur erforderlich falls diese Werte im Gerät gesetzt sind
- name: standbypower
default: 15
- name: host
required: true
example: 192.0.2.2
- name: user
help:
en: (optional) in case user + password are defined
de: (optional) nur erforderlich falls diese Werte im Gerät gesetzt sind
- name: password
mask: true
help:
en: (optional) in case user + password are defined
de: (optional) nur erforderlich falls diese Werte im Gerät gesetzt sind
- name: standbypower
default: 15
render: |
type: tasmota
uri: http://{{ .host }} # shelly device ip address (local)

View file

@ -1,29 +1,29 @@
template: tinkerforge-warp-pro
products:
- brand: TinkerForge
description:
generic: WARP Charger Pro
- brand: TinkerForge
description:
generic: WARP Charger Pro
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
help:
de: Die IP Adresse oder der Hostname des MQTT Brokers
en: The IP address or hostname of the MQTT broker
- name: port
default: 1883
help:
de: Der Port des MQTT Brokers
en: The port of the MQTT broker
- name: topic
default: warp
- name: timeout
default: 30s
- name: host
required: true
example: 192.0.2.2
help:
de: Die IP Adresse oder der Hostname des MQTT Brokers
en: The IP address or hostname of the MQTT broker
- name: port
default: 1883
help:
de: Der Port des MQTT Brokers
en: The port of the MQTT broker
- name: topic
default: warp
- name: timeout
default: 30s
render: |
type: warp
broker: {{ .host }}:{{ .port }}

View file

@ -1,29 +1,29 @@
template: tinkerforge-warp
products:
- brand: TinkerForge
description:
generic: WARP Charger
- brand: TinkerForge
description:
generic: WARP Charger
requirements:
description:
en: An 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
help:
de: Die IP Adresse oder der Hostname des MQTT Brokers
en: The IP address or hostname of the MQTT broker
- name: port
default: 1883
help:
de: Der Port des MQTT Brokers
en: The port of the MQTT broker
- name: topic
default: warp
- name: timeout
default: 30s
- name: host
required: true
example: 192.0.2.2
help:
de: Die IP Adresse oder der Hostname des MQTT Brokers
en: The IP address or hostname of the MQTT broker
- name: port
default: 1883
help:
de: Der Port des MQTT Brokers
en: The port of the MQTT broker
- name: topic
default: warp
- name: timeout
default: 30s
render: |
type: warp
broker: {{ .host }}:{{ .port }}

View file

@ -1,15 +1,15 @@
template: tplink
products:
- brand: TP-LINK
description:
generic: Smart Plug
- brand: TP-LINK
description:
generic: Smart Plug
group: switchsockets
params:
- name: host
required: true
example: 192.0.2.2
- name: standbypower
default: 15
- name: host
required: true
example: 192.0.2.2
- name: standbypower
default: 15
render: |
type: tplink
uri: {{ .host }}

View file

@ -1,14 +1,14 @@
template: vestel
products:
- brand: Vestel
description:
generic: EVC04
- brand: Vestel
description:
generic: EVC04
requirements:
evcc: ["sponsorship"]
params:
- name: modbus
choice: ["tcpip"]
id: 255
- name: modbus
choice: ["tcpip"]
id: 255
render: |
type: vestel
{{include "modbus" .}}

View file

@ -1,24 +1,24 @@
template: wallbe-meter
products:
- brand: Wallbe
description:
de: Eco (mit Strommessgerät)
en: Eco (with meter)
- brand: Wallbe
description:
de: Pro (mit Strommessgerät)
en: Pro (with meter)
- brand: Wallbe
description:
de: Eco (mit Strommessgerät)
en: Eco (with meter)
- brand: Wallbe
description:
de: Pro (mit Strommessgerät)
en: Pro (with meter)
requirements:
description:
en: DIP switch 10 must be set to 'ON'.
de: 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
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
render: |
type: wallbe
uri: {{ .host }}:{{ .port }}

View file

@ -1,24 +1,24 @@
template: wallbe-pre2019-meter
products:
- brand: Wallbe
description:
de: Eco (vor ~2019, mit Strommessgerät)
en: Eco (pre ~2019, with meter)
- brand: Wallbe
description:
de: Pro (vor ~2019, mit Strommessgerät)
en: Pro (pre ~2019, with meter)
- brand: Wallbe
description:
de: Eco (vor ~2019, mit Strommessgerät)
en: Eco (pre ~2019, with meter)
- brand: Wallbe
description:
de: Pro (vor ~2019, mit Strommessgerät)
en: Pro (pre ~2019, with meter)
requirements:
description:
en: DIP switch 10 must be set to 'ON'.
de: 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
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
render: |
type: wallbe
uri: {{ .host }}:{{ .port }}

View file

@ -1,24 +1,24 @@
template: wallbe-pre2019
products:
- brand: Wallbe
description:
de: Eco (vor ~2019)
en: Eco (pre ~2019)
- brand: Wallbe
description:
de: Pro (vor ~2019)
en: Pro (pre ~2019)
- brand: Wallbe
description:
de: Eco (vor ~2019)
en: Eco (pre ~2019)
- brand: Wallbe
description:
de: Pro (vor ~2019)
en: Pro (pre ~2019)
requirements:
description:
en: DIP switch 10 must be set to 'ON'.
de: 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
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
render: |
type: wallbe
uri: {{ .host }}:{{ .port }}

View file

@ -1,22 +1,22 @@
template: wallbe
products:
- brand: Wallbe
description:
generic: Eco
- brand: Wallbe
description:
generic: Pro
- brand: Wallbe
description:
generic: Eco
- brand: Wallbe
description:
generic: Pro
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
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
render: |
type: wallbe
uri: {{ .host }}:{{ .port }}

View file

@ -1,14 +1,14 @@
template: webasto
products:
- brand: Webasto
description:
generic: Live
- brand: Webasto
description:
generic: Live
params:
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
render: |
type: webasto
uri: {{ .host }}:{{ .port }}

View file

@ -1,224 +1,224 @@
params:
- name: title
description:
de: Titel
en: Title
help:
de: Wird in der Benutzeroberfläche angezeigt
en: Will be displayed in the user interface
- name: modbusid
description:
generic: Modbus ID
default: 1
valuetype: number
- name: modbusdevice
description:
de: Geräteadresse
en: Device address
help:
de: USB-RS485 Adapter Adresse
en: USB-RS485 Adapter address
example: /dev/ttyUSB0
- name: modbusbaudrate
description:
de: Baudrate
en: Baudrate
help:
de: Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
en: Check the device settings, typical values are 9600, 19200, 38400, 57600, 115200
default: 9600
valuetype: number
- name: modbuscomset
description:
de: ComSet
en: ComSet
help:
de: Kommunikationsparameter für den Adapter
en: Communication parameter for the adapter
default: 8N1
- name: host
description:
de: IP-Adresse oder Hostname
en: IP-Address or Hostname
help:
de: IP-Adresse oder Hostname
en: IP-Address or Hostname
example: "192.0.2.2"
- name: port
description:
de: Port
en: Port
help:
de: Port
en: Port
valuetype: number
- name: user
description:
de: Benutzername
en: Username
help:
de: Benutzername um auf das Gerät zuzugreifen
en: Username to access the device
- name: password
description:
de: Passwort
en: Password
help:
de: Passwort des Benutzerkontos
en: Password of the account
mask: true
- name: capacity
description:
de: Akku-Kapazität in kWh
en: Battery-Capacity in kWh
help:
de: Akku-Kapazität in kWh
en: Battery-Capacity in kWh
example: '41.5'
valuetype: float
- name: vin
description:
de: Fahrzeugidentifikationsnummer
en: Vehicle Identification Number
help:
de: Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind
en: Required if you own multiple vehicles of the same brand
example: W...
- name: phases
description:
de: Maximale Phasenanzahl
en: Maximum number of phases
help:
de: Die maximale Anzahl der Phasen welche genutzt werden können
en: The maximum number of phases which can be used
example: 3
valuetype: number
- name: cache
description:
de: Cache
en: Cache
help:
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.
- name: title
description:
de: Titel
en: Title
help:
de: Wird in der Benutzeroberfläche angezeigt
en: Will be displayed in the user interface
- name: modbusid
description:
generic: Modbus ID
default: 1
valuetype: number
- name: modbusdevice
description:
de: Geräteadresse
en: Device address
help:
de: USB-RS485 Adapter Adresse
en: USB-RS485 Adapter address
example: /dev/ttyUSB0
- name: modbusbaudrate
description:
de: Baudrate
en: Baudrate
help:
de: Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
en: Check the device settings, typical values are 9600, 19200, 38400, 57600, 115200
default: 9600
valuetype: number
- name: modbuscomset
description:
de: ComSet
en: ComSet
help:
de: Kommunikationsparameter für den Adapter
en: Communication parameter for the adapter
default: 8N1
- name: host
description:
de: IP-Adresse oder Hostname
en: IP-Address or Hostname
help:
de: IP-Adresse oder Hostname
en: IP-Address or Hostname
example: "192.0.2.2"
- name: port
description:
de: Port
en: Port
help:
de: Port
en: Port
valuetype: number
- name: user
description:
de: Benutzername
en: Username
help:
de: Benutzername um auf das Gerät zuzugreifen
en: Username to access the device
- name: password
description:
de: Passwort
en: Password
help:
de: Passwort des Benutzerkontos
en: Password of the account
mask: true
- name: capacity
description:
de: Akku-Kapazität in kWh
en: Battery-Capacity in kWh
help:
de: Akku-Kapazität in kWh
en: Battery-Capacity in kWh
example: "41.5"
valuetype: float
- name: vin
description:
de: Fahrzeugidentifikationsnummer
en: Vehicle Identification Number
help:
de: Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind
en: Required if you own multiple vehicles of the same brand
example: W...
- name: phases
description:
de: Maximale Phasenanzahl
en: Maximum number of phases
help:
de: Die maximale Anzahl der Phasen welche genutzt werden können
en: The maximum number of phases which can be used
example: 3
valuetype: number
- name: cache
description:
de: Cache
en: Cache
help:
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.
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
en: Timeout
help:
de: Akzeptiere keine Daten die älter als dieser Wert sind
en: Don't accept values older than this value
example: 30s
valuetype: duration
- name: mode
description:
de: Standard-Lademodus, wenn ein Fahrzeug angeschlossen ist
en: Default charging mode when a vehicle is connected
help:
de: Möglich sind Off, Now, MinPV und PV, oder leer wenn keiner definiert werden soll
en: Possible values are Off, Now, MinPV and PV, or empty if none should be set
valuetype: chargemodes
- name: minsoc
description:
de: Minimaler Ladestand (SoC) in %
en: Minimum state of charge (SoC) in %
help:
de: Lade sofort mit maximaler Geschwindigkeit bis zu dem angegeben Ladestand, wenn der Lademodus nicht auf 'Aus' steht
en: Charge immediately with maximum power up to the defined state of charge, if the charge mode is not set to 'OFF'
example: 25
valuetype: number
- name: targetsoc
description:
de: Ziel-Ladestand (SoC) in %
en: Target state of charge (SoC) in %
help:
de: Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden
en: Until which state of charge (SoC) should the vehicle be charged
example: 80
valuetype: number
- name: mincurrent
description:
de: Minimale Stromstärke in Ampere (A)
en: Minimum amperage (A)
help:
de: Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll
en: The minimum amperage per connected phase with which the car should be charged
example: 6
valuetype: number
- name: maxcurrent
description:
de: Maximale Stromstärke in Ampere (A)
en: Maximum amperage (A)
help:
de: Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll
en: The maximum amperage per connected phase with which the car shuold be charged
example: 16
valuetype: number
- name: identifiers
description:
de: Identifikation
en: Identification
help:
de: "Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox"
en: "Mostly this can be added later, see: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox"
valuetype: stringlist
- name: standbypower
description:
de: Standby-Leistung in W"
en: Standby power in W
help:
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"]
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
en: Timeout
help:
de: Akzeptiere keine Daten die älter als dieser Wert sind
en: Don't accept values older than this value
example: 30s
valuetype: duration
- name: mode
description:
de: Standard-Lademodus, wenn ein Fahrzeug angeschlossen ist
en: Default charging mode when a vehicle is connected
help:
de: Möglich sind Off, Now, MinPV und PV, oder leer wenn keiner definiert werden soll
en: Possible values are Off, Now, MinPV and PV, or empty if none should be set
valuetype: chargemodes
- name: minsoc
description:
de: Minimaler Ladestand (SoC) in %
en: Minimum state of charge (SoC) in %
help:
de: Lade sofort mit maximaler Geschwindigkeit bis zu dem angegeben Ladestand, wenn der Lademodus nicht auf 'Aus' steht
en: Charge immediately with maximum power up to the defined state of charge, if the charge mode is not set to 'OFF'
example: 25
valuetype: number
- name: targetsoc
description:
de: Ziel-Ladestand (SoC) in %
en: Target state of charge (SoC) in %
help:
de: Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden
en: Until which state of charge (SoC) should the vehicle be charged
example: 80
valuetype: number
- name: mincurrent
description:
de: Minimale Stromstärke in Ampere (A)
en: Minimum amperage (A)
help:
de: Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll
en: The minimum amperage per connected phase with which the car should be charged
example: 6
valuetype: number
- name: maxcurrent
description:
de: Maximale Stromstärke in Ampere (A)
en: Maximum amperage (A)
help:
de: Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll
en: The maximum amperage per connected phase with which the car shuold be charged
example: 16
valuetype: number
- name: identifiers
description:
de: Identifikation
en: Identification
help:
de: "Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox"
en: "Mostly this can be added later, see: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox"
valuetype: stringlist
- name: standbypower
description:
de: Standby-Leistung in W"
en: Standby power in W
help:
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:
params:
- name: title
- name: user
required: true
- name: password
required: true
- name: vin
- name: capacity
- name: phases
advanced: true
- name: cache
advanced: true
deprecated: true
- name: title
- name: user
required: true
- name: password
required: true
- name: vin
- name: capacity
- name: phases
advanced: true
- name: cache
advanced: true
deprecated: true
render: |
{{define "vehicle-base"}}
{{- if ne .title "" }}
@ -241,19 +241,19 @@ presets:
{{end}}
vehicleidentify:
params:
- name: mode
advanced: true
- name: minSoC
advanced: true
- name: targetSoC
advanced: true
- name: minCurrent
advanced: true
- name: maxCurrent
advanced: true
- name: identifiers
advanced: true
valuetype: stringlist
- name: mode
advanced: true
- name: minSoC
advanced: true
- name: targetSoC
advanced: true
- name: minCurrent
advanced: true
- name: maxCurrent
advanced: true
- name: identifiers
advanced: true
valuetype: stringlist
render: |
{{define "vehicle-identify"}}
{{- if or (ne .mode "") (ne .minSoC "") (ne .targetSoC "") (ne .minCurrent "") (ne .maxCurrent "") }}
@ -283,7 +283,7 @@ presets:
{{end}}
vehiclelanguage:
params:
- name: language
- name: language
render: |
{{define "vehicle-language"}}
language: {{ .language }}
@ -291,7 +291,7 @@ presets:
vehiclecloud:
params:
- name: cloud
- name: cloud
render: |
{{define "vehicle-cloud"}}
cloud: {{ .cloud }}
@ -306,45 +306,45 @@ modbus:
description:
generic: Serial (USB-RS485 Adapter)
params:
- reference: true
referencename: modbusid
name: id
- reference: true
referencename: modbusdevice
name: device
- reference: true
referencename: modbusbaudrate
name: baudrate
- reference: true
referencename: modbuscomset
name: comset
- reference: true
referencename: modbusid
name: id
- reference: true
referencename: modbusdevice
name: device
- reference: true
referencename: modbusbaudrate
name: baudrate
- reference: true
referencename: modbuscomset
name: comset
rs485tcpip:
description:
generic: Serial (Ethernet-RS485 Adapter)
params:
- reference: true
referencename: modbusid
name: id
- reference: true
name: host
- reference: true
name: port
default: 502
- name: rtu
default: true
hidden: true
- reference: true
referencename: modbusid
name: id
- reference: true
name: host
- reference: true
name: port
default: 502
- name: rtu
default: true
hidden: true
tcpip:
description:
generic: TCP/IP
params:
- reference: true
referencename: modbusid
name: id
- reference: true
name: host
- reference: true
name: port
default: 502
- reference: true
referencename: modbusid
name: id
- reference: true
name: host
- reference: true
name: port
default: 502
devicegroups:
generic:

View file

@ -1,17 +1,17 @@
template: cfos
products:
- brand: cFos
description:
generic: PowerBrain Meter
- brand: cFos
description:
generic: PowerBrain Meter
requirements:
evcc: ["sponsorship"]
params:
- name: usage
choice: [ "charge" ]
- name: modbus
choice: [ "tcpip" ]
port: 4702
id: 2
- name: usage
choice: ["charge"]
- name: modbus
choice: ["tcpip"]
port: 4702
id: 2
render: |
type: cfos
{{ include "modbus" . }}

View file

@ -1,18 +1,18 @@
template: discovergy
products:
- description:
generic: Discovergy (Cloud)
- description:
generic: Discovergy (Cloud)
params:
- name: usage
choice: ["grid", "pv"]
- name: user
required: true
- name: password
required: true
mask: true
- name: meter
required: true
example: 1ESY1161229886
- name: usage
choice: ["grid", "pv"]
- name: user
required: true
- name: password
required: true
mask: true
- name: meter
required: true
example: 1ESY1161229886
render: |
type: discovergy
user: {{ .user }}

View file

@ -1,17 +1,17 @@
template: e3dc
products:
- description:
generic: E3DC
- description:
generic: E3DC
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: host
example: 192.0.2.2
required: true
- name: port
default: 502
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
example: 192.0.2.2
required: true
- name: port
default: 502
render: |
type: custom
power:

View file

@ -1,14 +1,14 @@
template: eastron
products:
- brand: Eastron
description:
de: SDM Modbus Strommessgeräte
en: SDM Modbus Meter
- brand: Eastron
description:
de: SDM Modbus Strommessgeräte
en: SDM Modbus Meter
params:
- name: usage
choice: ["grid", "pv", "battery", "charge"]
- name: modbus
choice: ["rs485"]
- name: usage
choice: ["grid", "pv", "battery", "charge"]
- name: modbus
choice: ["rs485"]
render: |
type: modbus
model: sdm # specific non-sunspec meter

View file

@ -1,26 +1,26 @@
template: fritzdect
products:
- brand: AVM
description:
generic: FritzDECT
- brand: AVM
description:
generic: FritzDECT
group: sockets
params:
- name: usage
choice: ["pv", "charge"]
- name: uri
default: https://fritz.box
- name: user
required: true
- name: password
required: true
mask: true
- name: ain
required: true
mask: true
example: '007788992233'
help:
en: The AIN is printed on the type label on the back of the device.
de: Die AIN ist auf dem Typenschild auf der Geräterückseite aufgedruckt.
- name: usage
choice: ["pv", "charge"]
- name: uri
default: https://fritz.box
- name: user
required: true
- name: password
required: true
mask: true
- name: ain
required: true
mask: true
example: "007788992233"
help:
en: The AIN is printed on the type label on the back of the device.
de: Die AIN ist auf dem Typenschild auf der Geräterückseite aufgedruckt.
render: |
type: fritzdect
uri: {{ .uri }}

View file

@ -1,27 +1,27 @@
template: fronius-gen24
products:
- brand: Fronius
description:
generic: Symo GEN24 Plus
- brand: Fronius
description:
generic: Symo GEN24 Plus
guidedsetup:
enable: true
params:
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
example: 192.0.2.2
required: true
- name: port
default: 502
- name: integer
description:
de: Integer Registerzugriff (nur für Netzzähler)
en: Integer register access (grid meter only)
help:
de: Einstellung Float/Integer im Wechselrichter überprüfen
en: Verify Float/Integer setting in inverter
advanced: true
valuetype: bool
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
example: 192.0.2.2
required: true
- name: port
default: 502
- name: integer
description:
de: Integer Registerzugriff (nur für Netzzähler)
en: Integer register access (grid meter only)
help:
de: Einstellung Float/Integer im Wechselrichter überprüfen
en: Verify Float/Integer setting in inverter
advanced: true
valuetype: bool
render: |
{{- if eq .usage "grid" }}
type: modbus

View file

@ -1,16 +1,16 @@
template: fronius-solarapi-v1
products:
- brand: Fronius
description:
generic: Solar API V1
- brand: Fronius
description:
generic: Solar API V1
guidedsetup:
enable: true
params:
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
example: 192.0.2.2
required: true
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
example: 192.0.2.2
required: true
render: |
type: custom
power:

View file

@ -1,15 +1,15 @@
template: huawei-dongle-powersensor
products:
- brand: Huawei
description:
generic: SUN2000 with SDongle & Power Sensor
- brand: Huawei
description:
generic: SUN2000 with SDongle & Power Sensor
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: modbus
choice: ["tcpip"]
- name: usage
choice: ["grid", "pv", "battery"]
- name: modbus
choice: ["tcpip"]
render: |
type: custom
{{- if eq .usage "grid" }}

View file

@ -1,15 +1,15 @@
template: huawei-dongle
products:
- brand: Huawei
description:
generic: SUN2000 with SDongle
- brand: Huawei
description:
generic: SUN2000 with SDongle
guidedsetup:
enable: true
params:
- name: usage
choice: [ "pv" ]
- name: modbus
choice: ["tcpip"]
- name: usage
choice: ["pv"]
- name: modbus
choice: ["tcpip"]
render: |
type: custom
power:

View file

@ -1,14 +1,14 @@
template: huawei-sun2000-8ktl
products:
- brand: Huawei
description:
generic: SUN2000-8KTL
- brand: Huawei
description:
generic: SUN2000-8KTL
params:
- name: usage
choice: [ "pv" ]
- name: modbus
choice: ["rs485"]
baudrate: 19200
- name: usage
choice: ["pv"]
- name: modbus
choice: ["rs485"]
baudrate: 19200
render: |
type: custom
power:

View file

@ -1,16 +1,16 @@
template: kostal-ksem-inverter
products:
- brand: Kostal
description:
de: Smart Energy Meter (über den Wechselrichter)
en: Smart Energy Meter (via inverter)
- brand: Kostal
description:
de: Smart Energy Meter (über den Wechselrichter)
en: Smart Energy Meter (via inverter)
params:
- name: usage
choice: [ "grid" ]
- name: modbus
choice: [ "tcpip" ]
port: 1502
id: 71
- name: usage
choice: ["grid"]
- name: modbus
choice: ["tcpip"]
port: 1502
id: 71
render: |
type: custom
power:

View file

@ -1,14 +1,14 @@
template: kostal-ksem
products:
- brand: Kostal
description:
generic: Smart Energy Meter
- brand: Kostal
description:
generic: Smart Energy Meter
params:
- name: usage
choice: [ "grid" ]
- name: modbus
choice: [ "tcpip" ]
id: 71
- name: usage
choice: ["grid"]
- name: modbus
choice: ["tcpip"]
id: 71
render: |
type: modbus
model: sunspec

View file

@ -1,22 +1,22 @@
template: kostal-piko-mp-plus
products:
- brand: Kostal
description:
generic: Piko MP Plus
- brand: Kostal
description:
generic: Piko MP Plus
guidedsetup:
enable: true
linked:
- template: kostal-ksem-inverter
usage: grid
- template: kostal-ksem
usage: grid
excludetemplate: kostal-ksem-inverter
- template: kostal-ksem-inverter
usage: grid
- template: kostal-ksem
usage: grid
excludetemplate: kostal-ksem-inverter
params:
- name: usage
choice: [ "pv" ]
- name: host
example: 192.0.2.2
required: true
- name: usage
choice: ["pv"]
- name: host
example: 192.0.2.2
required: true
render: |
type: custom
power:

View file

@ -1,19 +1,19 @@
template: kostal-piko
products:
- brand: Kostal
description:
generic: Piko
- brand: Kostal
description:
generic: Piko BA
- brand: Kostal
description:
generic: Piko
- brand: Kostal
description:
generic: Piko BA
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv" ]
- name: host
example: 192.0.2.2
required: true
- name: usage
choice: ["grid", "pv"]
- name: host
example: 192.0.2.2
required: true
render: |
type: custom
power:

View file

@ -1,23 +1,23 @@
template: kostal-plenticore
products:
- brand: Kostal
description:
generic: Plenticore Hybrid
- brand: Kostal
description:
generic: Plenticore Hybrid
guidedsetup:
enable: true
linked:
- template: kostal-ksem-inverter
usage: grid
- template: kostal-ksem
usage: grid
excludetemplate: kostal-ksem-inverter
- template: kostal-ksem-inverter
usage: grid
- template: kostal-ksem
usage: grid
excludetemplate: kostal-ksem-inverter
params:
- name: usage
choice: [ "pv", "battery" ]
- name: modbus
choice: [ "tcpip" ]
id: 71
port: 1502
- name: usage
choice: ["pv", "battery"]
- name: modbus
choice: ["tcpip"]
id: 71
port: 1502
render: |
{{- if eq .usage "pv" }}
type: custom

View file

@ -1,22 +1,22 @@
template: lg-ess-home-8-10
products:
- brand: LG
description:
generic: ESS Home 8/10
- brand: LG
description:
generic: 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.
- 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 }}

View file

@ -1,70 +1,70 @@
template: mqtt-meter
products:
- description:
de: MQTT Strommessgerät
en: MQTT Meter
- description:
de: MQTT Strommessgerät
en: MQTT Meter
group: generic
requirements:
evcc: ["mqtt"]
params:
- name: usage
choice: [ "grid", "pv", "charge", "battery" ]
- name: power
description:
de: MQTT Topic für die Leistung (W)
en: MQTT Topic for power (W)
required: true
- name: scalepower
description:
de: Skalierung der Leistungswerte
en: Scaling of the power value
default: 1
help:
de: Die Leistung wird in Watt erwartet. Falls z.b. kW geliefert wird, kann dies hier mit dem Wert 1000 angepasst werden
en: Power is expected to be provided in Watt. If it is provided in kW instead, set this value to 1000 to correct it
- name: energy
description:
de: MQTT Topic für Energiemenge (Wh)
en: MQTT Topic for energy (Wh)
- name: scaleenergy
dependencies:
- name: energy
check: notempty
description:
de: Skalierung der Energiement
en: Scaling of the energy value
default: 1
help:
de: Die Energiemenge wird in kWh erwartet. Falls z.b. Wh geliefert wird, kann dies hier mit dem Wert 0.001 angepasst werden
en: Power is expected to be provided in kWh. If it is provided in Wh instead, set this value to 0.001 to correct it
- name: soc
description:
de: MQTT Topic für den SoC der Batterie (%)
en: MQTT Topic for battery SoC (%)
dependencies:
- name: usage
check: equal
value: battery
- name: currentp1
description:
de: MQTT Topic Stromstärke (A) Phase 1
en: MQTT Topic Amperage (A) phase 1
- name: currentp2
description:
de: MQTT Topic Stromstärke (A) Phase 2
en: MQTT Topic Amperage (A) phase 2
dependencies:
- name: currentp1
check: notempty
- name: currentp3
description:
de: MQTT Topic Stromstärke (A) Phase 3
en: MQTT Topic Amperage (A) phase 3
dependencies:
- name: currentp1
check: notempty
- name: timeout
default: 30s
- name: usage
choice: ["grid", "pv", "charge", "battery"]
- name: power
description:
de: MQTT Topic für die Leistung (W)
en: MQTT Topic for power (W)
required: true
- name: scalepower
description:
de: Skalierung der Leistungswerte
en: Scaling of the power value
default: 1
help:
de: Die Leistung wird in Watt erwartet. Falls z.b. kW geliefert wird, kann dies hier mit dem Wert 1000 angepasst werden
en: Power is expected to be provided in Watt. If it is provided in kW instead, set this value to 1000 to correct it
- name: energy
description:
de: MQTT Topic für Energiemenge (Wh)
en: MQTT Topic for energy (Wh)
- name: scaleenergy
dependencies:
- name: energy
check: notempty
description:
de: Skalierung der Energiement
en: Scaling of the energy value
default: 1
help:
de: Die Energiemenge wird in kWh erwartet. Falls z.b. Wh geliefert wird, kann dies hier mit dem Wert 0.001 angepasst werden
en: Power is expected to be provided in kWh. If it is provided in Wh instead, set this value to 0.001 to correct it
- name: soc
description:
de: MQTT Topic für den SoC der Batterie (%)
en: MQTT Topic for battery SoC (%)
dependencies:
- name: usage
check: equal
value: battery
- name: currentp1
description:
de: MQTT Topic Stromstärke (A) Phase 1
en: MQTT Topic Amperage (A) phase 1
- name: currentp2
description:
de: MQTT Topic Stromstärke (A) Phase 2
en: MQTT Topic Amperage (A) phase 2
dependencies:
- name: currentp1
check: notempty
- name: currentp3
description:
de: MQTT Topic Stromstärke (A) Phase 3
en: MQTT Topic Amperage (A) phase 3
dependencies:
- name: currentp1
check: notempty
- name: timeout
default: 30s
render: |
type: custom
power:

View file

@ -1,19 +1,19 @@
template: openems
products:
- brand: OpenEMS
- brand: FENECON
- brand: OpenEMS
- brand: FENECON
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: host
required: true
example: 192.0.2.2
- name: password
mask: true
default: user
advanced: true
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
required: true
example: 192.0.2.2
- name: password
mask: true
default: user
advanced: true
render: |
type: custom
power:

View file

@ -1,14 +1,14 @@
template: powerdog
products:
- description:
generic: Powerdog
- description:
generic: Powerdog
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv" ]
- name: modbus
choice: [ "tcpip" ]
- name: usage
choice: ["grid", "pv"]
- name: modbus
choice: ["tcpip"]
render: |
type: custom
power:

View file

@ -1,16 +1,16 @@
template: powerfox-poweropti
products:
- brand: Powerfox
description:
generic: Poweropti (Cloud)
- brand: Powerfox
description:
generic: Poweropti (Cloud)
params:
- name: usage
choice: [ "grid" ]
- name: user
required: true
- name: password
required: true
mask: true
- name: usage
choice: ["grid"]
- name: user
required: true
- name: password
required: true
mask: true
render: |
type: custom
power:

View file

@ -1,16 +1,16 @@
template: rct-power
products:
- brand: RCT
description:
generic: Power
- brand: RCT
description:
generic: Power
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: host
required: true
example: 192.0.2.2
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
required: true
example: 192.0.2.2
render: |
type: rct
uri: {{ .host }}

View file

@ -1,16 +1,16 @@
template: senec-home
products:
- brand: SENEC
description:
generic: .Home
- brand: SENEC
description:
generic: .Home
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: host
required: true
example: 192.0.2.2
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
required: true
example: 192.0.2.2
render: |
type: custom
power:

View file

@ -1,15 +1,15 @@
template: shelly-3em
products:
- brand: Shelly
description:
generic: 3EM
- brand: Shelly
description:
generic: 3EM
group: sockets
params:
- name: usage
choice: [ "grid", "pv", "charge" ]
- name: host
required: true
example: 192.0.2.2
- name: usage
choice: ["grid", "pv", "charge"]
- name: host
required: true
example: 192.0.2.2
render: |
type: custom
power:

View file

@ -1,28 +1,28 @@
template: sma-data-manager-m-lite
products:
- brand: SMA
description:
generic: Data Manager M Lite
- brand: SMA
description:
generic: Data Manager M Lite
guidedsetup:
enable: true
linked:
- template: sma-energy-meter
usage: grid
- template: sma-inverter
usage: battery
multiple: true
- template: sma-energy-meter
usage: grid
- template: sma-inverter
usage: battery
multiple: true
requirements:
description:
de: In der Weboberfläche des SMA Data Manager muss im Bereich "Externe Kommunikation" der Schalter "Modbus Server aktivieren" eingeschaltet sein.
en: In the web interface of the SMA Data Manager you need to activate "Modbus Server activated" in the section "External communication".
params:
- name: usage
choice: ["pv"]
- name: host
example: 192.0.2.2
required: true
- name: port
default: 502
- name: usage
choice: ["pv"]
- name: host
example: 192.0.2.2
required: true
- name: port
default: 502
render: |
type: custom
power:

View file

@ -1,14 +1,14 @@
template: sma-energy-meter
products:
- brand: SMA
description:
generic: Energy Meter
- brand: SMA
description:
generic: Energy Meter
params:
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
example: 192.0.2.2
required: true
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
example: 192.0.2.2
required: true
render: |
type: sma
uri: {{ .host }}

View file

@ -1,27 +1,27 @@
template: sma-home-manager
products:
- brand: SMA
description:
generic: Sunny Home Manager 2.0
- brand: SMA
description:
generic: Sunny Home Manager 2.0
capabilities: ["smahems"]
guidedsetup:
enable: true
linked:
- template: sma-energy-meter
usage: pv
- template: sma-inverter
usage: pv
multiple: true
excludetemplate: sma-energy-meter
- template: sma-inverter
usage: battery
multiple: true
- template: sma-energy-meter
usage: pv
- template: sma-inverter
usage: pv
multiple: true
excludetemplate: sma-energy-meter
- template: sma-inverter
usage: battery
multiple: true
params:
- name: usage
choice: ["grid"]
- name: host
example: 192.0.2.2
required: true
- name: usage
choice: ["grid"]
- name: host
example: 192.0.2.2
required: true
render: |
type: sma
uri: {{ .host }}

View file

@ -1,20 +1,20 @@
template: sma-inverter
products:
- brand: SMA
description:
de: Wechselrichter
en: Inverter
- brand: SMA
description:
de: Wechselrichter
en: Inverter
params:
- name: usage
choice: ["pv", "battery"]
- name: host
example: 192.0.2.2
required: true
- name: password
mask: true
help:
en: Only required if the default password was changed
de: Wird nur benötigt, wenn das Standardpasswort geändert wurde
- name: usage
choice: ["pv", "battery"]
- name: host
example: 192.0.2.2
required: true
- name: password
mask: true
help:
en: Only required if the default password was changed
de: Wird nur benötigt, wenn das Standardpasswort geändert wurde
render: |
type: sma
uri: {{ .host }} # IP address or hostname

View file

@ -1,8 +1,8 @@
template: solaredge-hybrid
products:
- brand: Solaredge
description:
generic: Hybrid
- brand: Solaredge
description:
generic: Hybrid
guidedsetup:
enable: true
requirements:
@ -10,17 +10,17 @@ requirements:
de: Nur ein System kann auf den Wechselrichter zugreifen!
en: Only one system may access the inverter!
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
help:
en: Port 502 (SetApp) or 1502 (LCD)
de: Port 502 (SetApp) oder 1502 (LCD)
- name: timeout
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
help:
en: Port 502 (SetApp) or 1502 (LCD)
de: Port 502 (SetApp) oder 1502 (LCD)
- name: timeout
render: |
type: custom
power:

View file

@ -1,19 +1,19 @@
template: solaredge-inverter
products:
- brand: Solaredge
description:
de: Wechselrichter
en: Inverter
- brand: Solaredge
description:
de: Wechselrichter
en: Inverter
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv" ]
- name: modbus
choice: [ "tcpip" ]
id: 1
port: 1502
- name: timeout
- name: usage
choice: ["grid", "pv"]
- name: modbus
choice: ["tcpip"]
id: 1
port: 1502
- name: timeout
render: |
type: custom
power:

View file

@ -1,7 +1,7 @@
template: solarlog
products:
- description:
generic: Solarlog
- description:
generic: Solarlog
guidedsetup:
enable: true
requirements:
@ -13,13 +13,13 @@ requirements:
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" ]
- name: host
example: 192.0.2.2
required: true
- name: port
default: 502
- name: usage
choice: ["grid", "pv"]
- name: host
example: 192.0.2.2
required: true
- name: port
default: 502
render: |
type: custom
power:

View file

@ -1,18 +1,18 @@
template: solarwatt-myreserve-matrix
products:
- brand: Solarwatt
description:
generic: MyReserve Matrix (LAN oder PowerGateway)
- 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
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
required: true
example: 192.0.2.2
- name: port
default: 8080
render: |
type: custom
power:

View file

@ -1,16 +1,16 @@
template: solarwatt-myreserve
products:
- brand: Solarwatt
description:
generic: MyReserve
- brand: Solarwatt
description:
generic: MyReserve
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: host
required: true
example: 192.0.2.2
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
required: true
example: 192.0.2.2
render: |
type: custom
power:

View file

@ -1,8 +1,8 @@
template: solax-hybrid-cloud
products:
- brand: Solax
description:
generic: Hybrid (Cloud)
- brand: Solax
description:
generic: Hybrid (Cloud)
requirements:
description:
de: |
@ -16,23 +16,23 @@ requirements:
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: tokenid
required: true
description:
generic: SolaxCloud TokenID
help:
de: Auf https://www.solaxcloud.com/#/api den Wert von "ObtaintokenID" hier eintragen.
en: Go to https://www.solaxcloud.com/#/api and take the value of "ObtaintokenID".
- name: serial
required: true
description:
de: Seriennummer
en: Serial number
help:
de: Auf https://www.solaxcloud.com/#/inverter die Registriernummer hier eintragen.
en: Go to https://www.solaxcloud.com/#/inverter and take the value of registration number
- name: usage
choice: ["grid", "pv", "battery"]
- name: tokenid
required: true
description:
generic: SolaxCloud TokenID
help:
de: Auf https://www.solaxcloud.com/#/api den Wert von "ObtaintokenID" hier eintragen.
en: Go to https://www.solaxcloud.com/#/api and take the value of "ObtaintokenID".
- name: serial
required: true
description:
de: Seriennummer
en: Serial number
help:
de: Auf https://www.solaxcloud.com/#/inverter die Registriernummer hier eintragen.
en: Go to https://www.solaxcloud.com/#/inverter and take the value of registration number
render: |
type: custom
power:

View file

@ -1,9 +1,9 @@
template: solax-inverter-cloud
products:
- brand: Solax
description:
de: Wechselrichter (Cloud)
en: Inverter (Cloud)
- brand: Solax
description:
de: Wechselrichter (Cloud)
en: Inverter (Cloud)
requirements:
description:
de: |
@ -15,23 +15,23 @@ requirements:
**Attention**: Values can only be fetched every 150s and then also can be 5 minutes old. Charging by PV will not be optimal because of this!
params:
- name: usage
choice: [ "pv" ]
- name: tokenid
required: true
description:
generic: SolaxCloud TokenID
help:
de: Auf https://www.solaxcloud.com/#/api den Wert von "ObtaintokenID" hier eintragen.
en: Go to https://www.solaxcloud.com/#/api and take the value of "ObtaintokenID".
- name: serial
required: true
description:
de: Seriennummer
en: Serial number
help:
de: Auf https://www.solaxcloud.com/#/inverter die Registriernummer hier eintragen.
en: Go to https://www.solaxcloud.com/#/inverter and take the value of registration number
- name: usage
choice: ["pv"]
- name: tokenid
required: true
description:
generic: SolaxCloud TokenID
help:
de: Auf https://www.solaxcloud.com/#/api den Wert von "ObtaintokenID" hier eintragen.
en: Go to https://www.solaxcloud.com/#/api and take the value of "ObtaintokenID".
- name: serial
required: true
description:
de: Seriennummer
en: Serial number
help:
de: Auf https://www.solaxcloud.com/#/inverter die Registriernummer hier eintragen.
en: Go to https://www.solaxcloud.com/#/inverter and take the value of registration number
render: |
type: custom
power:

View file

@ -1,8 +1,8 @@
template: solax-x3
products:
- brand: Solax
description:
generic: Hybrid X3
- brand: Solax
description:
generic: Hybrid X3
requirements:
description:
de: Der Solax Inverter muss via Ethernet an das lokale Netzwerk angeschlossen sein.
@ -10,14 +10,14 @@ requirements:
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: host
required: true
example: 192.0.2.2
- name: port
required: true
default: 502
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
required: true
example: 192.0.2.2
- name: port
required: true
default: 502
render: |
type: custom
power:

View file

@ -1,18 +1,18 @@
template: sonnenbatterie-eco10
products:
- brand: Sonnenbatterie
description:
generic: Eco/10
- brand: Sonnenbatterie
description:
generic: 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
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
required: true
example: 192.0.2.2
- name: port
default: 8080
render: |
type: custom
power:
@ -32,4 +32,3 @@ render: |
uri: http://{{ .host }}:{{ .port }}/api/v1/status
jq: .USOC
{{- end }}

View file

@ -1,15 +1,15 @@
template: sungrow-dongle
products:
- brand: Sungrow (Wifi dongle)
description:
generic: Inverter (Beta)
- brand: Sungrow (Wifi dongle)
description:
generic: Inverter (Beta)
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: modbus
choice: [ "rs485", "tcpip" ]
- name: usage
choice: ["grid", "pv", "battery"]
- name: modbus
choice: ["rs485", "tcpip"]
render: |
type: custom
{{- if eq .usage "grid" }}

View file

@ -1,15 +1,15 @@
template: sungrow
products:
- brand: Sungrow (LAN)
description:
generic: Inverter (Beta)
- brand: Sungrow (LAN)
description:
generic: Inverter (Beta)
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: modbus
choice: [ "rs485", "tcpip" ]
- name: usage
choice: ["grid", "pv", "battery"]
- name: modbus
choice: ["rs485", "tcpip"]
render: |
type: custom
{{- if eq .usage "grid" }}

View file

@ -1,14 +1,14 @@
template: sunspec
products:
- description:
de: Wechselrichter (SunSpec)
en: Inverter (SunSpec)
- description:
de: Wechselrichter (SunSpec)
en: Inverter (SunSpec)
group: generic
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: modbus
choice: [ "tcpip" ]
- name: usage
choice: ["grid", "pv", "battery"]
- name: modbus
choice: ["tcpip"]
render: |
type: modbus
model: sunspec

View file

@ -1,14 +1,14 @@
template: tasmota
products:
- description:
generic: Tasmota
- description:
generic: Tasmota
group: sockets
params:
- name: usage
choice: [ "grid", "pv", "charge" ]
- name: host
required: true
example: 192.0.2.2
- name: usage
choice: ["grid", "pv", "charge"]
- name: host
required: true
example: 192.0.2.2
render: |
type: custom
power: # power reading (W)

View file

@ -1,22 +1,22 @@
template: tesla-powerwall
products:
- brand: Tesla
description:
generic: Powerwall
- brand: Tesla
description:
generic: Powerwall
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: host
required: true
example: 192.0.2.2
- name: password
required: true
mask: true
help:
en: Password of the user "customer"
de: Passwort des Benutzers "Kunde"
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
required: true
example: 192.0.2.2
- name: password
required: true
mask: true
help:
en: Password of the user "customer"
de: Passwort des Benutzers "Kunde"
render: |
type: tesla
uri: {{ .host }}

View file

@ -1,18 +1,18 @@
template: varta-energiespeicher
products:
- brand: VARTA
description:
generic: Energiespeicher
- brand: VARTA
description:
generic: Energiespeicher
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
render: |
type: custom
power:

View file

@ -1,18 +1,18 @@
template: victron-energy
products:
- brand: Victron
description:
generic: Energy
- brand: Victron
description:
generic: Energy
guidedsetup:
enable: true
params:
- name: usage
choice: [ "grid", "pv", "battery" ]
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
- name: usage
choice: ["grid", "pv", "battery"]
- name: host
required: true
example: 192.0.2.2
- name: port
default: 502
render: |
type: custom
power:

View file

@ -1,18 +1,18 @@
template: volkszaehler-http
products:
- description:
generic: Volkszähler (HTTP API)
- description:
generic: Volkszähler (HTTP API)
group: generic
params:
- name: usage
choice: [ "grid" ]
- name: host
example: 192.0.2.2
required: true
- name: port
default: 80
- name: uuid
required: true
- name: usage
choice: ["grid"]
- name: host
example: 192.0.2.2
required: true
- name: port
default: 80
- name: uuid
required: true
render: |
type: custom
power: # power reading

Some files were not shown because too many files have changed in this diff Show more