homeassistant-stubs 2025.8.2__py3-none-any.whl → 2025.9.0__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.
Potentially problematic release.
This version of homeassistant-stubs might be problematic. Click here for more details.
- homeassistant-stubs/auth/models.pyi +3 -1
- homeassistant-stubs/components/airos/binary_sensor.pyi +27 -0
- homeassistant-stubs/components/airos/sensor.pyi +4 -2
- homeassistant-stubs/components/airq/number.pyi +31 -0
- homeassistant-stubs/components/aladdin_connect/__init__.pyi +10 -5
- homeassistant-stubs/components/aladdin_connect/api.pyi +12 -0
- homeassistant-stubs/components/aladdin_connect/application_credentials.pyi +5 -0
- homeassistant-stubs/components/aladdin_connect/config_flow.pyi +15 -4
- homeassistant-stubs/components/aladdin_connect/const.pyi +10 -0
- homeassistant-stubs/components/aladdin_connect/coordinator.pyi +16 -0
- homeassistant-stubs/components/aladdin_connect/cover.pyi +25 -0
- homeassistant-stubs/components/aladdin_connect/entity.pyi +15 -0
- homeassistant-stubs/components/aladdin_connect/sensor.pyi +25 -0
- homeassistant-stubs/components/alexa_devices/__init__.pyi +3 -2
- homeassistant-stubs/components/alexa_devices/config_flow.pyi +5 -2
- homeassistant-stubs/components/alexa_devices/const.pyi +2 -0
- homeassistant-stubs/components/alexa_devices/coordinator.pyi +1 -1
- homeassistant-stubs/components/alexa_devices/sensor.pyi +1 -1
- homeassistant-stubs/components/alexa_devices/services.pyi +0 -1
- homeassistant-stubs/components/amberelectric/config_flow.pyi +1 -1
- homeassistant-stubs/components/amberelectric/const.pyi +1 -1
- homeassistant-stubs/components/amberelectric/coordinator.pyi +1 -1
- homeassistant-stubs/components/amberelectric/services.pyi +2 -1
- homeassistant-stubs/components/ambient_station/entity.pyi +1 -1
- homeassistant-stubs/components/android_ip_webcam/coordinator.pyi +0 -1
- homeassistant-stubs/components/apcupsd/binary_sensor.pyi +2 -6
- homeassistant-stubs/components/apcupsd/entity.pyi +11 -0
- homeassistant-stubs/components/apcupsd/sensor.pyi +2 -6
- homeassistant-stubs/components/asuswrt/bridge.pyi +12 -8
- homeassistant-stubs/components/asuswrt/helpers.pyi +8 -0
- homeassistant-stubs/components/auth/login_flow.pyi +1 -1
- homeassistant-stubs/components/auth/mfa_setup_flow.pyi +1 -1
- homeassistant-stubs/components/awair/const.pyi +1 -0
- homeassistant-stubs/components/awair/sensor.pyi +2 -2
- homeassistant-stubs/components/backup/config.pyi +0 -14
- homeassistant-stubs/components/bayesian/__init__.pyi +6 -4
- homeassistant-stubs/components/bayesian/binary_sensor.pyi +6 -5
- homeassistant-stubs/components/bayesian/config_flow.pyi +69 -0
- homeassistant-stubs/components/bayesian/const.pyi +5 -0
- homeassistant-stubs/components/bayesian/issues.pyi +1 -1
- homeassistant-stubs/components/bosch_alarm/const.pyi +0 -1
- homeassistant-stubs/components/bosch_alarm/services.pyi +2 -1
- homeassistant-stubs/components/braviatv/button.pyi +1 -1
- homeassistant-stubs/components/braviatv/coordinator.pyi +1 -0
- homeassistant-stubs/components/braviatv/entity.pyi +1 -1
- homeassistant-stubs/components/climate/__init__.pyi +1 -1
- homeassistant-stubs/components/cloud/alexa_config.pyi +2 -1
- homeassistant-stubs/components/cloud/subscription.pyi +2 -4
- homeassistant-stubs/components/co2signal/coordinator.pyi +3 -3
- homeassistant-stubs/components/co2signal/helpers.pyi +2 -3
- homeassistant-stubs/components/co2signal/sensor.pyi +3 -3
- homeassistant-stubs/components/config/config_entries.pyi +6 -3
- homeassistant-stubs/components/deconz/hub/hub.pyi +0 -1
- homeassistant-stubs/components/deconz/services.pyi +0 -1
- homeassistant-stubs/components/demo/media_player.pyi +2 -0
- homeassistant-stubs/components/device_automation/condition.pyi +2 -2
- homeassistant-stubs/components/enphase_envoy/binary_sensor.pyi +29 -1
- homeassistant-stubs/components/enphase_envoy/sensor.pyi +30 -1
- homeassistant-stubs/components/esphome/manager.pyi +1 -2
- homeassistant-stubs/components/esphome/media_player.pyi +5 -0
- homeassistant-stubs/components/fan/intent.pyi +7 -0
- homeassistant-stubs/components/fritz/coordinator.pyi +0 -1
- homeassistant-stubs/components/fyta/const.pyi +4 -0
- homeassistant-stubs/components/fyta/sensor.pyi +11 -0
- homeassistant-stubs/components/glances/coordinator.pyi +0 -1
- homeassistant-stubs/components/group/config_flow.pyi +2 -0
- homeassistant-stubs/components/habitica/__init__.pyi +6 -2
- homeassistant-stubs/components/habitica/binary_sensor.pyi +13 -4
- homeassistant-stubs/components/habitica/coordinator.pyi +18 -4
- homeassistant-stubs/components/habitica/entity.pyi +10 -1
- homeassistant-stubs/components/habitica/image.pyi +19 -4
- homeassistant-stubs/components/habitica/sensor.pyi +27 -3
- homeassistant-stubs/components/habitica/util.pyi +5 -2
- homeassistant-stubs/components/home_connect/const.pyi +0 -7
- homeassistant-stubs/components/home_connect/services.pyi +1 -14
- homeassistant-stubs/components/homeassistant_hardware/coordinator.pyi +0 -1
- homeassistant-stubs/components/homee/config_flow.pyi +8 -2
- homeassistant-stubs/components/homee/const.pyi +3 -0
- homeassistant-stubs/components/homekit/accessories.pyi +1 -1
- homeassistant-stubs/components/homekit/const.pyi +4 -0
- homeassistant-stubs/components/homekit/type_switches.pyi +11 -1
- homeassistant-stubs/components/homekit/util.pyi +3 -2
- homeassistant-stubs/components/huawei_lte/__init__.pyi +2 -2
- homeassistant-stubs/components/huawei_lte/const.pyi +0 -1
- homeassistant-stubs/components/huawei_lte/notify.pyi +2 -2
- homeassistant-stubs/components/husqvarna_automower/button.pyi +4 -0
- homeassistant-stubs/components/husqvarna_automower/const.pyi +1 -0
- homeassistant-stubs/components/husqvarna_automower/coordinator.pyi +10 -0
- homeassistant-stubs/components/husqvarna_automower/event.pyi +35 -0
- homeassistant-stubs/components/husqvarna_automower/sensor.pyi +1 -2
- homeassistant-stubs/components/idasen_desk/__init__.pyi +0 -1
- homeassistant-stubs/components/jewish_calendar/__init__.pyi +2 -1
- homeassistant-stubs/components/jewish_calendar/coordinator.pyi +41 -0
- homeassistant-stubs/components/jewish_calendar/entity.pyi +5 -26
- homeassistant-stubs/components/jewish_calendar/sensor.pyi +1 -1
- homeassistant-stubs/components/knx/scene.pyi +5 -4
- homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +5 -11
- homeassistant-stubs/components/knx/storage/knx_selector.pyi +57 -6
- homeassistant-stubs/components/knx/storage/serialize.pyi +10 -0
- homeassistant-stubs/components/knx/storage/util.pyi +2 -0
- homeassistant-stubs/components/knx/websocket.pyi +7 -3
- homeassistant-stubs/components/letpot/select.pyi +39 -0
- homeassistant-stubs/components/mastodon/__init__.pyi +1 -2
- homeassistant-stubs/components/mastodon/config_flow.pyi +2 -2
- homeassistant-stubs/components/mastodon/const.pyi +0 -1
- homeassistant-stubs/components/mastodon/diagnostics.pyi +2 -2
- homeassistant-stubs/components/mastodon/services.pyi +2 -1
- homeassistant-stubs/components/matter/lock.pyi +6 -0
- homeassistant-stubs/components/matter/sensor.pyi +2 -1
- homeassistant-stubs/components/mealie/const.pyi +0 -1
- homeassistant-stubs/components/mealie/services.pyi +2 -2
- homeassistant-stubs/components/media_player/__init__.pyi +4 -0
- homeassistant-stubs/components/media_player/intent.pyi +13 -3
- homeassistant-stubs/components/met_eireann/const.pyi +1 -1
- homeassistant-stubs/components/met_eireann/weather.pyi +4 -0
- homeassistant-stubs/components/miele/climate.pyi +3 -1
- homeassistant-stubs/components/miele/const.pyi +1 -0
- homeassistant-stubs/components/miele/coordinator.pyi +2 -3
- homeassistant-stubs/components/miele/entity.pyi +2 -3
- homeassistant-stubs/components/miele/sensor.pyi +25 -6
- homeassistant-stubs/components/modbus/binary_sensor.pyi +1 -2
- homeassistant-stubs/components/modbus/climate.pyi +1 -2
- homeassistant-stubs/components/modbus/const.pyi +2 -0
- homeassistant-stubs/components/modbus/entity.pyi +7 -16
- homeassistant-stubs/components/modbus/light.pyi +0 -1
- homeassistant-stubs/components/modbus/modbus.pyi +9 -11
- homeassistant-stubs/components/modbus/sensor.pyi +1 -3
- homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +2 -23
- homeassistant-stubs/components/mqtt/config_flow.pyi +8 -2
- homeassistant-stubs/components/mqtt/const.pyi +40 -1
- homeassistant-stubs/components/mqtt/lock.pyi +1 -21
- homeassistant-stubs/components/mqtt/number.pyi +1 -0
- homeassistant-stubs/components/mqtt/sensor.pyi +1 -1
- homeassistant-stubs/components/music_assistant/actions.pyi +2 -1
- homeassistant-stubs/components/music_assistant/const.pyi +0 -1
- homeassistant-stubs/components/music_assistant/media_browser.pyi +1 -1
- homeassistant-stubs/components/nanoleaf/config_flow.pyi +1 -1
- homeassistant-stubs/components/number/__init__.pyi +3 -0
- homeassistant-stubs/components/number/const.pyi +2 -1
- homeassistant-stubs/components/open_router/entity.pyi +2 -2
- homeassistant-stubs/components/openai_conversation/entity.pyi +3 -3
- homeassistant-stubs/components/opower/__init__.pyi +1 -0
- homeassistant-stubs/components/opower/repairs.pyi +13 -0
- homeassistant-stubs/components/overseerr/const.pyi +0 -1
- homeassistant-stubs/components/overseerr/services.pyi +2 -1
- homeassistant-stubs/components/person/__init__.pyi +2 -1
- homeassistant-stubs/components/qbus/binary_sensor.pyi +43 -0
- homeassistant-stubs/components/qbus/climate.pyi +1 -1
- homeassistant-stubs/components/qbus/coordinator.pyi +4 -3
- homeassistant-stubs/components/qbus/cover.pyi +1 -1
- homeassistant-stubs/components/qbus/entity.pyi +6 -5
- homeassistant-stubs/components/qbus/light.pyi +1 -1
- homeassistant-stubs/components/qbus/scene.pyi +4 -6
- homeassistant-stubs/components/qbus/sensor.pyi +67 -0
- homeassistant-stubs/components/qbus/switch.pyi +1 -1
- homeassistant-stubs/components/recorder/statistics.pyi +1 -1
- homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
- homeassistant-stubs/components/rest_command/__init__.pyi +1 -1
- homeassistant-stubs/components/romy/coordinator.pyi +0 -1
- homeassistant-stubs/components/russound_rio/media_browser.pyi +8 -0
- homeassistant-stubs/components/russound_rio/media_player.pyi +3 -2
- homeassistant-stubs/components/ruuvitag_ble/sensor.pyi +2 -2
- homeassistant-stubs/components/scene/__init__.pyi +13 -4
- homeassistant-stubs/components/sensibo/select.pyi +0 -5
- homeassistant-stubs/components/sensor/__init__.pyi +3 -0
- homeassistant-stubs/components/sensor/const.pyi +3 -2
- homeassistant-stubs/components/sensor/recorder.pyi +1 -1
- homeassistant-stubs/components/sleep_as_android/__init__.pyi +16 -0
- homeassistant-stubs/components/sleep_as_android/config_flow.pyi +2 -0
- homeassistant-stubs/components/sleep_as_android/const.pyi +9 -0
- homeassistant-stubs/components/sleep_as_android/diagnostics.pyi +5 -0
- homeassistant-stubs/components/sleep_as_android/entity.pyi +20 -0
- homeassistant-stubs/components/sleep_as_android/event.pyi +33 -0
- homeassistant-stubs/components/sleep_as_android/sensor.pyi +25 -0
- homeassistant-stubs/components/solarlog/sensor.pyi +11 -1
- homeassistant-stubs/components/speedtestdotnet/coordinator.pyi +0 -1
- homeassistant-stubs/components/stookwijzer/const.pyi +0 -1
- homeassistant-stubs/components/stookwijzer/services.pyi +2 -1
- homeassistant-stubs/components/sun/condition.pyi +2 -2
- homeassistant-stubs/components/switchbot_cloud/__init__.pyi +1 -0
- homeassistant-stubs/components/switchbot_cloud/const.pyi +10 -0
- homeassistant-stubs/components/switchbot_cloud/cover.pyi +57 -0
- homeassistant-stubs/components/switchbot_cloud/fan.pyi +22 -1
- homeassistant-stubs/components/telegram_bot/__init__.pyi +2 -1
- homeassistant-stubs/components/telegram_bot/bot.pyi +4 -1
- homeassistant-stubs/components/telegram_bot/notify.pyi +21 -0
- homeassistant-stubs/components/unifi/switch.pyi +3 -0
- homeassistant-stubs/components/volvo/__init__.pyi +1 -1
- homeassistant-stubs/components/volvo/binary_sensor.pyi +42 -0
- homeassistant-stubs/components/volvo/const.pyi +1 -1
- homeassistant-stubs/components/volvo/coordinator.pyi +8 -1
- homeassistant-stubs/components/volvo/sensor.pyi +2 -2
- homeassistant-stubs/components/webostv/__init__.pyi +2 -2
- homeassistant-stubs/components/webostv/const.pyi +0 -1
- homeassistant-stubs/components/webostv/notify.pyi +2 -2
- homeassistant-stubs/components/websocket_api/http.pyi +1 -0
- homeassistant-stubs/components/wemo/coordinator.pyi +0 -1
- homeassistant-stubs/components/withings/diagnostics.pyi +4 -0
- homeassistant-stubs/components/workday/__init__.pyi +6 -8
- homeassistant-stubs/components/workday/binary_sensor.pyi +9 -33
- homeassistant-stubs/components/workday/entity.pyi +34 -0
- homeassistant-stubs/components/workday/util.pyi +14 -0
- homeassistant-stubs/components/yalexs_ble/__init__.pyi +3 -1
- homeassistant-stubs/components/yalexs_ble/config_cache.pyi +10 -0
- homeassistant-stubs/components/yalexs_ble/config_flow.pyi +4 -0
- homeassistant-stubs/components/zone/condition.pyi +2 -2
- homeassistant-stubs/components/zwave_js/__init__.pyi +5 -5
- homeassistant-stubs/components/zwave_js/binary_sensor.pyi +18 -10
- homeassistant-stubs/components/zwave_js/config_flow.pyi +6 -0
- homeassistant-stubs/components/zwave_js/const.pyi +0 -1
- homeassistant-stubs/components/zwave_js/discovery.pyi +7 -51
- homeassistant-stubs/components/zwave_js/discovery_data_template.pyi +1 -11
- homeassistant-stubs/components/zwave_js/entity.pyi +15 -5
- homeassistant-stubs/components/zwave_js/helpers.pyi +0 -7
- homeassistant-stubs/components/zwave_js/migrate.pyi +2 -2
- homeassistant-stubs/components/zwave_js/models.pyi +95 -1
- homeassistant-stubs/components/zwave_js/sensor.pyi +7 -4
- homeassistant-stubs/components/zwave_js/triggers/event.pyi +5 -4
- homeassistant-stubs/components/zwave_js/triggers/trigger_helpers.pyi +2 -2
- homeassistant-stubs/components/zwave_js/triggers/value_updated.pyi +3 -2
- homeassistant-stubs/components/zwave_js/update.pyi +0 -3
- homeassistant-stubs/config_entries.pyi +5 -0
- homeassistant-stubs/const.pyi +9 -5
- homeassistant-stubs/data_entry_flow.pyi +0 -1
- homeassistant-stubs/helpers/automation.pyi +2 -0
- homeassistant-stubs/helpers/condition.pyi +6 -6
- homeassistant-stubs/helpers/config_validation.pyi +3 -0
- homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
- homeassistant-stubs/helpers/device_registry.pyi +2 -2
- homeassistant-stubs/helpers/entity_registry.pyi +4 -3
- homeassistant-stubs/helpers/json.pyi +0 -7
- homeassistant-stubs/helpers/llm.pyi +1 -0
- homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -1
- homeassistant-stubs/helpers/selector.pyi +2 -1
- homeassistant-stubs/helpers/target.pyi +3 -2
- homeassistant-stubs/helpers/trigger.pyi +6 -6
- homeassistant-stubs/util/unit_conversion.pyi +11 -1
- {homeassistant_stubs-2025.8.2.dist-info → homeassistant_stubs-2025.9.0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2025.8.2.dist-info → homeassistant_stubs-2025.9.0.dist-info}/RECORD +241 -215
- homeassistant-stubs/components/linear_garage_door/__init__.pyi +0 -10
- homeassistant-stubs/components/linear_garage_door/config_flow.pyi +0 -25
- homeassistant-stubs/components/linear_garage_door/const.pyi +0 -1
- homeassistant-stubs/components/linear_garage_door/coordinator.pyi +0 -26
- homeassistant-stubs/components/linear_garage_door/cover.pyi +0 -28
- homeassistant-stubs/components/linear_garage_door/diagnostics.pyi +0 -10
- homeassistant-stubs/components/linear_garage_door/entity.pyi +0 -17
- homeassistant-stubs/components/linear_garage_door/light.pyi +0 -23
- homeassistant-stubs/components/mastodon/notify.pyi +0 -24
- {homeassistant_stubs-2025.8.2.dist-info → homeassistant_stubs-2025.9.0.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2025.8.2.dist-info → homeassistant_stubs-2025.9.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -2,7 +2,7 @@ from .const import DOMAIN as DOMAIN
|
|
|
2
2
|
from _typeshed import Incomplete
|
|
3
3
|
from aionanoleaf import Nanoleaf
|
|
4
4
|
from collections.abc import Mapping
|
|
5
|
-
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH
|
|
5
|
+
from homeassistant.config_entries import ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, SOURCE_REAUTH as SOURCE_REAUTH, SOURCE_USER as SOURCE_USER
|
|
6
6
|
from homeassistant.const import CONF_HOST as CONF_HOST, CONF_TOKEN as CONF_TOKEN
|
|
7
7
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
8
8
|
from homeassistant.helpers.json import save_json as save_json
|
|
@@ -73,6 +73,9 @@ class NumberEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
|
|
|
73
73
|
def state(self) -> float | None: ...
|
|
74
74
|
@cached_property
|
|
75
75
|
def native_unit_of_measurement(self) -> str | None: ...
|
|
76
|
+
@final
|
|
77
|
+
@property
|
|
78
|
+
def __native_unit_of_measurement_compat(self) -> str | None: ...
|
|
76
79
|
@property
|
|
77
80
|
@final
|
|
78
81
|
def unit_of_measurement(self) -> str | None: ...
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from _typeshed import Incomplete
|
|
2
2
|
from enum import StrEnum
|
|
3
|
-
from homeassistant.const import CONCENTRATION_GRAMS_PER_CUBIC_METER as CONCENTRATION_GRAMS_PER_CUBIC_METER, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER as CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfArea as UnitOfArea, UnitOfBloodGlucoseConcentration as UnitOfBloodGlucoseConcentration, UnitOfConductivity as UnitOfConductivity, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfEnergyDistance as UnitOfEnergyDistance, UnitOfFrequency as UnitOfFrequency, UnitOfInformation as UnitOfInformation, UnitOfIrradiance as UnitOfIrradiance, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfReactiveEnergy as UnitOfReactiveEnergy, UnitOfReactivePower as UnitOfReactivePower, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate, UnitOfVolumetricFlux as UnitOfVolumetricFlux
|
|
3
|
+
from homeassistant.const import CONCENTRATION_GRAMS_PER_CUBIC_METER as CONCENTRATION_GRAMS_PER_CUBIC_METER, CONCENTRATION_MICROGRAMS_PER_CUBIC_FOOT as CONCENTRATION_MICROGRAMS_PER_CUBIC_FOOT, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER as CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfArea as UnitOfArea, UnitOfBloodGlucoseConcentration as UnitOfBloodGlucoseConcentration, UnitOfConductivity as UnitOfConductivity, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfEnergyDistance as UnitOfEnergyDistance, UnitOfFrequency as UnitOfFrequency, UnitOfInformation as UnitOfInformation, UnitOfIrradiance as UnitOfIrradiance, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfReactiveEnergy as UnitOfReactiveEnergy, UnitOfReactivePower as UnitOfReactivePower, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate, UnitOfVolumetricFlux as UnitOfVolumetricFlux
|
|
4
4
|
from homeassistant.util.unit_conversion import BaseUnitConverter as BaseUnitConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, TemperatureConverter as TemperatureConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
|
|
5
5
|
from typing import Final
|
|
6
6
|
|
|
@@ -80,3 +80,4 @@ class NumberDeviceClass(StrEnum):
|
|
|
80
80
|
DEVICE_CLASSES_SCHEMA: Final[Incomplete]
|
|
81
81
|
DEVICE_CLASS_UNITS: dict[NumberDeviceClass, set[type[StrEnum] | str | None]]
|
|
82
82
|
UNIT_CONVERTERS: dict[NumberDeviceClass, type[BaseUnitConverter]]
|
|
83
|
+
AMBIGUOUS_UNITS: dict[str | None, str]
|
|
@@ -9,7 +9,7 @@ from homeassistant.const import CONF_MODEL as CONF_MODEL
|
|
|
9
9
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
10
10
|
from homeassistant.helpers import llm as llm
|
|
11
11
|
from homeassistant.helpers.entity import Entity as Entity
|
|
12
|
-
from openai.types.chat import ChatCompletionMessage as ChatCompletionMessage, ChatCompletionMessageParam as ChatCompletionMessageParam
|
|
12
|
+
from openai.types.chat import ChatCompletionFunctionToolParam, ChatCompletionMessage as ChatCompletionMessage, ChatCompletionMessageParam as ChatCompletionMessageParam
|
|
13
13
|
from openai.types.shared_params.response_format_json_schema import JSONSchema as JSONSchema
|
|
14
14
|
from typing import Any
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ MAX_TOOL_ITERATIONS: int
|
|
|
17
17
|
|
|
18
18
|
def _adjust_schema(schema: dict[str, Any]) -> None: ...
|
|
19
19
|
def _format_structured_output(name: str, schema: vol.Schema, llm_api: llm.APIInstance | None) -> JSONSchema: ...
|
|
20
|
-
def _format_tool(tool: llm.Tool, custom_serializer: Callable[[Any], Any] | None) ->
|
|
20
|
+
def _format_tool(tool: llm.Tool, custom_serializer: Callable[[Any], Any] | None) -> ChatCompletionFunctionToolParam: ...
|
|
21
21
|
def _convert_content_to_chat_message(content: conversation.Content) -> ChatCompletionMessageParam | None: ...
|
|
22
22
|
def _decode_tool_arguments(arguments: str) -> Any: ...
|
|
23
23
|
async def _transform_response(message: ChatCompletionMessage) -> AsyncGenerator[conversation.AssistantContentDeltaDict]: ...
|
|
@@ -2,7 +2,7 @@ import voluptuous as vol
|
|
|
2
2
|
from . import OpenAIConfigEntry as OpenAIConfigEntry
|
|
3
3
|
from .const import CONF_CHAT_MODEL as CONF_CHAT_MODEL, CONF_CODE_INTERPRETER as CONF_CODE_INTERPRETER, CONF_MAX_TOKENS as CONF_MAX_TOKENS, CONF_REASONING_EFFORT as CONF_REASONING_EFFORT, CONF_TEMPERATURE as CONF_TEMPERATURE, CONF_TOP_P as CONF_TOP_P, CONF_VERBOSITY as CONF_VERBOSITY, CONF_WEB_SEARCH as CONF_WEB_SEARCH, CONF_WEB_SEARCH_CITY as CONF_WEB_SEARCH_CITY, CONF_WEB_SEARCH_CONTEXT_SIZE as CONF_WEB_SEARCH_CONTEXT_SIZE, CONF_WEB_SEARCH_COUNTRY as CONF_WEB_SEARCH_COUNTRY, CONF_WEB_SEARCH_REGION as CONF_WEB_SEARCH_REGION, CONF_WEB_SEARCH_TIMEZONE as CONF_WEB_SEARCH_TIMEZONE, CONF_WEB_SEARCH_USER_LOCATION as CONF_WEB_SEARCH_USER_LOCATION, DOMAIN as DOMAIN, LOGGER as LOGGER, RECOMMENDED_CHAT_MODEL as RECOMMENDED_CHAT_MODEL, RECOMMENDED_MAX_TOKENS as RECOMMENDED_MAX_TOKENS, RECOMMENDED_REASONING_EFFORT as RECOMMENDED_REASONING_EFFORT, RECOMMENDED_TEMPERATURE as RECOMMENDED_TEMPERATURE, RECOMMENDED_TOP_P as RECOMMENDED_TOP_P, RECOMMENDED_VERBOSITY as RECOMMENDED_VERBOSITY, RECOMMENDED_WEB_SEARCH_CONTEXT_SIZE as RECOMMENDED_WEB_SEARCH_CONTEXT_SIZE
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
|
-
from collections.abc import AsyncGenerator, Callable as Callable
|
|
5
|
+
from collections.abc import AsyncGenerator, Callable as Callable, Iterable
|
|
6
6
|
from homeassistant.components import conversation as conversation
|
|
7
7
|
from homeassistant.config_entries import ConfigSubentry as ConfigSubentry
|
|
8
8
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
@@ -20,8 +20,8 @@ MAX_TOOL_ITERATIONS: int
|
|
|
20
20
|
def _adjust_schema(schema: dict[str, Any]) -> None: ...
|
|
21
21
|
def _format_structured_output(schema: vol.Schema, llm_api: llm.APIInstance | None) -> dict[str, Any]: ...
|
|
22
22
|
def _format_tool(tool: llm.Tool, custom_serializer: Callable[[Any], Any] | None) -> FunctionToolParam: ...
|
|
23
|
-
def _convert_content_to_param(
|
|
24
|
-
async def _transform_stream(chat_log: conversation.ChatLog,
|
|
23
|
+
def _convert_content_to_param(chat_content: Iterable[conversation.Content]) -> ResponseInputParam: ...
|
|
24
|
+
async def _transform_stream(chat_log: conversation.ChatLog, stream: AsyncStream[ResponseStreamEvent]) -> AsyncGenerator[conversation.AssistantContentDeltaDict | conversation.ToolResultContentDeltaDict]: ...
|
|
25
25
|
|
|
26
26
|
class OpenAIBaseLLMEntity(Entity):
|
|
27
27
|
_attr_has_entity_name: bool
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from .const import CONF_UTILITY as CONF_UTILITY, DOMAIN as DOMAIN
|
|
1
2
|
from .coordinator import OpowerConfigEntry as OpowerConfigEntry, OpowerCoordinator as OpowerCoordinator
|
|
2
3
|
from homeassistant.const import Platform as Platform
|
|
3
4
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from homeassistant.components.repairs import RepairsFlow as RepairsFlow
|
|
3
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
4
|
+
from homeassistant.data_entry_flow import FlowResult as FlowResult
|
|
5
|
+
|
|
6
|
+
class UnsupportedUtilityFixFlow(RepairsFlow):
|
|
7
|
+
_entry_id: Incomplete
|
|
8
|
+
_placeholders: Incomplete
|
|
9
|
+
def __init__(self, data: dict[str, str]) -> None: ...
|
|
10
|
+
async def async_step_init(self, user_input: dict[str, str] | None = None) -> FlowResult: ...
|
|
11
|
+
async def async_step_confirm(self, user_input: dict[str, str] | None = None) -> FlowResult: ...
|
|
12
|
+
|
|
13
|
+
async def async_create_fix_flow(hass: HomeAssistant, issue_id: str, data: dict[str, str] | None) -> RepairsFlow: ...
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
from .const import
|
|
1
|
+
from .const import ATTR_REQUESTED_BY as ATTR_REQUESTED_BY, ATTR_SORT_ORDER as ATTR_SORT_ORDER, ATTR_STATUS as ATTR_STATUS, DOMAIN as DOMAIN, LOGGER as LOGGER
|
|
2
2
|
from .coordinator import OverseerrConfigEntry as OverseerrConfigEntry
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
|
|
5
|
+
from homeassistant.const import ATTR_CONFIG_ENTRY_ID as ATTR_CONFIG_ENTRY_ID
|
|
5
6
|
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
|
|
6
7
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
|
|
7
8
|
from homeassistant.util.json import JsonValueType as JsonValueType
|
|
@@ -4,6 +4,7 @@ from collections.abc import Callable as Callable
|
|
|
4
4
|
from homeassistant.auth import EVENT_USER_REMOVED as EVENT_USER_REMOVED
|
|
5
5
|
from homeassistant.components import persistent_notification as persistent_notification, websocket_api as websocket_api
|
|
6
6
|
from homeassistant.components.device_tracker import ATTR_SOURCE_TYPE as ATTR_SOURCE_TYPE, SourceType as SourceType
|
|
7
|
+
from homeassistant.components.zone import ENTITY_ID_HOME as ENTITY_ID_HOME
|
|
7
8
|
from homeassistant.const import ATTR_EDITABLE as ATTR_EDITABLE, ATTR_GPS_ACCURACY as ATTR_GPS_ACCURACY, ATTR_ID as ATTR_ID, ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, ATTR_NAME as ATTR_NAME, CONF_ID as CONF_ID, CONF_NAME as CONF_NAME, EVENT_HOMEASSISTANT_START as EVENT_HOMEASSISTANT_START, SERVICE_RELOAD as SERVICE_RELOAD, STATE_HOME as STATE_HOME, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
|
|
8
9
|
from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, State as State, callback as callback, split_entity_id as split_entity_id
|
|
9
10
|
from homeassistant.helpers import collection as collection, entity_registry as er, service as service
|
|
@@ -95,7 +96,7 @@ class Person(collection.CollectionEntity, RestoreEntity):
|
|
|
95
96
|
@callback
|
|
96
97
|
def _update_state(self) -> None: ...
|
|
97
98
|
@callback
|
|
98
|
-
def _parse_source_state(self, state: State) -> None: ...
|
|
99
|
+
def _parse_source_state(self, state: State, coordinates: State) -> None: ...
|
|
99
100
|
_attr_extra_state_attributes: Incomplete
|
|
100
101
|
@callback
|
|
101
102
|
def _update_extra_state_attributes(self) -> None: ...
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
from .const import DOMAIN as DOMAIN
|
|
2
|
+
from .coordinator import QbusConfigEntry as QbusConfigEntry
|
|
3
|
+
from .entity import QbusEntity as QbusEntity, create_device_identifier as create_device_identifier, create_unique_id as create_unique_id, determine_new_outputs as determine_new_outputs
|
|
4
|
+
from _typeshed import Incomplete
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
|
|
7
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
8
|
+
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
|
9
|
+
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
|
10
|
+
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
11
|
+
from qbusmqttapi.discovery import QbusMqttDevice as QbusMqttDevice, QbusMqttOutput as QbusMqttOutput
|
|
12
|
+
from qbusmqttapi.state import QbusMqttDeviceState as QbusMqttDeviceState, QbusMqttWeatherState
|
|
13
|
+
|
|
14
|
+
PARALLEL_UPDATES: int
|
|
15
|
+
|
|
16
|
+
@dataclass(frozen=True, kw_only=True)
|
|
17
|
+
class QbusWeatherDescription(BinarySensorEntityDescription):
|
|
18
|
+
property: str
|
|
19
|
+
|
|
20
|
+
_WEATHER_DESCRIPTIONS: Incomplete
|
|
21
|
+
|
|
22
|
+
async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
23
|
+
|
|
24
|
+
class QbusWeatherBinarySensor(QbusEntity, BinarySensorEntity):
|
|
25
|
+
_state_cls = QbusMqttWeatherState
|
|
26
|
+
entity_description: QbusWeatherDescription
|
|
27
|
+
def __init__(self, mqtt_output: QbusMqttOutput, description: QbusWeatherDescription) -> None: ...
|
|
28
|
+
_attr_is_on: Incomplete
|
|
29
|
+
async def _handle_state_received(self, state: QbusMqttWeatherState) -> None: ...
|
|
30
|
+
|
|
31
|
+
class QbusControllerConnectedBinarySensor(BinarySensorEntity):
|
|
32
|
+
_attr_has_entity_name: bool
|
|
33
|
+
_attr_name: Incomplete
|
|
34
|
+
_attr_should_poll: bool
|
|
35
|
+
_attr_device_class: Incomplete
|
|
36
|
+
_controller: Incomplete
|
|
37
|
+
_attr_unique_id: Incomplete
|
|
38
|
+
_attr_device_info: Incomplete
|
|
39
|
+
def __init__(self, controller: QbusMqttDevice) -> None: ...
|
|
40
|
+
async def async_added_to_hass(self) -> None: ...
|
|
41
|
+
_attr_is_on: Incomplete
|
|
42
|
+
@callback
|
|
43
|
+
def _state_received(self, state: QbusMqttDeviceState) -> None: ...
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from .const import DOMAIN as DOMAIN
|
|
2
2
|
from .coordinator import QbusConfigEntry as QbusConfigEntry
|
|
3
|
-
from .entity import QbusEntity as QbusEntity,
|
|
3
|
+
from .entity import QbusEntity as QbusEntity, create_new_entities as create_new_entities
|
|
4
4
|
from _typeshed import Incomplete
|
|
5
5
|
from homeassistant.components.climate import ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, HVACAction as HVACAction, HVACMode as HVACMode
|
|
6
6
|
from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, UnitOfTemperature as UnitOfTemperature
|
|
@@ -5,16 +5,17 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
|
5
5
|
from homeassistant.const import EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
|
|
6
6
|
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant
|
|
7
7
|
from homeassistant.helpers.device_registry import format_mac as format_mac
|
|
8
|
+
from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
|
|
8
9
|
from homeassistant.helpers.event import async_call_later as async_call_later
|
|
9
10
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
|
|
10
11
|
from homeassistant.util.hass_dict import HassKey as HassKey
|
|
11
|
-
from qbusmqttapi.discovery import QbusDiscovery as QbusDiscovery, QbusMqttDevice
|
|
12
|
+
from qbusmqttapi.discovery import QbusDiscovery as QbusDiscovery, QbusMqttDevice
|
|
12
13
|
|
|
13
14
|
_LOGGER: Incomplete
|
|
14
15
|
type QbusConfigEntry = ConfigEntry[QbusControllerCoordinator]
|
|
15
16
|
QBUS_KEY: HassKey[QbusConfigCoordinator]
|
|
16
17
|
|
|
17
|
-
class QbusControllerCoordinator(DataUpdateCoordinator[
|
|
18
|
+
class QbusControllerCoordinator(DataUpdateCoordinator[QbusMqttDevice | None]):
|
|
18
19
|
_STATE_REQUEST_DELAY: int
|
|
19
20
|
config_entry: QbusConfigEntry
|
|
20
21
|
_message_factory: Incomplete
|
|
@@ -23,7 +24,7 @@ class QbusControllerCoordinator(DataUpdateCoordinator[list[QbusMqttOutput]]):
|
|
|
23
24
|
_subscribed_to_controller_state: bool
|
|
24
25
|
_controller: QbusMqttDevice | None
|
|
25
26
|
def __init__(self, hass: HomeAssistant, entry: QbusConfigEntry) -> None: ...
|
|
26
|
-
async def _async_update_data(self) ->
|
|
27
|
+
async def _async_update_data(self) -> QbusMqttDevice | None: ...
|
|
27
28
|
def shutdown(self, event: Event | None = None) -> None: ...
|
|
28
29
|
async def async_update_controller_config(self, config: QbusDiscovery) -> None: ...
|
|
29
30
|
def _update_device_info(self) -> None: ...
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from .coordinator import QbusConfigEntry as QbusConfigEntry
|
|
2
|
-
from .entity import QbusEntity as QbusEntity,
|
|
2
|
+
from .entity import QbusEntity as QbusEntity, create_new_entities as create_new_entities
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.components.cover import ATTR_POSITION as ATTR_POSITION, ATTR_TILT_POSITION as ATTR_TILT_POSITION, CoverDeviceClass as CoverDeviceClass, CoverEntity as CoverEntity, CoverEntityFeature as CoverEntityFeature
|
|
5
5
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
@@ -7,17 +7,18 @@ from collections.abc import Callable as Callable
|
|
|
7
7
|
from homeassistant.components.mqtt import ReceiveMessage as ReceiveMessage
|
|
8
8
|
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo, format_mac as format_mac
|
|
9
9
|
from homeassistant.helpers.entity import Entity as Entity
|
|
10
|
-
from
|
|
11
|
-
from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
|
|
10
|
+
from qbusmqttapi.discovery import QbusMqttDevice as QbusMqttDevice, QbusMqttOutput as QbusMqttOutput
|
|
12
11
|
from qbusmqttapi.state import QbusMqttState
|
|
13
12
|
from typing import Generic, TypeVar
|
|
14
13
|
|
|
15
14
|
_REFID_REGEX: Incomplete
|
|
16
15
|
StateT = TypeVar('StateT', bound=QbusMqttState)
|
|
17
16
|
|
|
18
|
-
def
|
|
17
|
+
def create_new_entities(coordinator: QbusControllerCoordinator, added_outputs: list[QbusMqttOutput], filter_fn: Callable[[QbusMqttOutput], bool], entity_type: type[QbusEntity]) -> list[QbusEntity]: ...
|
|
18
|
+
def determine_new_outputs(coordinator: QbusControllerCoordinator, added_outputs: list[QbusMqttOutput], filter_fn: Callable[[QbusMqttOutput], bool]) -> list[QbusMqttOutput]: ...
|
|
19
19
|
def format_ref_id(ref_id: str) -> str | None: ...
|
|
20
|
-
def
|
|
20
|
+
def create_device_identifier(mqtt_device: QbusMqttDevice) -> tuple[str, str]: ...
|
|
21
|
+
def create_unique_id(serial_number: str, suffix: str) -> str: ...
|
|
21
22
|
|
|
22
23
|
class QbusEntity(Entity, ABC, Generic[StateT], metaclass=abc.ABCMeta):
|
|
23
24
|
_state_cls: type[StateT]
|
|
@@ -29,7 +30,7 @@ class QbusEntity(Entity, ABC, Generic[StateT], metaclass=abc.ABCMeta):
|
|
|
29
30
|
_state_topic: Incomplete
|
|
30
31
|
_attr_unique_id: Incomplete
|
|
31
32
|
_attr_device_info: Incomplete
|
|
32
|
-
def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
|
|
33
|
+
def __init__(self, mqtt_output: QbusMqttOutput, *, id_suffix: str = '', link_to_main_device: bool = False) -> None: ...
|
|
33
34
|
async def async_added_to_hass(self) -> None: ...
|
|
34
35
|
async def _state_received(self, msg: ReceiveMessage) -> None: ...
|
|
35
36
|
@abstractmethod
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from .coordinator import QbusConfigEntry as QbusConfigEntry
|
|
2
|
-
from .entity import QbusEntity as QbusEntity,
|
|
2
|
+
from .entity import QbusEntity as QbusEntity, create_new_entities as create_new_entities
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ColorMode as ColorMode, LightEntity as LightEntity
|
|
5
5
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
from .coordinator import QbusConfigEntry as QbusConfigEntry
|
|
2
|
-
from .entity import QbusEntity as QbusEntity,
|
|
2
|
+
from .entity import QbusEntity as QbusEntity, create_new_entities as create_new_entities
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
|
-
from homeassistant.components.scene import
|
|
4
|
+
from homeassistant.components.scene import BaseScene as BaseScene
|
|
5
5
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
6
|
-
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
|
7
6
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
8
7
|
from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
|
|
9
8
|
from qbusmqttapi.state import QbusMqttState
|
|
@@ -13,9 +12,8 @@ PARALLEL_UPDATES: int
|
|
|
13
12
|
|
|
14
13
|
async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
15
14
|
|
|
16
|
-
class QbusScene(QbusEntity,
|
|
17
|
-
_attr_device_info: Incomplete
|
|
15
|
+
class QbusScene(QbusEntity, BaseScene):
|
|
18
16
|
_attr_name: Incomplete
|
|
19
17
|
def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
|
|
20
|
-
async def
|
|
18
|
+
async def _async_activate(self, **kwargs: Any) -> None: ...
|
|
21
19
|
async def _handle_state_received(self, state: QbusMqttState) -> None: ...
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
from .coordinator import QbusConfigEntry as QbusConfigEntry
|
|
2
|
+
from .entity import QbusEntity as QbusEntity, create_new_entities as create_new_entities, determine_new_outputs as determine_new_outputs
|
|
3
|
+
from _typeshed import Incomplete
|
|
4
|
+
from dataclasses import dataclass
|
|
5
|
+
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
|
|
6
|
+
from homeassistant.const import CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfLength as UnitOfLength, UnitOfPower as UnitOfPower, UnitOfPressure as UnitOfPressure, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
|
|
7
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
8
|
+
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
9
|
+
from qbusmqttapi.discovery import QbusMqttOutput as QbusMqttOutput
|
|
10
|
+
from qbusmqttapi.state import QbusMqttGaugeState, QbusMqttHumidityState, QbusMqttThermoState, QbusMqttVentilationState, QbusMqttWeatherState
|
|
11
|
+
|
|
12
|
+
PARALLEL_UPDATES: int
|
|
13
|
+
|
|
14
|
+
@dataclass(frozen=True, kw_only=True)
|
|
15
|
+
class QbusWeatherDescription(SensorEntityDescription):
|
|
16
|
+
property: str
|
|
17
|
+
|
|
18
|
+
_WEATHER_DESCRIPTIONS: Incomplete
|
|
19
|
+
_GAUGE_VARIANT_DESCRIPTIONS: Incomplete
|
|
20
|
+
|
|
21
|
+
def _is_gauge_with_variant(output: QbusMqttOutput) -> bool: ...
|
|
22
|
+
def _is_ventilation_with_co2(output: QbusMqttOutput) -> bool: ...
|
|
23
|
+
async def async_setup_entry(hass: HomeAssistant, entry: QbusConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
24
|
+
|
|
25
|
+
class QbusGaugeVariantSensor(QbusEntity, SensorEntity):
|
|
26
|
+
_state_cls = QbusMqttGaugeState
|
|
27
|
+
_attr_name: Incomplete
|
|
28
|
+
_attr_suggested_display_precision: int
|
|
29
|
+
entity_description: Incomplete
|
|
30
|
+
def __init__(self, mqtt_output: QbusMqttOutput) -> None: ...
|
|
31
|
+
_attr_native_value: Incomplete
|
|
32
|
+
async def _handle_state_received(self, state: QbusMqttGaugeState) -> None: ...
|
|
33
|
+
|
|
34
|
+
class QbusHumiditySensor(QbusEntity, SensorEntity):
|
|
35
|
+
_state_cls = QbusMqttHumidityState
|
|
36
|
+
_attr_device_class: Incomplete
|
|
37
|
+
_attr_name: Incomplete
|
|
38
|
+
_attr_native_unit_of_measurement = PERCENTAGE
|
|
39
|
+
_attr_state_class: Incomplete
|
|
40
|
+
_attr_native_value: Incomplete
|
|
41
|
+
async def _handle_state_received(self, state: QbusMqttHumidityState) -> None: ...
|
|
42
|
+
|
|
43
|
+
class QbusThermoSensor(QbusEntity, SensorEntity):
|
|
44
|
+
_state_cls = QbusMqttThermoState
|
|
45
|
+
_attr_device_class: Incomplete
|
|
46
|
+
_attr_native_unit_of_measurement: Incomplete
|
|
47
|
+
_attr_state_class: Incomplete
|
|
48
|
+
_attr_native_value: Incomplete
|
|
49
|
+
async def _handle_state_received(self, state: QbusMqttThermoState) -> None: ...
|
|
50
|
+
|
|
51
|
+
class QbusVentilationSensor(QbusEntity, SensorEntity):
|
|
52
|
+
_state_cls = QbusMqttVentilationState
|
|
53
|
+
_attr_device_class: Incomplete
|
|
54
|
+
_attr_name: Incomplete
|
|
55
|
+
_attr_native_unit_of_measurement = CONCENTRATION_PARTS_PER_MILLION
|
|
56
|
+
_attr_state_class: Incomplete
|
|
57
|
+
_attr_suggested_display_precision: int
|
|
58
|
+
_attr_native_value: Incomplete
|
|
59
|
+
async def _handle_state_received(self, state: QbusMqttVentilationState) -> None: ...
|
|
60
|
+
|
|
61
|
+
class QbusWeatherSensor(QbusEntity, SensorEntity):
|
|
62
|
+
_state_cls = QbusMqttWeatherState
|
|
63
|
+
entity_description: QbusWeatherDescription
|
|
64
|
+
_attr_name: Incomplete
|
|
65
|
+
def __init__(self, mqtt_output: QbusMqttOutput, description: QbusWeatherDescription) -> None: ...
|
|
66
|
+
native_value: Incomplete
|
|
67
|
+
async def _handle_state_received(self, state: QbusMqttWeatherState) -> None: ...
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from .coordinator import QbusConfigEntry as QbusConfigEntry
|
|
2
|
-
from .entity import QbusEntity as QbusEntity,
|
|
2
|
+
from .entity import QbusEntity as QbusEntity, create_new_entities as create_new_entities
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from homeassistant.components.switch import SwitchDeviceClass as SwitchDeviceClass, SwitchEntity as SwitchEntity
|
|
5
5
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
@@ -15,7 +15,7 @@ from homeassistant.helpers.singleton import singleton as singleton
|
|
|
15
15
|
from homeassistant.helpers.typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
|
|
16
16
|
from homeassistant.util.collection import chunked_or_all as chunked_or_all
|
|
17
17
|
from homeassistant.util.enum import try_parse_enum as try_parse_enum
|
|
18
|
-
from homeassistant.util.unit_conversion import AreaConverter as AreaConverter, BaseUnitConverter as BaseUnitConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, MassVolumeConcentrationConverter as MassVolumeConcentrationConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
|
|
18
|
+
from homeassistant.util.unit_conversion import ApparentPowerConverter as ApparentPowerConverter, AreaConverter as AreaConverter, BaseUnitConverter as BaseUnitConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, MassVolumeConcentrationConverter as MassVolumeConcentrationConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, ReactivePowerConverter as ReactivePowerConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
|
|
19
19
|
from sqlalchemy import Label as Label, Select as Select
|
|
20
20
|
from sqlalchemy.engine.row import Row
|
|
21
21
|
from sqlalchemy.orm.session import Session as Session
|
|
@@ -8,7 +8,7 @@ from homeassistant.components.websocket_api import messages as messages
|
|
|
8
8
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback, valid_entity_id as valid_entity_id
|
|
9
9
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
10
10
|
from homeassistant.helpers.json import json_bytes as json_bytes
|
|
11
|
-
from homeassistant.util.unit_conversion import AreaConverter as AreaConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, MassVolumeConcentrationConverter as MassVolumeConcentrationConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
|
|
11
|
+
from homeassistant.util.unit_conversion import ApparentPowerConverter as ApparentPowerConverter, AreaConverter as AreaConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, MassVolumeConcentrationConverter as MassVolumeConcentrationConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, ReactivePowerConverter as ReactivePowerConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
|
|
12
12
|
from typing import Any, Literal
|
|
13
13
|
|
|
14
14
|
CLEAR_STATISTICS_TIME_OUT: int
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from _typeshed import Incomplete
|
|
2
|
-
from homeassistant.const import CONF_HEADERS as CONF_HEADERS, CONF_METHOD as CONF_METHOD, CONF_PASSWORD as CONF_PASSWORD, CONF_PAYLOAD as CONF_PAYLOAD, CONF_TIMEOUT as CONF_TIMEOUT, CONF_URL as CONF_URL, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL, SERVICE_RELOAD as SERVICE_RELOAD
|
|
2
|
+
from homeassistant.const import CONF_AUTHENTICATION as CONF_AUTHENTICATION, CONF_HEADERS as CONF_HEADERS, CONF_METHOD as CONF_METHOD, CONF_PASSWORD as CONF_PASSWORD, CONF_PAYLOAD as CONF_PAYLOAD, CONF_TIMEOUT as CONF_TIMEOUT, CONF_URL as CONF_URL, CONF_USERNAME as CONF_USERNAME, CONF_VERIFY_SSL as CONF_VERIFY_SSL, HTTP_BASIC_AUTHENTICATION as HTTP_BASIC_AUTHENTICATION, HTTP_DIGEST_AUTHENTICATION as HTTP_DIGEST_AUTHENTICATION, SERVICE_RELOAD as SERVICE_RELOAD
|
|
3
3
|
from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, ServiceResponse as ServiceResponse, SupportsResponse as SupportsResponse, callback as callback
|
|
4
4
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
5
5
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
|
@@ -7,7 +7,6 @@ from romy import RomyRobot as RomyRobot
|
|
|
7
7
|
|
|
8
8
|
class RomyVacuumCoordinator(DataUpdateCoordinator[None]):
|
|
9
9
|
config_entry: ConfigEntry
|
|
10
|
-
hass: Incomplete
|
|
11
10
|
romy: Incomplete
|
|
12
11
|
def __init__(self, hass: HomeAssistant, config_entry: ConfigEntry, romy: RomyRobot) -> None: ...
|
|
13
12
|
async def _async_update_data(self) -> None: ...
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
from aiorussound import RussoundClient as RussoundClient, Zone as Zone
|
|
2
|
+
from homeassistant.components.media_player import BrowseMedia as BrowseMedia, MediaClass as MediaClass
|
|
3
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
4
|
+
|
|
5
|
+
async def async_browse_media(hass: HomeAssistant, client: RussoundClient, media_content_id: str | None, media_content_type: str | None, zone: Zone) -> BrowseMedia: ...
|
|
6
|
+
async def _root_payload(hass: HomeAssistant, presets_by_zone: dict[int, dict[int, str]]) -> BrowseMedia: ...
|
|
7
|
+
async def _presets_payload(presets_by_zone: dict[int, dict[int, str]]) -> BrowseMedia: ...
|
|
8
|
+
def _find_presets_by_zone(client: RussoundClient, zone: Zone) -> dict[int, dict[int, str]]: ...
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import datetime as dt
|
|
2
|
-
from . import RussoundConfigEntry as RussoundConfigEntry
|
|
2
|
+
from . import RussoundConfigEntry as RussoundConfigEntry, media_browser as media_browser
|
|
3
3
|
from .const import DOMAIN as DOMAIN, RUSSOUND_MEDIA_TYPE_PRESET as RUSSOUND_MEDIA_TYPE_PRESET, SELECT_SOURCE_DELAY as SELECT_SOURCE_DELAY
|
|
4
4
|
from .entity import RussoundBaseEntity as RussoundBaseEntity, command as command
|
|
5
5
|
from _typeshed import Incomplete
|
|
6
6
|
from aiorussound import Controller as Controller
|
|
7
7
|
from aiorussound.models import Source as Source
|
|
8
|
-
from homeassistant.components.media_player import MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType
|
|
8
|
+
from homeassistant.components.media_player import BrowseMedia as BrowseMedia, MediaPlayerDeviceClass as MediaPlayerDeviceClass, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType
|
|
9
9
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
10
10
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError, ServiceValidationError as ServiceValidationError
|
|
11
11
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
@@ -69,3 +69,4 @@ class RussoundZoneDevice(RussoundBaseEntity, MediaPlayerEntity):
|
|
|
69
69
|
async def async_media_seek(self, position: float) -> None: ...
|
|
70
70
|
@command
|
|
71
71
|
async def async_play_media(self, media_type: MediaType | str, media_id: str, **kwargs: Any) -> None: ...
|
|
72
|
+
async def async_browse_media(self, media_content_type: MediaType | str | None = None, media_content_id: str | None = None) -> BrowseMedia: ...
|
|
@@ -5,14 +5,14 @@ from homeassistant.components.bluetooth.passive_update_processor import PassiveB
|
|
|
5
5
|
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
|
|
6
6
|
from homeassistant.const import PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfPressure as UnitOfPressure, UnitOfTemperature as UnitOfTemperature
|
|
7
7
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
8
|
+
from homeassistant.helpers.entity import EntityDescription as EntityDescription
|
|
8
9
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
9
10
|
from homeassistant.helpers.sensor import sensor_device_info_to_hass_device_info as sensor_device_info_to_hass_device_info
|
|
10
|
-
from sensor_state_data import DeviceKey as DeviceKey,
|
|
11
|
+
from sensor_state_data import DeviceKey as DeviceKey, SensorUpdate
|
|
11
12
|
|
|
12
13
|
SENSOR_DESCRIPTIONS: Incomplete
|
|
13
14
|
|
|
14
15
|
def _device_key_to_bluetooth_entity_key(device_key: DeviceKey) -> PassiveBluetoothEntityKey: ...
|
|
15
|
-
def _to_sensor_key(description: SensorDescription) -> tuple[SSDSensorDeviceClass, Units | None]: ...
|
|
16
16
|
def sensor_update_to_bluetooth_data_update(sensor_update: SensorUpdate) -> PassiveBluetoothDataUpdate: ...
|
|
17
17
|
async def async_setup_entry(hass: HomeAssistant, entry: config_entries.ConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
18
18
|
|
|
@@ -2,15 +2,16 @@ from _typeshed import Incomplete
|
|
|
2
2
|
from homeassistant.components.light import ATTR_TRANSITION as ATTR_TRANSITION
|
|
3
3
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
4
4
|
from homeassistant.const import CONF_PLATFORM as CONF_PLATFORM, SERVICE_TURN_ON as SERVICE_TURN_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE
|
|
5
|
-
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
5
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
|
6
6
|
from homeassistant.helpers.entity_component import EntityComponent as EntityComponent
|
|
7
7
|
from homeassistant.helpers.restore_state import RestoreEntity as RestoreEntity
|
|
8
8
|
from homeassistant.helpers.typing import ConfigType as ConfigType
|
|
9
|
+
from homeassistant.util.async_ import run_callback_threadsafe as run_callback_threadsafe
|
|
9
10
|
from homeassistant.util.hass_dict import HassKey as HassKey
|
|
10
11
|
from typing import Any, Final, final
|
|
11
12
|
|
|
12
13
|
DOMAIN: Final[str]
|
|
13
|
-
DATA_COMPONENT: HassKey[EntityComponent[
|
|
14
|
+
DATA_COMPONENT: HassKey[EntityComponent[BaseScene]]
|
|
14
15
|
STATES: Final[str]
|
|
15
16
|
|
|
16
17
|
def _hass_domain_validator(config: dict[str, Any]) -> dict[str, Any]: ...
|
|
@@ -22,14 +23,22 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
|
|
|
22
23
|
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
|
|
23
24
|
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
|
|
24
25
|
|
|
25
|
-
class
|
|
26
|
+
class BaseScene(RestoreEntity):
|
|
26
27
|
_attr_should_poll: bool
|
|
27
28
|
__last_activated: str | None
|
|
28
29
|
@property
|
|
29
30
|
@final
|
|
30
31
|
def state(self) -> str | None: ...
|
|
31
32
|
@final
|
|
32
|
-
|
|
33
|
+
def _record_activation(self) -> None: ...
|
|
34
|
+
@final
|
|
35
|
+
@callback
|
|
36
|
+
def _async_record_activation(self) -> None: ...
|
|
33
37
|
async def async_internal_added_to_hass(self) -> None: ...
|
|
38
|
+
async def _async_activate(self, **kwargs: Any) -> None: ...
|
|
34
39
|
def activate(self, **kwargs: Any) -> None: ...
|
|
35
40
|
async def async_activate(self, **kwargs: Any) -> None: ...
|
|
41
|
+
|
|
42
|
+
class Scene(BaseScene):
|
|
43
|
+
@final
|
|
44
|
+
async def _async_activate(self, **kwargs: Any) -> None: ...
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
from . import SensiboConfigEntry as SensiboConfigEntry
|
|
2
|
-
from .const import DOMAIN as DOMAIN
|
|
3
2
|
from .coordinator import SensiboDataUpdateCoordinator as SensiboDataUpdateCoordinator
|
|
4
3
|
from .entity import SensiboDeviceBaseEntity as SensiboDeviceBaseEntity, async_handle_api_call as async_handle_api_call
|
|
5
4
|
from _typeshed import Incomplete
|
|
6
5
|
from collections.abc import Callable as Callable
|
|
7
6
|
from dataclasses import dataclass
|
|
8
|
-
from homeassistant.components.automation import automations_with_entity as automations_with_entity
|
|
9
|
-
from homeassistant.components.script import scripts_with_entity as scripts_with_entity
|
|
10
7
|
from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
|
|
11
8
|
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
12
9
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
|
13
|
-
from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue, async_delete_issue as async_delete_issue
|
|
14
10
|
from pysensibo.model import SensiboDevice as SensiboDevice
|
|
15
11
|
from typing import Any
|
|
16
12
|
|
|
@@ -23,7 +19,6 @@ class SensiboSelectEntityDescription(SelectEntityDescription):
|
|
|
23
19
|
options_fn: Callable[[SensiboDevice], list[str] | None]
|
|
24
20
|
transformation: Callable[[SensiboDevice], dict | None]
|
|
25
21
|
|
|
26
|
-
HORIZONTAL_SWING_MODE_TYPE: Incomplete
|
|
27
22
|
DEVICE_SELECT_TYPES: Incomplete
|
|
28
23
|
|
|
29
24
|
async def async_setup_entry(hass: HomeAssistant, entry: SensiboConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
|
@@ -80,6 +80,9 @@ class SensorEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
|
|
|
80
80
|
def suggested_display_precision(self) -> int | None: ...
|
|
81
81
|
@cached_property
|
|
82
82
|
def native_unit_of_measurement(self) -> str | None: ...
|
|
83
|
+
@final
|
|
84
|
+
@property
|
|
85
|
+
def __native_unit_of_measurement_compat(self) -> str | None: ...
|
|
83
86
|
@cached_property
|
|
84
87
|
def suggested_unit_of_measurement(self) -> str | None: ...
|
|
85
88
|
@final
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from _typeshed import Incomplete
|
|
2
2
|
from enum import StrEnum
|
|
3
|
-
from homeassistant.const import CONCENTRATION_GRAMS_PER_CUBIC_METER as CONCENTRATION_GRAMS_PER_CUBIC_METER, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER as CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfArea as UnitOfArea, UnitOfBloodGlucoseConcentration as UnitOfBloodGlucoseConcentration, UnitOfConductivity as UnitOfConductivity, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfEnergyDistance as UnitOfEnergyDistance, UnitOfFrequency as UnitOfFrequency, UnitOfInformation as UnitOfInformation, UnitOfIrradiance as UnitOfIrradiance, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfReactiveEnergy as UnitOfReactiveEnergy, UnitOfReactivePower as UnitOfReactivePower, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate, UnitOfVolumetricFlux as UnitOfVolumetricFlux
|
|
4
|
-
from homeassistant.util.unit_conversion import AreaConverter as AreaConverter, BaseUnitConverter as BaseUnitConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, MassVolumeConcentrationConverter as MassVolumeConcentrationConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
|
|
3
|
+
from homeassistant.const import CONCENTRATION_GRAMS_PER_CUBIC_METER as CONCENTRATION_GRAMS_PER_CUBIC_METER, CONCENTRATION_MICROGRAMS_PER_CUBIC_FOOT as CONCENTRATION_MICROGRAMS_PER_CUBIC_FOOT, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER as CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfArea as UnitOfArea, UnitOfBloodGlucoseConcentration as UnitOfBloodGlucoseConcentration, UnitOfConductivity as UnitOfConductivity, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfEnergyDistance as UnitOfEnergyDistance, UnitOfFrequency as UnitOfFrequency, UnitOfInformation as UnitOfInformation, UnitOfIrradiance as UnitOfIrradiance, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfReactiveEnergy as UnitOfReactiveEnergy, UnitOfReactivePower as UnitOfReactivePower, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate, UnitOfVolumetricFlux as UnitOfVolumetricFlux
|
|
4
|
+
from homeassistant.util.unit_conversion import ApparentPowerConverter as ApparentPowerConverter, AreaConverter as AreaConverter, BaseUnitConverter as BaseUnitConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, MassVolumeConcentrationConverter as MassVolumeConcentrationConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, ReactiveEnergyConverter as ReactiveEnergyConverter, ReactivePowerConverter as ReactivePowerConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
|
|
5
5
|
from typing import Final
|
|
6
6
|
|
|
7
7
|
DOMAIN: Final[str]
|
|
@@ -88,3 +88,4 @@ DEFAULT_PRECISION_LIMIT: int
|
|
|
88
88
|
UNITS_PRECISION: Incomplete
|
|
89
89
|
DEVICE_CLASS_STATE_CLASSES: dict[SensorDeviceClass, set[SensorStateClass]]
|
|
90
90
|
STATE_CLASS_UNITS: dict[SensorStateClass | str, set[type[StrEnum] | str | None]]
|
|
91
|
+
AMBIGUOUS_UNITS: dict[str | None, str]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import datetime
|
|
2
|
-
from .const import ATTR_LAST_RESET as ATTR_LAST_RESET, ATTR_STATE_CLASS as ATTR_STATE_CLASS, DOMAIN as DOMAIN, SensorStateClass as SensorStateClass, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
|
|
2
|
+
from .const import AMBIGUOUS_UNITS as AMBIGUOUS_UNITS, ATTR_LAST_RESET as ATTR_LAST_RESET, ATTR_STATE_CLASS as ATTR_STATE_CLASS, DOMAIN as DOMAIN, SensorStateClass as SensorStateClass, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
|
|
3
3
|
from _typeshed import Incomplete
|
|
4
4
|
from collections.abc import Callable as Callable, Iterable
|
|
5
5
|
from dataclasses import dataclass
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from .const import ATTR_EVENT as ATTR_EVENT, ATTR_VALUE1 as ATTR_VALUE1, ATTR_VALUE2 as ATTR_VALUE2, ATTR_VALUE3 as ATTR_VALUE3, DOMAIN as DOMAIN
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from aiohttp.web import Request as Request, Response
|
|
4
|
+
from homeassistant.components import webhook as webhook
|
|
5
|
+
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
|
6
|
+
from homeassistant.const import CONF_WEBHOOK_ID as CONF_WEBHOOK_ID, Platform as Platform
|
|
7
|
+
from homeassistant.core import HomeAssistant as HomeAssistant
|
|
8
|
+
from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
|
|
9
|
+
|
|
10
|
+
PLATFORMS: list[Platform]
|
|
11
|
+
type SleepAsAndroidConfigEntry = ConfigEntry
|
|
12
|
+
WEBHOOK_SCHEMA: Incomplete
|
|
13
|
+
|
|
14
|
+
async def handle_webhook(hass: HomeAssistant, webhook_id: str, request: Request) -> Response: ...
|
|
15
|
+
async def async_setup_entry(hass: HomeAssistant, entry: SleepAsAndroidConfigEntry) -> bool: ...
|
|
16
|
+
async def async_unload_entry(hass: HomeAssistant, entry: SleepAsAndroidConfigEntry) -> bool: ...
|