Giter Site home page Giter Site logo

ha-warmup / warmup Goto Github PK

View Code? Open in Web Editor NEW

This project forked from foxy82/warmup4ie

25.0 11.0 11.0 1.11 MB

Home Assistant integration for Warmup heating thermostats as a HACS integration or a custom component

License: Other

Python 100.00%
climate climate-control hacs heating heating-control home-assistant thermostat warmup

warmup's Introduction

Introduction

This software is a Custom Component to integrate Warmup under-floor heating devices into Home Assistant. It is compatible with the Home Assistant Community Store (HACS).

hacs_badge

Warmup Plc manufacture under-floor heating (UFH) and control systems, including a range of wifi-enabled home thermostats. Some of these thermostats, such as the 4IE and 6IE, have an API. This software enables communication via this API, and allows Home Assistant to read and control the supported devices, using a python script to perform the integration.

You may install this integration from the Home Assistant Community Store (HACS), or continue reading below for instructions on the manual installation of this component.

License

This software is published under Apache 2.0 license. Please see LICENSE.md.

Usage

The library is primary intended to interface the 4IE with home assistant, but may also be used standalone.

Register with My Warmup

Before you can use this component, you need to register for a Warmup account. See https://my.warmup.com/login

Home Assistant Community Store

If you have HACS installed, then use this button

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

Alternatively Explore HACS Repositories and search for warmup

See more detailed instuctions on installing warmup in HACS

Manual installation

Here are instructions for you to install this software as a Custom Component that is manually included in a Home Assistant Core installation (manual using Python virtual environment).

Install custom component

You need to copy the contents of the custom_components/warmup subfolder into in your HA config folder, e.g.:

cd path/to/your/config

git clone https://github.com/ha-warmup/warmup.git /tmp/warmup

# remove any previous version
rm -r ./custom_components/warmup 2>/dev/null
mkdir -p ./custom_components/warmup
cp -r /tmp/warmup/custom_components/warmup/* ./custom_components/warmup
# clean up
rm -rf /tmp/warmup/

alternative versions

If you are testing a specific branch, like dev, then you would git clone -b dev https...etc to get the branch you need.

In the unlikely event that you cannot manually install the HACS compatible version of this custom component, you may go back to the last release before HACS compatibility, Release v23.02. Please refer to the README inside that source file for the legacy commands to deploy the custom component manually.

Warnings in logs

Note that once you have successfully deployed the custom component and restarted you Home Assistant, you should see the following warning in the logs:

WARNING [homeassistant.loader] 
We found a custom integration warmup which has not been tested by Home Assistant. 
This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

This is a positive sign, as it means the custom component has been successfully loaded. Great! - now carry on.

Configuration

Add the warmup platform manually via YAML

Then add to your configuration.yaml:

climate:
  - platform: warmup
    username: YOUR_E_MAIL_ADDRESS
    password: YOUR_PASSWORD
  • username (required): the username used to login to the warmup web site
  • password (required): the password used to login to the warmup web site; may be moved to the secrets.yaml file. See secrets

After restarting home assistant, the component will be loaded automatically.

Tip when changing config

If you are winding up having to do multiple restarts because Home Assistant won't shutdown with the updated config file (because when it checks the config file, integration warmup not found) you can get around that by using the CLI command ha core restart.

Alternatively, with the menu restructuring, the menu entry for Stop Server isn't accessible. However you can use the keyboard short cut 'c' and type restart to find that choice. Once the server has stopped you can move the config entry in and do a ha core start

Debugging flags

If you do encounter issues, here are the logger settings in the Home Assistant configuration file you use to set debug or other levels of logging.

logger:
  default: warning
  logs:
    custom_components.warmup.climate: debug
    custom_components.warmup.warmup4ie.warmup4ie: debug

Add your devices to the dashboard

Our wiki has some ideas on how to configure warmup devices in your Home Assistant instance.

Other installation types

We do not currently have instructions for using this software as a Custom repository for Home Assistant Operating System (HAOS) or Home Assistant Container deployments, but you are welcome to use our issue tracker to discuss any potential improvements to this project.

Standalone

OLD instructions

You may install the library via pip using

>>> pip install warmup4ie

After that, import the library, and away you go.

>>> import warmup4ie
>>> warmup = warmup = warmup4ie.Warmup4IE('<e-mail>', '<password>',
>>> warmup.get_all_devices()
>>> device = warmup.get_device_by_name(\"Underfloor\") 
>>> device.get_current_temperature()

Status

Supported models

  • 4IE
    • this is the device for which this project was launched, so has reasonable support
  • 6IE
    • this newer device has shown teething issues here, but seems to work with some caveats
    • try keeping your wifi network SSID length <= 32 characters and password <= 15 characters
    • you cannot set it up as 'living room', but you can choose 'kitchen' and change through the warmup web interface
    • please see 6ie Thermostat compatibility issues #33 for details

Note that some models may not have comma on the keyboard, which may also limit your choice of wireless network SSID and Password.

Supported Features

At the moment the library supports reading current temperature, target temperature plus other values from the thermostat and setting the target temperature, switching between manual, automatic and frost protection mode, switching the device off, and setting a temporary override.

For further information on versions please see the CHANGELOG

Find out more

There is more detailed documentation on the API and the information returned from the device on the documentation wiki. If you have issues using this software then please check our Issue list and if someone else has not already, then do raise a new issue. If you wish you become more involved with the project then please see our guide to contributing.

ha-warmup is an independent project

Please note that Warmup Plc were not involved in the creation of this software. We do, however, acknowledge their ownership of registered trademarks relating to their brand and products.

History

Many Thanks to all the contributors helped us get here!

Originally inspired by @alyc100's project for SmartThingsHub here, this code is derived from some great work by @alex0103 to create a Home Assistant Custom Component and Python Package. That has been improved by a number of coders, notably @foxy82, with valuable contributions and support from @artmg, @rct, @robchandhok, @kkoenen.

Thank you to the community who continue to be involved with and support this project, and encourage others to use it.

warmup's People

Contributors

alex-0103 avatar artmg avatar dizzi77 avatar foxy82 avatar grmek avatar kkoenen avatar rct avatar robchandhok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

warmup's Issues

Deprecation warning: implements HVACMode(s): heat, auto, off without setting the proper ClimateEntityFeature

After upgrading to HA 2024.2.x I'm seeing this warning in the log:

2024-02-09 16:48:41.351 WARNING (MainThread) [homeassistant.components.climate] Entity None (<class 'custom_components.warmup.climate.WarmupThermostat'>) implements HVACMode(s): heat, auto, off and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature. Please create a bug report at https://github.com/ha-warmup/warmup/issues/

I'm running the beta version "v2024.2.7" of ha-warmup.

I suspect it's related to this change in HA
https://developers.home-assistant.io/blog/2024/01/24/climate-climateentityfeatures-expanded

There's a 10 month window until HA 2025.1 for resolution

Use of Depreciated Constants

After upgrading to Home Assistant 2024.0 I am receiving the following warning in my files.

Hopefully this can be fixed

thanks for this great plugin

Logger: homeassistant.components.climate.const
Source: helpers/deprecation.py:205
Integration: Climate (documentation, issues)
First occurred: 19:46:32 (8 occurrences)
Last logged: 19:46:32

HVAC_MODE_AUTO was used from warmup, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.AUTO instead, please create a bug report at https://github.com/ha-warmup/warmup/issues/
HVAC_MODE_HEAT was used from warmup, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.HEAT instead, please create a bug report at https://github.com/ha-warmup/warmup/issues/
HVAC_MODE_OFF was used from warmup, this is a deprecated constant which will be removed in HA Core 2025.1. Use HVACMode.OFF instead, please create a bug report at https://github.com/ha-warmup/warmup/issues/
SUPPORT_PRESET_MODE was used from warmup, this is a deprecated constant which will be removed in HA Core 2025.1. Use ClimateEntityFeature.PRESET_MODE instead, please create a bug report at https://github.com/ha-warmup/warmup/issues/
SUPPORT_TARGET_TEMPERATURE was used from warmup, this is a deprecated constant which will be removed in HA Core 2025.1. Use ClimateEntityFeature.TARGET_TEMPERATURE instead, please create a bug report at https://github.com/ha-warmup/warmup/issues/

"Version Error" in HA log on start up

HA appears to be looking to check Custom Component versions in the future - I guess to advise Users if newer Versions have been found.

No 'version' key in the manifest file for custom integration 'warmup'. This will not be allowed in a future version of Home Assistant. Please report this to the maintainer of 'warmup'
13:46:57 – loader.py (WARNING)

Adding "version": "0.1.6" as implied by HA documentation does not correct this as hoped. This appears to be due to the "domain" stated in manifest.json (warmup_cc)not matching the custom_component folder name "warmup".

Changing the domain to "warmup" and adding the "version": "0.1.6" text into manifest.json does seem to work, but I have no idea what the impact of this change might be to other components.

Clearly the change process will have to reference changing this 'version text' for each revision.

Does anyone understand why warmup_cc is used / does it matter to change it to warmup? otherwise will need to change custom_ components folder to warmup_cc

Duration parameter for warmup.set_override service

If a user was going to create a button or an automation to set an override, they would probably not use a fixed end time, but specify a duration instead.

This enhancement request is to allow an additional optional parameter to specify a duration when calling the service warmup.set_override. I propose the definition:

set_override:
  fields:
    duration:
      description: An optional duration for the override, in minutes, as an alternative to specifying until
      example: 120

Implementation note. Although the warmup4ie.py method set_override is defined with an until parameter, and the API request (type 3) specifies the until value only, it is highly likely that the API also includes other override request types that use duration because a) the properties include a value override_duration_mins and b) the server response returns the duration rather than the until.

2020-01-15 11:48:31 INFO (SyncWorker_0) [custom_components.warmup.warmup4ie.warmup4ie] Successfully set override, response from server: 
'{"status":{"result":"success"},"message":{"setOverrideByRoomId":{"query2":{"query":"mutation {deviceOverride(lid:54321,rid:12345,temperature:210,minutes:11)}"},
"result2":{"data":{"deviceOverride":true},"status":"success"}},"setOverride":{"overrideDur":"11"},"duration":"0.125"}}'

Set override mode,temp and duration via Lovelace Button

Hi Guys, So i'm trying to set an automation to trigger on a button press to override to a set temperature for a set time, what do I need to set this to please at the moment i've tried:-

Action Type: Call Service
Service: warmup: set_override
Name of Warmup entity: the climate entity name
Service Data: entity_id: climate.conservatory
override_temperature = max_temp
override_duration_mins = 60

I'm not sure what i'm missing here :-/

Can't see 4ie climate device in HA

Hello,

I need your help with Warmup 4ie thermostat integration in HomeAssistant.

I performed all installation steps, copied warmup folder into custom_components, placed credentials in configuration.yaml.

But all i get after restart of HA
2021-07-09 14:57:35 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration warmup which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
I can't see any *climate devices listed.
What else can i check and where to see logs about what goes wrong?

Raspbian GNU/Linux 10 (buster)
Docker 19.03.12
core-2021.7.1
supervisor-2021.06.8

Release Notes out of Readme

As the readme is the 'home page' for the project, perhaps we can move them off into a file in the top-level folder. We can always link them from the readme as [[ReleaseNotes.md]]

Rationalise temperature localisation

This is a new feature request. Previously there was some temperature conversion, but only on min / max temperatures, and not through the rest of this custom component. The little there was had to be removed (PR #46 and issue #42) as it used the deprecated temperature utility, which was about to be killed off.

We should use the current strategy tool TemperatureConverter (home assistant unit_conversion.py in util folder) to implement any temperature conversion required.

Rename the project?

Before we get too far, do we want to rename this to be simply 'warmup' instead of warmup4IE.

run_mode misspelled `overide`

The value returned by the warmup climate entity when an override is set is misspelt.

overide

should have a double r as per all the object's property names and, er, the dictionary.

The value returned by the API appears to be an int, so to rectify this issue should be as simple as modifying the string value against the key in the dictionary declaration RUN_MODE = { at the start of warmup_cc/warmup4ie/warmup4ie.py. Therefore I'll leave this here for now in case anyone fancies having a crack at this as their first issue to PR and fix.

NB: for users this would be a Breaking Change, IF they rely on a text match with the mispelled text in the sensor template or automation logic, so we need to declare this on release

Detected integration that uses temperature utility. This is deprecated since 2022.10 and will stop working in Home Assistant 2023.4

Hi,

First of all, thanks for this integration !

Since few weeks, during startup, I have the warning message below in the logs of ma HA instance

I don't know if it's a critical issue or not but I prefer to mention it here

Thanks for your help

Capture d’écran 2022-11-09 à 17 00 38


Logger: homeassistant.helpers.frame
Source: helpers/frame.py:77
First occurred: 16:47:54 (2 occurrences)
Last logged: 16:47:54

Detected integration that uses temperature utility. This is deprecated since 2022.10 and will stop working in Home Assistant 2023.4, it should be updated to use unit_conversion.TemperatureConverter instead. Please report issue to the custom integration author for warmup using this method at custom_components/warmup/climate.py, line 316: return convert_temperature(
Detected integration that uses temperature utility. This is deprecated since 2022.10 and will stop working in Home Assistant 2023.4, it should be updated to use unit_conversion.TemperatureConverter instead. Please report issue to the custom integration author for warmup using this method at custom_components/warmup/climate.py, line 323: return convert_temperature(


Energy Monitoring

Hi there

Does this solution, or 4IE/6IE support energy monitoring?

temperature units, attribute naming, precision

Now that my warmup thermostats are showing in HA, a few questions and comments:

I'm in the US so my system is set to use non-SI units. Looking at the entities attributes through developer tools, I see a mix of Fahrenheit and Celsius values and no way to tell which is which. I don't know whether the inconsistencies originate with the warmup API.

Note: I haven't tried to set up any other climate integrations in HA yet, so I don't know if there are conventions for HA were followed or should be followed.

Attributes that appear to be in Celsius:

floor_temperature: 15.5
air_temperature: 17.5
away_temperature: 16
comfort_temperature: 20
fixed_temperature: 13.5
override_temperature: 17
sleep_temperature: 18

Attributes that appear to be in Fahrenheit:

temperature: 59
current_temperature: 60

Attributes with unknown units

min_temp: 106
max_temp: 187
target_temp_step: 0.5

Questions/Comments/Observations:

  1. I think temperature is the current set point, is that correct? While that name seems a bit ambiguous to me, I think that is correct name for HA looking at the climate integration page.
  2. I can't tell from the climate integration page how temperature systems are supposed to be handled. I seems to me having different attributes using different systems is something that should be avoided if possible.
  3. It looks like Home Assistant is displaying temperature and current_temperature in the UI card and is showing that they are in Fahrenheit. These seem to either be rounded to whole numbers, or are ints internally.
  4. current_temperature at least for me is displaying the floor probe temperature and not the air temperature. I pretty sure I've got my thermostats set to use the floor probe temperature, but I need to check. It would be nice if the UI card showed both the floor probe and air temperature.
  5. I can't tell what units min_temp and max_temp are in. The range is too small to be Celsius * 10. Looks like those represent a temperature range of 81 steps. I need check what the thermostat's min/max are.
  6. I'm assuming target_temp_step is probably in Celsius. It looks like target_temp_low and target_temp_highshould be defined per the integration, probably to give the displayed control the proper range. I don't know where the C to F conversion fortemperatureandcurrent_temperature` occurred, but I'm guessing that the target temps probably need to be consistent for the UI gauge to work correctly.

alternative project

Hi,

you may be interested to see an alternative project that has been developed. Although it does not yet have all the features of this one, it does already have a pypi release and a prototype branch for the HA integration.

I was wondering if it might make sense to capitalise on the progress on that project, and see if we can get the extra features we already have integrated into it?

I am actively using override so I would be keen to make sure that feature was implemented.

What do you think @foxy82 @rct ?

Setting preset to boost doesn't work

Error when selecting boost as a preset from the front end:

2020-01-05 18:06:52 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.140299356821008] Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 133, in handle_call_service connection.context(msg), File "/usr/src/homeassistant/homeassistant/core.py", line 1235, in async_call await asyncio.shield(self._execute_service(handler, service_call)) File "/usr/src/homeassistant/homeassistant/core.py", line 1260, in _execute_service await handler.func(service_call) File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 205, in handle_service self._platforms.values(), func, call, service_name, required_features File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 336, in entity_service_call future.result() # pop exception if have File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 358, in _handle_service_platform_call await getattr(entity, func)(**data) File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 421, in async_set_preset_mode await self.hass.async_add_executor_job(self.set_preset_mode, preset_mode) File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/config/custom_components/warmup/climate.py", line 218, in set_preset_mode raise InvalidStateError homeassistant.exceptions.InvalidStateError

Docs: Adding HA sensors for air and floor temperature

I've added sensors definitions to Home Assistant that allow easy access to both the air and floor temperatures for graphing, alerting, etc. I think it might be helpful to have something like this in the documentation. I didn't add it yet, because there are probably better ways of doing this.

Note: by setting unit_of_measurement, Home Assistant automatically did a conversion to Fahrenheit when displayed and/or graphed on my system in the US.

sensors:
  - platform: template:
    sensors:
      temperature_master_bath_air:
        friendly_name_template: "{{ states.climate.master_bath.attributes['friendly_name'] }} Air Temperature"
        value_template: '{{ states.climate.master_bath.attributes["air_temperature"] }}'
        unit_of_measurement: "°C"
      temperature_master_bath_floor:
        friendly_name_template: "{{ states.climate.master_bath.attributes['friendly_name'] }} Floor Temperature"
        value_template: '{{ states.climate.master_bath.attributes["floor_temperature"] }}'
        unit_of_measurement: "°C"

Warmup.set_override service localize temperature parameter

On a Home Assistant system configured for Imperial units, the service warmup.set_override needs to be called with a temperature parameter in Celsius, not Fahrenheit.

The example data presented by the UI doesn't specify what units temperature should be in.

Calling the service with a value in Fahrenheit doesn't generate an error, but does appear to be silently rejected because the temperature is out of range.

Wiki example for sensors doesn't seem to work

I tried the config at https://github.com/ha-warmup/warmup/wiki/Configuration-ideas#sensors and i just ended up with two readings with no name or value. I tried the below using state_attr instead and that worked

sensors:
  temperature_kitchen_air:
    friendly_name_template: "{{ state_attr('climate.kitchen', 'friendly_name') }} Air Temperature"
    value_template: "{{ state_attr('climate.kitchen', 'air_temperature') }}"
    unit_of_measurement: "°C"
  temperature_kitchen_floor:
    friendly_name_template: "{{ state_attr('climate.kitchen', 'friendly_name') }} Floor Temperature"
    value_template: "{{ state_attr('climate.kitchen', 'floor_temperature') }}"
    unit_of_measurement: "°C"

There's probably a syntax error on line - platform: template: but I put my sensors in a sensors.yaml instead so I don't know what the right format would be.

For completeness I made a sensors.yaml containing:

platform: template
sensors:
  temperature_kitchen_air:
    friendly_name_template: "{{ state_attr('climate.kitchen', 'friendly_name') }} Air Temperature"
    value_template: "{{ state_attr('climate.kitchen', 'air_temperature') }}"
    unit_of_measurement: "°C"
  temperature_kitchen_floor:
    friendly_name_template: "{{ state_attr('climate.kitchen', 'friendly_name') }} Floor Temperature"
    value_template: "{{ state_attr('climate.kitchen', 'floor_temperature') }}"
    unit_of_measurement: "°C"

and included it from configuration.yaml like so:

sensor: !include sensors.yaml

Invalid Min/Max temperature, can't set temperature through Home Assistant to anything reasonable.

I can't use Home Assistant to set a reasonable temperature for a Warmup thermostat because of the min_temp and max_temp attributes in the climate entity.

I'm in the US, so the unit system Home Assistant is using is Imperial (Fahrenheit). This may be related to #12 - temperature unit conversion

In Home Assistant the Min/Max temperature attributes show up as:

min_temp: 106
max_temp: 187

The lowest temperature I can set the thermostat to via Home Assistant is 86 F (30 C).

It could be that the temperature values were set in Fahrenheit and have been double converted to Celsius:

  • 106 F = ~41 C, 41 F would be a reasonable minimum.
  • 187 F = ~86 C, 86 F would be a reasonable maximum.

When I try to adjust the temperature through Home Assistant, It tries to set the temperature to 106 F (the minimum value) and then winds up setting to 86 F. (Some part of the system maybe enforcing the 86 F maximum and 86 F does make it through to the thermostat.)

The range of temperatures the Warmup Web Portal will let me set is 41 F to 86 F. So it seems plausible these values are already in Fahrenheit and are being converted from C to F incorrectly.

hvac_action not updating

To start with, thanks a lot for fixing this component, right now I'm only mad ad myself for not noticing untill now ;)

Just one thing, don't know if it's a bug or a feature. the hva_action doesn't seem to update it's state exept for when you turn it off.

Yes, of course it could be something weird with my thermostat, but I don't think so, set the setpoint to very low, ant the temperature is falling and no update from the energy.

I guess it could be a thing with the API, since the state doesn't show in either app or web.

If that is the reason, if anyone has an idea how to figure out how often it turns on/off, I would be even more happy :)

6ie Thermostat

Hi there

I rebboot my 6ie and since then I have a message:
Problem found wifi connexion error (15).

Never happened before, worked fine. The wifi is also fine with two others 6ie in the house.

Thanks for your help

Regards,

Thibault

Error spewed by connection failure

The root cause of this issue is likely to be insignificant. However that the error spews such a great deal of detail into the logs means that we should try and catch exceptions like these, and at best output a single line INFO or WARN message.

2020-01-06 19:53:36 ERROR (MainThread) [homeassistant.helpers.entity] Update for climate.kitchen fails
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 157, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 61, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "/usr/local/lib/python3.7/socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Try again

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 672, in urlopen
    chunked=chunked,
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 376, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 994, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 334, in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 169, in _new_conn
    self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: <urllib3.connection.VerifiedHTTPSConnection object at 0x7f8268b144d0>: Failed to establish a new connection: [Errno -3] Try again

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 720, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/retry.py", line 436, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='apil.warmup.com', port=443): Max retries exceeded with url: /graphql (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f8268b144d0>: Failed to establish a new connection: [Errno -3] Try again'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 281, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 461, in async_device_update
    await self.hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/warmup/climate.py", line 264, in update
    self._client.update()
  File "/usr/src/homeassistant/homeassistant/util/__init__.py", line 240, in wrapper
    result = method(*args, **kwargs)
  File "/config/custom_components/warmup/climate.py", line 132, in update
    self._warmup.update_all_devices()
  File "/config/custom_components/warmup/warmup4ie/warmup4ie.py", line 202, in update_all_devices
    response = requests.post(url=self.URL, headers=header_with_token, json=body)
  File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 116, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='apil.warmup.com', port=443): Max retries exceeded with url: /graphql (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f8268b144d0>: Failed to establish a new connection: [Errno -3] Try again'))
2020-01-06 19:55:34 ERROR (MainThread) [homeassistant.components.rest.switch] Error while fetching data: None
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/rest/switch.py", line 196, in async_update
    await self.get_device_state(self.hass)
  File "/usr/src/homeassistant/homeassistant/components/rest/switch.py", line 208, in get_device_state
    self._resource, auth=self._auth, headers=self._headers
  File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 504, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 847, in start
    message, payload = await self._protocol.read()  # type: ignore  # noqa
  File "/usr/local/lib/python3.7/site-packages/aiohttp/streams.py", line 591, in read
    await self._waiter
aiohttp.client_exceptions.ServerDisconnectedError: None

Unfortunately I do not have an adequate set of steps to reproduce the issue, so I'm not sure how to test this.

Generating AccessToken Failed <Response [200]> error

Hi all,

I've just bought a Warmup Element and have set it up using the Warmup app etc.

In HA i've installed the most recent Custom Integration via HACS, added the credentials to the configuration.yaml file but get the following errors after restarting;

This error originated from a custom integration.

Logger: custom_components.warmup.warmup4ie.warmup4ie
Source: custom_components/warmup/warmup4ie/warmup4ie.py:95
integration: warmup (documentation, issues)
First occurred: 10:29:14 (15 occurrences)
Last logged: 11:03:58

generating AccessToken failed, <Response [200]>

I'm not sure if it's relevant but i also have the Tado integration which creates Climate entities?

Where am i going wrong? Any help would be greatly appreciated.

Thanks

repo validation Actions fail in forks

Since the introduction of validation actions, as part of the process of publishing to HACS, any forks that merge in the changes in .github/workflows will pick up those actions to run in their own local fork. It is natural that the HACS Validation action fails, as the fork is NOT registered, but it can result in annoying notifications and unnecessary errors.

For example see: https://github.com/artmg/warmup/actions

Need to investigate the cleanest, simplest way for 'forkers' to silence these actions or notifications, without disrupting their OWN workflows.

New to HA and need help

Hi

would really appreciate some help with the installation of the warmup intergration.

Being new to HA, this is the first time I have come across this type of install and am a bit confused with the following deployment.

I am hoping someone would be kind enough to run me though the how I do this step by step
do I need to use python? how exactly do I do this?

Sorry if I am being stupid, but I am confused how to deploy this custom component and what to use especially this line ....
cd path/to/your/config

I would really like to install this into my HA and would appreciate any help given.

====================
_This is a Custom Component for manual inclusion in a Home Assistant Core installation (manual using Python virtual environment). Note that it is not a Custom repository for Home Assistant Operating System (HAOS) or Home Assistant Container deployments.

Deploy custom component
Then copy the contents of the warmup subfolder into custom_components in your HA config folder, e.g.:

cd path/to/your/config

git clone https://github.com/ha-warmup/warmup.git /tmp/warmup

remove any previous version

rm -r ./custom_components/warmup 2>/dev/null
mkdir -p ./custom_components/warmup
cp -r /tmp/warmup/warmup/ ./custom_components/warmup
*

clean up
rm -rf /tmp/warmup/_

===================

Regards

Enhancement: filter locations from config

As it stands right now (as of 2024.2.7), the config can contain a location but it isn't used anymore in the code (as far as I can tell).

For multiple locations, you likely only want one location in each instance of Home Assistant.

Enhancement would be that if you add a location in the config, it only loads/instantiates devices that match that location.

low priority compared to modernizing the config flow to be from the GUI. But a good enhancement I think.

6ie Thermostat compatibility issues

Hello, I have recently had a 6ie mini thermostat installed in my kitchen alongside a 4ie for my bathroom.
The 4ie is working welll with this component.
So far I have been unable to connect the 6ie to my online warmup account. The android app seems to be very buggy!

Hopefully they will fix it soon - has anyone had success connecting a 6ie to their accound and using it with this Home Assistant component?

Integration 'warmup' not found

Logger: homeassistant.config
Source: config.py:924
First occurred: 4:36:22 PM (1 occurrences)
Last logged: 4:36:22 PM

Platform error: climate - Integration 'warmup' not found.

I've installed via HACS but also added the following lines manually to the configuration.yaml and I get the above message in the log.

climate:
  - platform: warmup
    username: m******@gmail.com
    password: *******

Files are all in /custom_components/warmup/

Have I done something wrong? How to I force it to recognise the integration? Restarts haven't helped

Potential restructuring of project

The proposal from @foxy82 and @robchandhok in issue #30 is:

  • a main home-assistant project that has all the features of this project, and the documentation to install it manually, but that is also compatible with the third party 'Home Assistant Community Store' (HACS)
  • a separate repo that contains the pypi component

My key goals. and concerns in doing this would be to:

  1. ensure that people who have a working implementation now can smoothly migrate to it working in the new scenario, or in some way just carry on as they are
  2. bring forward as much of the history, the issues and the documentation as we can into any new structure
  3. set up the pypi project with any workflow required to ensure that changes there become available via the live pypi channels

Please add any concerns or suggestions you have into comments in this issue, so that we can work together on the best way forward for the user and developer community around this project.

Thank you for your contributions.

Warmup won’t load at startup

No 'version' key in the manifest file for custom integration 'warmup'. As of Home Assistant 2021.6, this integration will no longer be loaded. Please report this to the maintainer of 'warmup'

I am by no means an expert but making sure this is noted. My integration no longer loads.

Initial warmup featureset to support

Taken from @foxy82 PR comment home-assistant/core#21144 (comment)

As we are migrating this component to the new climate setup we need an understanding of the architecture, especially HVAC_MODE and PRESETs.

The warmup (currently 4IE) has the ability to do the following:

  1. Follow a setup schedule
  2. Set a fixed temeprature
  3. Off
  4. Frost Protection
  5. Holiday Mode

What should we be looking to support as the initial featureset for this component?

Anything in the new Android app we should implement?

The android app has recently been updated. We should check if there is anything useful to implement.

In particular for the first time I've managed to upload a background picture to my warmup4ie. Whilst this isn't a killer feature imagine Homeassistant creating a weather overview image and pushing it to your thermostats each morning before you get.up to be displayed for the day....

Hitting the off button turns off all thermostats

Hitting the off button on the lovelace card turns off all thermostats not the one selected.

This is probably a limitation of the warmup API which using the android app has a "Heating System Off" which is what we must be calling and it turns all thermostats off.

Proposal

  1. Create as service for this "all_off" function

  2. Look if we can find a way to turn an individual thermostat off via the API if that isn't possible I suggest we set a fixed temp of "min_temp" (for me 5 oC) is the best version of OFF we can provide.

Formal branching practice for development

Hi fellow devs, I propose using a formal branching structure to make sure that we develop consistently and release when ready. I propose a fairly standard model except we should stick to dev and rc branchnames rather than develop and release, simply because this is what the upstream HA core uses.

So to get our dev branch back up to date I have checked out the master onto a new dev branch on my fork and have submitted this as a PR #16 .

Please let me know If you agree that the proposed structure works for you (and if my PR is a valid way to come back up to date) and we can merge it and I'll write this up as a Contributor's guide.

publishing kWh

Hi,

I noticed that the power consumption i published once per hour, but thats not the problem, the thing is that it is published about one minute after the hour.

Would it be possible to change that to just before the full hour?

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.