Giter Club home page Giter Club logo

marq24 / ha-waterkotte Goto Github PK

View Code? Open in Web Editor NEW
8.0 3.0 0.0 1.31 MB

HACS integration for Waterkotte Heatpumps that can communicate locally via HTTP [build since 2018] - Supporting 'Geothermal Energy' as well as 'Air Source External Devices'. If you have any questions please don't hesitate to create a Issue or start a new Discussion @ github. Thanks in advance for supporting my work.

License: MIT License

Python 100.00%
hacs hacs-integration home-assistant home-assistant-hacs home-assistant-integration waterkotte

ha-waterkotte's Introduction

Home Assistant Integration for Waterkotte Heatpumps [+2020]

logo

This Home Assistant Integration is providing information from the German heatpump pioneer Waterkotte. In addition and where possible functions are provided to control the system.

Please note, that this integration is not official and not supported by the Waterkotte development team. I am not affiliated with Waterkotte in any way.

All data will be fetched (or send) to your Waterkotte via the build in webserver of the unit. So the functionality is based on the data and settings that are available also via the frontend that you can directly access via a web-browser.

hacs_badge github BuyMeCoffee PayPal hainstall

This component will set up the following platforms

Platform Description
binary_sensor Show something True or False.
sensor Show info from Waterkotte Heatpump API.
switch Switch something True or False.
select Select a value from options.
number adjustable Temperatures (demanded or heating curves)
service Provides services to interact with heatpump

Disclaimer

Please be aware, that we are developing this integration to best of our knowledge and belief, but cant give a guarantee. Therefore, use this integration at your own risk.

What you can get [with Version 2024.3.0 (or higher)]

sampleview

[Get the sources for the sample dashboard_above] - Please note, that this sample dashboard makes use of the custom multiple-entity-row frontend integration that need to be installed separately.

Installation

if you have installed the previous version of the waterkotte integration from me (marq24) - please follow the migration guide.

HACS

  1. Add a custom integration repository to HACS: ha-waterkotte
  2. Install the custom integration
  3. In the HA UI go to "Configuration" -> "Integrations" click "+" and search for "Waterkotte Heatpump [+2020]"
  4. Setup the waterkotte custom integration as described below

Manual

  1. Using the tool of choice open the directory (folder) for your HA configuration (where you find configuration.yaml).
  2. If you do not have a custom_components directory (folder) there, you need to create it.
  3. In the custom_components directory (folder) create a new folder called waterkotte_heatpump.
  4. Download all the files from the custom_components/waterkotte_heatpump/ directory (folder) in this repository.
  5. Place the files you downloaded in the new directory (folder) you created.
  6. Restart Home Assistant
  7. In the HA UI go to "Configuration" -> "Integrations" click "+" and search for "Waterkotte Heatpump [+2020]"

Adding or enabling the integration

My Home Assistant (2021.3+)

Just click the following Button to start the configuration automatically:

Open your Home Assistant instance and start setting up a new integration.

Manual

Use the following steps for a manual configuration by adding the custom integration using the web interface and follow instruction on screen:

  • Go to Configuration -> Integrations and add "Waterkotte" integration
  • Provide the IP address (or hostname) of your Waterkotte Heatpump web server
  • Select the Interface-Type of your Waterkotte (when you need to provide the user & password 'waterkotte' to login via your app/browser, then select EcoTouch Mode)
  • Select the number of TAGs that can be fetched in a single call to your device (older devices might need to adjust this value - for my in 2022 installed Waterkotte 75 is totally fine)
  • Provide area where the heatpump is located

After the integration was added you can use the 'config' button to adjust your settings and you can additionally modify the update intervall

Please note, that most of the available sensors are not enabled by default.

Services

The Integration provides currently 5 services:

Setting dates & times

SET_HOLIDAY

To set the times for the holiday mode use the provided service waterkotte_heatpump.set_holiday and set start and end parameter.

SET_DISINFECTION_START_TIME

To set the water disinfection start time (HH:MM) use the provided service waterkotte_heatpump.set_disinfection_start_time and set starthhmm parameter (seconds will be ignored).

SET_SCHEDULE

When using the service, first select the schedule (type) you want to adjust [Heating, Cooling, Hot Water, Mixer 1-3, Pool, Buffer Tank Circulation Pump, Solar Control, Photovoltaic], select then the start time and the end time, enable/disable the schedule and select the days you would apply the setting.

Additionally, it's possible to specify the Adjustment I and the Adjustment II options. Please be a bit patient when using the Service since there are approx. 100 different tags that have to be written to the heatpump when you apply adjustments for all 7 days.

Please note also, that I did not find a way (yet) to load the current values of the entities into the 'Set a Schedule' dialog. So when adjusting the values via the service you do not see the current values of the fields.

Get Energy Balance

GET_ENERGY_BALANCE

Retrieves the overall energy consumption data for the year

GET_ENERGY_BALANCE_MONTHLY

Retrieves the monthly breakdown energy consumption data for a moving 12 month window. 1 = January, 2 = February, etc...

Waterkotte schedule adjustment support

Introduction

With this the integration it will be possible to adjust the Waterkotte Schedules for:

  • Heating
  • Cooling
  • Hot Water
  • Mixer 1, Mixer 2 & Mixer 3
  • Pool
  • Buffer Tank Circulation Pump
  • Solar Control (without adjustment I & adjustment II)
  • Photovoltaic (without adjustment I & adjustment II)

The easiest way to adjust a schedule is via the 'Set Schedule' Service that can be found in your HA installation. Only via the service it's possible to adjust the start and end times.

When you want to use/display schedule settings in your HA dashboards or use them in your automations you must enable the optional schedule entities [in the configuration of the integration]. But be smart - only add these additional entities if you really need them. If they are added once it's quite tricky to get rid of them again. Please read further to get additional information about the amount of additional schedule entities that will be added to your HA installation.

Calculating the amount of additional entities

For each of the Schedules there are per day:

  1. One switch to turn ON/OFF the schedule
  2. Two switches to turn ON/OFF adjustment I & II
  3. Two values for each of the adjustments (+/- 10°K)
  4. Three start times (one for the schedule, and two for the adjustments)
  5. Three end times (one for the schedule, and two for the adjustments)

This makes a total of 11 Sensor-Entities per day - each Schedule consist obviously of 7 days - so for each of the schedules above 77 Sensor-Entities will be available (even if added - all are disabled by default).

This will result in a total of 659 additional (new) Sensor-Entities in order to support all Schedules - yes this is not a typo! SIX HUNDRED FIFTY-NINE!

So please only add the additional sensors if the use of the 'set schedule service' is not sufficient for your use case. The service can make all the adjustments to your Waterkotte schedules, without the need of having the additional sensor entities added.

Migration Guide

This is the new version of the previous 'ha-waterkotte' repository (which have now been renamed to ha-waterkotte-the-fork). After the refactoring process have been completed, I have decided to create an independent repository - since the refactored version does not have much in common with the origin sources.

Unfortunately HACS does not 'like' renaming of repositories, so you have to perform few steps in order to upgrade your home assistant installation to the latest ha-waterkotte integration version - sorry for this inconvenience!

How to migrate to the new integration version

  1. make a backup (just in case)

  2. go to HACS menu of your home assistant installation

  3. remove the (old) custom HACS repository 'https://github.com/marq24/ha-waterkotte'

    (This step will/should remove the Waterkotte Integration entry from the list of installed HACS Integrations)

  4. add the new repository 'https://github.com/marq24/ha-waterkotte' to HACS

  5. install the waterkotte integration to your local HACS

  6. restart your home assistant system

YES - this procedure sounds totally silly - but HACS stores a custom-id for each repository - And since I have decided to rename the old repository which base on the work from pattisonmichael to 'https://github.com/marq24/ha-waterkotte-the-fork' and created an independent repository, this procedure is necessary in order to be notified about any future updates.

Troubleshooting

Sessions

The Heatpump only allows 2 sessions and there is no way to close a session. Sometimes you will get an error about the login. Just wait a few minutes and it should autocorrect itself. Session usually time out within about 5 min.

Stale Data

The Heatpump will not always respond with data. This happens usually after the system changes status, e.g. start/stop the heating. There is not much we can do about this, unfortunately. I try to cache the data in possible for a better UX.

Credits & Kudos

who what
@pattisonmichael This project was initially forked from Waterkotte-Integration by pattisonmichael (but both projects drifted apart over time - so this repo is now independent).
@oncleben31 The forked original project was generated via the Home Assistant Custom Component Cookiecutter template.
@Ludeeus The forked original code template was mainly taken from the integration_blueprint template

Advertisement / Werbung - alternative way to support me

Switch to Tibber!

Be smart switch to Tibber - that's what I did in october 2023. If you want to join Tibber (become a customer), you might want to use my personal invitation link. When you use this link, Tibber will we grant you and me a bonus of 50,-€ for each of us. This bonus then can be used in the Tibber store (not for your power bill) - e.g. to buy a Tibber Bridge. If you are already a Tibber customer and have not used an invitation link yet, you can also enter one afterward in the Tibber App (up to 14 days). [see official Tibber support article]

Please consider using my personal Tibber invitation link to join Tibber today or Enter the following code: 6o0kqvzf (six, oscar, zero, kilo, quebec, victor, zulu, foxtrot) afterward in the Tibber App - TIA!


ha-waterkotte's People

Contributors

marq24 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ha-waterkotte's Issues

Authentication issue due hard coded user and PW

Hi.

it is not possible to add Watterkote heat pump because the integration after update doesn't ask to input user and PW:

image

The user and PW are hard coded in source code with the comment that this is really true - waterkotte have ONLY hardcoded user credentials!:

        # this is really true - waterkotte have ONLY hardcoded user credentials!
        args = {"username": "waterkotte", "password": "waterkotte"}

Unfortunately this is not true, on my Watterkote heat pump is possible to change the PW, so I'm not using the default PW:

Menu -> Service -> System control -> User account
image
image

Workaround:

  • Change the PW in the file mentioned above and restart HA.

Thank you for reading !! ;-)

Where are my Issues

A little bit spontaneously I have decided to declare the fork-version of the Waterkotte integration as deprecated - after the refactoring the integration does not have much in common with the origin (the source of the work).

The only way to disconnect a repository from it's fork is by starting with a complete new repository - which I just did - so the "previous" version is still available here: https://github.com/marq24/ha-waterkotte-the-fork - but there is so simple way to move the issues / stars and follows over to the new repository.

Please don't hesitate to just start them again...

error.message "expected str"

Hello, if I want to register the Integration, the error message "expected str" appears immediately. What am I doing wrong?

Best regards
Frank

image

Impossible Login

Checklist

  • I have installed the latest release (or BETA) version of the integration and home assistant.
  • I have prepared DEBUG log output (for technical issues) | In most of the cases of a technical error/issue I would have the need to ask for DEBUG log output of the integration. There is a short tutorial/guide 'How to provide DEBUG log' here
  • I confirm it's really an issue | In the case that you want to understand the functionality of a certain feature/sensor Please be so kind and make use if the discussion feature of this repo (and do not create an issue) - TIA

Add a description

When I try to start the integration, upon entering the IP where I access the EasyCon web (192.168.1.52), I instantly get the error “Host/IP or the Password is wrong - could not reach system”. I have waited a day without accessing the Waterkotte web or app to close the active sessions. My username and password are Waterkotte. As information, my heatpump has a remotebox at IP 192.168.1.53 which cannot be accessed via browser.

Add your DEBUG log output

No response

Support for multiple Heatpumps

Description

Hello Marq, first of all thank you for your great commitment, your Ha extensions are very useful. I have a question about the Waterkotter addon. Would it be possible to query several heat pumps at the same time via your extension? I have 8 Waterkotte heat pumps in an apartment building and am currently monitoring them via the iobroker and then using mqtt on ha. I would be grateful for an answer.

*DE

Hallo Marq, erstmal Danke für dein super Engagement, deine Ha Erweiterungen sind sehr nützlich. Zum Waterkotter Addon habe ich eine frage, wäre es möglich mehrere Wärmepumpen zeitgleich über deine Erweiterung abzufragen? Ich habe 8 Wärmepumpen von Waterkotte in einem Mehrfamilienhaus und überwache sie momentan über den iobroker und dann mittels mqtt an ha. Für einen Antwort wäre ich dir dankbar.

List of tags

No response

Feature: 'Warmwasser Disinfections-Anpassungen'?

Hi and thanks again for your continuous work on this integration!

With the new version came a feature „'Warmwasser Disinfections-Anpassungen' verwenden“. Can you elaborate what this feature does and how I could activate this on an already running integration? The option is only visible for a new configuration.

Thanks!

Waterkotte AlarmBits is unknown

Checklist

  • I have installed the latest release (or BETA) version of the integration and home assistant.
  • I have prepared DEBUG log output (for technical issues) | In most of the cases of a technical error/issue I would have the need to ask for DEBUG log output of the integration. There is a short tutorial/guide 'How to provide DEBUG log' here
  • I confirm it's really an issue | In the case that you want to understand the functionality of a certain feature/sensor Please be so kind and make use if the discussion feature of this repo (and do not create an issue) - TIA

Add a description

Since tonight my AlarmBits sensor is "unknown" and my log is getting filled with attached msg. Looks a bit like a var-type issue isnt it?

Add your DEBUG log output

2024-05-07 09:53:45.020 ERROR (MainThread) [custom_components.waterkotte_heatpump.pywaterkotte_ha] Exception int() argument must be a string, a bytes-like object or a real number, not 'NoneType' while read_values. EcoTag: WKHPTag.ALARM_BITS vals: ['0', None, None, None, None, None, None, None] states: ['S_OK', 'E_NOTFOUND', 'E_NOTFOUND', 'E_NOTFOUND', 'E_NOTFOUND', 'E_NOTFOUND', 'E_NOTFOUND', 'E_NOTFOUND'] -> int() argument must be a string, a bytes-like object or a real number, not 'NoneType'
2024-05-07 09:56:06.934 INFO (MainThread) [custom_components.waterkotte_heatpump.pywaterkotte_ha] going to request 26 tags in a single call from waterkotte@waterkotte
2024-05-07 09:56:06.952 DEBUG (MainThread) [custom_components.waterkotte_heatpump.pywaterkotte_ha] requested: http://waterkotte/cgi/readTags?n=26&t1=A24&t2=I7&t3=A27&t4=I2611&t5=A15&t6=A7&t7=D425&t8=A44&t9=A109&t10=I51&t11=A45&t12=A6&t13=I138&t14=A34&t15=A23&t16=I35&t17=I32&t18=A1462&t19=A3&t20=A5&t21=I2609&t22=I2612&t23=A12&t24=A38&t25=A11&t26=A479&_=1715068566934
2024-05-07 09:56:06.953 WARNING (MainThread) [custom_components.waterkotte_heatpump.pywaterkotte_ha] Tag: 'I2611' not found in response!
2024-05-07 09:56:06.953 WARNING (MainThread) [custom_components.waterkotte_heatpump.pywaterkotte_ha] Tag: 'I2609' not found in response!
2024-05-07 09:56:06.953 WARNING (MainThread) [custom_components.waterkotte_heatpump.pywaterkotte_ha] Tag: 'I2612' not found in response!
2024-05-07 09:56:06.953 ERROR (MainThread) [custom_components.waterkotte_heatpump.pywaterkotte_ha] Exception int() argument must be a string, a bytes-like object or a real number, not 'NoneType' while read_values. EcoTag: WKHPTag.ALARM_BITS vals: ['16384', None, None, None, None, None, None, None] states: ['S_OK', 'E_NOTFOUND', 'E_NOTFOUND', 'E_NOTFOUND', 'E_NOTFOUND', 'E_NOTFOUND', 'E_NOTFOUND', 'E_NOTFOUND'] -> int() argument must be a string, a bytes-like object or a real number, not 'NoneType'
2024-05-07 09:56:06.953 INFO (MainThread) [custom_components.waterkotte_heatpump] number of entity values read: 63
2024-05-07 09:56:06.953 DEBUG (MainThread) [custom_components.waterkotte_heatpump] Finished fetching waterkotte_heatpump data in 0.040 seconds (success: True)

[Feature Request]: Setting the clock of the heat pump

Hi,

from time to time, the time on my heat pump changes to a greater or lesser extent.
Is there a way to set the time (and date if that's possible) via Home Assistant? Then I could set up a daily automation that does exactly that and keeps the time up to date.

Thanks!

hot water

Checklist

  • I have installed the latest release (or BETA) version of the integration and home assistant.
  • I have prepared DEBUG log output (for technical issues) | In most of the cases of a technical error/issue I would have the need to ask for DEBUG log output of the integration. There is a short tutorial/guide 'How to provide DEBUG log' here
  • I confirm it's really an issue | In the case that you want to understand the functionality of a certain feature/sensor Please be so kind and make use if the discussion feature of this repo (and do not create an issue) - TIA

Add a description

Watterkotte Ai1 GEO 5010.5
Hot water setting 45°C
Setpoint switching difference 5 K
If the hot water temperature falls to 39.9 °C, the heat pump starts to heat the water back up to 45 °C.
everything works well so far.
However, as soon as I use the integration for a few days to control the hot water according to the available energy from the photovoltaic system, the watekotte no longer reacts correctly.
I have already had cases where the required hot water temperature is 45 degrees. we use water and then the sensor shows 30 degrees but the waterkotte does not start even though the switching differential is 5 K.
The heating only produces hot water again when, for example, I increase the hot water temperature extremely, for example 60 degrees or when I restart the heating, then it recognizes that the water is only at 30 degrees and starts the hot water preparation again.
It seems as if the control system would get confused over time.

Add your DEBUG log output

No response

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.