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: label-alias:
bug: 'bug' bug: "bug"
feature_request: 'enhancement' feature_request: "enhancement"
question: 'question' question: "question"

1
.github/stale.yml vendored
View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -5,7 +5,7 @@
"scripts": { "scripts": {
"build": "vue-cli-service build", "build": "vue-cli-service build",
"test": "vue-cli-service test:unit", "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", "build-storybook": "build-storybook",
"dev": "vue-cli-service build --watch --mode=development", "dev": "vue-cli-service build --watch --mode=development",
"storybook": "start-storybook -p 6006 -s assets,node_modules/bootstrap/dist" "storybook": "start-storybook -p 6006 -s assets,node_modules/bootstrap/dist"

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,24 +1,24 @@
template: eebus template: eebus
products: products:
- description: - description:
de: EEBUS kompatible Wallbox de: EEBUS kompatible Wallbox
en: EEBUS compatible Wallbox en: EEBUS compatible Wallbox
group: generic group: generic
capabilities: ["iso151182"] capabilities: ["iso151182"]
requirements: requirements:
evcc: ["eebus"] evcc: ["eebus"]
params: params:
- name: ski - name: ski
required: true required: true
help: help:
en: The SKI of the wallbox, can usually be found on the web interface of the wallbox 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 de: Die SKI der Wallbox, ist üblicherweise im Web Interface der Wallbox zu finden
- name: enforcePVLimits - name: enforcePVLimits
default: true default: true
valuetype: bool valuetype: bool
help: help:
en: Use PV charging via overload protection (just as usual wallboxes do it) with vehicles supporting ISO15519 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 de: Verwende PV Laden über eine Ladebegrenzung (wie herkömmliche Wallboxen) bei Fahrzeugen mit Unterstützung von ISO15118
render: | render: |
type: eebus type: eebus
ski: {{ .ski }} ski: {{ .ski }}

View file

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

View file

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

View file

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

View file

@ -1,27 +1,27 @@
template: go-e-v3 template: go-e-v3
products: products:
- brand: go-e - brand: go-e
description: description:
generic: Charger HOME+ (V3) generic: Charger HOME+ (V3)
- brand: go-e - brand: go-e
description: description:
generic: Charger HOMEfix (V3) generic: Charger HOMEfix (V3)
capabilities: ["1p3p"] capabilities: ["1p3p"]
requirements: requirements:
description: description:
de: | de: |
Benötigt mindestens Firmware 052.1 oder neuer. Benötigt mindestens Firmware 052.1 oder neuer.
Für 1P/3P-Phasenumschaltung muss die HTTP API v2 im Charger aktiviert sein. Für 1P/3P-Phasenumschaltung muss die HTTP API v2 im Charger aktiviert sein.
en: | en: |
Requires firmware 052.1 or later. Requires firmware 052.1 or later.
For 1P/3P-Phase switching the HTTP API v2 in the charger setup needs to be activated. 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 uri: https://docs.evcc.io/docs/devices/chargers#go-echarger-homeprov3
params: params:
- name: host - name: host
required: true required: true
example: 192.0.2.2 example: 192.0.2.2
render: | render: |
type: go-e type: go-e
uri: http://{{ .host }} uri: http://{{ .host }}

View file

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

View file

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

View file

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

View file

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

View file

@ -1,11 +1,11 @@
template: ichargecion template: ichargecion
products: products:
- brand: i-CHARGE - brand: i-CHARGE
description: description:
generic: CION generic: CION
params: params:
- name: modbus - name: modbus
choice: ["tcpip"] choice: ["tcpip"]
render: | render: |
type: custom type: custom
status: status:
@ -35,4 +35,4 @@ render: |
register: # manual register configuration register: # manual register configuration
address: 127 # Strom max address: 127 # Strom max
type: writesingle type: writesingle
decode: uint16 decode: uint16

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,25 +1,24 @@
template: pmcc template: pmcc
products: products:
- brand: Porsche - brand: Porsche
description: description:
generic: Mobile Charger Connect generic: Mobile Charger Connect
capabilities: ["iso151182"] capabilities: ["iso151182"]
requirements: requirements:
evcc: ["eebus"] evcc: ["eebus"]
params: params:
- name: ski - name: ski
required: true required: true
help: help:
en: The SKI of the wallbox, can usually be found on the web interface of the wallbox 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 de: Die SKI der Wallbox, ist üblicherweise im Web Interface der Wallbox zu finden
- name: enforcePVLimits - name: enforcePVLimits
default: true default: true
valuetype: bool valuetype: bool
help: help:
en: Use PV charging via overload protection (just as usual wallboxes do it) with vehicles supporting ISO15519 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 de: Verwende PV Laden über eine Ladebegrenzung (wie herkömmliche Wallboxen) bei Fahrzeugen mit Unterstützung von ISO15118
render: | render: |
type: eebus type: eebus
ski: {{ .ski }} ski: {{ .ski }}
forcePVLimits: {{ .enforcePVLimits }} forcePVLimits: {{ .enforcePVLimits }}

View file

@ -1,18 +1,17 @@
template: pmcp template: pmcp
products: products:
- brand: Porsche - brand: Porsche
description: description:
generic: Mobile Charger Plus generic: Mobile Charger Plus
requirements: requirements:
evcc: ["eebus"] evcc: ["eebus"]
params: params:
- name: ski - name: ski
required: true required: true
help: help:
en: The SKI of the wallbox, can usually be found on the web interface of the wallbox 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 de: Die SKI der Wallbox, ist üblicherweise im Web Interface der Wallbox zu finden
render: | render: |
type: eebus type: eebus
ski: {{ .ski }} ski: {{ .ski }}
forcePVLimits: true forcePVLimits: true

View file

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

View file

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

View file

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

View file

@ -1,29 +1,29 @@
template: tinkerforge-warp-pro template: tinkerforge-warp-pro
products: products:
- brand: TinkerForge - brand: TinkerForge
description: description:
generic: WARP Charger Pro generic: WARP Charger Pro
requirements: requirements:
description: description:
en: A MQTT Broker software needs to be running on a computer. The MQTT connection also needs to be configured in the wallbox. 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. 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 uri: https://docs.evcc.io/docs/devices/chargers#tinkerforge-warp-charger
params: params:
- name: host - name: host
required: true required: true
example: 192.0.2.2 example: 192.0.2.2
help: help:
de: Die IP Adresse oder der Hostname des MQTT Brokers de: Die IP Adresse oder der Hostname des MQTT Brokers
en: The IP address or hostname of the MQTT broker en: The IP address or hostname of the MQTT broker
- name: port - name: port
default: 1883 default: 1883
help: help:
de: Der Port des MQTT Brokers de: Der Port des MQTT Brokers
en: The port of the MQTT broker en: The port of the MQTT broker
- name: topic - name: topic
default: warp default: warp
- name: timeout - name: timeout
default: 30s default: 30s
render: | render: |
type: warp type: warp
broker: {{ .host }}:{{ .port }} broker: {{ .host }}:{{ .port }}

View file

@ -1,29 +1,29 @@
template: tinkerforge-warp template: tinkerforge-warp
products: products:
- brand: TinkerForge - brand: TinkerForge
description: description:
generic: WARP Charger generic: WARP Charger
requirements: requirements:
description: description:
en: An MQTT Broker software needs to be running on a computer. The MQTT connection also needs to be configured in the wallbox. 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. 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 uri: https://docs.evcc.io/docs/devices/chargers#tinkerforge-warp-charger
params: params:
- name: host - name: host
required: true required: true
example: 192.0.2.2 example: 192.0.2.2
help: help:
de: Die IP Adresse oder der Hostname des MQTT Brokers de: Die IP Adresse oder der Hostname des MQTT Brokers
en: The IP address or hostname of the MQTT broker en: The IP address or hostname of the MQTT broker
- name: port - name: port
default: 1883 default: 1883
help: help:
de: Der Port des MQTT Brokers de: Der Port des MQTT Brokers
en: The port of the MQTT broker en: The port of the MQTT broker
- name: topic - name: topic
default: warp default: warp
- name: timeout - name: timeout
default: 30s default: 30s
render: | render: |
type: warp type: warp
broker: {{ .host }}:{{ .port }} broker: {{ .host }}:{{ .port }}

View file

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

View file

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

View file

@ -1,24 +1,24 @@
template: wallbe-meter template: wallbe-meter
products: products:
- brand: Wallbe - brand: Wallbe
description: description:
de: Eco (mit Strommessgerät) de: Eco (mit Strommessgerät)
en: Eco (with meter) en: Eco (with meter)
- brand: Wallbe - brand: Wallbe
description: description:
de: Pro (mit Strommessgerät) de: Pro (mit Strommessgerät)
en: Pro (with meter) en: Pro (with meter)
requirements: requirements:
description: description:
en: DIP switch 10 must be set to 'ON'. en: DIP switch 10 must be set to 'ON'.
de: Im Gerät muss der DIP Schalter 10 auf 'ON' gestellt sein. de: Im Gerät muss der DIP Schalter 10 auf 'ON' gestellt sein.
uri: https://docs.evcc.io/docs/devices/chargers#wallbe-ecopro uri: https://docs.evcc.io/docs/devices/chargers#wallbe-ecopro
params: params:
- name: host - name: host
required: true required: true
example: 192.0.2.2 example: 192.0.2.2
- name: port - name: port
default: 502 default: 502
render: | render: |
type: wallbe type: wallbe
uri: {{ .host }}:{{ .port }} uri: {{ .host }}:{{ .port }}

View file

@ -1,24 +1,24 @@
template: wallbe-pre2019-meter template: wallbe-pre2019-meter
products: products:
- brand: Wallbe - brand: Wallbe
description: description:
de: Eco (vor ~2019, mit Strommessgerät) de: Eco (vor ~2019, mit Strommessgerät)
en: Eco (pre ~2019, with meter) en: Eco (pre ~2019, with meter)
- brand: Wallbe - brand: Wallbe
description: description:
de: Pro (vor ~2019, mit Strommessgerät) de: Pro (vor ~2019, mit Strommessgerät)
en: Pro (pre ~2019, with meter) en: Pro (pre ~2019, with meter)
requirements: requirements:
description: description:
en: DIP switch 10 must be set to 'ON'. en: DIP switch 10 must be set to 'ON'.
de: Im Gerät muss der DIP Schalter 10 auf 'ON' gestellt sein. de: Im Gerät muss der DIP Schalter 10 auf 'ON' gestellt sein.
uri: https://docs.evcc.io/docs/devices/chargers#wallbe-ecopro uri: https://docs.evcc.io/docs/devices/chargers#wallbe-ecopro
params: params:
- name: host - name: host
required: true required: true
example: 192.0.2.2 example: 192.0.2.2
- name: port - name: port
default: 502 default: 502
render: | render: |
type: wallbe type: wallbe
uri: {{ .host }}:{{ .port }} uri: {{ .host }}:{{ .port }}

View file

@ -1,24 +1,24 @@
template: wallbe-pre2019 template: wallbe-pre2019
products: products:
- brand: Wallbe - brand: Wallbe
description: description:
de: Eco (vor ~2019) de: Eco (vor ~2019)
en: Eco (pre ~2019) en: Eco (pre ~2019)
- brand: Wallbe - brand: Wallbe
description: description:
de: Pro (vor ~2019) de: Pro (vor ~2019)
en: Pro (pre ~2019) en: Pro (pre ~2019)
requirements: requirements:
description: description:
en: DIP switch 10 must be set to 'ON'. en: DIP switch 10 must be set to 'ON'.
de: Im Gerät muss der DIP Schalter 10 auf 'ON' gestellt sein. de: Im Gerät muss der DIP Schalter 10 auf 'ON' gestellt sein.
uri: https://docs.evcc.io/docs/devices/chargers#wallbe-ecopro uri: https://docs.evcc.io/docs/devices/chargers#wallbe-ecopro
params: params:
- name: host - name: host
required: true required: true
example: 192.0.2.2 example: 192.0.2.2
- name: port - name: port
default: 502 default: 502
render: | render: |
type: wallbe type: wallbe
uri: {{ .host }}:{{ .port }} uri: {{ .host }}:{{ .port }}

View file

@ -1,22 +1,22 @@
template: wallbe template: wallbe
products: products:
- brand: Wallbe - brand: Wallbe
description: description:
generic: Eco generic: Eco
- brand: Wallbe - brand: Wallbe
description: description:
generic: Pro generic: Pro
requirements: requirements:
description: description:
en: The Wallbe must be connected using Ethernet and the DIP switch 10 must be set to 'ON'. 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. 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 uri: https://docs.evcc.io/docs/devices/chargers#wallbe-ecopro
params: params:
- name: host - name: host
required: true required: true
example: 192.0.2.2 example: 192.0.2.2
- name: port - name: port
default: 502 default: 502
render: | render: |
type: wallbe type: wallbe
uri: {{ .host }}:{{ .port }} uri: {{ .host }}:{{ .port }}

View file

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

View file

@ -1,224 +1,224 @@
params: params:
- name: title - name: title
description: description:
de: Titel de: Titel
en: Title en: Title
help: help:
de: Wird in der Benutzeroberfläche angezeigt de: Wird in der Benutzeroberfläche angezeigt
en: Will be displayed in the user interface en: Will be displayed in the user interface
- name: modbusid - name: modbusid
description: description:
generic: Modbus ID generic: Modbus ID
default: 1 default: 1
valuetype: number valuetype: number
- name: modbusdevice - name: modbusdevice
description: description:
de: Geräteadresse de: Geräteadresse
en: Device address en: Device address
help: help:
de: USB-RS485 Adapter Adresse de: USB-RS485 Adapter Adresse
en: USB-RS485 Adapter address en: USB-RS485 Adapter address
example: /dev/ttyUSB0 example: /dev/ttyUSB0
- name: modbusbaudrate - name: modbusbaudrate
description: description:
de: Baudrate de: Baudrate
en: Baudrate en: Baudrate
help: help:
de: Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200 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 en: Check the device settings, typical values are 9600, 19200, 38400, 57600, 115200
default: 9600 default: 9600
valuetype: number valuetype: number
- name: modbuscomset - name: modbuscomset
description: description:
de: ComSet de: ComSet
en: ComSet en: ComSet
help: help:
de: Kommunikationsparameter für den Adapter de: Kommunikationsparameter für den Adapter
en: Communication parameter for the adapter en: Communication parameter for the adapter
default: 8N1 default: 8N1
- name: host - name: host
description: description:
de: IP-Adresse oder Hostname de: IP-Adresse oder Hostname
en: IP-Address or Hostname en: IP-Address or Hostname
help: help:
de: IP-Adresse oder Hostname de: IP-Adresse oder Hostname
en: IP-Address or Hostname en: IP-Address or Hostname
example: "192.0.2.2" example: "192.0.2.2"
- name: port - name: port
description: description:
de: Port de: Port
en: Port en: Port
help: help:
de: Port de: Port
en: Port en: Port
valuetype: number valuetype: number
- name: user - name: user
description: description:
de: Benutzername de: Benutzername
en: Username en: Username
help: help:
de: Benutzername um auf das Gerät zuzugreifen de: Benutzername um auf das Gerät zuzugreifen
en: Username to access the device en: Username to access the device
- name: password - name: password
description: description:
de: Passwort de: Passwort
en: Password en: Password
help: help:
de: Passwort des Benutzerkontos de: Passwort des Benutzerkontos
en: Password of the account en: Password of the account
mask: true mask: true
- name: capacity - name: capacity
description: description:
de: Akku-Kapazität in kWh de: Akku-Kapazität in kWh
en: Battery-Capacity in kWh en: Battery-Capacity in kWh
help: help:
de: Akku-Kapazität in kWh de: Akku-Kapazität in kWh
en: Battery-Capacity in kWh en: Battery-Capacity in kWh
example: '41.5' example: "41.5"
valuetype: float valuetype: float
- name: vin - name: vin
description: description:
de: Fahrzeugidentifikationsnummer de: Fahrzeugidentifikationsnummer
en: Vehicle Identification Number en: Vehicle Identification Number
help: help:
de: Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind de: Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind
en: Required if you own multiple vehicles of the same brand en: Required if you own multiple vehicles of the same brand
example: W... example: W...
- name: phases - name: phases
description: description:
de: Maximale Phasenanzahl de: Maximale Phasenanzahl
en: Maximum number of phases en: Maximum number of phases
help: help:
de: Die maximale Anzahl der Phasen welche genutzt werden können de: Die maximale Anzahl der Phasen welche genutzt werden können
en: The maximum number of phases which can be used en: The maximum number of phases which can be used
example: 3 example: 3
valuetype: number valuetype: number
- name: cache - name: cache
description: description:
de: Cache de: Cache
en: Cache en: Cache
help: help:
de: Das zeitliche Interval, in welchem Daten vom Fahrzeug neu geladen werden soll 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 en: Time interval with when data should be reloaded from the vehicle
example: 5m example: 5m
- name: cloud - name: cloud
description: description:
de: evcc Cloud de: evcc Cloud
en: evcc Cloud en: evcc Cloud
help: help:
de: | de: |
Anstatt auf die Online API des Fahrzeugherstellers von der lokalen Installation zuzugreifen, 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 wird dies über die evcc Cloud gemacht. Die Zugangsdaten und VIN werden sicher und verschlüsselt
übertragen und in der Cloud nicht gespeichert. übertragen und in der Cloud nicht gespeichert.
Die Vorteile sind: 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 - 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 - Man muss nicht auf eine neue Version von evcc warten und dann ein lokales Update von evcc durchführen
en: | en: |
Instead of connecting to the vehicle manufacturers online API from your local installation, 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 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. securely and won't be stored in the cloud.
The benefits are: The benefits are:
- If the vehicles online API changes, we can update this for all users more quickly - 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 - No waiting for a new evcc version in this case and then requiring an update
requirements: requirements:
evcc: ["sponsorship"] evcc: ["sponsorship"]
valuetype: bool valuetype: bool
- name: timeout - name: timeout
description: description:
de: Zeitüberschreitung de: Zeitüberschreitung
en: Timeout en: Timeout
help: help:
de: Akzeptiere keine Daten die älter als dieser Wert sind de: Akzeptiere keine Daten die älter als dieser Wert sind
en: Don't accept values older than this value en: Don't accept values older than this value
example: 30s example: 30s
valuetype: duration valuetype: duration
- name: mode - name: mode
description: description:
de: Standard-Lademodus, wenn ein Fahrzeug angeschlossen ist de: Standard-Lademodus, wenn ein Fahrzeug angeschlossen ist
en: Default charging mode when a vehicle is connected en: Default charging mode when a vehicle is connected
help: help:
de: Möglich sind Off, Now, MinPV und PV, oder leer wenn keiner definiert werden soll 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 en: Possible values are Off, Now, MinPV and PV, or empty if none should be set
valuetype: chargemodes valuetype: chargemodes
- name: minsoc - name: minsoc
description: description:
de: Minimaler Ladestand (SoC) in % de: Minimaler Ladestand (SoC) in %
en: Minimum state of charge (SoC) in % en: Minimum state of charge (SoC) in %
help: help:
de: Lade sofort mit maximaler Geschwindigkeit bis zu dem angegeben Ladestand, wenn der Lademodus nicht auf 'Aus' steht 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' en: Charge immediately with maximum power up to the defined state of charge, if the charge mode is not set to 'OFF'
example: 25 example: 25
valuetype: number valuetype: number
- name: targetsoc - name: targetsoc
description: description:
de: Ziel-Ladestand (SoC) in % de: Ziel-Ladestand (SoC) in %
en: Target state of charge (SoC) in % en: Target state of charge (SoC) in %
help: help:
de: Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden de: Bis zu welchem Ladestand (SoC) soll das Fahrzeug geladen werden
en: Until which state of charge (SoC) should the vehicle be charged en: Until which state of charge (SoC) should the vehicle be charged
example: 80 example: 80
valuetype: number valuetype: number
- name: mincurrent - name: mincurrent
description: description:
de: Minimale Stromstärke in Ampere (A) de: Minimale Stromstärke in Ampere (A)
en: Minimum amperage (A) en: Minimum amperage (A)
help: help:
de: Definiert die minimale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll 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 en: The minimum amperage per connected phase with which the car should be charged
example: 6 example: 6
valuetype: number valuetype: number
- name: maxcurrent - name: maxcurrent
description: description:
de: Maximale Stromstärke in Ampere (A) de: Maximale Stromstärke in Ampere (A)
en: Maximum amperage (A) en: Maximum amperage (A)
help: help:
de: Definiert die maximale Stromstärke pro angeschlossener Phase mit welcher das Fahrzeug geladen werden soll 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 en: The maximum amperage per connected phase with which the car shuold be charged
example: 16 example: 16
valuetype: number valuetype: number
- name: identifiers - name: identifiers
description: description:
de: Identifikation de: Identifikation
en: Identification en: Identification
help: help:
de: "Kann meist erst später eingetragen werden, siehe: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox" 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" en: "Mostly this can be added later, see: https://docs.evcc.io/docs/guides/vehicles/#erkennung-des-fahrzeugs-an-der-wallbox"
valuetype: stringlist valuetype: stringlist
- name: standbypower - name: standbypower
description: description:
de: Standby-Leistung in W" de: Standby-Leistung in W"
en: Standby power in W en: Standby power in W
help: help:
de: Leistung oberhalb des angegebenen Wertes wird als Ladeleistung gewertet de: Leistung oberhalb des angegebenen Wertes wird als Ladeleistung gewertet
en: Power values above this value will be considered as charging pow en: Power values above this value will be considered as charging pow
valuetype: number valuetype: number
- name: language - name: language
description: description:
de: Sprache de: Sprache
en: Language en: Language
help: help:
de: "'de' für Deutsch und 'en' für Englisch" de: "'de' für Deutsch und 'en' für Englisch"
en: "'en' for English and 'de' for German" en: "'en' for English and 'de' for German"
default: en default: en
validvalues: ["de", "en"] validvalues: ["de", "en"]
presets: presets:
vehiclebase: vehiclebase:
params: params:
- name: title - name: title
- name: user - name: user
required: true required: true
- name: password - name: password
required: true required: true
- name: vin - name: vin
- name: capacity - name: capacity
- name: phases - name: phases
advanced: true advanced: true
- name: cache - name: cache
advanced: true advanced: true
deprecated: true deprecated: true
render: | render: |
{{define "vehicle-base"}} {{define "vehicle-base"}}
{{- if ne .title "" }} {{- if ne .title "" }}
@ -241,19 +241,19 @@ presets:
{{end}} {{end}}
vehicleidentify: vehicleidentify:
params: params:
- name: mode - name: mode
advanced: true advanced: true
- name: minSoC - name: minSoC
advanced: true advanced: true
- name: targetSoC - name: targetSoC
advanced: true advanced: true
- name: minCurrent - name: minCurrent
advanced: true advanced: true
- name: maxCurrent - name: maxCurrent
advanced: true advanced: true
- name: identifiers - name: identifiers
advanced: true advanced: true
valuetype: stringlist valuetype: stringlist
render: | render: |
{{define "vehicle-identify"}} {{define "vehicle-identify"}}
{{- if or (ne .mode "") (ne .minSoC "") (ne .targetSoC "") (ne .minCurrent "") (ne .maxCurrent "") }} {{- if or (ne .mode "") (ne .minSoC "") (ne .targetSoC "") (ne .minCurrent "") (ne .maxCurrent "") }}
@ -283,7 +283,7 @@ presets:
{{end}} {{end}}
vehiclelanguage: vehiclelanguage:
params: params:
- name: language - name: language
render: | render: |
{{define "vehicle-language"}} {{define "vehicle-language"}}
language: {{ .language }} language: {{ .language }}
@ -291,7 +291,7 @@ presets:
vehiclecloud: vehiclecloud:
params: params:
- name: cloud - name: cloud
render: | render: |
{{define "vehicle-cloud"}} {{define "vehicle-cloud"}}
cloud: {{ .cloud }} cloud: {{ .cloud }}
@ -306,45 +306,45 @@ modbus:
description: description:
generic: Serial (USB-RS485 Adapter) generic: Serial (USB-RS485 Adapter)
params: params:
- reference: true - reference: true
referencename: modbusid referencename: modbusid
name: id name: id
- reference: true - reference: true
referencename: modbusdevice referencename: modbusdevice
name: device name: device
- reference: true - reference: true
referencename: modbusbaudrate referencename: modbusbaudrate
name: baudrate name: baudrate
- reference: true - reference: true
referencename: modbuscomset referencename: modbuscomset
name: comset name: comset
rs485tcpip: rs485tcpip:
description: description:
generic: Serial (Ethernet-RS485 Adapter) generic: Serial (Ethernet-RS485 Adapter)
params: params:
- reference: true - reference: true
referencename: modbusid referencename: modbusid
name: id name: id
- reference: true - reference: true
name: host name: host
- reference: true - reference: true
name: port name: port
default: 502 default: 502
- name: rtu - name: rtu
default: true default: true
hidden: true hidden: true
tcpip: tcpip:
description: description:
generic: TCP/IP generic: TCP/IP
params: params:
- reference: true - reference: true
referencename: modbusid referencename: modbusid
name: id name: id
- reference: true - reference: true
name: host name: host
- reference: true - reference: true
name: port name: port
default: 502 default: 502
devicegroups: devicegroups:
generic: generic:

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,22 +1,22 @@
template: lg-ess-home-8-10 template: lg-ess-home-8-10
products: products:
- brand: LG - brand: LG
description: description:
generic: ESS Home 8/10 generic: ESS Home 8/10
guidedsetup: guidedsetup:
enable: true enable: true
params: params:
- name: usage - name: usage
choice: [ "grid", "pv", "battery" ] choice: ["grid", "pv", "battery"]
- name: host - name: host
required: true required: true
example: 192.0.2.2 example: 192.0.2.2
- name: registration - name: registration
required: true required: true
example: "DE200..." example: "DE200..."
help: help:
en: Registration number of the LG ESS HOME inverter. en: Registration number of the LG ESS HOME inverter.
de: Registriernummer des LG ESS HOME Wechselrichters. de: Registriernummer des LG ESS HOME Wechselrichters.
render: | render: |
type: lgess type: lgess
usage: {{ .usage }} usage: {{ .usage }}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,7 +1,7 @@
template: solarlog template: solarlog
products: products:
- description: - description:
generic: Solarlog generic: Solarlog
guidedsetup: guidedsetup:
enable: true enable: true
requirements: 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. 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. If you have a home battery installed, please do not use this device at all for grid power values.
params: params:
- name: usage - name: usage
choice: [ "grid", "pv" ] choice: ["grid", "pv"]
- name: host - name: host
example: 192.0.2.2 example: 192.0.2.2
required: true required: true
- name: port - name: port
default: 502 default: 502
render: | render: |
type: custom type: custom
power: power:

View file

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

View file

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

View file

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

View file

@ -1,9 +1,9 @@
template: solax-inverter-cloud template: solax-inverter-cloud
products: products:
- brand: Solax - brand: Solax
description: description:
de: Wechselrichter (Cloud) de: Wechselrichter (Cloud)
en: Inverter (Cloud) en: Inverter (Cloud)
requirements: requirements:
description: description:
de: | 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! **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: params:
- name: usage - name: usage
choice: [ "pv" ] choice: ["pv"]
- name: tokenid - name: tokenid
required: true required: true
description: description:
generic: SolaxCloud TokenID generic: SolaxCloud TokenID
help: help:
de: Auf https://www.solaxcloud.com/#/api den Wert von "ObtaintokenID" hier eintragen. 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". en: Go to https://www.solaxcloud.com/#/api and take the value of "ObtaintokenID".
- name: serial - name: serial
required: true required: true
description: description:
de: Seriennummer de: Seriennummer
en: Serial number en: Serial number
help: help:
de: Auf https://www.solaxcloud.com/#/inverter die Registriernummer hier eintragen. 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 en: Go to https://www.solaxcloud.com/#/inverter and take the value of registration number
render: | render: |
type: custom type: custom
power: power:

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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