Code Monkey home page Code Monkey logo

pysolarfocus's Introduction

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

Components Supported
Heating Circuit 1 - 8 (Heizkreis)
Buffer 1 - 4 (Puffer)
Solar (Solar)
Boiler 1 - 4 (Boiler)
Heat Pump (Wärmepumpe)
Biomass Boiler (Kessel)
Fresh Water Module 1 - 4 (Frischwassermodul)

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.

pysolarfocus's People

Contributors

lavermanjj avatar lein1013 avatar llukas22 avatar laverman avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.