Python client for Solarfocus ecomanager-touch via Modbus TCP
Table of Contents
Python client library to interact with heating systems of Solarfocus (ecomanager-touch) via Modbus TCP. This library has been developed for the integration into Home-Assistant via a custom integration, but can be used indepdently.
Warning Use with caution, in case of doubt check with Solarfocus or your installer if a feature / functionality (e.g. cooling) is supported by your installation to avoid damages to your heating system or the building.
Important This integration has been tested with Solarfocus ecomanager-touch version
23.020
.
Supported versions: 21.140
- 23.020
. Features added in later versions are not yet supported.
The ecomanager-touch Modbus TCP specification can be found here.
The ecomanager-touch can integrate the following heating systems
- Vampair heat pumps
- Therminnator biomass boilers
- Ecotoplight / Ecotopzero biomass boilers
Components | Supported |
---|---|
Heating Circuit 1 - 8 (Heizkreis) | ✅ |
Buffer 1 - 4 (Puffer) | ✅ |
Solar (Solar) | ✅ |
Boiler 1 - 4 (Boiler) | ✅ |
Heat Pump (Wärmepumpe) | ✅ |
Biomass Boiler (Kessel) | ✅ |
Fresh Water Module 1 - 4 (Frischwassermodul) | ✅ |
$ pip3 install pysolarfocus
from pysolarfocus import SolarfocusAPI,Systems,ApiVersions
# Create the Solarfocus API client
solarfocus = SolarfocusAPI(
ip="solarfocus", # adapt IP-Address
system=Systems.VAMPAIR, # for biomass boiler change to Systems.THERMINATOR / ECOTOP
api_version=ApiVersions.V_23_020) # select Solarfocus version
solarfocus.connect()
# Fetch the values
solarfocus.update()
# Print the values
print(solarfocus)
print(solarfocus.heating_circuits[0])
Output:
--------------------------------------------------
SolarfocusAPI, v3.6.4
--------------------------------------------------
+ API Version: 23.020
+ System: Vampair
+ Components:
+ Heat pump: True
+ Biomass boiler: False
+ Heating circuit: 1
+ Buffer: 1
+ Boiler: 1
+ Fresh water module: 1
+ Solar: False
+ Photovoltaic: False
--------------------------------------------------
============
HeatingCircuit
============
---Input:
supply_temperature| raw:258 scaled:25.8
room_temperature| raw:222 scaled:22.2
humidity| raw:480 scaled:48.0
limit_thermostat| raw:1 scaled:1
circulator_pump| raw:1 scaled:1
mixer_valve| raw:34 scaled:34
state| raw:12 scaled:12
---Holding:
target_supply_temperature | raw:0 scaled:0.0
cooling | raw:0 scaled:0
mode | raw:0 scaled:0
target_room_temperatur | raw:0 scaled:0.0
indoor_temperatur_external | raw:222 scaled:22.2
indoor_humidity_external | raw:480 scaled:48.0
Solarfocus systems allow the use of multiple heating circuits, buffers, boilers, and fresh water modules. The api can be configured to interact with multiple components.
# Create the Solarfocus API client with 2 Heating Circuits
solarfocus = SolarfocusAPI(ip="[Your-IP]",heating_circuit_count=2,system=Systems.VAMPAIR)
# Connect to the heating system
solarfocus.connect()
# Update all heating circuits
solarfocus.update_heating()
# Update only the first heating circuit
solarfocus.heating_circuits[0].update()
# Print the first heating circuit
print(solarfocus.heating_circuits[0])
# Set the temperature of the first heating circuit to 30°C
solarfocus.heating_circuits[0].indoor_temperatur_external.set_unscaled_value(30)
# Write the value to the heating system
solarfocus.heating_circuits[0].indoor_temperatur_external.commit()
Control the heating system by setting modes using the provided classes
# Without convenience method
solarfocus.heating_circuits[0].mode.set_unscaled_value(0)
solarfocus.heating_circuits[0].mode.commit()
# RECOMMENDED: Uitilizing convenience methods for modes
solarfocus.set_heating_circuit_mode(0, HeatingCircuitMode.ALWAYS_ON)
By default, the integration uses API-Version21.140
. If your system is newer, you can specify
the version by using the api_version
parameter.
solarfocus = SolarfocusAPI(ip="[Your-IP]", system=Systems.VAMPAIR, api_version=ApiVersions.V_23_020)
You can find the API-Version displayed in the header of the screen of your Solarfocus system:
Note The API-Version of Solarfocus is independent of the versions of this library. Below list refers to to the Solarfocus versions. See releases for the changelog of this library.
- Add fresh water module state.
- Add biomass boiler pellet statistics.
- Add biomass boiler sweep function control.
- Allow input of external buffer values.