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
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.
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 (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: |
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_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
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_temperatur_external.set_unscaled_value(30)
# Write the value to the heating system
solarfocus.heating_circuits[0].indoor_temperatur_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 to the Solarfocus versions. See releases for the changelog of this library.
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
File details
Details for the file pysolarfocus-4.2.1.tar.gz
.
File metadata
- Download URL: pysolarfocus-4.2.1.tar.gz
- Upload date:
- Size: 20.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.1 CPython/3.12.2 Linux/6.5.0-1015-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5e1ad29a44f3030280bd72c10e8e78b3c2ec5a955f2597dbc437b3eac9cd43f |
|
MD5 | b78f57c585c45401833ee108293b4be1 |
|
BLAKE2b-256 | 964afed2c2fe1a601c86713ad0e1c4819fd5fbf2c577188101f9ad922e333f22 |
File details
Details for the file pysolarfocus-4.2.1-py3-none-any.whl
.
File metadata
- Download URL: pysolarfocus-4.2.1-py3-none-any.whl
- Upload date:
- Size: 28.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.1 CPython/3.12.2 Linux/6.5.0-1015-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb0cfc313124629a410095f5a3f2c625b2ca105d7ee208bdda6247a91def0f70 |
|
MD5 | 82e6ad9a7ea2681264610d73229411c1 |
|
BLAKE2b-256 | 535c69396d5b34d660f0a73c0b03eab1198fc7d1839bc68ca53cc687f93ee674 |