Name | pysolarfocus JSON |
Version |
5.0.4
JSON |
| download |
home_page | None |
Summary | Unofficial, local Solarfocus client |
upload_time | 2025-01-26 14:15:51 |
maintainer | None |
docs_url | None |
author | None |
requires_python | ~=3.11 |
license | None |
keywords |
api client
solarfocus
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
[](https://img.shields.io/github/v/tag/lavermanjj/pysolarfocus?style=for-the-badge&label=Version&color=orange)
[](https://img.shields.io/github/license/lavermanjj/pysolarfocus?style=for-the-badge)
<p align="center">
<a href="https://github.com/lavermanjj/home-assistant-solarfocus">
<img src="https://brands.home-assistant.io/solarfocus/logo.png" alt="Logo" height="80">
</a>
</p>
<h3 align="center">pysolarfocus</h3>
<p align="center">
Python client for <a href="https://www.solarfocus.com/">Solarfocus</a> eco<sup>manager-touch</sup> via Modbus TCP
</p>
<details open="open">
<summary>Table of Contents</summary>
1. [About](#about)
2. [Supported Solarfocus Software and Hardware](#supported-solarfocus-software-and-hardware)
3. [How To](#how-to)
- [Installation](#installation)
- [Basic Example](#basic-example)
- [Handling multiple components](#handling-multiple-components)
- [Conveniently set modes](#convenitently-set-modes)
- [API-Version specification](#api-version-specification)
4. [Changelog of API-Versions](#changelog-of-api-versions)
</details>
## About
Python client library to interact with heating systems of [Solarfocus](https://www.solarfocus.com/) (eco<sup>_manager-touch_</sup>) via Modbus TCP. This library has been developed for the integration into [Home-Assistant](https://www.home-assistant.io/) via a [custom integration](https://github.com/LavermanJJ/home-assistant-solarfocus), 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 eco<sup>manager-touch</sup> version `23.110`.
Supported versions: `21.140` - `23.110`. Features added in later versions are not yet supported.
The eco<sup>manager-touch</sup> Modbus TCP specification can be found [here](https://www.solarfocus.com/partnerbereich/ecomanager-touch_modbus-tcp_registerdaten_anleitung1.pdf)).
### Hardware
The eco<sup>manager-touch</sup> can integrate the following heating systems
- [Vamp<sup>air</sup>](https://www.solarfocus.com/en/products/air-source-heat-pump-vampair) heat pumps
- [Thermin<sup>nator</sup>](https://www.solarfocus.com/en/products/biomassheating) biomass boilers
- [Ecotop<sup>light</sup> / Ecotop<sup>zero</sup>](https://www.solarfocus.com/de/produkte/biomasseheizung/pelletkessel/ecotop) biomass boilers
- [Octo<sup>plus</sup>](https://www.solarfocus.com/en/products/biomassheating/pellet-boiler/octoplus) biomass boilers
- [Pellet<sup>top</sup>](https://www.solarfocus.com/en/products/biomassheating/pellet-boiler/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
```python
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_temperature_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.
```python
# 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
```python
# 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-Version`21.140`. If your system is newer, you can specify
the version by using the `api_version` parameter.
```python
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:
<img src="images/sf-version.png?raw=true" width="500">
## 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](https://github.com/LavermanJJ/pysolarfocus/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.
Raw data
{
"_id": null,
"home_page": null,
"name": "pysolarfocus",
"maintainer": null,
"docs_url": null,
"requires_python": "~=3.11",
"maintainer_email": null,
"keywords": "api client, solarfocus",
"author": null,
"author_email": "Jeroen Laverman <jjlaverman@web.de>",
"download_url": "https://files.pythonhosted.org/packages/9b/61/5597cb78bccd97da0c01dba47518dd4faaa25821fe5139149ea082c79dac/pysolarfocus-5.0.4.tar.gz",
"platform": null,
"description": "[](https://img.shields.io/github/v/tag/lavermanjj/pysolarfocus?style=for-the-badge&label=Version&color=orange)\n[](https://img.shields.io/github/license/lavermanjj/pysolarfocus?style=for-the-badge)\n\n\n<p align=\"center\">\n <a href=\"https://github.com/lavermanjj/home-assistant-solarfocus\">\n <img src=\"https://brands.home-assistant.io/solarfocus/logo.png\" alt=\"Logo\" height=\"80\">\n </a>\n</p>\n\n<h3 align=\"center\">pysolarfocus</h3>\n\n<p align=\"center\">\n Python client for <a href=\"https://www.solarfocus.com/\">Solarfocus</a> eco<sup>manager-touch</sup> via Modbus TCP\n</p>\n\n\n<details open=\"open\">\n <summary>Table of Contents</summary>\n\n1. [About](#about)\n2. [Supported Solarfocus Software and Hardware](#supported-solarfocus-software-and-hardware)\n3. [How To](#how-to)\n - [Installation](#installation)\n - [Basic Example](#basic-example)\n - [Handling multiple components](#handling-multiple-components)\n - [Conveniently set modes](#convenitently-set-modes)\n - [API-Version specification](#api-version-specification)\n4. [Changelog of API-Versions](#changelog-of-api-versions)\n\n\n</details>\n\n\n## About\n\nPython client library to interact with heating systems of [Solarfocus](https://www.solarfocus.com/) (eco<sup>_manager-touch_</sup>) via Modbus TCP. This library has been developed for the integration into [Home-Assistant](https://www.home-assistant.io/) via a [custom integration](https://github.com/LavermanJJ/home-assistant-solarfocus), but can be used indepdently.\n\n> **Warning**\n> 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.\n\n\n## Supported Solarfocus Software and Hardware\n\n### Software\n\n> **Important**\n> This integration has been tested with Solarfocus eco<sup>manager-touch</sup> version `23.110`.\n\nSupported versions: `21.140` - `23.110`. Features added in later versions are not yet supported.\n\nThe eco<sup>manager-touch</sup> Modbus TCP specification can be found [here](https://www.solarfocus.com/partnerbereich/ecomanager-touch_modbus-tcp_registerdaten_anleitung1.pdf)).\n\n### Hardware\n\nThe eco<sup>manager-touch</sup> can integrate the following heating systems\n- [Vamp<sup>air</sup>](https://www.solarfocus.com/en/products/air-source-heat-pump-vampair) heat pumps\n- [Thermin<sup>nator</sup>](https://www.solarfocus.com/en/products/biomassheating) biomass boilers\n- [Ecotop<sup>light</sup> / Ecotop<sup>zero</sup>](https://www.solarfocus.com/de/produkte/biomasseheizung/pelletkessel/ecotop) biomass boilers\n- [Octo<sup>plus</sup>](https://www.solarfocus.com/en/products/biomassheating/pellet-boiler/octoplus) biomass boilers\n- [Pellet<sup>top</sup>](https://www.solarfocus.com/en/products/biomassheating/pellet-boiler/pellettop) biomass boilers\n\n| Components | Supported |\n|---|---|\n| Heating Circuit 1 - 8 (_Heizkreis_)| :white_check_mark: |\n| Buffer 1 - 4 (_Puffer_) | :white_check_mark: |\n| Solar (_Solar_)| :white_check_mark: |\n| Boiler 1 - 4 (_Boiler_) | :white_check_mark: |\n| Heat Pump (_W\u00e4rmepumpe_) | :white_check_mark: |\n| Biomass Boiler (_Kessel_) | :white_check_mark: |\n| Fresh Water Module 1 - 4 (_Frischwassermodul_) | :white_check_mark: |\n\n## How To\n\n### Installation\n\n```\n$ pip3 install pysolarfocus\n```\n\n### Basic Example\n\n```python\nfrom pysolarfocus import SolarfocusAPI,Systems,ApiVersions\n\n# Create the Solarfocus API client\nsolarfocus = SolarfocusAPI(\n ip=\"solarfocus\", # adapt IP-Address\n system=Systems.VAMPAIR, # for biomass boiler change to Systems.THERMINATOR / ECOTOP\n api_version=ApiVersions.V_23_020) # select Solarfocus version\n\nsolarfocus.connect()\n# Fetch the values\nsolarfocus.update()\n\n# Print the values\nprint(solarfocus)\nprint(solarfocus.heating_circuits[0])\n```\n\nOutput:\n\n```\n--------------------------------------------------\nSolarfocusAPI, v3.6.4\n--------------------------------------------------\n+ API Version: 23.020\n+ System: Vampair\n+ Components:\n + Heat pump: True\n + Biomass boiler: False\n + Heating circuit: 1\n + Buffer: 1\n + Boiler: 1\n + Fresh water module: 1\n + Solar: False\n + Photovoltaic: False\n--------------------------------------------------\n\n\n============\nHeatingCircuit\n============\n---Input:\nsupply_temperature| raw:258 scaled:25.8\nroom_temperature| raw:222 scaled:22.2\nhumidity| raw:480 scaled:48.0\nlimit_thermostat| raw:1 scaled:1\ncirculator_pump| raw:1 scaled:1\nmixer_valve| raw:34 scaled:34\nstate| raw:12 scaled:12\n---Holding:\ntarget_supply_temperature | raw:0 scaled:0.0\ncooling | raw:0 scaled:0\nmode | raw:0 scaled:0\ntarget_room_temperatur | raw:0 scaled:0.0\nindoor_temperature_external | raw:222 scaled:22.2\nindoor_humidity_external | raw:480 scaled:48.0\n```\n\n### Handling multiple components\nSolarfocus systems allow the use of multiple heating circuits, buffers, boilers, and fresh water modules. The api can be configured to interact with multiple components.\n\n```python\n# Create the Solarfocus API client with 2 Heating Circuits\nsolarfocus = SolarfocusAPI(ip=\"[Your-IP]\",heating_circuit_count=2,system=Systems.VAMPAIR)\n# Connect to the heating system\nsolarfocus.connect()\n\n# Update all heating circuits\nsolarfocus.update_heating()\n\n# Update only the first heating circuit\nsolarfocus.heating_circuits[0].update()\n# Print the first heating circuit\nprint(solarfocus.heating_circuits[0])\n\n# Set the temperature of the first heating circuit to 30\u00b0C\nsolarfocus.heating_circuits[0].indoor_temperature_external.set_unscaled_value(30)\n# Write the value to the heating system\nsolarfocus.heating_circuits[0].indoor_temperature_external.commit()\n```\n\n### Convenitently set modes\nControl the heating system by setting modes using the provided classes\n\n```python\n# Without convenience method\nsolarfocus.heating_circuits[0].mode.set_unscaled_value(0)\nsolarfocus.heating_circuits[0].mode.commit()\n\n# RECOMMENDED: Uitilizing convenience methods for modes\nsolarfocus.set_heating_circuit_mode(0, HeatingCircuitMode.ALWAYS_ON)\n```\n\n### API-Version specification\nBy default, the integration uses API-Version`21.140`. If your system is newer, you can specify\nthe version by using the `api_version` parameter.\n\n```python\nsolarfocus = SolarfocusAPI(ip=\"[Your-IP]\", system=Systems.VAMPAIR, api_version=ApiVersions.V_23_020)\n```\n\nYou can find the API-Version displayed in the header of the screen of your Solarfocus system:\n\n<img src=\"images/sf-version.png?raw=true\" width=\"500\">\n\n## Changelog of API-Versions\n> **Note**\n> The API-Version of Solarfocus is independent of the versions of this library. Below list refers to\n> the Solarfocus versions. See [releases](https://github.com/LavermanJJ/pysolarfocus/releases) for the changelog\n> of this library.\n\n\n#### 23.020\n* Add fresh water module state.\n\n#### 23.010\n* Add biomass boiler pellet statistics.\n\n#### 22.090\n* Add biomass boiler sweep function control.\n* Allow input of external buffer values.\n",
"bugtrack_url": null,
"license": null,
"summary": "Unofficial, local Solarfocus client",
"version": "5.0.4",
"project_urls": {
"Homepage": "https://github.com/lavermanjj/pysolarfocus",
"Repository": "https://github.com/lavermanjj/pysolarfocus"
},
"split_keywords": [
"api client",
" solarfocus"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c03f22258d557f62ea071c044216d344abb031f6cd31536592c8c09929a64386",
"md5": "be7e75ccf472a55ece64a30a53c59160",
"sha256": "0ddc995d86c924572b8d179dad356d1eff8a677f1923c2a98acfc98b0483980a"
},
"downloads": -1,
"filename": "pysolarfocus-5.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "be7e75ccf472a55ece64a30a53c59160",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.11",
"size": 24052,
"upload_time": "2025-01-26T14:15:50",
"upload_time_iso_8601": "2025-01-26T14:15:50.068358Z",
"url": "https://files.pythonhosted.org/packages/c0/3f/22258d557f62ea071c044216d344abb031f6cd31536592c8c09929a64386/pysolarfocus-5.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9b615597cb78bccd97da0c01dba47518dd4faaa25821fe5139149ea082c79dac",
"md5": "85fd37bdff9bb8a1a7ba087703d9d11a",
"sha256": "b31635c0baceb2fe6cd4bcbab3ca087eb50c5985600ea9352443a299d24b4e2f"
},
"downloads": -1,
"filename": "pysolarfocus-5.0.4.tar.gz",
"has_sig": false,
"md5_digest": "85fd37bdff9bb8a1a7ba087703d9d11a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.11",
"size": 716081,
"upload_time": "2025-01-26T14:15:51",
"upload_time_iso_8601": "2025-01-26T14:15:51.403259Z",
"url": "https://files.pythonhosted.org/packages/9b/61/5597cb78bccd97da0c01dba47518dd4faaa25821fe5139149ea082c79dac/pysolarfocus-5.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-26 14:15:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lavermanjj",
"github_project": "pysolarfocus",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pysolarfocus"
}