core/homeassistant/components/fritzbox/climate.py

175 lines
5.8 KiB
Python
Raw Normal View History

"""Support for AVM FRITZ!SmartHome thermostat devices."""
from __future__ import annotations
from typing import Any
from homeassistant.components.climate import (
2019-07-31 19:25:30 +00:00
ATTR_HVAC_MODE,
PRESET_COMFORT,
PRESET_ECO,
ClimateEntity,
ClimateEntityFeature,
HVACMode,
2019-07-31 19:25:30 +00:00
)
from homeassistant.config_entries import ConfigEntry
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
from homeassistant.const import (
2019-07-31 19:25:30 +00:00
ATTR_BATTERY_LEVEL,
ATTR_TEMPERATURE,
PRECISION_HALVES,
UnitOfTemperature,
2019-07-31 19:25:30 +00:00
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import FritzboxDataUpdateCoordinator, FritzBoxDeviceEntity
from .const import (
2019-07-31 19:25:30 +00:00
ATTR_STATE_BATTERY_LOW,
ATTR_STATE_HOLIDAY_MODE,
ATTR_STATE_SUMMER_MODE,
ATTR_STATE_WINDOW_OPEN,
CONF_COORDINATOR,
2019-07-31 19:25:30 +00:00
DOMAIN as FRITZBOX_DOMAIN,
)
from .model import ClimateExtraAttributes
OPERATION_LIST = [HVACMode.HEAT, HVACMode.OFF]
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
MIN_TEMPERATURE = 8
MAX_TEMPERATURE = 28
2019-07-31 19:25:30 +00:00
PRESET_MANUAL = "manual"
Climate 1.0 (#23899) * Climate 1.0 / part 1/2/3 * fix flake * Lint * Update Google Assistant * ambiclimate to climate 1.0 (#24911) * Fix Alexa * Lint * Migrate zhong_hong * Migrate tuya * Migrate honeywell to new climate schema (#24257) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * Fix PRESET can be None * apply PR#23913 from dev * remove EU component, etc. * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * apply PR#23913 from dev * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * delint, move debug code * away preset now working * code tidy-up * code tidy-up 2 * code tidy-up 3 * address issues #18932, #15063 * address issues #18932, #15063 - 2/2 * refactor MODE_AUTO to MODE_HEAT_COOL and use F not C * add low/high to set_temp * add low/high to set_temp 2 * add low/high to set_temp - delint * run HA scripts * port changes from PR #24402 * manual rebase * manual rebase 2 * delint * minor change * remove SUPPORT_HVAC_ACTION * Migrate radiotherm * Convert touchline * Migrate flexit * Migrate nuheat * Migrate maxcube * Fix names maxcube const * Migrate proliphix * Migrate heatmiser * Migrate fritzbox * Migrate opentherm_gw * Migrate venstar * Migrate daikin * Migrate modbus * Fix elif * Migrate Homematic IP Cloud to climate-1.0 (#24913) * hmip climate fix * Update hvac_mode and preset_mode * fix lint * Fix lint * Migrate generic_thermostat * Migrate incomfort to new climate schema (#24915) * initial commit * Update climate.py * Migrate eq3btsmart * Lint * cleanup PRESET_MANUAL * Migrate ecobee * No conditional features * KNX: Migrate climate component to new climate platform (#24931) * Migrate climate component * Remove unused code * Corrected line length * Lint * Lint * fix tests * Fix value * Migrate geniushub to new climate schema (#24191) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * delinted * delinted * use latest client * clean up mappings * clean up mappings * add duration to set_temperature * add duration to set_temperature * manual rebase * tweak * fix regression * small fix * fix rebase mixup * address comments * finish refactor * fix regression * tweak type hints * delint * manual rebase * WIP: Fixes for honeywell migration to climate-1.0 (#24938) * add type hints * code tidy-up * Fixes for incomfort migration to climate-1.0 (#24936) * delint type hints * no async unless await * revert: no async unless await * revert: no async unless await 2 * delint * fix typo * Fix homekit_controller on climate-1.0 (#24948) * Fix tests on climate-1.0 branch * As part of climate-1.0, make state return the heating-cooling.current characteristic * Fixes from review * lint * Fix imports * Migrate stibel_eltron * Fix lint * Migrate coolmaster to climate 1.0 (#24967) * Migrate coolmaster to climate 1.0 * fix lint errors * More lint fixes * Fix demo to work with UI * Migrate spider * Demo update * Updated frontend to 20190705.0 * Fix boost mode (#24980) * Prepare Netatmo for climate 1.0 (#24973) * Migration Netatmo * Address comments * Update climate.py * Migrate ephember * Migrate Sensibo * Implemented review comments (#24942) * Migrate ESPHome * Migrate MQTT * Migrate Nest * Migrate melissa * Initial/partial migration of ST * Migrate ST * Remove Away mode (#24995) * Migrate evohome, cache access tokens (#24491) * add water_heater, add storage - initial commit * add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint * Add Broker, Water Heater & Refactor add missing code desiderata * update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker * bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() * support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change * store at_expires as naive UTC remove debug code delint tidy up exception handling delint add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change store at_expires as naive UTC remove debug code delint tidy up exception handling delint * update CODEOWNERS * fix regression * fix requirements * migrate to climate-1.0 * tweaking * de-lint * TCS working? & delint * tweaking * TCS code finalised * remove available() logic * refactor _switchpoints() * tidy up switchpoint code * tweak * teaking device_state_attributes * some refactoring * move PRESET_CUSTOM back to evohome * move CONF_ACCESS_TOKEN_EXPIRES CONF_REFRESH_TOKEN back to evohome * refactor SP code and dt conversion * delinted * delinted * remove water_heater * fix regression * Migrate homekit * Cleanup away mode * Fix tests * add helpers * fix tests melissa * Fix nehueat * fix zwave * add more tests * fix deconz * Fix climate test emulate_hue * fix tests * fix dyson tests * fix demo with new layout * fix honeywell * Switch homekit_controller to use HVAC_MODE_HEAT_COOL instead of HVAC_MODE_AUTO (#25009) * Lint * PyLint * Pylint * fix fritzbox tests * Fix google * Fix all tests * Fix lint * Fix auto for homekit like controler * Fix lint * fix lint
2019-07-08 12:00:24 +00:00
# special temperatures for on/off in Fritz!Box API (modified by pyfritzhome)
ON_API_TEMPERATURE = 127.0
OFF_API_TEMPERATURE = 126.5
ON_REPORT_SET_TEMPERATURE = 30.0
OFF_REPORT_SET_TEMPERATURE = 0.0
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None:
"""Set up the FRITZ!SmartHome thermostat from ConfigEntry."""
coordinator: FritzboxDataUpdateCoordinator = hass.data[FRITZBOX_DOMAIN][
entry.entry_id
][CONF_COORDINATOR]
async_add_entities(
[
FritzboxThermostat(coordinator, ain)
for ain, device in coordinator.data.devices.items()
if device.has_thermostat
]
)
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
class FritzboxThermostat(FritzBoxDeviceEntity, ClimateEntity):
"""The thermostat class for FRITZ!SmartHome thermostats."""
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
_attr_precision = PRECISION_HALVES
_attr_supported_features = (
ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE
)
_attr_temperature_unit = UnitOfTemperature.CELSIUS
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
@property
def current_temperature(self) -> float:
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
"""Return the current temperature."""
if self.data.has_temperature_sensor and self.data.temperature is not None:
return self.data.temperature # type: ignore [no-any-return]
return self.data.actual_temperature # type: ignore [no-any-return]
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
@property
def target_temperature(self) -> float:
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
"""Return the temperature we try to reach."""
if self.data.target_temperature == ON_API_TEMPERATURE:
return ON_REPORT_SET_TEMPERATURE
if self.data.target_temperature == OFF_API_TEMPERATURE:
return OFF_REPORT_SET_TEMPERATURE
return self.data.target_temperature # type: ignore [no-any-return]
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
async def async_set_temperature(self, **kwargs: Any) -> None:
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
"""Set new target temperature."""
if kwargs.get(ATTR_HVAC_MODE) is not None:
hvac_mode = kwargs[ATTR_HVAC_MODE]
await self.async_set_hvac_mode(hvac_mode)
elif kwargs.get(ATTR_TEMPERATURE) is not None:
temperature = kwargs[ATTR_TEMPERATURE]
await self.hass.async_add_executor_job(
self.data.set_target_temperature, temperature
)
await self.coordinator.async_refresh()
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
@property
def hvac_mode(self) -> HVACMode:
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
"""Return the current operation mode."""
if self.data.target_temperature in (
2021-09-18 11:52:59 +00:00
OFF_REPORT_SET_TEMPERATURE,
OFF_API_TEMPERATURE,
):
return HVACMode.OFF
Climate 1.0 (#23899) * Climate 1.0 / part 1/2/3 * fix flake * Lint * Update Google Assistant * ambiclimate to climate 1.0 (#24911) * Fix Alexa * Lint * Migrate zhong_hong * Migrate tuya * Migrate honeywell to new climate schema (#24257) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * Fix PRESET can be None * apply PR#23913 from dev * remove EU component, etc. * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * apply PR#23913 from dev * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * delint, move debug code * away preset now working * code tidy-up * code tidy-up 2 * code tidy-up 3 * address issues #18932, #15063 * address issues #18932, #15063 - 2/2 * refactor MODE_AUTO to MODE_HEAT_COOL and use F not C * add low/high to set_temp * add low/high to set_temp 2 * add low/high to set_temp - delint * run HA scripts * port changes from PR #24402 * manual rebase * manual rebase 2 * delint * minor change * remove SUPPORT_HVAC_ACTION * Migrate radiotherm * Convert touchline * Migrate flexit * Migrate nuheat * Migrate maxcube * Fix names maxcube const * Migrate proliphix * Migrate heatmiser * Migrate fritzbox * Migrate opentherm_gw * Migrate venstar * Migrate daikin * Migrate modbus * Fix elif * Migrate Homematic IP Cloud to climate-1.0 (#24913) * hmip climate fix * Update hvac_mode and preset_mode * fix lint * Fix lint * Migrate generic_thermostat * Migrate incomfort to new climate schema (#24915) * initial commit * Update climate.py * Migrate eq3btsmart * Lint * cleanup PRESET_MANUAL * Migrate ecobee * No conditional features * KNX: Migrate climate component to new climate platform (#24931) * Migrate climate component * Remove unused code * Corrected line length * Lint * Lint * fix tests * Fix value * Migrate geniushub to new climate schema (#24191) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * delinted * delinted * use latest client * clean up mappings * clean up mappings * add duration to set_temperature * add duration to set_temperature * manual rebase * tweak * fix regression * small fix * fix rebase mixup * address comments * finish refactor * fix regression * tweak type hints * delint * manual rebase * WIP: Fixes for honeywell migration to climate-1.0 (#24938) * add type hints * code tidy-up * Fixes for incomfort migration to climate-1.0 (#24936) * delint type hints * no async unless await * revert: no async unless await * revert: no async unless await 2 * delint * fix typo * Fix homekit_controller on climate-1.0 (#24948) * Fix tests on climate-1.0 branch * As part of climate-1.0, make state return the heating-cooling.current characteristic * Fixes from review * lint * Fix imports * Migrate stibel_eltron * Fix lint * Migrate coolmaster to climate 1.0 (#24967) * Migrate coolmaster to climate 1.0 * fix lint errors * More lint fixes * Fix demo to work with UI * Migrate spider * Demo update * Updated frontend to 20190705.0 * Fix boost mode (#24980) * Prepare Netatmo for climate 1.0 (#24973) * Migration Netatmo * Address comments * Update climate.py * Migrate ephember * Migrate Sensibo * Implemented review comments (#24942) * Migrate ESPHome * Migrate MQTT * Migrate Nest * Migrate melissa * Initial/partial migration of ST * Migrate ST * Remove Away mode (#24995) * Migrate evohome, cache access tokens (#24491) * add water_heater, add storage - initial commit * add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint * Add Broker, Water Heater & Refactor add missing code desiderata * update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker * bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() * support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change * store at_expires as naive UTC remove debug code delint tidy up exception handling delint add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change store at_expires as naive UTC remove debug code delint tidy up exception handling delint * update CODEOWNERS * fix regression * fix requirements * migrate to climate-1.0 * tweaking * de-lint * TCS working? & delint * tweaking * TCS code finalised * remove available() logic * refactor _switchpoints() * tidy up switchpoint code * tweak * teaking device_state_attributes * some refactoring * move PRESET_CUSTOM back to evohome * move CONF_ACCESS_TOKEN_EXPIRES CONF_REFRESH_TOKEN back to evohome * refactor SP code and dt conversion * delinted * delinted * remove water_heater * fix regression * Migrate homekit * Cleanup away mode * Fix tests * add helpers * fix tests melissa * Fix nehueat * fix zwave * add more tests * fix deconz * Fix climate test emulate_hue * fix tests * fix dyson tests * fix demo with new layout * fix honeywell * Switch homekit_controller to use HVAC_MODE_HEAT_COOL instead of HVAC_MODE_AUTO (#25009) * Lint * PyLint * Pylint * fix fritzbox tests * Fix google * Fix all tests * Fix lint * Fix auto for homekit like controler * Fix lint * fix lint
2019-07-08 12:00:24 +00:00
return HVACMode.HEAT
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
@property
def hvac_modes(self) -> list[HVACMode]:
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
"""Return the list of available operation modes."""
return OPERATION_LIST
2022-08-22 11:36:33 +00:00
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None:
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
"""Set new operation mode."""
if hvac_mode == HVACMode.OFF:
await self.async_set_temperature(temperature=OFF_REPORT_SET_TEMPERATURE)
Climate 1.0 (#23899) * Climate 1.0 / part 1/2/3 * fix flake * Lint * Update Google Assistant * ambiclimate to climate 1.0 (#24911) * Fix Alexa * Lint * Migrate zhong_hong * Migrate tuya * Migrate honeywell to new climate schema (#24257) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * Fix PRESET can be None * apply PR#23913 from dev * remove EU component, etc. * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * apply PR#23913 from dev * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * delint, move debug code * away preset now working * code tidy-up * code tidy-up 2 * code tidy-up 3 * address issues #18932, #15063 * address issues #18932, #15063 - 2/2 * refactor MODE_AUTO to MODE_HEAT_COOL and use F not C * add low/high to set_temp * add low/high to set_temp 2 * add low/high to set_temp - delint * run HA scripts * port changes from PR #24402 * manual rebase * manual rebase 2 * delint * minor change * remove SUPPORT_HVAC_ACTION * Migrate radiotherm * Convert touchline * Migrate flexit * Migrate nuheat * Migrate maxcube * Fix names maxcube const * Migrate proliphix * Migrate heatmiser * Migrate fritzbox * Migrate opentherm_gw * Migrate venstar * Migrate daikin * Migrate modbus * Fix elif * Migrate Homematic IP Cloud to climate-1.0 (#24913) * hmip climate fix * Update hvac_mode and preset_mode * fix lint * Fix lint * Migrate generic_thermostat * Migrate incomfort to new climate schema (#24915) * initial commit * Update climate.py * Migrate eq3btsmart * Lint * cleanup PRESET_MANUAL * Migrate ecobee * No conditional features * KNX: Migrate climate component to new climate platform (#24931) * Migrate climate component * Remove unused code * Corrected line length * Lint * Lint * fix tests * Fix value * Migrate geniushub to new climate schema (#24191) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * delinted * delinted * use latest client * clean up mappings * clean up mappings * add duration to set_temperature * add duration to set_temperature * manual rebase * tweak * fix regression * small fix * fix rebase mixup * address comments * finish refactor * fix regression * tweak type hints * delint * manual rebase * WIP: Fixes for honeywell migration to climate-1.0 (#24938) * add type hints * code tidy-up * Fixes for incomfort migration to climate-1.0 (#24936) * delint type hints * no async unless await * revert: no async unless await * revert: no async unless await 2 * delint * fix typo * Fix homekit_controller on climate-1.0 (#24948) * Fix tests on climate-1.0 branch * As part of climate-1.0, make state return the heating-cooling.current characteristic * Fixes from review * lint * Fix imports * Migrate stibel_eltron * Fix lint * Migrate coolmaster to climate 1.0 (#24967) * Migrate coolmaster to climate 1.0 * fix lint errors * More lint fixes * Fix demo to work with UI * Migrate spider * Demo update * Updated frontend to 20190705.0 * Fix boost mode (#24980) * Prepare Netatmo for climate 1.0 (#24973) * Migration Netatmo * Address comments * Update climate.py * Migrate ephember * Migrate Sensibo * Implemented review comments (#24942) * Migrate ESPHome * Migrate MQTT * Migrate Nest * Migrate melissa * Initial/partial migration of ST * Migrate ST * Remove Away mode (#24995) * Migrate evohome, cache access tokens (#24491) * add water_heater, add storage - initial commit * add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint * Add Broker, Water Heater & Refactor add missing code desiderata * update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker * bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() * support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change * store at_expires as naive UTC remove debug code delint tidy up exception handling delint add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change store at_expires as naive UTC remove debug code delint tidy up exception handling delint * update CODEOWNERS * fix regression * fix requirements * migrate to climate-1.0 * tweaking * de-lint * TCS working? & delint * tweaking * TCS code finalised * remove available() logic * refactor _switchpoints() * tidy up switchpoint code * tweak * teaking device_state_attributes * some refactoring * move PRESET_CUSTOM back to evohome * move CONF_ACCESS_TOKEN_EXPIRES CONF_REFRESH_TOKEN back to evohome * refactor SP code and dt conversion * delinted * delinted * remove water_heater * fix regression * Migrate homekit * Cleanup away mode * Fix tests * add helpers * fix tests melissa * Fix nehueat * fix zwave * add more tests * fix deconz * Fix climate test emulate_hue * fix tests * fix dyson tests * fix demo with new layout * fix honeywell * Switch homekit_controller to use HVAC_MODE_HEAT_COOL instead of HVAC_MODE_AUTO (#25009) * Lint * PyLint * Pylint * fix fritzbox tests * Fix google * Fix all tests * Fix lint * Fix auto for homekit like controler * Fix lint * fix lint
2019-07-08 12:00:24 +00:00
else:
await self.async_set_temperature(temperature=self.data.comfort_temperature)
Climate 1.0 (#23899) * Climate 1.0 / part 1/2/3 * fix flake * Lint * Update Google Assistant * ambiclimate to climate 1.0 (#24911) * Fix Alexa * Lint * Migrate zhong_hong * Migrate tuya * Migrate honeywell to new climate schema (#24257) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * Fix PRESET can be None * apply PR#23913 from dev * remove EU component, etc. * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * apply PR#23913 from dev * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * delint, move debug code * away preset now working * code tidy-up * code tidy-up 2 * code tidy-up 3 * address issues #18932, #15063 * address issues #18932, #15063 - 2/2 * refactor MODE_AUTO to MODE_HEAT_COOL and use F not C * add low/high to set_temp * add low/high to set_temp 2 * add low/high to set_temp - delint * run HA scripts * port changes from PR #24402 * manual rebase * manual rebase 2 * delint * minor change * remove SUPPORT_HVAC_ACTION * Migrate radiotherm * Convert touchline * Migrate flexit * Migrate nuheat * Migrate maxcube * Fix names maxcube const * Migrate proliphix * Migrate heatmiser * Migrate fritzbox * Migrate opentherm_gw * Migrate venstar * Migrate daikin * Migrate modbus * Fix elif * Migrate Homematic IP Cloud to climate-1.0 (#24913) * hmip climate fix * Update hvac_mode and preset_mode * fix lint * Fix lint * Migrate generic_thermostat * Migrate incomfort to new climate schema (#24915) * initial commit * Update climate.py * Migrate eq3btsmart * Lint * cleanup PRESET_MANUAL * Migrate ecobee * No conditional features * KNX: Migrate climate component to new climate platform (#24931) * Migrate climate component * Remove unused code * Corrected line length * Lint * Lint * fix tests * Fix value * Migrate geniushub to new climate schema (#24191) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * delinted * delinted * use latest client * clean up mappings * clean up mappings * add duration to set_temperature * add duration to set_temperature * manual rebase * tweak * fix regression * small fix * fix rebase mixup * address comments * finish refactor * fix regression * tweak type hints * delint * manual rebase * WIP: Fixes for honeywell migration to climate-1.0 (#24938) * add type hints * code tidy-up * Fixes for incomfort migration to climate-1.0 (#24936) * delint type hints * no async unless await * revert: no async unless await * revert: no async unless await 2 * delint * fix typo * Fix homekit_controller on climate-1.0 (#24948) * Fix tests on climate-1.0 branch * As part of climate-1.0, make state return the heating-cooling.current characteristic * Fixes from review * lint * Fix imports * Migrate stibel_eltron * Fix lint * Migrate coolmaster to climate 1.0 (#24967) * Migrate coolmaster to climate 1.0 * fix lint errors * More lint fixes * Fix demo to work with UI * Migrate spider * Demo update * Updated frontend to 20190705.0 * Fix boost mode (#24980) * Prepare Netatmo for climate 1.0 (#24973) * Migration Netatmo * Address comments * Update climate.py * Migrate ephember * Migrate Sensibo * Implemented review comments (#24942) * Migrate ESPHome * Migrate MQTT * Migrate Nest * Migrate melissa * Initial/partial migration of ST * Migrate ST * Remove Away mode (#24995) * Migrate evohome, cache access tokens (#24491) * add water_heater, add storage - initial commit * add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint * Add Broker, Water Heater & Refactor add missing code desiderata * update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker * bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() * support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change * store at_expires as naive UTC remove debug code delint tidy up exception handling delint add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change store at_expires as naive UTC remove debug code delint tidy up exception handling delint * update CODEOWNERS * fix regression * fix requirements * migrate to climate-1.0 * tweaking * de-lint * TCS working? & delint * tweaking * TCS code finalised * remove available() logic * refactor _switchpoints() * tidy up switchpoint code * tweak * teaking device_state_attributes * some refactoring * move PRESET_CUSTOM back to evohome * move CONF_ACCESS_TOKEN_EXPIRES CONF_REFRESH_TOKEN back to evohome * refactor SP code and dt conversion * delinted * delinted * remove water_heater * fix regression * Migrate homekit * Cleanup away mode * Fix tests * add helpers * fix tests melissa * Fix nehueat * fix zwave * add more tests * fix deconz * Fix climate test emulate_hue * fix tests * fix dyson tests * fix demo with new layout * fix honeywell * Switch homekit_controller to use HVAC_MODE_HEAT_COOL instead of HVAC_MODE_AUTO (#25009) * Lint * PyLint * Pylint * fix fritzbox tests * Fix google * Fix all tests * Fix lint * Fix auto for homekit like controler * Fix lint * fix lint
2019-07-08 12:00:24 +00:00
@property
def preset_mode(self) -> str | None:
Climate 1.0 (#23899) * Climate 1.0 / part 1/2/3 * fix flake * Lint * Update Google Assistant * ambiclimate to climate 1.0 (#24911) * Fix Alexa * Lint * Migrate zhong_hong * Migrate tuya * Migrate honeywell to new climate schema (#24257) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * Fix PRESET can be None * apply PR#23913 from dev * remove EU component, etc. * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * apply PR#23913 from dev * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * delint, move debug code * away preset now working * code tidy-up * code tidy-up 2 * code tidy-up 3 * address issues #18932, #15063 * address issues #18932, #15063 - 2/2 * refactor MODE_AUTO to MODE_HEAT_COOL and use F not C * add low/high to set_temp * add low/high to set_temp 2 * add low/high to set_temp - delint * run HA scripts * port changes from PR #24402 * manual rebase * manual rebase 2 * delint * minor change * remove SUPPORT_HVAC_ACTION * Migrate radiotherm * Convert touchline * Migrate flexit * Migrate nuheat * Migrate maxcube * Fix names maxcube const * Migrate proliphix * Migrate heatmiser * Migrate fritzbox * Migrate opentherm_gw * Migrate venstar * Migrate daikin * Migrate modbus * Fix elif * Migrate Homematic IP Cloud to climate-1.0 (#24913) * hmip climate fix * Update hvac_mode and preset_mode * fix lint * Fix lint * Migrate generic_thermostat * Migrate incomfort to new climate schema (#24915) * initial commit * Update climate.py * Migrate eq3btsmart * Lint * cleanup PRESET_MANUAL * Migrate ecobee * No conditional features * KNX: Migrate climate component to new climate platform (#24931) * Migrate climate component * Remove unused code * Corrected line length * Lint * Lint * fix tests * Fix value * Migrate geniushub to new climate schema (#24191) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * delinted * delinted * use latest client * clean up mappings * clean up mappings * add duration to set_temperature * add duration to set_temperature * manual rebase * tweak * fix regression * small fix * fix rebase mixup * address comments * finish refactor * fix regression * tweak type hints * delint * manual rebase * WIP: Fixes for honeywell migration to climate-1.0 (#24938) * add type hints * code tidy-up * Fixes for incomfort migration to climate-1.0 (#24936) * delint type hints * no async unless await * revert: no async unless await * revert: no async unless await 2 * delint * fix typo * Fix homekit_controller on climate-1.0 (#24948) * Fix tests on climate-1.0 branch * As part of climate-1.0, make state return the heating-cooling.current characteristic * Fixes from review * lint * Fix imports * Migrate stibel_eltron * Fix lint * Migrate coolmaster to climate 1.0 (#24967) * Migrate coolmaster to climate 1.0 * fix lint errors * More lint fixes * Fix demo to work with UI * Migrate spider * Demo update * Updated frontend to 20190705.0 * Fix boost mode (#24980) * Prepare Netatmo for climate 1.0 (#24973) * Migration Netatmo * Address comments * Update climate.py * Migrate ephember * Migrate Sensibo * Implemented review comments (#24942) * Migrate ESPHome * Migrate MQTT * Migrate Nest * Migrate melissa * Initial/partial migration of ST * Migrate ST * Remove Away mode (#24995) * Migrate evohome, cache access tokens (#24491) * add water_heater, add storage - initial commit * add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint * Add Broker, Water Heater & Refactor add missing code desiderata * update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker * bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() * support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change * store at_expires as naive UTC remove debug code delint tidy up exception handling delint add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change store at_expires as naive UTC remove debug code delint tidy up exception handling delint * update CODEOWNERS * fix regression * fix requirements * migrate to climate-1.0 * tweaking * de-lint * TCS working? & delint * tweaking * TCS code finalised * remove available() logic * refactor _switchpoints() * tidy up switchpoint code * tweak * teaking device_state_attributes * some refactoring * move PRESET_CUSTOM back to evohome * move CONF_ACCESS_TOKEN_EXPIRES CONF_REFRESH_TOKEN back to evohome * refactor SP code and dt conversion * delinted * delinted * remove water_heater * fix regression * Migrate homekit * Cleanup away mode * Fix tests * add helpers * fix tests melissa * Fix nehueat * fix zwave * add more tests * fix deconz * Fix climate test emulate_hue * fix tests * fix dyson tests * fix demo with new layout * fix honeywell * Switch homekit_controller to use HVAC_MODE_HEAT_COOL instead of HVAC_MODE_AUTO (#25009) * Lint * PyLint * Pylint * fix fritzbox tests * Fix google * Fix all tests * Fix lint * Fix auto for homekit like controler * Fix lint * fix lint
2019-07-08 12:00:24 +00:00
"""Return current preset mode."""
if self.data.target_temperature == self.data.comfort_temperature:
Climate 1.0 (#23899) * Climate 1.0 / part 1/2/3 * fix flake * Lint * Update Google Assistant * ambiclimate to climate 1.0 (#24911) * Fix Alexa * Lint * Migrate zhong_hong * Migrate tuya * Migrate honeywell to new climate schema (#24257) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * Fix PRESET can be None * apply PR#23913 from dev * remove EU component, etc. * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * apply PR#23913 from dev * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * delint, move debug code * away preset now working * code tidy-up * code tidy-up 2 * code tidy-up 3 * address issues #18932, #15063 * address issues #18932, #15063 - 2/2 * refactor MODE_AUTO to MODE_HEAT_COOL and use F not C * add low/high to set_temp * add low/high to set_temp 2 * add low/high to set_temp - delint * run HA scripts * port changes from PR #24402 * manual rebase * manual rebase 2 * delint * minor change * remove SUPPORT_HVAC_ACTION * Migrate radiotherm * Convert touchline * Migrate flexit * Migrate nuheat * Migrate maxcube * Fix names maxcube const * Migrate proliphix * Migrate heatmiser * Migrate fritzbox * Migrate opentherm_gw * Migrate venstar * Migrate daikin * Migrate modbus * Fix elif * Migrate Homematic IP Cloud to climate-1.0 (#24913) * hmip climate fix * Update hvac_mode and preset_mode * fix lint * Fix lint * Migrate generic_thermostat * Migrate incomfort to new climate schema (#24915) * initial commit * Update climate.py * Migrate eq3btsmart * Lint * cleanup PRESET_MANUAL * Migrate ecobee * No conditional features * KNX: Migrate climate component to new climate platform (#24931) * Migrate climate component * Remove unused code * Corrected line length * Lint * Lint * fix tests * Fix value * Migrate geniushub to new climate schema (#24191) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * delinted * delinted * use latest client * clean up mappings * clean up mappings * add duration to set_temperature * add duration to set_temperature * manual rebase * tweak * fix regression * small fix * fix rebase mixup * address comments * finish refactor * fix regression * tweak type hints * delint * manual rebase * WIP: Fixes for honeywell migration to climate-1.0 (#24938) * add type hints * code tidy-up * Fixes for incomfort migration to climate-1.0 (#24936) * delint type hints * no async unless await * revert: no async unless await * revert: no async unless await 2 * delint * fix typo * Fix homekit_controller on climate-1.0 (#24948) * Fix tests on climate-1.0 branch * As part of climate-1.0, make state return the heating-cooling.current characteristic * Fixes from review * lint * Fix imports * Migrate stibel_eltron * Fix lint * Migrate coolmaster to climate 1.0 (#24967) * Migrate coolmaster to climate 1.0 * fix lint errors * More lint fixes * Fix demo to work with UI * Migrate spider * Demo update * Updated frontend to 20190705.0 * Fix boost mode (#24980) * Prepare Netatmo for climate 1.0 (#24973) * Migration Netatmo * Address comments * Update climate.py * Migrate ephember * Migrate Sensibo * Implemented review comments (#24942) * Migrate ESPHome * Migrate MQTT * Migrate Nest * Migrate melissa * Initial/partial migration of ST * Migrate ST * Remove Away mode (#24995) * Migrate evohome, cache access tokens (#24491) * add water_heater, add storage - initial commit * add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint * Add Broker, Water Heater & Refactor add missing code desiderata * update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker * bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() * support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change * store at_expires as naive UTC remove debug code delint tidy up exception handling delint add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change store at_expires as naive UTC remove debug code delint tidy up exception handling delint * update CODEOWNERS * fix regression * fix requirements * migrate to climate-1.0 * tweaking * de-lint * TCS working? & delint * tweaking * TCS code finalised * remove available() logic * refactor _switchpoints() * tidy up switchpoint code * tweak * teaking device_state_attributes * some refactoring * move PRESET_CUSTOM back to evohome * move CONF_ACCESS_TOKEN_EXPIRES CONF_REFRESH_TOKEN back to evohome * refactor SP code and dt conversion * delinted * delinted * remove water_heater * fix regression * Migrate homekit * Cleanup away mode * Fix tests * add helpers * fix tests melissa * Fix nehueat * fix zwave * add more tests * fix deconz * Fix climate test emulate_hue * fix tests * fix dyson tests * fix demo with new layout * fix honeywell * Switch homekit_controller to use HVAC_MODE_HEAT_COOL instead of HVAC_MODE_AUTO (#25009) * Lint * PyLint * Pylint * fix fritzbox tests * Fix google * Fix all tests * Fix lint * Fix auto for homekit like controler * Fix lint * fix lint
2019-07-08 12:00:24 +00:00
return PRESET_COMFORT
if self.data.target_temperature == self.data.eco_temperature:
Climate 1.0 (#23899) * Climate 1.0 / part 1/2/3 * fix flake * Lint * Update Google Assistant * ambiclimate to climate 1.0 (#24911) * Fix Alexa * Lint * Migrate zhong_hong * Migrate tuya * Migrate honeywell to new climate schema (#24257) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * Fix PRESET can be None * apply PR#23913 from dev * remove EU component, etc. * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * apply PR#23913 from dev * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * delint, move debug code * away preset now working * code tidy-up * code tidy-up 2 * code tidy-up 3 * address issues #18932, #15063 * address issues #18932, #15063 - 2/2 * refactor MODE_AUTO to MODE_HEAT_COOL and use F not C * add low/high to set_temp * add low/high to set_temp 2 * add low/high to set_temp - delint * run HA scripts * port changes from PR #24402 * manual rebase * manual rebase 2 * delint * minor change * remove SUPPORT_HVAC_ACTION * Migrate radiotherm * Convert touchline * Migrate flexit * Migrate nuheat * Migrate maxcube * Fix names maxcube const * Migrate proliphix * Migrate heatmiser * Migrate fritzbox * Migrate opentherm_gw * Migrate venstar * Migrate daikin * Migrate modbus * Fix elif * Migrate Homematic IP Cloud to climate-1.0 (#24913) * hmip climate fix * Update hvac_mode and preset_mode * fix lint * Fix lint * Migrate generic_thermostat * Migrate incomfort to new climate schema (#24915) * initial commit * Update climate.py * Migrate eq3btsmart * Lint * cleanup PRESET_MANUAL * Migrate ecobee * No conditional features * KNX: Migrate climate component to new climate platform (#24931) * Migrate climate component * Remove unused code * Corrected line length * Lint * Lint * fix tests * Fix value * Migrate geniushub to new climate schema (#24191) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * delinted * delinted * use latest client * clean up mappings * clean up mappings * add duration to set_temperature * add duration to set_temperature * manual rebase * tweak * fix regression * small fix * fix rebase mixup * address comments * finish refactor * fix regression * tweak type hints * delint * manual rebase * WIP: Fixes for honeywell migration to climate-1.0 (#24938) * add type hints * code tidy-up * Fixes for incomfort migration to climate-1.0 (#24936) * delint type hints * no async unless await * revert: no async unless await * revert: no async unless await 2 * delint * fix typo * Fix homekit_controller on climate-1.0 (#24948) * Fix tests on climate-1.0 branch * As part of climate-1.0, make state return the heating-cooling.current characteristic * Fixes from review * lint * Fix imports * Migrate stibel_eltron * Fix lint * Migrate coolmaster to climate 1.0 (#24967) * Migrate coolmaster to climate 1.0 * fix lint errors * More lint fixes * Fix demo to work with UI * Migrate spider * Demo update * Updated frontend to 20190705.0 * Fix boost mode (#24980) * Prepare Netatmo for climate 1.0 (#24973) * Migration Netatmo * Address comments * Update climate.py * Migrate ephember * Migrate Sensibo * Implemented review comments (#24942) * Migrate ESPHome * Migrate MQTT * Migrate Nest * Migrate melissa * Initial/partial migration of ST * Migrate ST * Remove Away mode (#24995) * Migrate evohome, cache access tokens (#24491) * add water_heater, add storage - initial commit * add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint * Add Broker, Water Heater & Refactor add missing code desiderata * update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker * bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() * support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change * store at_expires as naive UTC remove debug code delint tidy up exception handling delint add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change store at_expires as naive UTC remove debug code delint tidy up exception handling delint * update CODEOWNERS * fix regression * fix requirements * migrate to climate-1.0 * tweaking * de-lint * TCS working? & delint * tweaking * TCS code finalised * remove available() logic * refactor _switchpoints() * tidy up switchpoint code * tweak * teaking device_state_attributes * some refactoring * move PRESET_CUSTOM back to evohome * move CONF_ACCESS_TOKEN_EXPIRES CONF_REFRESH_TOKEN back to evohome * refactor SP code and dt conversion * delinted * delinted * remove water_heater * fix regression * Migrate homekit * Cleanup away mode * Fix tests * add helpers * fix tests melissa * Fix nehueat * fix zwave * add more tests * fix deconz * Fix climate test emulate_hue * fix tests * fix dyson tests * fix demo with new layout * fix honeywell * Switch homekit_controller to use HVAC_MODE_HEAT_COOL instead of HVAC_MODE_AUTO (#25009) * Lint * PyLint * Pylint * fix fritzbox tests * Fix google * Fix all tests * Fix lint * Fix auto for homekit like controler * Fix lint * fix lint
2019-07-08 12:00:24 +00:00
return PRESET_ECO
return None
Climate 1.0 (#23899) * Climate 1.0 / part 1/2/3 * fix flake * Lint * Update Google Assistant * ambiclimate to climate 1.0 (#24911) * Fix Alexa * Lint * Migrate zhong_hong * Migrate tuya * Migrate honeywell to new climate schema (#24257) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * Fix PRESET can be None * apply PR#23913 from dev * remove EU component, etc. * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * apply PR#23913 from dev * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * delint, move debug code * away preset now working * code tidy-up * code tidy-up 2 * code tidy-up 3 * address issues #18932, #15063 * address issues #18932, #15063 - 2/2 * refactor MODE_AUTO to MODE_HEAT_COOL and use F not C * add low/high to set_temp * add low/high to set_temp 2 * add low/high to set_temp - delint * run HA scripts * port changes from PR #24402 * manual rebase * manual rebase 2 * delint * minor change * remove SUPPORT_HVAC_ACTION * Migrate radiotherm * Convert touchline * Migrate flexit * Migrate nuheat * Migrate maxcube * Fix names maxcube const * Migrate proliphix * Migrate heatmiser * Migrate fritzbox * Migrate opentherm_gw * Migrate venstar * Migrate daikin * Migrate modbus * Fix elif * Migrate Homematic IP Cloud to climate-1.0 (#24913) * hmip climate fix * Update hvac_mode and preset_mode * fix lint * Fix lint * Migrate generic_thermostat * Migrate incomfort to new climate schema (#24915) * initial commit * Update climate.py * Migrate eq3btsmart * Lint * cleanup PRESET_MANUAL * Migrate ecobee * No conditional features * KNX: Migrate climate component to new climate platform (#24931) * Migrate climate component * Remove unused code * Corrected line length * Lint * Lint * fix tests * Fix value * Migrate geniushub to new climate schema (#24191) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * delinted * delinted * use latest client * clean up mappings * clean up mappings * add duration to set_temperature * add duration to set_temperature * manual rebase * tweak * fix regression * small fix * fix rebase mixup * address comments * finish refactor * fix regression * tweak type hints * delint * manual rebase * WIP: Fixes for honeywell migration to climate-1.0 (#24938) * add type hints * code tidy-up * Fixes for incomfort migration to climate-1.0 (#24936) * delint type hints * no async unless await * revert: no async unless await * revert: no async unless await 2 * delint * fix typo * Fix homekit_controller on climate-1.0 (#24948) * Fix tests on climate-1.0 branch * As part of climate-1.0, make state return the heating-cooling.current characteristic * Fixes from review * lint * Fix imports * Migrate stibel_eltron * Fix lint * Migrate coolmaster to climate 1.0 (#24967) * Migrate coolmaster to climate 1.0 * fix lint errors * More lint fixes * Fix demo to work with UI * Migrate spider * Demo update * Updated frontend to 20190705.0 * Fix boost mode (#24980) * Prepare Netatmo for climate 1.0 (#24973) * Migration Netatmo * Address comments * Update climate.py * Migrate ephember * Migrate Sensibo * Implemented review comments (#24942) * Migrate ESPHome * Migrate MQTT * Migrate Nest * Migrate melissa * Initial/partial migration of ST * Migrate ST * Remove Away mode (#24995) * Migrate evohome, cache access tokens (#24491) * add water_heater, add storage - initial commit * add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint * Add Broker, Water Heater & Refactor add missing code desiderata * update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker * bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() * support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change * store at_expires as naive UTC remove debug code delint tidy up exception handling delint add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change store at_expires as naive UTC remove debug code delint tidy up exception handling delint * update CODEOWNERS * fix regression * fix requirements * migrate to climate-1.0 * tweaking * de-lint * TCS working? & delint * tweaking * TCS code finalised * remove available() logic * refactor _switchpoints() * tidy up switchpoint code * tweak * teaking device_state_attributes * some refactoring * move PRESET_CUSTOM back to evohome * move CONF_ACCESS_TOKEN_EXPIRES CONF_REFRESH_TOKEN back to evohome * refactor SP code and dt conversion * delinted * delinted * remove water_heater * fix regression * Migrate homekit * Cleanup away mode * Fix tests * add helpers * fix tests melissa * Fix nehueat * fix zwave * add more tests * fix deconz * Fix climate test emulate_hue * fix tests * fix dyson tests * fix demo with new layout * fix honeywell * Switch homekit_controller to use HVAC_MODE_HEAT_COOL instead of HVAC_MODE_AUTO (#25009) * Lint * PyLint * Pylint * fix fritzbox tests * Fix google * Fix all tests * Fix lint * Fix auto for homekit like controler * Fix lint * fix lint
2019-07-08 12:00:24 +00:00
@property
def preset_modes(self) -> list[str]:
Climate 1.0 (#23899) * Climate 1.0 / part 1/2/3 * fix flake * Lint * Update Google Assistant * ambiclimate to climate 1.0 (#24911) * Fix Alexa * Lint * Migrate zhong_hong * Migrate tuya * Migrate honeywell to new climate schema (#24257) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * Fix PRESET can be None * apply PR#23913 from dev * remove EU component, etc. * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * apply PR#23913 from dev * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * delint, move debug code * away preset now working * code tidy-up * code tidy-up 2 * code tidy-up 3 * address issues #18932, #15063 * address issues #18932, #15063 - 2/2 * refactor MODE_AUTO to MODE_HEAT_COOL and use F not C * add low/high to set_temp * add low/high to set_temp 2 * add low/high to set_temp - delint * run HA scripts * port changes from PR #24402 * manual rebase * manual rebase 2 * delint * minor change * remove SUPPORT_HVAC_ACTION * Migrate radiotherm * Convert touchline * Migrate flexit * Migrate nuheat * Migrate maxcube * Fix names maxcube const * Migrate proliphix * Migrate heatmiser * Migrate fritzbox * Migrate opentherm_gw * Migrate venstar * Migrate daikin * Migrate modbus * Fix elif * Migrate Homematic IP Cloud to climate-1.0 (#24913) * hmip climate fix * Update hvac_mode and preset_mode * fix lint * Fix lint * Migrate generic_thermostat * Migrate incomfort to new climate schema (#24915) * initial commit * Update climate.py * Migrate eq3btsmart * Lint * cleanup PRESET_MANUAL * Migrate ecobee * No conditional features * KNX: Migrate climate component to new climate platform (#24931) * Migrate climate component * Remove unused code * Corrected line length * Lint * Lint * fix tests * Fix value * Migrate geniushub to new climate schema (#24191) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * delinted * delinted * use latest client * clean up mappings * clean up mappings * add duration to set_temperature * add duration to set_temperature * manual rebase * tweak * fix regression * small fix * fix rebase mixup * address comments * finish refactor * fix regression * tweak type hints * delint * manual rebase * WIP: Fixes for honeywell migration to climate-1.0 (#24938) * add type hints * code tidy-up * Fixes for incomfort migration to climate-1.0 (#24936) * delint type hints * no async unless await * revert: no async unless await * revert: no async unless await 2 * delint * fix typo * Fix homekit_controller on climate-1.0 (#24948) * Fix tests on climate-1.0 branch * As part of climate-1.0, make state return the heating-cooling.current characteristic * Fixes from review * lint * Fix imports * Migrate stibel_eltron * Fix lint * Migrate coolmaster to climate 1.0 (#24967) * Migrate coolmaster to climate 1.0 * fix lint errors * More lint fixes * Fix demo to work with UI * Migrate spider * Demo update * Updated frontend to 20190705.0 * Fix boost mode (#24980) * Prepare Netatmo for climate 1.0 (#24973) * Migration Netatmo * Address comments * Update climate.py * Migrate ephember * Migrate Sensibo * Implemented review comments (#24942) * Migrate ESPHome * Migrate MQTT * Migrate Nest * Migrate melissa * Initial/partial migration of ST * Migrate ST * Remove Away mode (#24995) * Migrate evohome, cache access tokens (#24491) * add water_heater, add storage - initial commit * add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint * Add Broker, Water Heater & Refactor add missing code desiderata * update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker * bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() * support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change * store at_expires as naive UTC remove debug code delint tidy up exception handling delint add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change store at_expires as naive UTC remove debug code delint tidy up exception handling delint * update CODEOWNERS * fix regression * fix requirements * migrate to climate-1.0 * tweaking * de-lint * TCS working? & delint * tweaking * TCS code finalised * remove available() logic * refactor _switchpoints() * tidy up switchpoint code * tweak * teaking device_state_attributes * some refactoring * move PRESET_CUSTOM back to evohome * move CONF_ACCESS_TOKEN_EXPIRES CONF_REFRESH_TOKEN back to evohome * refactor SP code and dt conversion * delinted * delinted * remove water_heater * fix regression * Migrate homekit * Cleanup away mode * Fix tests * add helpers * fix tests melissa * Fix nehueat * fix zwave * add more tests * fix deconz * Fix climate test emulate_hue * fix tests * fix dyson tests * fix demo with new layout * fix honeywell * Switch homekit_controller to use HVAC_MODE_HEAT_COOL instead of HVAC_MODE_AUTO (#25009) * Lint * PyLint * Pylint * fix fritzbox tests * Fix google * Fix all tests * Fix lint * Fix auto for homekit like controler * Fix lint * fix lint
2019-07-08 12:00:24 +00:00
"""Return supported preset modes."""
return [PRESET_ECO, PRESET_COMFORT]
async def async_set_preset_mode(self, preset_mode: str) -> None:
Climate 1.0 (#23899) * Climate 1.0 / part 1/2/3 * fix flake * Lint * Update Google Assistant * ambiclimate to climate 1.0 (#24911) * Fix Alexa * Lint * Migrate zhong_hong * Migrate tuya * Migrate honeywell to new climate schema (#24257) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * Fix PRESET can be None * apply PR#23913 from dev * remove EU component, etc. * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * apply PR#23913 from dev * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * delint, move debug code * away preset now working * code tidy-up * code tidy-up 2 * code tidy-up 3 * address issues #18932, #15063 * address issues #18932, #15063 - 2/2 * refactor MODE_AUTO to MODE_HEAT_COOL and use F not C * add low/high to set_temp * add low/high to set_temp 2 * add low/high to set_temp - delint * run HA scripts * port changes from PR #24402 * manual rebase * manual rebase 2 * delint * minor change * remove SUPPORT_HVAC_ACTION * Migrate radiotherm * Convert touchline * Migrate flexit * Migrate nuheat * Migrate maxcube * Fix names maxcube const * Migrate proliphix * Migrate heatmiser * Migrate fritzbox * Migrate opentherm_gw * Migrate venstar * Migrate daikin * Migrate modbus * Fix elif * Migrate Homematic IP Cloud to climate-1.0 (#24913) * hmip climate fix * Update hvac_mode and preset_mode * fix lint * Fix lint * Migrate generic_thermostat * Migrate incomfort to new climate schema (#24915) * initial commit * Update climate.py * Migrate eq3btsmart * Lint * cleanup PRESET_MANUAL * Migrate ecobee * No conditional features * KNX: Migrate climate component to new climate platform (#24931) * Migrate climate component * Remove unused code * Corrected line length * Lint * Lint * fix tests * Fix value * Migrate geniushub to new climate schema (#24191) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * delinted * delinted * use latest client * clean up mappings * clean up mappings * add duration to set_temperature * add duration to set_temperature * manual rebase * tweak * fix regression * small fix * fix rebase mixup * address comments * finish refactor * fix regression * tweak type hints * delint * manual rebase * WIP: Fixes for honeywell migration to climate-1.0 (#24938) * add type hints * code tidy-up * Fixes for incomfort migration to climate-1.0 (#24936) * delint type hints * no async unless await * revert: no async unless await * revert: no async unless await 2 * delint * fix typo * Fix homekit_controller on climate-1.0 (#24948) * Fix tests on climate-1.0 branch * As part of climate-1.0, make state return the heating-cooling.current characteristic * Fixes from review * lint * Fix imports * Migrate stibel_eltron * Fix lint * Migrate coolmaster to climate 1.0 (#24967) * Migrate coolmaster to climate 1.0 * fix lint errors * More lint fixes * Fix demo to work with UI * Migrate spider * Demo update * Updated frontend to 20190705.0 * Fix boost mode (#24980) * Prepare Netatmo for climate 1.0 (#24973) * Migration Netatmo * Address comments * Update climate.py * Migrate ephember * Migrate Sensibo * Implemented review comments (#24942) * Migrate ESPHome * Migrate MQTT * Migrate Nest * Migrate melissa * Initial/partial migration of ST * Migrate ST * Remove Away mode (#24995) * Migrate evohome, cache access tokens (#24491) * add water_heater, add storage - initial commit * add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint * Add Broker, Water Heater & Refactor add missing code desiderata * update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker * bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() * support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change * store at_expires as naive UTC remove debug code delint tidy up exception handling delint add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change store at_expires as naive UTC remove debug code delint tidy up exception handling delint * update CODEOWNERS * fix regression * fix requirements * migrate to climate-1.0 * tweaking * de-lint * TCS working? & delint * tweaking * TCS code finalised * remove available() logic * refactor _switchpoints() * tidy up switchpoint code * tweak * teaking device_state_attributes * some refactoring * move PRESET_CUSTOM back to evohome * move CONF_ACCESS_TOKEN_EXPIRES CONF_REFRESH_TOKEN back to evohome * refactor SP code and dt conversion * delinted * delinted * remove water_heater * fix regression * Migrate homekit * Cleanup away mode * Fix tests * add helpers * fix tests melissa * Fix nehueat * fix zwave * add more tests * fix deconz * Fix climate test emulate_hue * fix tests * fix dyson tests * fix demo with new layout * fix honeywell * Switch homekit_controller to use HVAC_MODE_HEAT_COOL instead of HVAC_MODE_AUTO (#25009) * Lint * PyLint * Pylint * fix fritzbox tests * Fix google * Fix all tests * Fix lint * Fix auto for homekit like controler * Fix lint * fix lint
2019-07-08 12:00:24 +00:00
"""Set preset mode."""
if preset_mode == PRESET_COMFORT:
await self.async_set_temperature(temperature=self.data.comfort_temperature)
Climate 1.0 (#23899) * Climate 1.0 / part 1/2/3 * fix flake * Lint * Update Google Assistant * ambiclimate to climate 1.0 (#24911) * Fix Alexa * Lint * Migrate zhong_hong * Migrate tuya * Migrate honeywell to new climate schema (#24257) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * Fix PRESET can be None * apply PR#23913 from dev * remove EU component, etc. * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * apply PR#23913 from dev * remove EU component, etc. * ready to test now * de-linted * some tweaks * de-lint * better handling of edge cases * delint * fix set_mode typos * delint, move debug code * away preset now working * code tidy-up * code tidy-up 2 * code tidy-up 3 * address issues #18932, #15063 * address issues #18932, #15063 - 2/2 * refactor MODE_AUTO to MODE_HEAT_COOL and use F not C * add low/high to set_temp * add low/high to set_temp 2 * add low/high to set_temp - delint * run HA scripts * port changes from PR #24402 * manual rebase * manual rebase 2 * delint * minor change * remove SUPPORT_HVAC_ACTION * Migrate radiotherm * Convert touchline * Migrate flexit * Migrate nuheat * Migrate maxcube * Fix names maxcube const * Migrate proliphix * Migrate heatmiser * Migrate fritzbox * Migrate opentherm_gw * Migrate venstar * Migrate daikin * Migrate modbus * Fix elif * Migrate Homematic IP Cloud to climate-1.0 (#24913) * hmip climate fix * Update hvac_mode and preset_mode * fix lint * Fix lint * Migrate generic_thermostat * Migrate incomfort to new climate schema (#24915) * initial commit * Update climate.py * Migrate eq3btsmart * Lint * cleanup PRESET_MANUAL * Migrate ecobee * No conditional features * KNX: Migrate climate component to new climate platform (#24931) * Migrate climate component * Remove unused code * Corrected line length * Lint * Lint * fix tests * Fix value * Migrate geniushub to new climate schema (#24191) * Update one * Fix model climate v2 * Cleanup p4 * Add comfort hold mode * Fix old code * Update homeassistant/components/climate/__init__.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * Update homeassistant/components/climate/const.py Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io> * First renaming * Rename operation to hvac for paulus * Rename hold mode to preset mode * Cleanup & update comments * Remove on/off * Fix supported feature count * Update services * Update demo * Fix tests & use current_hvac * Update comment * Fix tests & add typing * Add more typing * Update modes * Fix tests * Cleanup low/high with range * Update homematic part 1 * Finish homematic * Fix lint * fix hm mapping * Support simple devices * convert lcn * migrate oem * Fix xs1 * update hive * update mil * Update toon * migrate deconz * cleanup * update tesla * Fix lint * Fix vera * Migrate zwave * Migrate velbus * Cleanup humity feature * Cleanup * Migrate wink * migrate dyson * Fix current hvac * Renaming * Fix lint * Migrate tfiac * migrate tado * delinted * delinted * use latest client * clean up mappings * clean up mappings * add duration to set_temperature * add duration to set_temperature * manual rebase * tweak * fix regression * small fix * fix rebase mixup * address comments * finish refactor * fix regression * tweak type hints * delint * manual rebase * WIP: Fixes for honeywell migration to climate-1.0 (#24938) * add type hints * code tidy-up * Fixes for incomfort migration to climate-1.0 (#24936) * delint type hints * no async unless await * revert: no async unless await * revert: no async unless await 2 * delint * fix typo * Fix homekit_controller on climate-1.0 (#24948) * Fix tests on climate-1.0 branch * As part of climate-1.0, make state return the heating-cooling.current characteristic * Fixes from review * lint * Fix imports * Migrate stibel_eltron * Fix lint * Migrate coolmaster to climate 1.0 (#24967) * Migrate coolmaster to climate 1.0 * fix lint errors * More lint fixes * Fix demo to work with UI * Migrate spider * Demo update * Updated frontend to 20190705.0 * Fix boost mode (#24980) * Prepare Netatmo for climate 1.0 (#24973) * Migration Netatmo * Address comments * Update climate.py * Migrate ephember * Migrate Sensibo * Implemented review comments (#24942) * Migrate ESPHome * Migrate MQTT * Migrate Nest * Migrate melissa * Initial/partial migration of ST * Migrate ST * Remove Away mode (#24995) * Migrate evohome, cache access tokens (#24491) * add water_heater, add storage - initial commit * add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint * Add Broker, Water Heater & Refactor add missing code desiderata * update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker * bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() * support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change * store at_expires as naive UTC remove debug code delint tidy up exception handling delint add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker add water_heater, add storage - initial commit delint add missing code desiderata update honeywell client library & CODEOWNER add auth_tokens code, refactor & delint refactor for broker delint bugfix - loc_idx may not be 0 more refactor - ensure pure async more refactoring appears all r/o attributes are working tweak precsion, DHW & delint remove unused code remove unused code 2 remove unused code, refactor _save_auth_tokens() support RoundThermostat bugfix opmode, switch to util.dt, add until=1h revert breaking change store at_expires as naive UTC remove debug code delint tidy up exception handling delint * update CODEOWNERS * fix regression * fix requirements * migrate to climate-1.0 * tweaking * de-lint * TCS working? & delint * tweaking * TCS code finalised * remove available() logic * refactor _switchpoints() * tidy up switchpoint code * tweak * teaking device_state_attributes * some refactoring * move PRESET_CUSTOM back to evohome * move CONF_ACCESS_TOKEN_EXPIRES CONF_REFRESH_TOKEN back to evohome * refactor SP code and dt conversion * delinted * delinted * remove water_heater * fix regression * Migrate homekit * Cleanup away mode * Fix tests * add helpers * fix tests melissa * Fix nehueat * fix zwave * add more tests * fix deconz * Fix climate test emulate_hue * fix tests * fix dyson tests * fix demo with new layout * fix honeywell * Switch homekit_controller to use HVAC_MODE_HEAT_COOL instead of HVAC_MODE_AUTO (#25009) * Lint * PyLint * Pylint * fix fritzbox tests * Fix google * Fix all tests * Fix lint * Fix auto for homekit like controler * Fix lint * fix lint
2019-07-08 12:00:24 +00:00
elif preset_mode == PRESET_ECO:
await self.async_set_temperature(temperature=self.data.eco_temperature)
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
@property
def min_temp(self) -> int:
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
"""Return the minimum temperature."""
return MIN_TEMPERATURE
@property
def max_temp(self) -> int:
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
"""Return the maximum temperature."""
return MAX_TEMPERATURE
@property
def extra_state_attributes(self) -> ClimateExtraAttributes:
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
"""Return the device specific state attributes."""
attrs: ClimateExtraAttributes = {
ATTR_STATE_BATTERY_LOW: self.data.battery_low,
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
}
# the following attributes are available since fritzos 7
if self.data.battery_level is not None:
attrs[ATTR_BATTERY_LEVEL] = self.data.battery_level
if self.data.holiday_active is not None:
attrs[ATTR_STATE_HOLIDAY_MODE] = self.data.holiday_active
if self.data.summer_active is not None:
attrs[ATTR_STATE_SUMMER_MODE] = self.data.summer_active
if self.data.window_open is not None:
attrs[ATTR_STATE_WINDOW_OPEN] = self.data.window_open
Add AVM fritzbox smarthome component (#10688) * initial commit Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix failed flake8 tests Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add fritzhome files to .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong module import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too general exception Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove blank line Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix wrong import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix issue with operations Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * incorporate review comments Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * adapt to supported_features Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change checking of kwargs to canonical way Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unused self._state Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Don't overwrite the platform domain Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove parenthesis from import without line break Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Do not pass hass to the components on init Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove check for available in current_operation Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Remove redundant logging message Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add blank line between standard and hass imports Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Use states from base climate component Also add the new state STATE_MANUAL to the base. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add reconnect when access failed Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add device specific attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * group the imports from the same module Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * change domain data to fritz instance This let us use the fritz instance to reconnect from platform without accessing protected attributes. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix typo Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform from fritzhome to fritzbox Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * Add device_state_attributes Add attributes to have compatiblity to fritzdect. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add support for multiple fritzboxes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix pylint issues Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fixed pyfritzhome version Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix import Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * fix component name in requirements_all.txt Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * upgrade pyfritzhome to 0.3.7 Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * rename platform/component also in .coveragerc Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use DEFAULT_HOST when no host is in dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add config schema for dict Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove check The check since since the config scheme takes case. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add check for empty devices Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * use standard attribute from base class Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove STATE_MANUAL from operation list Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove set DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * don't pass hass to the SwitchDevice Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unsed DEFAULT_HOST Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * refactored device attributes Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * add info output if no fritzbox is configured Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * small fixes according review comment Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove unneeded default value Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove non required code from try..except block Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * line break for line that is too long Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> * remove too many empty lines Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2018-04-17 10:40:36 +00:00
return attrs