mirror of
https://github.com/home-assistant/core.git
synced 2026-09-24 07:25:52 -05:00
* care about all devices
* use first device for diagnostics
* update constants
* handle multiple devices
* handle multiple devices
* handle multiple devices
* handle multiple devices
* handle multiple devices
* code style
* code style
* code style
* code style
* code style
* remove unused import
* remove unused import
* use has_entity_name and add serial to device name
* use has_entity_name and add serial to device name
* use has_entity_name and add serial to device name
* use has_entity_name and add serial to device name
* use has_entity_name and add serial to device name
* remove unused constant
* Update const.py
* Update binary_sensor.py
* change format
* change format
* fix line duplication
* fix line duplication
* change format
* fix typo
* use serial in device name if multiple devices are found
* add common base class
* use base class
* Update __init__.py
* Update __init__.py
* Update __init__.py
* Update sensor.py
* Update binary_sensor.py
* correct import
* use base class
* fix cdestyle findings
* fix pylint findings
* fix mypy findings
* fix codestyle finidings
* move has_entity_name to base class
* Revert "fix mypy findings"
This reverts commit 2d78801a69.
* fix type issue
* move multiple device handling
* fix import
* remove special handling for device name
* extract api getter
* Update __init__.py
* Update __init__.py
* Update entity.py
* Update button.py
* Update binary_sensor.py
* Update climate.py
* Update sensor.py
* Update water_heater.py
* Apply suggestions from code review
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Update __init__.py
* fix mypy & black
* move get_device to utils
* rename const
* Apply suggestions from code review
Co-authored-by: Robert Resch <robert@resch.dev>
* store device in config entry
* extract types
* fix diagnostics
* handle new platform
* handle api rate limit
* add types
* add types
* rename
* add types
* ignore gateways for now
* Update .coveragerc
* adjust types
* fix merge issues
* rename
* Update types.py
* fix type
* add test method
* simplify
* ignore unused devices
* Apply suggestions from code review
Co-authored-by: Robert Resch <robert@resch.dev>
* fix findings
* handle unsupported devices
* Apply suggestions from code review
Co-authored-by: Robert Resch <robert@resch.dev>
* Update types.py
* fix format
* adjust variable naming
* Update conftest.py
* Update conftest.py
* remove kw_only
* Apply suggestions from code review
* Update __init__.py
* Update binary_sensor.py
* Update button.py
* Update climate.py
* Update const.py
* Update diagnostics.py
* Update number.py
* Update sensor.py
* Update types.py
* Update water_heater.py
* fix comment
* Apply suggestions from code review
Co-authored-by: Erik Montnemery <erik@montnemery.com>
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
77 lines
2.4 KiB
Python
77 lines
2.4 KiB
Python
"""ViCare helpers functions."""
|
|
import logging
|
|
|
|
from PyViCare.PyViCareDevice import Device as PyViCareDevice
|
|
from PyViCare.PyViCareDeviceConfig import PyViCareDeviceConfig
|
|
from PyViCare.PyViCareHeatingDevice import (
|
|
HeatingDeviceWithComponent as PyViCareHeatingDeviceComponent,
|
|
)
|
|
from PyViCare.PyViCareUtils import PyViCareNotSupportedFeatureError
|
|
|
|
from homeassistant.config_entries import ConfigEntry
|
|
|
|
from .const import CONF_HEATING_TYPE, HEATING_TYPE_TO_CREATOR_METHOD, HeatingType
|
|
from .types import ViCareRequiredKeysMixin
|
|
|
|
_LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
def get_device(
|
|
entry: ConfigEntry, device_config: PyViCareDeviceConfig
|
|
) -> PyViCareDevice:
|
|
"""Get device for device config."""
|
|
return getattr(
|
|
device_config,
|
|
HEATING_TYPE_TO_CREATOR_METHOD[HeatingType(entry.data[CONF_HEATING_TYPE])],
|
|
)()
|
|
|
|
|
|
def is_supported(
|
|
name: str,
|
|
entity_description: ViCareRequiredKeysMixin,
|
|
vicare_device,
|
|
) -> bool:
|
|
"""Check if the PyViCare device supports the requested sensor."""
|
|
try:
|
|
entity_description.value_getter(vicare_device)
|
|
_LOGGER.debug("Found entity %s", name)
|
|
return True
|
|
except PyViCareNotSupportedFeatureError:
|
|
_LOGGER.debug("Feature not supported %s", name)
|
|
except AttributeError as error:
|
|
_LOGGER.debug("Feature not supported %s: %s", name, error)
|
|
return False
|
|
|
|
|
|
def get_burners(device: PyViCareDevice) -> list[PyViCareHeatingDeviceComponent]:
|
|
"""Return the list of burners."""
|
|
try:
|
|
return device.burners
|
|
except PyViCareNotSupportedFeatureError:
|
|
_LOGGER.debug("No burners found")
|
|
except AttributeError as error:
|
|
_LOGGER.debug("No burners found: %s", error)
|
|
return []
|
|
|
|
|
|
def get_circuits(device: PyViCareDevice) -> list[PyViCareHeatingDeviceComponent]:
|
|
"""Return the list of circuits."""
|
|
try:
|
|
return device.circuits
|
|
except PyViCareNotSupportedFeatureError:
|
|
_LOGGER.debug("No circuits found")
|
|
except AttributeError as error:
|
|
_LOGGER.debug("No circuits found: %s", error)
|
|
return []
|
|
|
|
|
|
def get_compressors(device: PyViCareDevice) -> list[PyViCareHeatingDeviceComponent]:
|
|
"""Return the list of compressors."""
|
|
try:
|
|
return device.compressors
|
|
except PyViCareNotSupportedFeatureError:
|
|
_LOGGER.debug("No compressors found")
|
|
except AttributeError as error:
|
|
_LOGGER.debug("No compressors found: %s", error)
|
|
return []
|