Skip to main content

Unofficial, local Solarfocus client

Project description

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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysolarfocus-5.1.4.tar.gz (739.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysolarfocus-5.1.4-py3-none-any.whl (31.2 kB view details)

Uploaded Python 3

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

Hashes for pysolarfocus-5.1.4.tar.gz
Algorithm Hash digest
SHA256 a922aefae94c1589dcd106f1961d7d65a00839485870f68abd2db1cc26e4e737
MD5 69f8d8542b04e4638a4177308a45ecec
BLAKE2b-256 db29f6158f4aa9af88bda437bd277ecfa21f758a8aec7bbc96822dc53902dac5

See more details on using hashes here.

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

Hashes for pysolarfocus-5.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 77861f04058bd5300ee6b53c9c015824825e9a3eb6554f35b4a1d9401cf01738
MD5 743b556086aa73377d855178c778e26b
BLAKE2b-256 60076dcb6de606a030e396d234a2a35b2a5d755249ee4f85b91a118a7d5ee734

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page