mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 10:17:09 +00:00
Fix types in ViCare integration (#101926)
* fix type * fix return type * fix type * fix type * Apply suggestions from code review * Update climate.py * Apply suggestions from code review Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com> * Update __init__.py * Update climate.py * Update __init__.py * Apply suggestions from code review Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com> * Update binary_sensor.py * Update button.py * Update sensor.py --------- Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
This commit is contained in:
parent
6a6f6fd99d
commit
ae7bb60677
@ -1,11 +1,12 @@
|
|||||||
"""The ViCare integration."""
|
"""The ViCare integration."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from collections.abc import Callable
|
from collections.abc import Callable, Mapping
|
||||||
from contextlib import suppress
|
from contextlib import suppress
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
from PyViCare.PyViCare import PyViCare
|
from PyViCare.PyViCare import PyViCare
|
||||||
from PyViCare.PyViCareDevice import Device
|
from PyViCare.PyViCareDevice import Device
|
||||||
@ -59,7 +60,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def vicare_login(hass, entry_data):
|
def vicare_login(hass: HomeAssistant, entry_data: Mapping[str, Any]) -> PyViCare:
|
||||||
"""Login via PyVicare API."""
|
"""Login via PyVicare API."""
|
||||||
vicare_api = PyViCare()
|
vicare_api = PyViCare()
|
||||||
vicare_api.setCacheDuration(DEFAULT_SCAN_INTERVAL)
|
vicare_api.setCacheDuration(DEFAULT_SCAN_INTERVAL)
|
||||||
@ -72,7 +73,7 @@ def vicare_login(hass, entry_data):
|
|||||||
return vicare_api
|
return vicare_api
|
||||||
|
|
||||||
|
|
||||||
def setup_vicare_api(hass, entry):
|
def setup_vicare_api(hass: HomeAssistant, entry: ConfigEntry) -> None:
|
||||||
"""Set up PyVicare API."""
|
"""Set up PyVicare API."""
|
||||||
vicare_api = vicare_login(hass, entry.data)
|
vicare_api = vicare_login(hass, entry.data)
|
||||||
|
|
||||||
|
@ -96,7 +96,9 @@ GLOBAL_SENSORS: tuple[ViCareBinarySensorEntityDescription, ...] = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def _build_entity(name, vicare_api, device_config, sensor):
|
def _build_entity(
|
||||||
|
name: str, vicare_api, device_config, sensor: ViCareBinarySensorEntityDescription
|
||||||
|
):
|
||||||
"""Create a ViCare binary sensor entity."""
|
"""Create a ViCare binary sensor entity."""
|
||||||
try:
|
try:
|
||||||
sensor.value_getter(vicare_api)
|
sensor.value_getter(vicare_api)
|
||||||
@ -117,8 +119,12 @@ def _build_entity(name, vicare_api, device_config, sensor):
|
|||||||
|
|
||||||
|
|
||||||
async def _entities_from_descriptions(
|
async def _entities_from_descriptions(
|
||||||
hass, entities, sensor_descriptions, iterables, config_entry
|
hass: HomeAssistant,
|
||||||
):
|
entities: list[ViCareBinarySensor],
|
||||||
|
sensor_descriptions: tuple[ViCareBinarySensorEntityDescription, ...],
|
||||||
|
iterables,
|
||||||
|
config_entry: ConfigEntry,
|
||||||
|
) -> None:
|
||||||
"""Create entities from descriptions and list of burners/circuits."""
|
"""Create entities from descriptions and list of burners/circuits."""
|
||||||
for description in sensor_descriptions:
|
for description in sensor_descriptions:
|
||||||
for current in iterables:
|
for current in iterables:
|
||||||
|
@ -46,7 +46,9 @@ BUTTON_DESCRIPTIONS: tuple[ViCareButtonEntityDescription, ...] = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def _build_entity(name, vicare_api, device_config, description):
|
def _build_entity(
|
||||||
|
name: str, vicare_api, device_config, description: ViCareButtonEntityDescription
|
||||||
|
):
|
||||||
"""Create a ViCare button entity."""
|
"""Create a ViCare button entity."""
|
||||||
_LOGGER.debug("Found device %s", name)
|
_LOGGER.debug("Found device %s", name)
|
||||||
try:
|
try:
|
||||||
|
@ -67,7 +67,7 @@ VICARE_HOLD_MODE_OFF = "off"
|
|||||||
VICARE_TEMP_HEATING_MIN = 3
|
VICARE_TEMP_HEATING_MIN = 3
|
||||||
VICARE_TEMP_HEATING_MAX = 37
|
VICARE_TEMP_HEATING_MAX = 37
|
||||||
|
|
||||||
VICARE_TO_HA_HVAC_HEATING = {
|
VICARE_TO_HA_HVAC_HEATING: dict[str, HVACMode] = {
|
||||||
VICARE_MODE_FORCEDREDUCED: HVACMode.OFF,
|
VICARE_MODE_FORCEDREDUCED: HVACMode.OFF,
|
||||||
VICARE_MODE_OFF: HVACMode.OFF,
|
VICARE_MODE_OFF: HVACMode.OFF,
|
||||||
VICARE_MODE_DHW: HVACMode.OFF,
|
VICARE_MODE_DHW: HVACMode.OFF,
|
||||||
@ -146,15 +146,15 @@ class ViCareClimate(ViCareEntity, ClimateEntity):
|
|||||||
_attr_target_temperature_step = PRECISION_WHOLE
|
_attr_target_temperature_step = PRECISION_WHOLE
|
||||||
_attr_preset_modes = list(HA_TO_VICARE_PRESET_HEATING)
|
_attr_preset_modes = list(HA_TO_VICARE_PRESET_HEATING)
|
||||||
_current_action: bool | None = None
|
_current_action: bool | None = None
|
||||||
|
_current_mode: str | None = None
|
||||||
|
|
||||||
def __init__(self, name, api, circuit, device_config):
|
def __init__(self, name, api, circuit, device_config) -> None:
|
||||||
"""Initialize the climate device."""
|
"""Initialize the climate device."""
|
||||||
super().__init__(device_config)
|
super().__init__(device_config)
|
||||||
self._attr_name = name
|
self._attr_name = name
|
||||||
self._api = api
|
self._api = api
|
||||||
self._circuit = circuit
|
self._circuit = circuit
|
||||||
self._attributes: dict[str, Any] = {}
|
self._attributes: dict[str, Any] = {}
|
||||||
self._current_mode = None
|
|
||||||
self._current_program = None
|
self._current_program = None
|
||||||
self._attr_unique_id = f"{device_config.getConfig().serial}-{circuit.id}"
|
self._attr_unique_id = f"{device_config.getConfig().serial}-{circuit.id}"
|
||||||
|
|
||||||
@ -230,7 +230,9 @@ class ViCareClimate(ViCareEntity, ClimateEntity):
|
|||||||
@property
|
@property
|
||||||
def hvac_mode(self) -> HVACMode | None:
|
def hvac_mode(self) -> HVACMode | None:
|
||||||
"""Return current hvac mode."""
|
"""Return current hvac mode."""
|
||||||
return VICARE_TO_HA_HVAC_HEATING.get(self._current_mode)
|
if self._current_mode is None:
|
||||||
|
return None
|
||||||
|
return VICARE_TO_HA_HVAC_HEATING.get(self._current_mode, None)
|
||||||
|
|
||||||
def set_hvac_mode(self, hvac_mode: HVACMode) -> None:
|
def set_hvac_mode(self, hvac_mode: HVACMode) -> None:
|
||||||
"""Set a new hvac mode on the ViCare API."""
|
"""Set a new hvac mode on the ViCare API."""
|
||||||
|
@ -573,7 +573,9 @@ COMPRESSOR_SENSORS: tuple[ViCareSensorEntityDescription, ...] = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def _build_entity(name, vicare_api, device_config, sensor):
|
def _build_entity(
|
||||||
|
name: str, vicare_api, device_config, sensor: ViCareSensorEntityDescription
|
||||||
|
):
|
||||||
"""Create a ViCare sensor entity."""
|
"""Create a ViCare sensor entity."""
|
||||||
_LOGGER.debug("Found device %s", name)
|
_LOGGER.debug("Found device %s", name)
|
||||||
try:
|
try:
|
||||||
@ -595,8 +597,12 @@ def _build_entity(name, vicare_api, device_config, sensor):
|
|||||||
|
|
||||||
|
|
||||||
async def _entities_from_descriptions(
|
async def _entities_from_descriptions(
|
||||||
hass, entities, sensor_descriptions, iterables, config_entry
|
hass: HomeAssistant,
|
||||||
):
|
entities: list[ViCareSensor],
|
||||||
|
sensor_descriptions: tuple[ViCareSensorEntityDescription, ...],
|
||||||
|
iterables,
|
||||||
|
config_entry: ConfigEntry,
|
||||||
|
) -> None:
|
||||||
"""Create entities from descriptions and list of burners/circuits."""
|
"""Create entities from descriptions and list of burners/circuits."""
|
||||||
for description in sensor_descriptions:
|
for description in sensor_descriptions:
|
||||||
for current in iterables:
|
for current in iterables:
|
||||||
|
@ -99,7 +99,7 @@ class ViCareWater(ViCareEntity, WaterHeaterEntity):
|
|||||||
_attr_max_temp = VICARE_TEMP_WATER_MAX
|
_attr_max_temp = VICARE_TEMP_WATER_MAX
|
||||||
_attr_operation_list = list(HA_TO_VICARE_HVAC_DHW)
|
_attr_operation_list = list(HA_TO_VICARE_HVAC_DHW)
|
||||||
|
|
||||||
def __init__(self, name, api, circuit, device_config):
|
def __init__(self, name, api, circuit, device_config) -> None:
|
||||||
"""Initialize the DHW water_heater device."""
|
"""Initialize the DHW water_heater device."""
|
||||||
super().__init__(device_config)
|
super().__init__(device_config)
|
||||||
self._attr_name = name
|
self._attr_name = name
|
||||||
|
Loading…
x
Reference in New Issue
Block a user