Skip to content

Commit

Permalink
Do not fail MQTT setup if select's configured via yaml can't be valid…
Browse files Browse the repository at this point in the history
…ated (home-assistant#102318)

Add select
  • Loading branch information
jbouwh authored Oct 19, 2023
1 parent e6e2aa0 commit 54c8049
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 22 deletions.
6 changes: 1 addition & 5 deletions homeassistant/components/mqtt/config_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
lawn_mower as lawn_mower_platform,
lock as lock_platform,
number as number_platform,
select as select_platform,
sensor as sensor_platform,
switch as switch_platform,
update as update_platform,
Expand Down Expand Up @@ -81,10 +80,7 @@
[number_platform.PLATFORM_SCHEMA_MODERN], # type: ignore[has-type]
),
Platform.SCENE.value: vol.All(cv.ensure_list, [dict]),
Platform.SELECT.value: vol.All(
cv.ensure_list,
[select_platform.PLATFORM_SCHEMA_MODERN], # type: ignore[has-type]
),
Platform.SELECT.value: vol.All(cv.ensure_list, [dict]),
Platform.SENSOR.value: vol.All(
cv.ensure_list,
[sensor_platform.PLATFORM_SCHEMA_MODERN], # type: ignore[has-type]
Expand Down
27 changes: 10 additions & 17 deletions homeassistant/components/mqtt/select.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
from __future__ import annotations

from collections.abc import Callable
import functools
import logging

import voluptuous as vol
Expand All @@ -15,7 +14,7 @@
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.restore_state import RestoreEntity
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from homeassistant.helpers.typing import ConfigType

from . import subscription
from .config import MQTT_RW_SCHEMA
Expand All @@ -31,7 +30,7 @@
from .mixins import (
MQTT_ENTITY_COMMON_SCHEMA,
MqttEntity,
async_setup_entry_helper,
async_mqtt_entry_helper,
write_state_on_attr_change,
)
from .models import (
Expand Down Expand Up @@ -73,21 +72,15 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up MQTT select through YAML and through MQTT discovery."""
setup = functools.partial(
_async_setup_entity, hass, async_add_entities, config_entry=config_entry
await async_mqtt_entry_helper(
hass,
config_entry,
MqttSelect,
select.DOMAIN,
async_add_entities,
DISCOVERY_SCHEMA,
PLATFORM_SCHEMA_MODERN,
)
await async_setup_entry_helper(hass, select.DOMAIN, setup, DISCOVERY_SCHEMA)


async def _async_setup_entity(
hass: HomeAssistant,
async_add_entities: AddEntitiesCallback,
config: ConfigType,
config_entry: ConfigEntry,
discovery_data: DiscoveryInfoType | None = None,
) -> None:
"""Set up the MQTT select."""
async_add_entities([MqttSelect(hass, config, config_entry, discovery_data)])


class MqttSelect(MqttEntity, SelectEntity, RestoreEntity):
Expand Down

0 comments on commit 54c8049

Please sign in to comment.