evcc-io/templates/definition/meter/solax.yaml

140 lines
3.7 KiB
YAML

template: solax
covers: ["solax-x1", "solax-x3"]
products:
- brand: Solax
description:
generic: Hybrid X1/X3 G3/G4
- brand: Qcells
description:
generic: Q.HOME ESS HYB-G3
capabilities: ["battery-control"]
params:
- name: usage
choice: ["grid", "pv", "battery"]
allinone: true
- name: modbus
choice: ["rs485", "tcpip"]
baudrate: 19200
- name: capacity
advanced: true
- name: maxacpower
render: |
type: custom
power:
{{- if eq .usage "grid" }}
source: modbus
{{- include "modbus" . | indent 2 }}
register: # manual non-sunspec register configuration
address: 70 # 0x0046 feedin_power(meter)
type: input
decode: int32s
scale: -1
energy:
source: modbus
{{- include "modbus" . | indent 2 }}
register: # manual non-sunspec register configuration
address: 74 # 0x004A consum_energy_total(meter)
type: input
decode: uint32s
scale: 0.1
{{- end }}
{{- if eq .usage "pv" }}
source: calc
add:
- source: modbus
{{- include "modbus" . | indent 4 }}
register: # manual non-sunspec register configuration
address: 10 # 0x000A Powerdc1
type: input
decode: uint16
- source: modbus
{{- include "modbus" . | indent 4 }}
register: # manual non-sunspec register configuration
address: 11 # 0x000B Powerdc2
type: input
decode: uint16
energy:
source: modbus
{{- include "modbus" . | indent 2 }}
register: # manual non-sunspec register configuration
address: 148 # 0x0094 SolarEnergyTotal
type: input
decode: uint32s
scale: 0.1
maxacpower: {{ .maxacpower }} # W
{{- end }}
{{- if eq .usage "battery" }}
source: modbus
{{- include "modbus" . | indent 2 }}
register: # manual non-sunspec register configuration
address: 22 # 0x0016 Batpower_Charge1
type: input
decode: int16
scale: -1
soc:
source: modbus
{{- include "modbus" . | indent 2 }}
register:
address: 28 # 0x001C Battery Capacity
type: input
decode: uint16
batterymode:
source: switch
switch:
- case: 1 # normal
set:
source: const
value: 0 # self use mode
set:
source: modbus
{{- include "modbus" . | indent 8 }}
register:
address: 0x001F # SolarChargeUseMode
type: writesingle
decode: uint16
- case: 2 # hold
set:
source: sequence
set:
- source: const
value: 0 # Stop force charge & discharge
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 0x0020 # Manual mode
type: writesingle
decode: uint16
- source: const
value: 3 # manual mode
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 0x001F # SolarChargeUseMode
type: writesingle
decode: uint16
- case: 3 # charge
set:
source: sequence
set:
- source: const
value: 1 # Force charge
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 0x0020 # Manual mode
type: writesingle
decode: uint16
- source: const
value: 3 # manual mode
set:
source: modbus
{{- include "modbus" . | indent 10 }}
register:
address: 0x001F # SolarChargeUseMode
type: writesingle
decode: uint16
capacity: {{ .capacity }} # kWh
{{- end }}