Adding SolarFocus VampAir to EVCC
Posted by quark007 | Posted in Computer & IT | Posted on 03-04-2026-05-2008
0
I was running EVCC for solar-driven charing of our BEV. For improving the usage of the solar power I also wanted to integrate our heatpump, a Solarfocus VampAir. Though the ecoManagerTouch offers communicating with the solar inverter (heatpump starts if grid power exceeds certain level) I liked more suffisticated controlling of the solar power usage.
The Solarfocus ecoTouchManager allows controlling it via Modbus which also EVCC is support. Thanks to the new functionality of adding sg-ready heatpumps it should be possible to also add the heatpumpt to EVCC. And it is.
SolarFocus Modbus Registers
Solarfocus provides a list of all Modbus registers of the ecoManagerTouch with its meaning and values. EVCC has a very good documentation of its Modbus implementation as well as of the heater/heatpump functionality.
Though the Solarfocus ecoManagerTouch is not (yet) natively supported, it is possible to add a custom template. Good to know: heater are treated similar than chargers.
My custom template looks like follows:
## required attributes [type: sgready]
setmode: # set operation mode (1: reduced, 2: normal, 3 boost)
source: modbus
id: 1
uri: 192.168.178.15:502
register:
address: 33405
type: writeholdings
decode: uint16
## optional attributes (read-only)
#getmode: # operation mode (1: reduced, 2: normal, 3 boost)
getmode:
source: modbus
uri: 192.168.178.15:502
register:
address: 33405
type: holding
decode: int16
power: # charge power in W
source: modbus
uri: 192.168.178.15:502
register:
address: 2322
type: input
decode: int16
energy: # meter reading in kWh
source: modbus
uri: 192.168.178.15:502
register:
address: 2316
type: input
decode: int32
scale: 0.001
temp: # current temperature (°C)
source: modbus
uri: 192.168.178.15:502
register:
address: 1901
type: input
decode: int16
scale: 0.1
limittemp: # temperature limit (°C) configured in device
source: const
value: 57
Trouble I was facing at first
I was able to setup everything and also the readout of values via Modbus was possible and seemed fine. Though I got errors like:
[lp-2 ] ERROR 2026/04/03 11:17:48 charger enable: modbus: exception '1' (illegal function), function '6'After consultation of Solarfocus it turned out that the function code 6 (write single register) is not yet implemented, though it is mentioned in the modbus register PDF.
I had used the “writeholding” (without the “s”) as it was named in the documentation. There was no hint to the “writeholdings” to that time. Knowing that function I set up the system working fluently.
