homeassistant-stubs 2024.8.0b0__py3-none-any.whl → 2024.8.0b2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  2. homeassistant-stubs/components/assist_pipeline/audio_enhancer.pyi +1 -5
  3. homeassistant-stubs/components/assist_pipeline/const.pyi +3 -1
  4. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +5 -10
  5. homeassistant-stubs/components/doorbird/__init__.pyi +2 -2
  6. homeassistant-stubs/components/doorbird/repairs.pyi +12 -0
  7. homeassistant-stubs/components/knx/binary_sensor.pyi +2 -2
  8. homeassistant-stubs/components/knx/button.pyi +2 -2
  9. homeassistant-stubs/components/knx/climate.pyi +2 -1
  10. homeassistant-stubs/components/knx/cover.pyi +2 -2
  11. homeassistant-stubs/components/knx/date.pyi +2 -1
  12. homeassistant-stubs/components/knx/datetime.pyi +2 -1
  13. homeassistant-stubs/components/knx/fan.pyi +2 -2
  14. homeassistant-stubs/components/knx/knx_entity.pyi +9 -1
  15. homeassistant-stubs/components/knx/light.pyi +6 -6
  16. homeassistant-stubs/components/knx/notify.pyi +2 -1
  17. homeassistant-stubs/components/knx/number.pyi +2 -1
  18. homeassistant-stubs/components/knx/project.pyi +2 -1
  19. homeassistant-stubs/components/knx/scene.pyi +2 -2
  20. homeassistant-stubs/components/knx/schema.pyi +1 -1
  21. homeassistant-stubs/components/knx/select.pyi +2 -1
  22. homeassistant-stubs/components/knx/sensor.pyi +1 -1
  23. homeassistant-stubs/components/knx/storage/config_store.pyi +4 -2
  24. homeassistant-stubs/components/knx/switch.pyi +7 -6
  25. homeassistant-stubs/components/knx/text.pyi +2 -1
  26. homeassistant-stubs/components/knx/time.pyi +2 -4
  27. homeassistant-stubs/components/knx/validation.pyi +4 -0
  28. homeassistant-stubs/components/knx/weather.pyi +2 -1
  29. homeassistant-stubs/components/linkplay/utils.pyi +10 -0
  30. homeassistant-stubs/components/tedee/lock.pyi +1 -1
  31. homeassistant-stubs/components/unifi/sensor.pyi +1 -0
  32. homeassistant-stubs/helpers/entity_platform.pyi +1 -1
  33. {homeassistant_stubs-2024.8.0b0.dist-info → homeassistant_stubs-2024.8.0b2.dist-info}/METADATA +2 -2
  34. {homeassistant_stubs-2024.8.0b0.dist-info → homeassistant_stubs-2024.8.0b2.dist-info}/RECORD +36 -35
  35. {homeassistant_stubs-2024.8.0b0.dist-info → homeassistant_stubs-2024.8.0b2.dist-info}/LICENSE +0 -0
  36. {homeassistant_stubs-2024.8.0b0.dist-info → homeassistant_stubs-2024.8.0b2.dist-info}/WHEEL +0 -0
@@ -1,4 +1,4 @@
1
- from .const import DOMAIN as DOMAIN, EVENT_RECORDING as EVENT_RECORDING
1
+ from .const import DOMAIN as DOMAIN, EVENT_RECORDING as EVENT_RECORDING, SAMPLES_PER_CHUNK as SAMPLES_PER_CHUNK, SAMPLE_CHANNELS as SAMPLE_CHANNELS, SAMPLE_RATE as SAMPLE_RATE, SAMPLE_WIDTH as SAMPLE_WIDTH
2
2
  from .error import PipelineNotFound as PipelineNotFound
3
3
  from .pipeline import AudioSettings as AudioSettings, Pipeline as Pipeline, PipelineEvent as PipelineEvent, PipelineEventCallback, PipelineEventType as PipelineEventType, PipelineStage, WakeWordSettings as WakeWordSettings, async_create_default_pipeline as async_create_default_pipeline, async_get_pipelines as async_get_pipelines, async_migrate_engine as async_migrate_engine, async_update_pipeline as async_update_pipeline
4
4
  from collections.abc import AsyncIterable
@@ -6,7 +6,7 @@ from homeassistant.components import stt
6
6
  from homeassistant.core import Context, HomeAssistant
7
7
  from homeassistant.helpers.typing import ConfigType
8
8
 
9
- __all__ = ['DOMAIN', 'async_create_default_pipeline', 'async_get_pipelines', 'async_migrate_engine', 'async_setup', 'async_pipeline_from_audio_stream', 'async_update_pipeline', 'AudioSettings', 'Pipeline', 'PipelineEvent', 'PipelineEventType', 'PipelineNotFound', 'WakeWordSettings', 'EVENT_RECORDING']
9
+ __all__ = ['DOMAIN', 'async_create_default_pipeline', 'async_get_pipelines', 'async_migrate_engine', 'async_setup', 'async_pipeline_from_audio_stream', 'async_update_pipeline', 'AudioSettings', 'Pipeline', 'PipelineEvent', 'PipelineEventType', 'PipelineNotFound', 'WakeWordSettings', 'EVENT_RECORDING', 'SAMPLES_PER_CHUNK', 'SAMPLE_RATE', 'SAMPLE_WIDTH', 'SAMPLE_CHANNELS']
10
10
 
11
11
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
12
12
  async def async_pipeline_from_audio_stream(hass: HomeAssistant, *, context: Context, event_callback: PipelineEventCallback, stt_metadata: stt.SpeechMetadata, stt_stream: AsyncIterable[bytes], wake_word_phrase: str | None = None, pipeline_id: str | None = None, conversation_id: str | None = None, tts_audio_output: str | None = None, wake_word_settings: WakeWordSettings | None = None, audio_settings: AudioSettings | None = None, device_id: str | None = None, start_stage: PipelineStage = ..., end_stage: PipelineStage = ...) -> None: ...
@@ -1,4 +1,5 @@
1
1
  import abc
2
+ from .const import BYTES_PER_CHUNK as BYTES_PER_CHUNK
2
3
  from _typeshed import Incomplete
3
4
  from abc import ABC, abstractmethod
4
5
  from dataclasses import dataclass
@@ -19,14 +20,9 @@ class AudioEnhancer(ABC, metaclass=abc.ABCMeta):
19
20
  def __init__(self, auto_gain: int, noise_suppression: int, is_vad_enabled: bool) -> None: ...
20
21
  @abstractmethod
21
22
  def enhance_chunk(self, audio: bytes, timestamp_ms: int) -> EnhancedAudioChunk: ...
22
- @property
23
- @abstractmethod
24
- def samples_per_chunk(self) -> int | None: ...
25
23
 
26
24
  class MicroVadEnhancer(AudioEnhancer):
27
25
  vad: Incomplete
28
26
  threshold: float
29
27
  def __init__(self, auto_gain: int, noise_suppression: int, is_vad_enabled: bool) -> None: ...
30
28
  def enhance_chunk(self, audio: bytes, timestamp_ms: int) -> EnhancedAudioChunk: ...
31
- @property
32
- def samples_per_chunk(self) -> int | None: ...
@@ -12,4 +12,6 @@ EVENT_RECORDING: Incomplete
12
12
  SAMPLE_RATE: int
13
13
  SAMPLE_WIDTH: int
14
14
  SAMPLE_CHANNELS: int
15
- SAMPLES_PER_CHUNK: int
15
+ MS_PER_CHUNK: int
16
+ SAMPLES_PER_CHUNK: Incomplete
17
+ BYTES_PER_CHUNK: Incomplete
@@ -1,6 +1,6 @@
1
1
  import asyncio
2
2
  from .audio_enhancer import AudioEnhancer as AudioEnhancer, EnhancedAudioChunk as EnhancedAudioChunk, MicroVadEnhancer as MicroVadEnhancer
3
- from .const import CONF_DEBUG_RECORDING_DIR as CONF_DEBUG_RECORDING_DIR, DATA_CONFIG as DATA_CONFIG, DATA_LAST_WAKE_UP as DATA_LAST_WAKE_UP, DATA_MIGRATIONS as DATA_MIGRATIONS, DOMAIN as DOMAIN, SAMPLES_PER_CHUNK as SAMPLES_PER_CHUNK, SAMPLE_CHANNELS as SAMPLE_CHANNELS, SAMPLE_RATE as SAMPLE_RATE, SAMPLE_WIDTH as SAMPLE_WIDTH, WAKE_WORD_COOLDOWN as WAKE_WORD_COOLDOWN
3
+ from .const import BYTES_PER_CHUNK as BYTES_PER_CHUNK, CONF_DEBUG_RECORDING_DIR as CONF_DEBUG_RECORDING_DIR, DATA_CONFIG as DATA_CONFIG, DATA_LAST_WAKE_UP as DATA_LAST_WAKE_UP, DATA_MIGRATIONS as DATA_MIGRATIONS, DOMAIN as DOMAIN, MS_PER_CHUNK as MS_PER_CHUNK, SAMPLES_PER_CHUNK as SAMPLES_PER_CHUNK, SAMPLE_CHANNELS as SAMPLE_CHANNELS, SAMPLE_RATE as SAMPLE_RATE, SAMPLE_WIDTH as SAMPLE_WIDTH, WAKE_WORD_COOLDOWN as WAKE_WORD_COOLDOWN
4
4
  from .error import DuplicateWakeUpDetectedError as DuplicateWakeUpDetectedError, IntentRecognitionError as IntentRecognitionError, PipelineError as PipelineError, PipelineNotFound as PipelineNotFound, SpeechToTextError as SpeechToTextError, TextToSpeechError as TextToSpeechError, WakeWordDetectionAborted as WakeWordDetectionAborted, WakeWordDetectionError as WakeWordDetectionError, WakeWordTimeoutError as WakeWordTimeoutError
5
5
  from .vad import AudioBuffer as AudioBuffer, VoiceActivityTimeout as VoiceActivityTimeout, VoiceCommandSegmenter as VoiceCommandSegmenter, chunk_samples as chunk_samples
6
6
  from _typeshed import Incomplete
@@ -109,14 +109,11 @@ class AudioSettings:
109
109
  auto_gain_dbfs: int = ...
110
110
  volume_multiplier: float = ...
111
111
  is_vad_enabled: bool = ...
112
- samples_per_chunk: int | None = ...
113
112
  silence_seconds: float = ...
114
113
  def __post_init__(self) -> None: ...
115
114
  @property
116
115
  def needs_processor(self) -> bool: ...
117
- @property
118
- def is_chunking_enabled(self) -> bool: ...
119
- def __init__(self, noise_suppression_level=..., auto_gain_dbfs=..., volume_multiplier=..., is_vad_enabled=..., samples_per_chunk=..., silence_seconds=...) -> None: ...
116
+ def __init__(self, noise_suppression_level=..., auto_gain_dbfs=..., volume_multiplier=..., is_vad_enabled=..., silence_seconds=...) -> None: ...
120
117
 
121
118
  @dataclass
122
119
  class PipelineRun:
@@ -142,12 +139,10 @@ class PipelineRun:
142
139
  debug_recording_thread: Thread | None = ...
143
140
  debug_recording_queue: Queue[str | bytes | None] | None = ...
144
141
  audio_enhancer: AudioEnhancer | None = ...
145
- audio_chunking_buffer: AudioBuffer | None = ...
142
+ audio_chunking_buffer: AudioBuffer = ...
146
143
  _device_id: str | None = ...
147
144
  def __post_init__(self) -> None: ...
148
145
  def __eq__(self, other: object) -> bool: ...
149
- @property
150
- def samples_per_chunk(self) -> int: ...
151
146
  def process_event(self, event: PipelineEvent) -> None: ...
152
147
  def start(self, device_id: str | None) -> None: ...
153
148
  async def end(self) -> None: ...
@@ -164,8 +159,8 @@ class PipelineRun:
164
159
  def _capture_chunk(self, audio_bytes: bytes | None) -> None: ...
165
160
  def _start_debug_recording_thread(self) -> None: ...
166
161
  async def _stop_debug_recording_thread(self) -> None: ...
167
- async def process_volume_only(self, audio_stream: AsyncIterable[bytes], sample_rate: int = ..., sample_width: int = ...) -> AsyncGenerator[EnhancedAudioChunk]: ...
168
- async def process_enhance_audio(self, audio_stream: AsyncIterable[bytes], sample_rate: int = ..., sample_width: int = ...) -> AsyncGenerator[EnhancedAudioChunk]: ...
162
+ async def process_volume_only(self, audio_stream: AsyncIterable[bytes]) -> AsyncGenerator[EnhancedAudioChunk]: ...
163
+ async def process_enhance_audio(self, audio_stream: AsyncIterable[bytes]) -> AsyncGenerator[EnhancedAudioChunk]: ...
169
164
  def __init__(self, hass, context, pipeline, start_stage, end_stage, event_callback, language=..., runner_data=..., intent_agent=..., tts_audio_output=..., wake_word_settings=..., audio_settings=..., id=..., debug_recording_thread=..., debug_recording_queue=..., audio_enhancer=..., audio_chunking_buffer=..., _device_id=...) -> None: ...
170
165
 
171
166
  def _multiply_volume(chunk: bytes, volume_multiplier: float) -> bytes: ...
@@ -3,7 +3,6 @@ from .device import ConfiguredDoorBird as ConfiguredDoorBird
3
3
  from .models import DoorBirdConfigEntry as DoorBirdConfigEntry, DoorBirdData as DoorBirdData
4
4
  from .view import DoorBirdRequestView as DoorBirdRequestView
5
5
  from _typeshed import Incomplete
6
- from homeassistant.components import persistent_notification as persistent_notification
7
6
  from homeassistant.const import CONF_HOST as CONF_HOST, CONF_NAME as CONF_NAME, CONF_PASSWORD as CONF_PASSWORD, CONF_TOKEN as CONF_TOKEN, CONF_USERNAME as CONF_USERNAME
8
7
  from homeassistant.core import HomeAssistant as HomeAssistant
9
8
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
@@ -12,9 +11,10 @@ from homeassistant.helpers.typing import ConfigType as ConfigType
12
11
 
13
12
  CONF_CUSTOM_URL: str
14
13
  CONFIG_SCHEMA: Incomplete
14
+ _LOGGER: Incomplete
15
15
 
16
16
  async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
17
17
  async def async_setup_entry(hass: HomeAssistant, entry: DoorBirdConfigEntry) -> bool: ...
18
18
  async def async_unload_entry(hass: HomeAssistant, entry: DoorBirdConfigEntry) -> bool: ...
19
- async def _async_register_events(hass: HomeAssistant, door_station: ConfiguredDoorBird) -> bool: ...
19
+ async def _async_register_events(hass: HomeAssistant, door_station: ConfiguredDoorBird, entry: DoorBirdConfigEntry) -> bool: ...
20
20
  async def _update_listener(hass: HomeAssistant, entry: DoorBirdConfigEntry) -> None: ...
@@ -0,0 +1,12 @@
1
+ from _typeshed import Incomplete
2
+ from homeassistant import data_entry_flow as data_entry_flow
3
+ from homeassistant.components.repairs import RepairsFlow as RepairsFlow
4
+ from homeassistant.core import HomeAssistant as HomeAssistant
5
+
6
+ class DoorBirdReloadConfirmRepairFlow(RepairsFlow):
7
+ entry_id: Incomplete
8
+ def __init__(self, entry_id: str) -> None: ...
9
+ async def async_step_init(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
10
+ async def async_step_confirm(self, user_input: dict[str, str] | None = None) -> data_entry_flow.FlowResult: ...
11
+
12
+ async def async_create_fix_flow(hass: HomeAssistant, issue_id: str, data: dict[str, str | int | float | None] | None) -> RepairsFlow: ...
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import ATTR_COUNTER as ATTR_COUNTER, ATTR_SOURCE as ATTR_SOURCE, DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from .schema import BinarySensorSchema as BinarySensorSchema
@@ -10,7 +11,6 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
10
11
  from homeassistant.helpers.restore_state import RestoreEntity as RestoreEntity
11
12
  from homeassistant.helpers.typing import ConfigType as ConfigType
12
13
  from typing import Any
13
- from xknx import XKNX as XKNX
14
14
  from xknx.devices import BinarySensor as XknxBinarySensor
15
15
 
16
16
  async def async_setup_entry(hass: HomeAssistant, config_entry: config_entries.ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
@@ -21,7 +21,7 @@ class KNXBinarySensor(KnxEntity, BinarySensorEntity, RestoreEntity):
21
21
  _attr_device_class: Incomplete
22
22
  _attr_force_update: Incomplete
23
23
  _attr_unique_id: Incomplete
24
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
24
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
25
25
  async def async_added_to_hass(self) -> None: ...
26
26
  @property
27
27
  def is_on(self) -> bool: ...
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import CONF_PAYLOAD_LENGTH as CONF_PAYLOAD_LENGTH, DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN, KNX_ADDRESS as KNX_ADDRESS
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from _typeshed import Incomplete
@@ -7,7 +8,6 @@ from homeassistant.const import CONF_ENTITY_CATEGORY as CONF_ENTITY_CATEGORY, CO
7
8
  from homeassistant.core import HomeAssistant as HomeAssistant
8
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
9
10
  from homeassistant.helpers.typing import ConfigType as ConfigType
10
- from xknx import XKNX as XKNX
11
11
  from xknx.devices import RawValue as XknxRawValue
12
12
 
13
13
  async def async_setup_entry(hass: HomeAssistant, config_entry: config_entries.ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
@@ -17,5 +17,5 @@ class KNXButton(KnxEntity, ButtonEntity):
17
17
  _payload: Incomplete
18
18
  _attr_entity_category: Incomplete
19
19
  _attr_unique_id: Incomplete
20
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
20
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
21
21
  async def async_press(self) -> None: ...
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import CONTROLLER_MODES as CONTROLLER_MODES, CURRENT_HVAC_ACTIONS as CURRENT_HVAC_ACTIONS, DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN, PRESET_MODES as PRESET_MODES
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from .schema import ClimateSchema as ClimateSchema
@@ -29,7 +30,7 @@ class KNXClimate(KnxEntity, ClimateEntity):
29
30
  _attr_unique_id: Incomplete
30
31
  default_hvac_mode: Incomplete
31
32
  _last_hvac_mode: Incomplete
32
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
33
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
33
34
  @property
34
35
  def current_temperature(self) -> float | None: ...
35
36
  @property
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from .schema import CoverSchema as CoverSchema
@@ -10,7 +11,6 @@ from homeassistant.core import HomeAssistant as HomeAssistant
10
11
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
12
  from homeassistant.helpers.typing import ConfigType as ConfigType
12
13
  from typing import Any
13
- from xknx import XKNX as XKNX
14
14
  from xknx.devices import Cover as XknxCover
15
15
 
16
16
  async def async_setup_entry(hass: HomeAssistant, config_entry: config_entries.ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
@@ -22,7 +22,7 @@ class KNXCover(KnxEntity, CoverEntity):
22
22
  _attr_supported_features: Incomplete
23
23
  _attr_device_class: Incomplete
24
24
  _attr_unique_id: Incomplete
25
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
25
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
26
26
  @property
27
27
  def current_cover_position(self) -> int | None: ...
28
28
  @property
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_STATE_ADDRESS as CONF_STATE_ADDRESS, CONF_SYNC_STATE as CONF_SYNC_STATE, DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN, KNX_ADDRESS as KNX_ADDRESS
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from _typeshed import Incomplete
@@ -19,7 +20,7 @@ class KNXDateEntity(KnxEntity, DateEntity, RestoreEntity):
19
20
  _device: XknxDateDevice
20
21
  _attr_entity_category: Incomplete
21
22
  _attr_unique_id: Incomplete
22
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
23
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
23
24
  async def async_added_to_hass(self) -> None: ...
24
25
  @property
25
26
  def native_value(self) -> dt_date | None: ...
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_STATE_ADDRESS as CONF_STATE_ADDRESS, CONF_SYNC_STATE as CONF_SYNC_STATE, DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN, KNX_ADDRESS as KNX_ADDRESS
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from _typeshed import Incomplete
@@ -19,7 +20,7 @@ class KNXDateTimeEntity(KnxEntity, DateTimeEntity, RestoreEntity):
19
20
  _device: XknxDateTimeDevice
20
21
  _attr_entity_category: Incomplete
21
22
  _attr_unique_id: Incomplete
22
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
23
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
23
24
  async def async_added_to_hass(self) -> None: ...
24
25
  @property
25
26
  def native_value(self) -> datetime | None: ...
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN, KNX_ADDRESS as KNX_ADDRESS
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from .schema import FanSchema as FanSchema
@@ -11,7 +12,6 @@ from homeassistant.helpers.typing import ConfigType as ConfigType
11
12
  from homeassistant.util.percentage import percentage_to_ranged_value as percentage_to_ranged_value, ranged_value_to_percentage as ranged_value_to_percentage
12
13
  from homeassistant.util.scaling import int_states_in_range as int_states_in_range
13
14
  from typing import Any, Final
14
- from xknx import XKNX as XKNX
15
15
  from xknx.devices import Fan as XknxFan
16
16
 
17
17
  DEFAULT_PERCENTAGE: Final[int]
@@ -24,7 +24,7 @@ class KNXFan(KnxEntity, FanEntity):
24
24
  _step_range: Incomplete
25
25
  _attr_entity_category: Incomplete
26
26
  _attr_unique_id: Incomplete
27
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
27
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
28
28
  async def async_set_percentage(self, percentage: int) -> None: ...
29
29
  @property
30
30
  def supported_features(self) -> FanEntityFeature: ...
@@ -1,13 +1,17 @@
1
1
  from . import KNXModule as KNXModule
2
2
  from .const import DOMAIN as DOMAIN
3
3
  from _typeshed import Incomplete
4
+ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
4
5
  from homeassistant.helpers.entity import Entity as Entity
5
6
  from xknx.devices import Device as XknxDevice
6
7
 
8
+ SIGNAL_ENTITY_REMOVE: Incomplete
9
+
7
10
  class KnxEntity(Entity):
8
11
  _attr_should_poll: bool
12
+ _knx_module: Incomplete
9
13
  _device: Incomplete
10
- def __init__(self, device: XknxDevice) -> None: ...
14
+ def __init__(self, knx_module: KNXModule, device: XknxDevice) -> None: ...
11
15
  @property
12
16
  def name(self) -> str: ...
13
17
  @property
@@ -16,3 +20,7 @@ class KnxEntity(Entity):
16
20
  def after_update_callback(self, _device: XknxDevice) -> None: ...
17
21
  async def async_added_to_hass(self) -> None: ...
18
22
  async def async_will_remove_from_hass(self) -> None: ...
23
+
24
+ class KnxUIEntity(KnxEntity):
25
+ _attr_unique_id: str
26
+ async def async_added_to_hass(self) -> None: ...
@@ -1,6 +1,6 @@
1
1
  from . import KNXModule as KNXModule
2
2
  from .const import CONF_SYNC_STATE as CONF_SYNC_STATE, ColorTempModes as ColorTempModes, DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN, KNX_ADDRESS as KNX_ADDRESS
3
- from .knx_entity import KnxEntity as KnxEntity
3
+ from .knx_entity import KnxEntity as KnxEntity, KnxUIEntity as KnxUIEntity
4
4
  from .schema import LightSchema as LightSchema
5
5
  from .storage.const import CONF_COLOR_TEMP_MAX as CONF_COLOR_TEMP_MAX, CONF_COLOR_TEMP_MIN as CONF_COLOR_TEMP_MIN, CONF_DEVICE_INFO as CONF_DEVICE_INFO, CONF_DPT as CONF_DPT, CONF_ENTITY as CONF_ENTITY, CONF_GA_BLUE_BRIGHTNESS as CONF_GA_BLUE_BRIGHTNESS, CONF_GA_BLUE_SWITCH as CONF_GA_BLUE_SWITCH, CONF_GA_BRIGHTNESS as CONF_GA_BRIGHTNESS, CONF_GA_COLOR as CONF_GA_COLOR, CONF_GA_COLOR_TEMP as CONF_GA_COLOR_TEMP, CONF_GA_GREEN_BRIGHTNESS as CONF_GA_GREEN_BRIGHTNESS, CONF_GA_GREEN_SWITCH as CONF_GA_GREEN_SWITCH, CONF_GA_HUE as CONF_GA_HUE, CONF_GA_PASSIVE as CONF_GA_PASSIVE, CONF_GA_RED_BRIGHTNESS as CONF_GA_RED_BRIGHTNESS, CONF_GA_RED_SWITCH as CONF_GA_RED_SWITCH, CONF_GA_SATURATION as CONF_GA_SATURATION, CONF_GA_STATE as CONF_GA_STATE, CONF_GA_SWITCH as CONF_GA_SWITCH, CONF_GA_WHITE_BRIGHTNESS as CONF_GA_WHITE_BRIGHTNESS, CONF_GA_WHITE_SWITCH as CONF_GA_WHITE_SWITCH, CONF_GA_WRITE as CONF_GA_WRITE
6
6
  from .storage.entity_store_schema import LightColorMode as LightColorMode
@@ -20,7 +20,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: config_entries.Co
20
20
  def _create_yaml_light(xknx: XKNX, config: ConfigType) -> XknxLight: ...
21
21
  def _create_ui_light(xknx: XKNX, knx_config: ConfigType, name: str) -> XknxLight: ...
22
22
 
23
- class _KnxLight(KnxEntity, LightEntity):
23
+ class _KnxLight(LightEntity):
24
24
  _attr_max_color_temp_kelvin: int
25
25
  _attr_min_color_temp_kelvin: int
26
26
  _device: XknxLight
@@ -45,18 +45,18 @@ class _KnxLight(KnxEntity, LightEntity):
45
45
  async def async_turn_on(self, **kwargs: Any) -> None: ...
46
46
  async def async_turn_off(self, **kwargs: Any) -> None: ...
47
47
 
48
- class KnxYamlLight(_KnxLight):
48
+ class KnxYamlLight(_KnxLight, KnxEntity):
49
49
  _device: XknxLight
50
50
  _attr_max_color_temp_kelvin: Incomplete
51
51
  _attr_min_color_temp_kelvin: Incomplete
52
52
  _attr_entity_category: Incomplete
53
53
  _attr_unique_id: Incomplete
54
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
54
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
55
55
  def _device_unique_id(self) -> str: ...
56
56
 
57
- class KnxUiLight(_KnxLight):
58
- _device: XknxLight
57
+ class KnxUiLight(_KnxLight, KnxUIEntity):
59
58
  _attr_has_entity_name: bool
59
+ _device: XknxLight
60
60
  _attr_max_color_temp_kelvin: Incomplete
61
61
  _attr_min_color_temp_kelvin: Incomplete
62
62
  _attr_entity_category: Incomplete
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN, KNX_ADDRESS as KNX_ADDRESS
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from _typeshed import Incomplete
@@ -29,5 +30,5 @@ class KNXNotify(KnxEntity, NotifyEntity):
29
30
  _device: XknxNotification
30
31
  _attr_entity_category: Incomplete
31
32
  _attr_unique_id: Incomplete
32
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
33
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
33
34
  async def async_send_message(self, message: str, title: str | None = None) -> None: ...
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_STATE_ADDRESS as CONF_STATE_ADDRESS, DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN, KNX_ADDRESS as KNX_ADDRESS
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from .schema import NumberSchema as NumberSchema
@@ -23,7 +24,7 @@ class KNXNumber(KnxEntity, RestoreNumber):
23
24
  _attr_entity_category: Incomplete
24
25
  _attr_unique_id: Incomplete
25
26
  _attr_native_unit_of_measurement: Incomplete
26
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
27
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
27
28
  async def async_added_to_hass(self) -> None: ...
28
29
  @property
29
30
  def native_value(self) -> float: ...
@@ -8,7 +8,8 @@ from homeassistant.helpers.storage import Store as Store
8
8
  from typing import Final
9
9
  from xknx import XKNX as XKNX
10
10
  from xknx.dpt import DPTBase
11
- from xknxproject.models import Device as Device, GroupAddress as GroupAddressModel, KNXProject as KNXProjectModel, ProjectInfo as ProjectInfo
11
+ from xknx.telegram.address import DeviceAddressableType as DeviceAddressableType
12
+ from xknxproject.models import DPTType as DPTType, Device as Device, GroupAddress as GroupAddressModel, KNXProject as KNXProjectModel, ProjectInfo as ProjectInfo
12
13
 
13
14
  _LOGGER: Incomplete
14
15
  STORAGE_VERSION: Final[int]
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN, KNX_ADDRESS as KNX_ADDRESS
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from .schema import SceneSchema as SceneSchema
@@ -9,7 +10,6 @@ from homeassistant.core import HomeAssistant as HomeAssistant
9
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
11
  from homeassistant.helpers.typing import ConfigType as ConfigType
11
12
  from typing import Any
12
- from xknx import XKNX as XKNX
13
13
  from xknx.devices import Scene as XknxScene
14
14
 
15
15
  async def async_setup_entry(hass: HomeAssistant, config_entry: config_entries.ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
@@ -18,5 +18,5 @@ class KNXScene(KnxEntity, Scene):
18
18
  _device: XknxScene
19
19
  _attr_entity_category: Incomplete
20
20
  _attr_unique_id: Incomplete
21
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
21
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
22
22
  async def async_activate(self, **kwargs: Any) -> None: ...
@@ -1,6 +1,6 @@
1
1
  import voluptuous as vol
2
2
  from .const import CONF_INVERT as CONF_INVERT, CONF_KNX_EXPOSE as CONF_KNX_EXPOSE, CONF_PAYLOAD_LENGTH as CONF_PAYLOAD_LENGTH, CONF_RESET_AFTER as CONF_RESET_AFTER, CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_STATE_ADDRESS as CONF_STATE_ADDRESS, CONF_SYNC_STATE as CONF_SYNC_STATE, ColorTempModes as ColorTempModes, KNX_ADDRESS as KNX_ADDRESS
3
- from .validation import dpt_base_type_validator as dpt_base_type_validator, ga_list_validator as ga_list_validator, ga_validator as ga_validator, numeric_type_validator as numeric_type_validator, sensor_type_validator as sensor_type_validator, string_type_validator as string_type_validator, sync_state_validator as sync_state_validator
3
+ from .validation import backwards_compatible_xknx_climate_enum_member as backwards_compatible_xknx_climate_enum_member, dpt_base_type_validator as dpt_base_type_validator, ga_list_validator as ga_list_validator, ga_validator as ga_validator, numeric_type_validator as numeric_type_validator, sensor_type_validator as sensor_type_validator, string_type_validator as string_type_validator, sync_state_validator as sync_state_validator
4
4
  from _typeshed import Incomplete
5
5
  from abc import ABC
6
6
  from collections import OrderedDict
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import CONF_PAYLOAD_LENGTH as CONF_PAYLOAD_LENGTH, CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_STATE_ADDRESS as CONF_STATE_ADDRESS, CONF_SYNC_STATE as CONF_SYNC_STATE, DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN, KNX_ADDRESS as KNX_ADDRESS
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from .schema import SelectSchema as SelectSchema
@@ -22,7 +23,7 @@ class KNXSelect(KnxEntity, SelectEntity, RestoreEntity):
22
23
  _attr_current_option: Incomplete
23
24
  _attr_entity_category: Incomplete
24
25
  _attr_unique_id: Incomplete
25
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
26
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
26
27
  async def async_added_to_hass(self) -> None: ...
27
28
  def after_update_callback(self, device: XknxDevice) -> None: ...
28
29
  def option_from_payload(self, payload: int | None) -> str | None: ...
@@ -42,7 +42,7 @@ class KNXSensor(KnxEntity, SensorEntity):
42
42
  _attr_unique_id: Incomplete
43
43
  _attr_native_unit_of_measurement: Incomplete
44
44
  _attr_state_class: Incomplete
45
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
45
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
46
46
  @property
47
47
  def native_value(self) -> StateType: ...
48
48
  @property
@@ -1,5 +1,5 @@
1
1
  from ..const import DOMAIN as DOMAIN
2
- from ..knx_entity import KnxEntity as KnxEntity
2
+ from ..knx_entity import SIGNAL_ENTITY_REMOVE as SIGNAL_ENTITY_REMOVE
3
3
  from .const import CONF_DATA as CONF_DATA
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable
@@ -7,6 +7,7 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.const import CONF_PLATFORM as CONF_PLATFORM, Platform as Platform
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.helpers import entity_registry as er
10
+ from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
10
11
  from homeassistant.helpers.storage import Store as Store
11
12
  from homeassistant.util.ulid import ulid_now as ulid_now
12
13
  from typing import Any, Final, TypedDict
@@ -22,11 +23,12 @@ class KNXConfigStoreModel(TypedDict):
22
23
 
23
24
  class KNXConfigStore:
24
25
  hass: Incomplete
26
+ config_entry: Incomplete
25
27
  _store: Incomplete
26
28
  data: Incomplete
27
29
  entities: Incomplete
28
30
  async_add_entity: Incomplete
29
- def __init__(self, hass: HomeAssistant, entry: ConfigEntry) -> None: ...
31
+ def __init__(self, hass: HomeAssistant, config_entry: ConfigEntry) -> None: ...
30
32
  async def load_data(self) -> None: ...
31
33
  async def create_entity(self, platform: Platform, data: dict[str, Any]) -> str | None: ...
32
34
  def get_entity_config(self, entity_id: str) -> dict[str, Any]: ...
@@ -1,6 +1,6 @@
1
1
  from . import KNXModule as KNXModule
2
2
  from .const import CONF_INVERT as CONF_INVERT, CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_SYNC_STATE as CONF_SYNC_STATE, DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN, KNX_ADDRESS as KNX_ADDRESS
3
- from .knx_entity import KnxEntity as KnxEntity
3
+ from .knx_entity import KnxEntity as KnxEntity, KnxUIEntity as KnxUIEntity
4
4
  from .schema import SwitchSchema as SwitchSchema
5
5
  from .storage.const import CONF_DEVICE_INFO as CONF_DEVICE_INFO, CONF_ENTITY as CONF_ENTITY, CONF_GA_PASSIVE as CONF_GA_PASSIVE, CONF_GA_STATE as CONF_GA_STATE, CONF_GA_SWITCH as CONF_GA_SWITCH, CONF_GA_WRITE as CONF_GA_WRITE
6
6
  from _typeshed import Incomplete
@@ -13,12 +13,11 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
13
13
  from homeassistant.helpers.restore_state import RestoreEntity as RestoreEntity
14
14
  from homeassistant.helpers.typing import ConfigType as ConfigType
15
15
  from typing import Any
16
- from xknx import XKNX as XKNX
17
16
  from xknx.devices import Switch as XknxSwitch
18
17
 
19
18
  async def async_setup_entry(hass: HomeAssistant, config_entry: config_entries.ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
20
19
 
21
- class _KnxSwitch(KnxEntity, SwitchEntity, RestoreEntity):
20
+ class _KnxSwitch(SwitchEntity, RestoreEntity):
22
21
  _device: XknxSwitch
23
22
  async def async_added_to_hass(self) -> None: ...
24
23
  @property
@@ -26,14 +25,16 @@ class _KnxSwitch(KnxEntity, SwitchEntity, RestoreEntity):
26
25
  async def async_turn_on(self, **kwargs: Any) -> None: ...
27
26
  async def async_turn_off(self, **kwargs: Any) -> None: ...
28
27
 
29
- class KnxYamlSwitch(_KnxSwitch):
28
+ class KnxYamlSwitch(_KnxSwitch, KnxEntity):
29
+ _device: XknxSwitch
30
30
  _attr_entity_category: Incomplete
31
31
  _attr_device_class: Incomplete
32
32
  _attr_unique_id: Incomplete
33
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
33
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
34
34
 
35
- class KnxUiSwitch(_KnxSwitch):
35
+ class KnxUiSwitch(_KnxSwitch, KnxUIEntity):
36
36
  _attr_has_entity_name: bool
37
+ _device: XknxSwitch
37
38
  _attr_entity_category: Incomplete
38
39
  _attr_unique_id: Incomplete
39
40
  _attr_device_info: Incomplete
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_STATE_ADDRESS as CONF_STATE_ADDRESS, DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN, KNX_ADDRESS as KNX_ADDRESS
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from _typeshed import Incomplete
@@ -21,7 +22,7 @@ class KNXText(KnxEntity, TextEntity, RestoreEntity):
21
22
  _attr_pattern: Incomplete
22
23
  _attr_entity_category: Incomplete
23
24
  _attr_unique_id: Incomplete
24
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
25
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
25
26
  async def async_added_to_hass(self) -> None: ...
26
27
  @property
27
28
  def native_value(self) -> str | None: ...
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import CONF_RESPOND_TO_READ as CONF_RESPOND_TO_READ, CONF_STATE_ADDRESS as CONF_STATE_ADDRESS, CONF_SYNC_STATE as CONF_SYNC_STATE, DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN, KNX_ADDRESS as KNX_ADDRESS
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from _typeshed import Incomplete
@@ -9,12 +10,9 @@ from homeassistant.core import HomeAssistant as HomeAssistant
9
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
11
  from homeassistant.helpers.restore_state import RestoreEntity as RestoreEntity
11
12
  from homeassistant.helpers.typing import ConfigType as ConfigType
12
- from typing import Final
13
13
  from xknx import XKNX as XKNX
14
14
  from xknx.devices import TimeDevice as XknxTimeDevice
15
15
 
16
- _TIME_TRANSLATION_FORMAT: Final[str]
17
-
18
16
  async def async_setup_entry(hass: HomeAssistant, config_entry: config_entries.ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
19
17
  def _create_xknx_device(xknx: XKNX, config: ConfigType) -> XknxTimeDevice: ...
20
18
 
@@ -22,7 +20,7 @@ class KNXTimeEntity(KnxEntity, TimeEntity, RestoreEntity):
22
20
  _device: XknxTimeDevice
23
21
  _attr_entity_category: Incomplete
24
22
  _attr_unique_id: Incomplete
25
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
23
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
26
24
  async def async_added_to_hass(self) -> None: ...
27
25
  @property
28
26
  def native_value(self) -> dt_time | None: ...
@@ -1,5 +1,7 @@
1
+ import voluptuous as vol
1
2
  from _typeshed import Incomplete
2
3
  from collections.abc import Callable as Callable
4
+ from enum import Enum
3
5
  from typing import Any
4
6
  from xknx.dpt import DPTBase
5
7
 
@@ -20,3 +22,5 @@ ia_validator: Incomplete
20
22
  def ip_v4_validator(value: Any, multicast: bool | None = None) -> str: ...
21
23
 
22
24
  sync_state_validator: Incomplete
25
+
26
+ def backwards_compatible_xknx_climate_enum_member(enumClass: type[Enum]) -> vol.All: ...
@@ -1,3 +1,4 @@
1
+ from . import KNXModule as KNXModule
1
2
  from .const import DATA_KNX_CONFIG as DATA_KNX_CONFIG, DOMAIN as DOMAIN
2
3
  from .knx_entity import KnxEntity as KnxEntity
3
4
  from .schema import WeatherSchema as WeatherSchema
@@ -21,7 +22,7 @@ class KNXWeather(KnxEntity, WeatherEntity):
21
22
  _attr_native_wind_speed_unit: Incomplete
22
23
  _attr_unique_id: Incomplete
23
24
  _attr_entity_category: Incomplete
24
- def __init__(self, xknx: XKNX, config: ConfigType) -> None: ...
25
+ def __init__(self, knx_module: KNXModule, config: ConfigType) -> None: ...
25
26
  @property
26
27
  def native_temperature(self) -> float | None: ...
27
28
  @property
@@ -1,9 +1,19 @@
1
1
  from typing import Final
2
2
 
3
3
  MANUFACTURER_ARTSOUND: Final[str]
4
+ MANUFACTURER_ARYLIC: Final[str]
5
+ MANUFACTURER_IEAST: Final[str]
4
6
  MANUFACTURER_GENERIC: Final[str]
5
7
  MODELS_ARTSOUND_SMART_ZONE4: Final[str]
6
8
  MODELS_ARTSOUND_SMART_HYDE: Final[str]
9
+ MODELS_ARYLIC_S50: Final[str]
10
+ MODELS_ARYLIC_S50_PRO: Final[str]
11
+ MODELS_ARYLIC_A30: Final[str]
12
+ MODELS_ARYLIC_A50S: Final[str]
13
+ MODELS_ARYLIC_UP2STREAM_AMP_V3: Final[str]
14
+ MODELS_ARYLIC_UP2STREAM_AMP_V4: Final[str]
15
+ MODELS_ARYLIC_UP2STREAM_PRO_V3: Final[str]
16
+ MODELS_IEAST_AUDIOCAST_M5: Final[str]
7
17
  MODELS_GENERIC: Final[str]
8
18
 
9
19
  def get_info_from_project(project: str) -> tuple[str, str]: ...
@@ -15,7 +15,7 @@ class TedeeLockEntity(TedeeEntity, LockEntity):
15
15
  _attr_name: Incomplete
16
16
  def __init__(self, lock: TedeeLock, coordinator: TedeeApiCoordinator) -> None: ...
17
17
  @property
18
- def is_locked(self) -> bool: ...
18
+ def is_locked(self) -> bool | None: ...
19
19
  @property
20
20
  def is_unlocking(self) -> bool: ...
21
21
  @property
@@ -18,6 +18,7 @@ from homeassistant.core import Event as core_Event, HomeAssistant as HomeAssista
18
18
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
19
19
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
20
20
  from homeassistant.helpers.typing import StateType as StateType
21
+ from homeassistant.util import slugify as slugify
21
22
  from typing import Literal
22
23
 
23
24
  def async_bandwidth_sensor_allowed_fn(hub: UnifiHub, obj_id: str) -> bool: ...
@@ -90,7 +90,7 @@ class EntityPlatform:
90
90
  async def async_destroy(self) -> None: ...
91
91
  async def async_remove_entity(self, entity_id: str) -> None: ...
92
92
  async def async_extract_from_service(self, service_call: ServiceCall, expand_group: bool = True) -> list[Entity]: ...
93
- def async_register_entity_service(self, name: str, schema: VolDictType | VolSchemaType | None, func: str | Callable[..., Any], required_features: Iterable[int] | None = None, supports_response: SupportsResponse = ...) -> None: ...
93
+ def async_register_entity_service(self, name: str, schema: VolDictType | VolSchemaType, func: str | Callable[..., Any], required_features: Iterable[int] | None = None, supports_response: SupportsResponse = ...) -> None: ...
94
94
  async def _async_update_entity_states(self) -> None: ...
95
95
 
96
96
  current_platform: ContextVar[EntityPlatform | None]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: homeassistant-stubs
3
- Version: 2024.8.0b0
3
+ Version: 2024.8.0b2
4
4
  Summary: PEP 484 typing stubs for Home Assistant Core
5
5
  Home-page: https://github.com/KapJI/homeassistant-stubs
6
6
  License: MIT
@@ -16,7 +16,7 @@ Classifier: Programming Language :: Python :: 3
16
16
  Classifier: Programming Language :: Python :: 3.12
17
17
  Classifier: Topic :: Software Development
18
18
  Classifier: Typing :: Typed
19
- Requires-Dist: homeassistant (==2024.8.0b0)
19
+ Requires-Dist: homeassistant (==2024.8.0b2)
20
20
  Project-URL: Bug Tracker, https://github.com/KapJI/homeassistant-stubs/issues
21
21
  Project-URL: Repository, https://github.com/KapJI/homeassistant-stubs
22
22
  Project-URL: Release Notes, https://github.com/KapJI/homeassistant-stubs/releases
@@ -316,12 +316,12 @@ homeassistant-stubs/components/aseko_pool_live/const.pyi,sha256=khiPPfo2eMEa2_FD
316
316
  homeassistant-stubs/components/aseko_pool_live/coordinator.pyi,sha256=wUF0htSNl9Gw9VaVtgi66upbOlB4DamSrG2vlSM2PQY,497
317
317
  homeassistant-stubs/components/aseko_pool_live/entity.pyi,sha256=cexy3847oioICs7VNu7cfSeH5k4bh_CQdCFjv_fKqmU,648
318
318
  homeassistant-stubs/components/aseko_pool_live/sensor.pyi,sha256=0zqxVappqnh7SSSmUOQ6iIgOjtSF3P092LPbGNHqyqE,1252
319
- homeassistant-stubs/components/assist_pipeline/__init__.pyi,sha256=SU6QxrpMvHMkZSpjvkbPL419vSYyliS4Ni0zCef18D0,1663
320
- homeassistant-stubs/components/assist_pipeline/audio_enhancer.pyi,sha256=0T8kjgXL1qYRZ9xm7nxsYZFcwnG7ZRWxrc63ekN40eY,1096
321
- homeassistant-stubs/components/assist_pipeline/const.pyi,sha256=BlUG0SZxBveGl8iAX6ZWzSv46OTAzzqTYwR252PjTPQ,357
319
+ homeassistant-stubs/components/assist_pipeline/__init__.pyi,sha256=inGuDhvYrb4pDBC32FV_bRhH17P9cD_Q12dDw36lSgs,1868
320
+ homeassistant-stubs/components/assist_pipeline/audio_enhancer.pyi,sha256=kxSUHr7dp4a3GTRBf4qWP-UlHSrfLnr9lNiwRojdWsc,1000
321
+ homeassistant-stubs/components/assist_pipeline/const.pyi,sha256=wFRqcb7fXmDi3V_Hyj7-4ZPMx1QvWMt7b_Dp860NVLQ,410
322
322
  homeassistant-stubs/components/assist_pipeline/error.pyi,sha256=8PZnUHaKp95F74EGoO3POchwfWlji1__j3hsZw3J0ZY,758
323
323
  homeassistant-stubs/components/assist_pipeline/logbook.pyi,sha256=ei8z1A8SMImMAUV4yAQJvyt7D1XM_qal40W99LrP-To,566
324
- homeassistant-stubs/components/assist_pipeline/pipeline.pyi,sha256=keJXox-PwnLLj_2uoxdPWqQltk3IffUme__XxOTuxmY,14112
324
+ homeassistant-stubs/components/assist_pipeline/pipeline.pyi,sha256=LZV8U0Q66VV1_1mKXrPcEzjBQ-QBnToAaZWyEz05hJ4,13891
325
325
  homeassistant-stubs/components/assist_pipeline/ring_buffer.pyi,sha256=1MPTjcDWoqLB9hXcK7EL1uZP4V3F-D7wklgvXj_DD7U,386
326
326
  homeassistant-stubs/components/assist_pipeline/select.pyi,sha256=WcSTWtZcBMg4UIxiPx5alR8pir7xYoYaAcPQ4PiacfM,2040
327
327
  homeassistant-stubs/components/assist_pipeline/vad.pyi,sha256=_cxOw8DnI_dTPKkx5gxu3SnS7gDI-h4tj0cAmLK09fU,2274
@@ -761,7 +761,7 @@ homeassistant-stubs/components/dnsip/__init__.pyi,sha256=7lStWpjQOc9aW6CiRYHHI-1
761
761
  homeassistant-stubs/components/dnsip/config_flow.pyi,sha256=aloa64KH2stFT54bmkLtiBfLFI8SDP9L6sBq4Z3V0OM,1474
762
762
  homeassistant-stubs/components/dnsip/const.pyi,sha256=4g_fmFbDpRk4B9x4g6hNaFC_zaIvq6DbL8EzXgguv4Q,377
763
763
  homeassistant-stubs/components/dnsip/sensor.pyi,sha256=UV5oCHUHOMMZxoE4GcGMNxBhwlwvtJtrx4n_A_25WHY,1587
764
- homeassistant-stubs/components/doorbird/__init__.pyi,sha256=ZsUulCo5-J9iU1-YmU7hBRU0cQkCnaWSw9sWh1MP1nw,1445
764
+ homeassistant-stubs/components/doorbird/__init__.pyi,sha256=5M21amKULLH3KQy_pR0ViRVFJ_BI_1kCkjdDLqEAhKQ,1405
765
765
  homeassistant-stubs/components/doorbird/button.pyi,sha256=4Gl11TNuekZe-do-ojfRXsxdNWstJpuqurAfxCk3Eao,1872
766
766
  homeassistant-stubs/components/doorbird/camera.pyi,sha256=MCxFodZR7VzXnP5DggqBwD-9wVOqnnA0l0YiZ7_YHEY,1448
767
767
  homeassistant-stubs/components/doorbird/config_flow.pyi,sha256=-XfDzdW7ufCjVHN7HmK4zbcgO8wfCOi5ZSoTmV2Hecg,2605
@@ -771,6 +771,7 @@ homeassistant-stubs/components/doorbird/entity.pyi,sha256=uRVVcm9n046_IxDTOEnrxd
771
771
  homeassistant-stubs/components/doorbird/event.pyi,sha256=PQCRii5TtyU4f6xBS1Lk1qOcecFGAK8dRC07iR302LA,1338
772
772
  homeassistant-stubs/components/doorbird/logbook.pyi,sha256=QUXFiovDhHhgcMOnICiqDM5r71VP3QvswVAKZldaVr8,646
773
773
  homeassistant-stubs/components/doorbird/models.pyi,sha256=KNdAP2DgBxtPQ4A6-eKsfebS8N1mvyX1awoamlGzsaQ,466
774
+ homeassistant-stubs/components/doorbird/repairs.pyi,sha256=7lmmBPZTa2FpkjBie-kx9t86xO-DardC1NQ1cR7qSzA,725
774
775
  homeassistant-stubs/components/doorbird/util.pyi,sha256=LrI-frW3F9jxCwULZ57pwlPJ1LnTHgos7V61ND1PYns,532
775
776
  homeassistant-stubs/components/doorbird/view.pyi,sha256=3-X3TYU6s420puQBFdPotm_9UqcCwSszyBJeVzIfsWw,597
776
777
  homeassistant-stubs/components/dormakaba_dkey/__init__.pyi,sha256=JTXQ2YvKFzWdeObyNYCLkPuM8yK5gHVhioaNtKNh33s,1172
@@ -1510,43 +1511,43 @@ homeassistant-stubs/components/knocki/const.pyi,sha256=ApJjYGIfxEHQ112a2tGXF7SyT
1510
1511
  homeassistant-stubs/components/knocki/coordinator.pyi,sha256=SKCcJ_dNiD8JLraJjT6U8mOqSuK3_Y0xxJsLXbVdThY,770
1511
1512
  homeassistant-stubs/components/knocki/event.pyi,sha256=R2ZSVS8T3esGkWS-eokY5h8cYOJLRG622YAXP9DqMJI,1166
1512
1513
  homeassistant-stubs/components/knx/__init__.pyi,sha256=aHye53j5CRYG5YTY6O6nS0q_UGkD_xHcLqVAi2uXvCk,5104
1513
- homeassistant-stubs/components/knx/binary_sensor.pyi,sha256=BgPd0HLWOxttfdpnJKEgGjM2yGEOLJXInx6pZMAW2D8,1725
1514
- homeassistant-stubs/components/knx/button.pyi,sha256=VwWeklDIcJXqQ8n5e7p8mK7E0436HQHMjuv4hzCZr9U,1233
1515
- homeassistant-stubs/components/knx/climate.pyi,sha256=EVZZW2YJirOhB2xeiNnyPGOBS7-gOmwp2KYzQkiHP3E,2910
1514
+ homeassistant-stubs/components/knx/binary_sensor.pyi,sha256=nKmJyF73RJ8EW0e-_uaUfHd7101IiYGCqT5KG_vmGSs,1743
1515
+ homeassistant-stubs/components/knx/button.pyi,sha256=qq0W_pIluAaVnai2VMlco33v9qrE7KzT5-5BFyhVV6I,1251
1516
+ homeassistant-stubs/components/knx/climate.pyi,sha256=3wfLJxJdKFQn9TQZnidZoFWl1PEaxxrNv6r68OBiC64,2958
1516
1517
  homeassistant-stubs/components/knx/config_flow.pyi,sha256=9jQEjOqhkBoy7OmsDx4aIqHubKwpPdCIyjusl9Cs8XU,5367
1517
1518
  homeassistant-stubs/components/knx/const.pyi,sha256=y3uavAxO-5bnRkt4mKybMutxUX8VrvTcjo-jqDxbvQM,3117
1518
- homeassistant-stubs/components/knx/cover.pyi,sha256=39qF9WH6vHca2mGrLNVO2YwjtvPDlF2sMJteMqLvPaM,2343
1519
- homeassistant-stubs/components/knx/date.pyi,sha256=P9guu_kdcZ4cvjwGm5NNIdSJ1Gdoc6jmKl-jD_7y57I,1679
1520
- homeassistant-stubs/components/knx/datetime.pyi,sha256=F6UggEuJRU9R0CU1vXTka55J20nvXoklpCfLKRqxF_M,1710
1519
+ homeassistant-stubs/components/knx/cover.pyi,sha256=H_3ogI5Ud8xhSK0m6Lqpt7p0ov9scrTroOs4VjVGPG0,2361
1520
+ homeassistant-stubs/components/knx/date.pyi,sha256=roX4Nt7xl_QhnS4r1Rv4SpPBT_ooT-q4__fQdX19thY,1727
1521
+ homeassistant-stubs/components/knx/datetime.pyi,sha256=l1rVu0U50TCWlBMS9GNhXGCvFXwRT--FbFvXWb6yw7k,1758
1521
1522
  homeassistant-stubs/components/knx/device.pyi,sha256=FSHa06BdZOS9SAbCI9cPJ41KJPvSNA8CU5xpXqhUwtk,820
1522
1523
  homeassistant-stubs/components/knx/device_trigger.pyi,sha256=epT2yKCIkiFdO44NppDbiNYPL11rHQvpUVoOQUqlXpc,1803
1523
1524
  homeassistant-stubs/components/knx/diagnostics.pyi,sha256=9_gpNHVyA6NtbhXBNqQsv8bpEVqWooyw19fNO_JGxqc,757
1524
1525
  homeassistant-stubs/components/knx/expose.pyi,sha256=Fp-VSMzckYu7JvBOHZ8VbacNj6KRgzW_oLbYLHoj9Kg,2071
1525
- homeassistant-stubs/components/knx/fan.pyi,sha256=iD1pjzV4oRDiRgfR59CMgmdihBEL_Dq8zPv6PQtIfAs,2092
1526
- homeassistant-stubs/components/knx/knx_entity.pyi,sha256=YfpBPT3FdBwN71kaXXYMT5LY4GksSRYjwRELbooriik,670
1527
- homeassistant-stubs/components/knx/light.pyi,sha256=y0UFxaha96C5Pl-kb7y77Ly7YGPkbLsMYkfxPZHjl8k,4099
1528
- homeassistant-stubs/components/knx/notify.pyi,sha256=AQjcPnVpdOhQHv44UrfzLZz14gzlBl3G7SvEy6Y_jp4,2075
1529
- homeassistant-stubs/components/knx/number.pyi,sha256=6IjV1UviOXpBRO0mhzfo2yZCdykbJ4k43zduR0o6jQ0,1782
1530
- homeassistant-stubs/components/knx/project.pyi,sha256=bWUr71-anXkhvDG33YmoZBmURey7lobCfJtzHax7uYs,1663
1531
- homeassistant-stubs/components/knx/scene.pyi,sha256=alZdHrd4ovqIrhimmYXz4VCOJ3zglR3I8xaVDxSgDmw,1190
1532
- homeassistant-stubs/components/knx/schema.pyi,sha256=jZBZidebtVKkPZZBBjv5efktsP57zXMGehXDRoOMeOQ,8544
1533
- homeassistant-stubs/components/knx/select.pyi,sha256=Xd8Z_EnSnEX9DvzpPce6pNXMpu9v96yuIsHzQS4pAZU,1937
1534
- homeassistant-stubs/components/knx/sensor.pyi,sha256=dKLdUnyClzfuH_M7JJyf11sWNvXY-wPOrw6Hqd7Fl-o,3530
1526
+ homeassistant-stubs/components/knx/fan.pyi,sha256=MQuIyBAc0Yt4qqRSJmzO6FTpcZ8NKvE_DuE-09dwVKE,2110
1527
+ homeassistant-stubs/components/knx/knx_entity.pyi,sha256=tuyqOFjkpm6tekLPnt_Xn4YTT6iK7mlrS2I7iea1ze8,962
1528
+ homeassistant-stubs/components/knx/light.pyi,sha256=BLUEcRssVZdYEKZmrL5i-djkRbmGTgGEAyph7V6JRZ4,4151
1529
+ homeassistant-stubs/components/knx/notify.pyi,sha256=cpZQcSMW9W4BYJWp5tGCUdcaxlazk_ksDsS9MS6lps0,2123
1530
+ homeassistant-stubs/components/knx/number.pyi,sha256=J8ZWS_L4ljiluoD2ps7XTUBuTru2BDVwxzzZhRmJxN8,1830
1531
+ homeassistant-stubs/components/knx/project.pyi,sha256=-vxoEDsWZbdyj2agryGBg5FGyEtjtDNdSsuxF5pP5i0,1764
1532
+ homeassistant-stubs/components/knx/scene.pyi,sha256=R80Gcbz2Si1_IGHfQ76bIkbF4tEH5xFd9VYpfoZyAP4,1208
1533
+ homeassistant-stubs/components/knx/schema.pyi,sha256=qJygNCJsOa-DyDHVqtCZjgZfxrKdqQDkED3MAM-6I7c,8640
1534
+ homeassistant-stubs/components/knx/select.pyi,sha256=sJVUKbhrLCQA-u6PfarbaHFqi2__WBS4BPcrpnnm7gM,1985
1535
+ homeassistant-stubs/components/knx/sensor.pyi,sha256=NM58sDJHtWUtFy6g-6kRA8CRPuYj5tfr40R2zXb_LKA,3541
1535
1536
  homeassistant-stubs/components/knx/services.pyi,sha256=Jgj3lSHbQDS4jBsF_tZBRZ8ji-wCrRUXQ7pdPLLBd_E,1936
1536
1537
  homeassistant-stubs/components/knx/storage/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1537
- homeassistant-stubs/components/knx/storage/config_store.pyi,sha256=lTr4xgZGZGTUGFnREImXPki6BqUpl9vX75URnySGsWQ,1623
1538
+ homeassistant-stubs/components/knx/storage/config_store.pyi,sha256=uBa2ZliFat2kmwNpUWKfSeOfK8OVmWQyxd_WfJcg5DA,1773
1538
1539
  homeassistant-stubs/components/knx/storage/const.pyi,sha256=Iz0pWMLKrX-SLaW57lfb3QY0siM7tJIo8Jsuqzv_p5o,710
1539
1540
  homeassistant-stubs/components/knx/storage/entity_store_schema.pyi,sha256=VKy7FgNa5zMQfoigDvMUSwfeLh_tDKulWWeBthV4oPI,2372
1540
1541
  homeassistant-stubs/components/knx/storage/entity_store_validation.pyi,sha256=oKK9FLT_HD5nnhMvTVDYs2s61a9Q8JcClFKnIi_rSK0,806
1541
1542
  homeassistant-stubs/components/knx/storage/keyring.pyi,sha256=oTrE8GVCNVbPdtEwfER_jEpK_WT9aNzMYJAsF5ko1iA,548
1542
1543
  homeassistant-stubs/components/knx/storage/knx_selector.pyi,sha256=drkfKxQaDXvxpJXf-ziMck_fQfwp-QFQMeUxLBXFFPE,1029
1543
- homeassistant-stubs/components/knx/switch.pyi,sha256=I711nxSabgvi9eUbXLLD12papvPGIQ9eW7icUSfYIq8,2415
1544
+ homeassistant-stubs/components/knx/switch.pyi,sha256=fCNU5CAzNk2uGodGHEZNwO6c3PgfzoEUzRMEXXG8B9s,2485
1544
1545
  homeassistant-stubs/components/knx/telegrams.pyi,sha256=BiOEWLpGC9a2th91r4nCVlpGMV68m7RmUaVZdgaAUe8,1991
1545
- homeassistant-stubs/components/knx/text.pyi,sha256=wvkuO6mIatAWWOJI2Z7QrllSahtvYfnB2lnxseytn_Y,1732
1546
- homeassistant-stubs/components/knx/time.pyi,sha256=Wn73nkIa2idXjza9bMXLPVBNeAMXG6WAduBjbfoB5Ws,1742
1546
+ homeassistant-stubs/components/knx/text.pyi,sha256=Ii539xGmdaw7Z_rmagbhKYnNvJWuS89SbBkAD-6_3r4,1780
1547
+ homeassistant-stubs/components/knx/time.pyi,sha256=dbBQJAuOHnbe-el6jkLWPsufXuEeZk2hwmpyH54E2pU,1727
1547
1548
  homeassistant-stubs/components/knx/trigger.pyi,sha256=jYgHNrPjutHvGopE28NZAGZQbfmUEeyvZmtk0Job7xQ,1517
1548
- homeassistant-stubs/components/knx/validation.pyi,sha256=V4--dkfyqrjAmc-CQep3bPaneXdA2JxqABioQfOZsM0,681
1549
- homeassistant-stubs/components/knx/weather.pyi,sha256=sfBa11nP55Cxq-AHcenXvPtxQYU2JN3q77y3VJS2nWw,1790
1549
+ homeassistant-stubs/components/knx/validation.pyi,sha256=vT1rAC3zea2V_wWie61Wv0jUyvCbEFoQP19dyTXGgu4,818
1550
+ homeassistant-stubs/components/knx/weather.pyi,sha256=dZYc7IEwxcGN2kePx8SGynp9F72HnP85bXuVc455y8s,1838
1550
1551
  homeassistant-stubs/components/knx/websocket.pyi,sha256=hhE6xDxbvDDPFQBPYhkLbnKTcXVT6eZghxizzNYI2dU,2892
1551
1552
  homeassistant-stubs/components/kraken/__init__.pyi,sha256=e_5XJyq0DhzLh2H35IdXpBTe25EgXb79a7_jdA2X3bI,1770
1552
1553
  homeassistant-stubs/components/kraken/config_flow.pyi,sha256=RzWeA4GPx_LuBJhHbU7yLdyV4gIhpYQrmN0-t1C9y3k,1073
@@ -1662,7 +1663,7 @@ homeassistant-stubs/components/linkplay/__init__.pyi,sha256=idpzEsEHyu4EXfy0WX_k
1662
1663
  homeassistant-stubs/components/linkplay/config_flow.pyi,sha256=hNeUamBBir3bTbIJh1NsUXdVqZ-3emn9xkGbuENuj9s,876
1663
1664
  homeassistant-stubs/components/linkplay/const.pyi,sha256=rWT3SFRVo9UAulZ2cOIIZLDcsSvgXDgWjiGGp2jOpoY,121
1664
1665
  homeassistant-stubs/components/linkplay/media_player.pyi,sha256=lGyWmL3eGb6S_NvtwiGjQa4oovxmBx9SC784Mg7DWTY,3511
1665
- homeassistant-stubs/components/linkplay/utils.pyi,sha256=JDle3E-J69r9w4NkV-Ssv1njbvSA15ktt8nDC__nPSE,264
1666
+ homeassistant-stubs/components/linkplay/utils.pyi,sha256=ydxUsFlarrh7dZj60MZDqkdlO7E2fikdu4BKFVs8JCw,619
1666
1667
  homeassistant-stubs/components/litejet/__init__.pyi,sha256=kjhUyHTWKn3vZrYmvjhfZZPRYhrX2CFS_k2st-gTf_Q,615
1667
1668
  homeassistant-stubs/components/litejet/config_flow.pyi,sha256=8eb8zahVh3L4-Ak-NBQUZn_dLPHHfEacfwtSD3duAGA,905
1668
1669
  homeassistant-stubs/components/litejet/const.pyi,sha256=XIupv_a3TmfaeyfjsM2D-nqZhnLwVEJgavgXNun0LFc,201
@@ -2890,7 +2891,7 @@ homeassistant-stubs/components/tedee/const.pyi,sha256=cGy8HvBei_AN-UF7J6Xpr3_Jp4
2890
2891
  homeassistant-stubs/components/tedee/coordinator.pyi,sha256=RpX2DCaDuoTiI8ubflrt594RIHTt7FKWwrPdEbx-nmA,1690
2891
2892
  homeassistant-stubs/components/tedee/diagnostics.pyi,sha256=Tfo9925_W258LgXbaR_tA9Srh22EwmAKyaGkXSuI5ME,395
2892
2893
  homeassistant-stubs/components/tedee/entity.pyi,sha256=XQfXUjDQ_Awkyg5urrEhnDerKo3yyo5hUHssvSqfqDY,1033
2893
- homeassistant-stubs/components/tedee/lock.pyi,sha256=XKeEGADzCS50aiYHf3WtzAIeGaXNKdzHO8wyl2LeHKs,1565
2894
+ homeassistant-stubs/components/tedee/lock.pyi,sha256=zkCzPs66fTz1HCi5nk4i6-OVUvvlN7tYYdiwWzm5bTs,1572
2894
2895
  homeassistant-stubs/components/tedee/sensor.pyi,sha256=WEdA0ESXVYBxnNygLwz3U_B9AhSVMbLjq-syAJfyulI,1685
2895
2896
  homeassistant-stubs/components/text/__init__.pyi,sha256=82BWBeUKa5bdDQuL7_DNBkHlWb99yfB_995kdqOAUdY,2613
2896
2897
  homeassistant-stubs/components/text/const.pyi,sha256=jgUyRC9MeoNPeKV2lYbcmnBp64F9BDV6t2O_j93SkTg,112
@@ -3066,7 +3067,7 @@ homeassistant-stubs/components/unifi/hub/entity_loader.pyi,sha256=mlpRE8-RmjYLLY
3066
3067
  homeassistant-stubs/components/unifi/hub/hub.pyi,sha256=syjJxVmOpv_WQVeAbi4tI84EnW4N_Zx4eBhv5aXpP90,2002
3067
3068
  homeassistant-stubs/components/unifi/hub/websocket.pyi,sha256=ah4FRwEgyW2bg_DNueSIcaq8WN0ieGv0tcY8K6zcDA8,1017
3068
3069
  homeassistant-stubs/components/unifi/image.pyi,sha256=U99cFTuHBydofWCjzcK5tXSIwKgQKyCqOFIk6knLJ5g,2460
3069
- homeassistant-stubs/components/unifi/sensor.pyi,sha256=6ofEgUWy8Ofhx6wMjMZWdo0EBVGJyTQy1uA34zgbBcw,5213
3070
+ homeassistant-stubs/components/unifi/sensor.pyi,sha256=V_1SO1f8NGcziV0bRozGJwsgfrJaebXT7ASvdDJBXjY,5263
3070
3071
  homeassistant-stubs/components/unifi/services.pyi,sha256=qI0CBk86u0vJLN5H6Rn-wKkMy_7vbXYamVNLh8uQuIM,852
3071
3072
  homeassistant-stubs/components/unifi/switch.pyi,sha256=tWGGxmw6QOHlc6ZYBwJJ5jASgBBmeWhXPiZjfM4LAH8,4398
3072
3073
  homeassistant-stubs/components/unifi/update.pyi,sha256=8v2yXmpSxhCg7Y7Ij3lSzBS3Ue1VXxOiqk0zIsVBpDs,2666
@@ -3408,7 +3409,7 @@ homeassistant-stubs/helpers/discovery_flow.pyi,sha256=0hlkMylFX5XweVFfUQNqMVkl0m
3408
3409
  homeassistant-stubs/helpers/dispatcher.pyi,sha256=-CFUiQu9mlswAoCLPGn6PWguJzsWjHU_2ah0gA1ET1o,2322
3409
3410
  homeassistant-stubs/helpers/entity.pyi,sha256=X30opSvdokIp2GGQytBe-u_UCzC9iD9zO9F6wmkFouo,13400
3410
3411
  homeassistant-stubs/helpers/entity_component.pyi,sha256=Putg09YNzPgNjYqSUWEWQOHEG7mr8uEO-IFpm7uHbpY,3657
3411
- homeassistant-stubs/helpers/entity_platform.pyi,sha256=es8e8YgFxabaa6GAjYxbWAiEJBWDcoMApXMwA2OBWI0,6755
3412
+ homeassistant-stubs/helpers/entity_platform.pyi,sha256=YsYR9AQ0dweLBJdDSwIKGMOYnLLw2E47R0TqJEMPTw0,6748
3412
3413
  homeassistant-stubs/helpers/entity_registry.pyi,sha256=mCMQxfiCY-RycM9t2T1vwoKi8vvkIJRePH1928U5Yt0,14521
3413
3414
  homeassistant-stubs/helpers/entity_values.pyi,sha256=lxdx5isoDpSurN03yLcyJiiwkphatspaDbAPV51sKtE,509
3414
3415
  homeassistant-stubs/helpers/entityfilter.pyi,sha256=1pbVZXp58ryJJF4T6X-w013NqYtQ0KhtUKcAJVhJJSY,2060
@@ -3512,7 +3513,7 @@ homeassistant-stubs/util/yaml/dumper.pyi,sha256=uQjW0KuME-gXVWgYJLNLoRDwDzVhhhgg
3512
3513
  homeassistant-stubs/util/yaml/input.pyi,sha256=wuxpKYTXZL4MujFhqjHnRLv4VPYY6QPYd-Zji-Lz9Mo,383
3513
3514
  homeassistant-stubs/util/yaml/loader.pyi,sha256=YJBfnreepz_lhluQPSW4zVkwMv6fj2gZfGJtWObnfLg,4652
3514
3515
  homeassistant-stubs/util/yaml/objects.pyi,sha256=YUlr0nf9ugzJT9J2YHaGV2fXu5opuyNvvHPqNW46m5I,707
3515
- homeassistant_stubs-2024.8.0b0.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
3516
- homeassistant_stubs-2024.8.0b0.dist-info/LICENSE,sha256=_kHFjg-MAmJ-lXc7HiEjUzD3vZutVYKUVZZpAWcIuqo,1075
3517
- homeassistant_stubs-2024.8.0b0.dist-info/METADATA,sha256=UQuwuEwBNR2L6t_jAg_lYRDcG_pH23KKsbl4TfrBuRA,3015
3518
- homeassistant_stubs-2024.8.0b0.dist-info/RECORD,,
3516
+ homeassistant_stubs-2024.8.0b2.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
3517
+ homeassistant_stubs-2024.8.0b2.dist-info/LICENSE,sha256=_kHFjg-MAmJ-lXc7HiEjUzD3vZutVYKUVZZpAWcIuqo,1075
3518
+ homeassistant_stubs-2024.8.0b2.dist-info/METADATA,sha256=b-Mmf61DntiTFP63EYTV3Fps1SeIfaqx4ILLApizMSs,3015
3519
+ homeassistant_stubs-2024.8.0b2.dist-info/RECORD,,