Skip to main content

Version License

Logo

pysolarfocus

Python client for Solarfocus ecomanager-touch via Modbus TCP

Table of Contents
  1. About
  2. Supported Solarfocus Software and Hardware
  3. How To
  4. Changelog of API-Versions

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 - 26.020. 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

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.

26.020

  • Add HEMS target electrical power for the PV overcharge (photovoltaic.hems_target_electrical_power, register 33415).

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.

Metadata

Release files for pysolarfocus 5.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pysolarfocus 5.2.4
File Size Uploaded
pysolarfocus-5.2.4.tar.gz 743.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pysolarfocus 5.2.4
File Interpreter ABI Platform
pysolarfocus-5.2.4-py3-none-any.whl Python 3 none any Details

Total release size: 775.2 kB

Release files / pysolarfocus-5.2.4.tar.gz

Download URL pysolarfocus-5.2.4.tar.gz
Size 743.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7e3c0f7da607917cea1dc0095eccd77e8d3ee93ca08d63286f81206552b9ce9b
BLAKE2b-256 checksum
How to use checksums
b1009d6341ce69c153286f5d8c0b79be510bcca762facefc01a69099770ce7de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"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}

Release files / pysolarfocus-5.2.4-py3-none-any.whl

Download URL pysolarfocus-5.2.4-py3-none-any.whl
Size 32.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6060a097098135e322562d57f6d66257459833dcc5986a0f274a6c994052e648
BLAKE2b-256 checksum
How to use checksums
d7fc32437ef5e2e75a9a62f7d98ee08132a0d458ade9b122bc6ee3c8a6ed3e0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"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}

Release history Release notifications | RSS feed

5.3.0

2 release files

This release

5.2.4 This release

2 release files

5.2.3

2 release files

5.2.2

2 release files

5.2.1

2 release files

5.2.0

2 release files

5.1.4

2 release files

5.1.3

2 release files

5.1.2

2 release files

5.1.1

2 release files

5.1.0

2 release files

5.0.4

2 release files

5.0.3

2 release files

5.0.2

2 release files

5.0.0

2 release files

4.3.0

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.0

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.6.4

2 release files

3.6.3

2 release files

3.6.2

2 release files

3.6.1

2 release files

3.6.0

2 release files

3.5.0

2 release files

3.4.0

2 release files

3.3.1

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.3.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.99.0

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page