Support systems w/o circuits (#64779)

This commit is contained in:
Hans Oischinger 2022-01-24 11:18:54 +01:00 committed by GitHub
parent 201229d20c
commit 8d6880ab85
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 45 additions and 69 deletions

View file

@ -25,7 +25,6 @@ from .const import (
HEATING_TYPE_TO_CREATOR_METHOD,
PLATFORMS,
VICARE_API,
VICARE_CIRCUITS,
VICARE_DEVICE_CONFIG,
HeatingType,
)
@ -127,9 +126,6 @@ def setup_vicare_api(hass, entry):
device,
HEATING_TYPE_TO_CREATOR_METHOD[HeatingType(entry.data[CONF_HEATING_TYPE])],
)()
hass.data[DOMAIN][entry.entry_id][VICARE_CIRCUITS] = hass.data[DOMAIN][
entry.entry_id
][VICARE_API].circuits
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:

View file

@ -22,13 +22,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import ViCareRequiredKeysMixin
from .const import (
DOMAIN,
VICARE_API,
VICARE_CIRCUITS,
VICARE_DEVICE_CONFIG,
VICARE_NAME,
)
from .const import DOMAIN, VICARE_API, VICARE_DEVICE_CONFIG, VICARE_NAME
_LOGGER = logging.getLogger(__name__)
@ -163,20 +157,12 @@ async def async_setup_entry(
if entity is not None:
entities.append(entity)
for description in CIRCUIT_SENSORS:
for circuit in hass.data[DOMAIN][config_entry.entry_id][VICARE_CIRCUITS]:
suffix = ""
if len(hass.data[DOMAIN][config_entry.entry_id][VICARE_CIRCUITS]) > 1:
suffix = f" {circuit.id}"
entity = await hass.async_add_executor_job(
_build_entity,
f"{name} {description.name}{suffix}",
circuit,
hass.data[DOMAIN][config_entry.entry_id][VICARE_DEVICE_CONFIG],
description,
)
if entity is not None:
entities.append(entity)
try:
await _entities_from_descriptions(
hass, name, entities, CIRCUIT_SENSORS, api.circuits, config_entry
)
except PyViCareNotSupportedFeatureError:
_LOGGER.info("No circuits found")
try:
await _entities_from_descriptions(

View file

@ -33,7 +33,6 @@ from .const import (
CONF_HEATING_TYPE,
DOMAIN,
VICARE_API,
VICARE_CIRCUITS,
VICARE_DEVICE_CONFIG,
VICARE_NAME,
)
@ -112,19 +111,22 @@ async def async_setup_entry(
entities = []
for circuit in hass.data[DOMAIN][config_entry.entry_id][VICARE_CIRCUITS]:
suffix = ""
if len(hass.data[DOMAIN][config_entry.entry_id][VICARE_CIRCUITS]) > 1:
suffix = f" {circuit.id}"
entity = _build_entity(
f"{name} Heating{suffix}",
hass.data[DOMAIN][config_entry.entry_id][VICARE_API],
hass.data[DOMAIN][config_entry.entry_id][VICARE_DEVICE_CONFIG],
circuit,
config_entry.data[CONF_HEATING_TYPE],
)
if entity is not None:
entities.append(entity)
try:
for circuit in hass.data[DOMAIN][config_entry.entry_id][VICARE_API].circuits:
suffix = ""
if len(hass.data[DOMAIN][config_entry.entry_id][VICARE_API].circuits) > 1:
suffix = f" {circuit.id}"
entity = _build_entity(
f"{name} Heating{suffix}",
hass.data[DOMAIN][config_entry.entry_id][VICARE_API],
hass.data[DOMAIN][config_entry.entry_id][VICARE_DEVICE_CONFIG],
circuit,
config_entry.data[CONF_HEATING_TYPE],
)
if entity is not None:
entities.append(entity)
except PyViCareNotSupportedFeatureError:
_LOGGER.info("No circuits found")
platform = entity_platform.async_get_current_platform()

View file

@ -16,7 +16,6 @@ PLATFORMS = [
VICARE_DEVICE_CONFIG = "device_conf"
VICARE_API = "api"
VICARE_CIRCUITS = "circuits"
VICARE_NAME = "ViCare"
CONF_CIRCUIT = "circuit"

View file

@ -35,7 +35,6 @@ from . import ViCareRequiredKeysMixin
from .const import (
DOMAIN,
VICARE_API,
VICARE_CIRCUITS,
VICARE_DEVICE_CONFIG,
VICARE_NAME,
VICARE_UNIT_TO_DEVICE_CLASS,
@ -380,20 +379,12 @@ async def async_setup_entry(
if entity is not None:
entities.append(entity)
for description in CIRCUIT_SENSORS:
for circuit in hass.data[DOMAIN][config_entry.entry_id][VICARE_CIRCUITS]:
suffix = ""
if len(hass.data[DOMAIN][config_entry.entry_id][VICARE_CIRCUITS]) > 1:
suffix = f" {circuit.id}"
entity = await hass.async_add_executor_job(
_build_entity,
f"{name} {description.name}{suffix}",
circuit,
hass.data[DOMAIN][config_entry.entry_id][VICARE_DEVICE_CONFIG],
description,
)
if entity is not None:
entities.append(entity)
try:
await _entities_from_descriptions(
hass, name, entities, CIRCUIT_SENSORS, api.circuits, config_entry
)
except PyViCareNotSupportedFeatureError:
_LOGGER.info("No circuits found")
try:
await _entities_from_descriptions(

View file

@ -22,7 +22,6 @@ from .const import (
CONF_HEATING_TYPE,
DOMAIN,
VICARE_API,
VICARE_CIRCUITS,
VICARE_DEVICE_CONFIG,
VICARE_NAME,
)
@ -78,19 +77,22 @@ async def async_setup_entry(
name = VICARE_NAME
entities = []
for circuit in hass.data[DOMAIN][config_entry.entry_id][VICARE_CIRCUITS]:
suffix = ""
if len(hass.data[DOMAIN][config_entry.entry_id][VICARE_CIRCUITS]) > 1:
suffix = f" {circuit.id}"
entity = _build_entity(
f"{name} Water{suffix}",
hass.data[DOMAIN][config_entry.entry_id][VICARE_API],
circuit,
hass.data[DOMAIN][config_entry.entry_id][VICARE_DEVICE_CONFIG],
config_entry.data[CONF_HEATING_TYPE],
)
if entity is not None:
entities.append(entity)
try:
for circuit in hass.data[DOMAIN][config_entry.entry_id][VICARE_API].circuits:
suffix = ""
if len(hass.data[DOMAIN][config_entry.entry_id][VICARE_API].circuits) > 1:
suffix = f" {circuit.id}"
entity = _build_entity(
f"{name} Water{suffix}",
hass.data[DOMAIN][config_entry.entry_id][VICARE_API],
circuit,
hass.data[DOMAIN][config_entry.entry_id][VICARE_DEVICE_CONFIG],
config_entry.data[CONF_HEATING_TYPE],
)
if entity is not None:
entities.append(entity)
except PyViCareNotSupportedFeatureError:
_LOGGER.info("No circuits found")
async_add_entities(entities)