Unofficial, local Solarfocus client
Project description
pysolarfocus
Python client for Solarfocus ecomanager-touch via Modbus TCP
Table of Contents
About
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.
Supported Solarfocus Software and Hardware
Software
Important This integration has been tested with Solarfocus ecomanager-touch version
25.030.
Supported versions: 21.140 - 25.030. Features added in later versions are not yet supported.
The ecomanager-touch Modbus TCP specification can be found here).
Hardware
The ecomanager-touch can integrate the following heating systems
- Vampair heat pumps
- Therminnator biomass boilers
- Ecotoplight / Ecotopzero biomass boilers
- Octoplus biomass boilers
- Pellettop biomass boilers
| Components | Supported |
|---|---|
| Heating Circuit 1 - 8 (Heizkreis) | :white_check_mark: |
| Buffer 1 - 4 (Puffer) | :white_check_mark: |
| Solar 1 - 4 (Solar) | :white_check_mark: |
| Boiler 1 - 4 (Boiler) | :white_check_mark: |
| Heat Pump (Wärmepumpe) | :white_check_mark: |
| Biomass Boiler (Kessel) | :white_check_mark: |
| Fresh Water Module 1 - 4 (Frischwassermodul) | :white_check_mark: |
| Differential Module 1 - 4 (Differenzmodul) | :white_check_mark: |
| Circulation 1 - 4 (Zirkulation) | :white_check_mark: |
How To
Installation
$ pip3 install pysolarfocus
Basic Example
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_25_030) # select Solarfocus version
solarfocus.connect()
# Fetch the values
solarfocus.update()
# Print the values
print(solarfocus)
print(solarfocus.heating_circuits[0])
Output:
❯ uv run example.py
--------------------------------------------------
SolarfocusAPI, v5.1.1
--------------------------------------------------
+ System: Vampair
+ Version: 25.030
--------------------------------------------------
============
HeatingCircuit
============
---Input:
supply_temperature | raw:257 scaled:25.700000000000003
room_temperature | raw:224 scaled:22.400000000000002
humidity | raw:480 scaled:48.0
limit_thermostat | raw:1 scaled:1
circulator_pump | raw:0 scaled:0
mixer_valve | raw:0 scaled:0
state | raw:0 scaled:0
---Holding:
target_supply_temperature | raw:0 scaled:0.0
cooling | raw:0 scaled:0
mode | raw:3 scaled:3
target_room_temperature | raw:0 scaled:0.0
indoor_temperature_external | raw:224 scaled:22.4
indoor_humidity_external | raw:480 scaled:48.0
heating_mode | raw:2 scaled:2
============
Boiler
============
---Input:
....
Handling multiple components
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_temperature_external.set_unscaled_value(30)
# Write the value to the heating system
solarfocus.heating_circuits[0].indoor_temperature_external.commit()
Convenitently set modes
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)
API-Version specification
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:
Changelog of API-Versions
Note The API-Version of Solarfocus is independent of the versions of this library. Below list refers to the Solarfocus versions. See releases for the changelog of this library.
25.030
- Add differential modules
- Add circulation
- Add multiple solar modules
- Adapt for changes in registers for heat pump
23.020
- Add fresh water module state.
23.010
- Add biomass boiler pellet statistics.
22.090
- Add biomass boiler sweep function control.
- Allow input of external buffer values.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pysolarfocus-5.1.4.tar.gz.
File metadata
- Download URL: pysolarfocus-5.1.4.tar.gz
- Upload date:
- Size: 739.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a922aefae94c1589dcd106f1961d7d65a00839485870f68abd2db1cc26e4e737
|
|
| MD5 |
69f8d8542b04e4638a4177308a45ecec
|
|
| BLAKE2b-256 |
db29f6158f4aa9af88bda437bd277ecfa21f758a8aec7bbc96822dc53902dac5
|
File details
Details for the file pysolarfocus-5.1.4-py3-none-any.whl.
File metadata
- Download URL: pysolarfocus-5.1.4-py3-none-any.whl
- Upload date:
- Size: 31.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77861f04058bd5300ee6b53c9c015824825e9a3eb6554f35b4a1d9401cf01738
|
|
| MD5 |
743b556086aa73377d855178c778e26b
|
|
| BLAKE2b-256 |
60076dcb6de606a030e396d234a2a35b2a5d755249ee4f85b91a118a7d5ee734
|