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 }}