mirror of
https://github.com/home-assistant/core.git
synced 2025-08-15 10:31:39 +02:00
Fix imports and merging errors - add slots attr
This commit is contained in:
@@ -10,6 +10,8 @@ import re
|
|||||||
import time
|
import time
|
||||||
from typing import TYPE_CHECKING, Any
|
from typing import TYPE_CHECKING, Any
|
||||||
|
|
||||||
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import CONF_DEVICE, CONF_PLATFORM
|
from homeassistant.const import CONF_DEVICE, CONF_PLATFORM
|
||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
@@ -38,8 +40,8 @@ from .const import (
|
|||||||
DOMAIN,
|
DOMAIN,
|
||||||
SUPPORTED_COMPONENTS,
|
SUPPORTED_COMPONENTS,
|
||||||
)
|
)
|
||||||
from .models import DATA_MQTT, MqttOriginInfo, ReceiveMessage
|
from .models import DATA_MQTT, MqttComponentConfig, MqttOriginInfo, ReceiveMessage
|
||||||
from .schemas import MQTT_ORIGIN_INFO_SCHEMA
|
from .schemas import DEVICE_DISCOVERY_SCHEMA, MQTT_ORIGIN_INFO_SCHEMA, SHARED_OPTIONS
|
||||||
from .util import async_forward_entry_setup_and_setup_discovery
|
from .util import async_forward_entry_setup_and_setup_discovery
|
||||||
|
|
||||||
ABBREVIATIONS_SET = set(ABBREVIATIONS)
|
ABBREVIATIONS_SET = set(ABBREVIATIONS)
|
||||||
@@ -178,7 +180,7 @@ def _generate_device_cleanup_config(
|
|||||||
hass: HomeAssistant, object_id: str, node_id: str | None
|
hass: HomeAssistant, object_id: str, node_id: str | None
|
||||||
) -> dict[str, Any]:
|
) -> dict[str, Any]:
|
||||||
"""Generate a cleanup message on device cleanup."""
|
"""Generate a cleanup message on device cleanup."""
|
||||||
mqtt_data = get_mqtt_data(hass)
|
mqtt_data = hass.data[DATA_MQTT]
|
||||||
device_discover_id: str = f"{node_id} {object_id}" if node_id else object_id
|
device_discover_id: str = f"{node_id} {object_id}" if node_id else object_id
|
||||||
config: dict[str, Any] = {CONF_DEVICE: {}, CONF_COMPONENTS: {}}
|
config: dict[str, Any] = {CONF_DEVICE: {}, CONF_COMPONENTS: {}}
|
||||||
comp_config = config[CONF_COMPONENTS]
|
comp_config = config[CONF_COMPONENTS]
|
||||||
|
@@ -422,7 +422,7 @@ class MqttData:
|
|||||||
tags: dict[str, dict[str, MQTTTagScanner]] = field(default_factory=dict)
|
tags: dict[str, dict[str, MQTTTagScanner]] = field(default_factory=dict)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass(slots=True)
|
||||||
class MqttComponentConfig:
|
class MqttComponentConfig:
|
||||||
"""(component, object_id, node_id, discovery_payload)."""
|
"""(component, object_id, node_id, discovery_payload)."""
|
||||||
|
|
||||||
@@ -431,5 +431,6 @@ class MqttComponentConfig:
|
|||||||
node_id: str | None
|
node_id: str | None
|
||||||
discovery_payload: MQTTDiscoveryPayload
|
discovery_payload: MQTTDiscoveryPayload
|
||||||
|
|
||||||
|
|
||||||
DATA_MQTT: HassKey[MqttData] = HassKey("mqtt")
|
DATA_MQTT: HassKey[MqttData] = HassKey("mqtt")
|
||||||
DATA_MQTT_AVAILABLE: HassKey[asyncio.Future[bool]] = HassKey("mqtt_client_available")
|
DATA_MQTT_AVAILABLE: HassKey[asyncio.Future[bool]] = HassKey("mqtt_client_available")
|
||||||
|
@@ -3,6 +3,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
@@ -156,17 +157,6 @@ MQTT_AVAILABILITY_SCHEMA = MQTT_AVAILABILITY_SINGLE_SCHEMA.extend(
|
|||||||
MQTT_AVAILABILITY_LIST_SCHEMA.schema
|
MQTT_AVAILABILITY_LIST_SCHEMA.schema
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def validate_device_has_at_least_one_identifier(value: ConfigType) -> ConfigType:
|
|
||||||
"""Validate that a device info entry has at least one identifying value."""
|
|
||||||
if value.get(CONF_IDENTIFIERS) or value.get(CONF_CONNECTIONS):
|
|
||||||
return value
|
|
||||||
raise vol.Invalid(
|
|
||||||
"Device must have at least one identifying value in "
|
|
||||||
"'identifiers' and/or 'connections'"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
MQTT_ENTITY_DEVICE_INFO_SCHEMA = vol.All(
|
MQTT_ENTITY_DEVICE_INFO_SCHEMA = vol.All(
|
||||||
cv.deprecated(CONF_DEPRECATED_VIA_HUB, CONF_VIA_DEVICE),
|
cv.deprecated(CONF_DEPRECATED_VIA_HUB, CONF_VIA_DEVICE),
|
||||||
vol.Schema(
|
vol.Schema(
|
||||||
@@ -230,4 +220,4 @@ DEVICE_DISCOVERY_SCHEMA = MQTT_AVAILABILITY_SCHEMA.extend(
|
|||||||
vol.Optional(CONF_QOS): valid_qos_schema,
|
vol.Optional(CONF_QOS): valid_qos_schema,
|
||||||
vol.Optional(CONF_ENCODING): cv.string,
|
vol.Optional(CONF_ENCODING): cv.string,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user