Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 60 additions & 1 deletion templates/definition/meter/solplanet-ai-dongle.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,20 @@ requirements:
de: |
Nutzt die lokale HTTP-Schnittstelle des AI-Dongle (z.B. BA121T-30) statt Modbus TCP.
Die Seriennummer (isn) des Wechselrichters kann über `http://<host>:8484/getdev.cgi?device=2` ausgelesen werden.

Die Batteriesteuerung (normal/hold/charge) nutzt fest vorberechnete Modbus-RTU-Befehle,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Das ist alles technisches Detail. Bitte auf "Ladeleistung der Batteriesteuerung ist auf xyz fest limitiert" einkürzen.

die über die ebenfalls undokumentierte `fdbg.cgi`-Schnittstelle gesendet werden
([Hintergrund und weitere Tester in Diskussion #17680](https://github.com/evcc-io/evcc/discussions/17680)).
Da die Befehle fest kodiert sind, ist die Ladeleistung auf 5000 W fixiert.
en: |
Uses the AI-Dongle local HTTP API (e.g. BA121T-30) instead of Modbus TCP.
The inverter serial number (isn) can be read via `http://<host>:8484/getdev.cgi?device=2`.

Battery control (normal/hold/charge) uses fixed, pre-computed Modbus-RTU commands sent
through the equally undocumented `fdbg.cgi` endpoint
([background and more testers in discussion #17680](https://github.com/evcc-io/evcc/discussions/17680)).
Because the commands are fixed, charge power is pinned to 5000 W.
capabilities: ["battery-control"]
params:
- name: usage
choice: ["grid", "pv", "battery"]
Expand Down Expand Up @@ -44,5 +55,53 @@ render: |
source: http
uri: http://{{ .host }}:8484/getdevdata.cgi?device=4&sn={{ .serial }}
jq: .soc
batterymode:
source: switch
switch:
- case: 1 # normal
set:
source: http
uri: http://{{ .host }}:8484/fdbg.cgi
method: POST
timeout: 20s
headers:
Content-Type: application/json
body: '{"data":"0306044f0002390e"}' # write reg 1103 (mode) = 2 (normal)
- case: 2 # hold: custom mode + 0 W
set:
source: sequence
set:
- source: http
uri: http://{{ .host }}:8484/fdbg.cgi
method: POST
timeout: 20s
headers:
Content-Type: application/json
body: '{"data":"0306044f0004b90c"}' # write reg 1103 (mode) = 4 (custom)
- source: http
uri: http://{{ .host }}:8484/fdbg.cgi
method: POST
timeout: 20s
headers:
Content-Type: application/json
body: '{"data":"03060480000088f0"}' # write reg 1152 (setpoint) = 0 W
- case: 3 # charge: custom mode + fixed 5000 W (see requirements)
set:
source: sequence
set:
- source: http
uri: http://{{ .host }}:8484/fdbg.cgi
method: POST
timeout: 20s
headers:
Content-Type: application/json
body: '{"data":"0306044f0004b90c"}' # write reg 1103 (mode) = 4 (custom)
- source: http
uri: http://{{ .host }}:8484/fdbg.cgi
method: POST
timeout: 20s
headers:
Content-Type: application/json
body: '{"data":"03060480ec78c412"}' # write reg 1152 (setpoint) = -5000 W
{{- include "battery-params" . }}
{{- end }}
{{- end }}
Loading