homeassistant-stubs 2024.7.4__py3-none-any.whl → 2024.8.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.
- homeassistant-stubs/auth/__init__.pyi +1 -1
- homeassistant-stubs/auth/permissions/events.pyi +3 -0
- homeassistant-stubs/auth/permissions/types.pyi +3 -4
- homeassistant-stubs/auth/permissions/util.pyi +1 -2
- homeassistant-stubs/auth/providers/trusted_networks.pyi +3 -2
- homeassistant-stubs/bootstrap.pyi +2 -2
- homeassistant-stubs/components/abode/__init__.pyi +1 -1
- homeassistant-stubs/components/abode/sensor.pyi +1 -1
- homeassistant-stubs/components/accuweather/sensor.pyi +1 -1
- homeassistant-stubs/components/adguard/sensor.pyi +1 -1
- homeassistant-stubs/components/adguard/switch.pyi +1 -1
- homeassistant-stubs/components/airgradient/__init__.pyi +2 -2
- homeassistant-stubs/components/airgradient/button.pyi +1 -1
- homeassistant-stubs/components/airgradient/coordinator.pyi +0 -4
- homeassistant-stubs/components/airgradient/number.pyi +1 -1
- homeassistant-stubs/components/airgradient/select.pyi +1 -1
- homeassistant-stubs/components/airgradient/sensor.pyi +2 -2
- homeassistant-stubs/components/airgradient/switch.pyi +1 -1
- homeassistant-stubs/components/airly/sensor.pyi +1 -1
- homeassistant-stubs/components/airnow/sensor.pyi +1 -1
- homeassistant-stubs/components/airq/sensor.pyi +1 -1
- homeassistant-stubs/components/airtouch5/climate.pyi +1 -0
- homeassistant-stubs/components/airtouch5/cover.pyi +34 -0
- homeassistant-stubs/components/airtouch5/entity.pyi +0 -2
- homeassistant-stubs/components/airvisual_pro/config_flow.pyi +1 -1
- homeassistant-stubs/components/airvisual_pro/sensor.pyi +1 -1
- homeassistant-stubs/components/airzone/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/airzone/select.pyi +1 -1
- homeassistant-stubs/components/airzone_cloud/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/airzone_cloud/select.pyi +1 -1
- homeassistant-stubs/components/airzone_cloud/sensor.pyi +1 -1
- homeassistant-stubs/components/alarm_control_panel/__init__.pyi +1 -1
- homeassistant-stubs/components/alarm_control_panel/const.pyi +8 -8
- homeassistant-stubs/components/alexa/capabilities.pyi +2 -2
- homeassistant-stubs/components/alexa/entities.pyi +7 -3
- homeassistant-stubs/components/alexa/handlers.pyi +1 -1
- homeassistant-stubs/components/alexa/intent.pyi +4 -4
- homeassistant-stubs/components/amberelectric/binary_sensor.pyi +4 -0
- homeassistant-stubs/components/ambient_station/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/amcrest/__init__.pyi +1 -1
- homeassistant-stubs/components/amcrest/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/analytics_insights/sensor.pyi +1 -1
- homeassistant-stubs/components/android_ip_webcam/sensor.pyi +1 -1
- homeassistant-stubs/components/android_ip_webcam/switch.pyi +1 -1
- homeassistant-stubs/components/anova/sensor.pyi +1 -1
- homeassistant-stubs/components/apache_kafka/__init__.pyi +1 -1
- homeassistant-stubs/components/apcupsd/const.pyi +1 -0
- homeassistant-stubs/components/apcupsd/sensor.pyi +3 -2
- homeassistant-stubs/components/api/__init__.pyi +1 -1
- homeassistant-stubs/components/apsystems/__init__.pyi +2 -1
- homeassistant-stubs/components/apsystems/config_flow.pyi +2 -2
- homeassistant-stubs/components/apsystems/const.pyi +1 -0
- homeassistant-stubs/components/apsystems/sensor.pyi +1 -1
- homeassistant-stubs/components/apsystems/switch.pyi +21 -0
- homeassistant-stubs/components/aqualogic/sensor.pyi +1 -1
- homeassistant-stubs/components/aranet/sensor.pyi +1 -1
- homeassistant-stubs/components/arcam_fmj/__init__.pyi +3 -4
- homeassistant-stubs/components/arcam_fmj/config_flow.pyi +2 -6
- homeassistant-stubs/components/arcam_fmj/const.pyi +0 -3
- homeassistant-stubs/components/arcam_fmj/media_player.pyi +2 -3
- homeassistant-stubs/components/aseko_pool_live/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/aseko_pool_live/entity.pyi +1 -1
- homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
- homeassistant-stubs/components/assist_pipeline/audio_enhancer.pyi +28 -0
- homeassistant-stubs/components/assist_pipeline/const.pyi +6 -0
- homeassistant-stubs/components/assist_pipeline/pipeline.pyi +41 -50
- homeassistant-stubs/components/assist_pipeline/vad.pyi +8 -23
- homeassistant-stubs/components/assist_pipeline/websocket_api.pyi +2 -2
- homeassistant-stubs/components/asuswrt/bridge.pyi +2 -2
- homeassistant-stubs/components/asuswrt/sensor.pyi +1 -1
- homeassistant-stubs/components/autarco/__init__.pyi +11 -0
- homeassistant-stubs/components/autarco/config_flow.pyi +11 -0
- homeassistant-stubs/components/autarco/const.pyi +6 -0
- homeassistant-stubs/components/autarco/coordinator.pyi +18 -0
- homeassistant-stubs/components/autarco/diagnostics.pyi +5 -0
- homeassistant-stubs/components/autarco/sensor.pyi +49 -0
- homeassistant-stubs/components/auth/__init__.pyi +1 -1
- homeassistant-stubs/components/automation/config.pyi +6 -6
- homeassistant-stubs/components/automation/trace.pyi +1 -1
- homeassistant-stubs/components/awair/sensor.pyi +1 -1
- homeassistant-stubs/components/axis/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/axis/entity.pyi +1 -1
- homeassistant-stubs/components/axis/light.pyi +1 -1
- homeassistant-stubs/components/axis/switch.pyi +1 -1
- homeassistant-stubs/components/baf/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/baf/fan.pyi +1 -0
- homeassistant-stubs/components/baf/number.pyi +1 -1
- homeassistant-stubs/components/baf/sensor.pyi +1 -1
- homeassistant-stubs/components/baf/switch.pyi +1 -1
- homeassistant-stubs/components/bang_olufsen/const.pyi +26 -35
- homeassistant-stubs/components/bayesian/helpers.pyi +1 -1
- homeassistant-stubs/components/binary_sensor/__init__.pyi +29 -29
- homeassistant-stubs/components/blueprint/importer.pyi +4 -0
- homeassistant-stubs/components/bluetooth/passive_update_coordinator.pyi +2 -2
- homeassistant-stubs/components/bluetooth/passive_update_processor.pyi +1 -1
- homeassistant-stubs/components/bmw_connected_drive/__init__.pyi +9 -17
- homeassistant-stubs/components/bmw_connected_drive/binary_sensor.pyi +5 -5
- homeassistant-stubs/components/bmw_connected_drive/button.pyi +4 -5
- homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +1 -0
- homeassistant-stubs/components/bmw_connected_drive/const.pyi +0 -1
- homeassistant-stubs/components/bmw_connected_drive/device_tracker.pyi +4 -4
- homeassistant-stubs/components/bmw_connected_drive/diagnostics.pyi +4 -5
- homeassistant-stubs/components/bmw_connected_drive/entity.pyi +13 -0
- homeassistant-stubs/components/bmw_connected_drive/lock.pyi +3 -4
- homeassistant-stubs/components/bmw_connected_drive/notify.pyi +4 -8
- homeassistant-stubs/components/bmw_connected_drive/number.pyi +4 -5
- homeassistant-stubs/components/bmw_connected_drive/select.pyi +4 -5
- homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +6 -6
- homeassistant-stubs/components/bmw_connected_drive/switch.pyi +4 -5
- homeassistant-stubs/components/bond/button.pyi +5 -4
- homeassistant-stubs/components/bond/cover.pyi +3 -3
- homeassistant-stubs/components/bond/entity.pyi +4 -3
- homeassistant-stubs/components/bond/fan.pyi +3 -3
- homeassistant-stubs/components/bond/light.pyi +3 -3
- homeassistant-stubs/components/braviatv/button.pyi +1 -1
- homeassistant-stubs/components/braviatv/const.pyi +3 -3
- homeassistant-stubs/components/brother/sensor.pyi +1 -1
- homeassistant-stubs/components/bryant_evolution/__init__.pyi +17 -0
- homeassistant-stubs/components/bryant_evolution/climate.pyi +43 -0
- homeassistant-stubs/components/bryant_evolution/config_flow.pyi +15 -0
- homeassistant-stubs/components/bryant_evolution/const.pyi +2 -0
- homeassistant-stubs/components/bryant_evolution/names.pyi +5 -0
- homeassistant-stubs/components/bthome/__init__.pyi +5 -5
- homeassistant-stubs/components/bthome/binary_sensor.pyi +3 -4
- homeassistant-stubs/components/bthome/coordinator.pyi +2 -2
- homeassistant-stubs/components/bthome/event.pyi +2 -3
- homeassistant-stubs/components/bthome/sensor.pyi +3 -4
- homeassistant-stubs/components/bthome/types.pyi +4 -0
- homeassistant-stubs/components/button/__init__.pyi +4 -4
- homeassistant-stubs/components/calendar/__init__.pyi +1 -1
- homeassistant-stubs/components/calendar/const.pyi +3 -3
- homeassistant-stubs/components/camera/__init__.pyi +4 -5
- homeassistant-stubs/components/camera/const.pyi +2 -2
- homeassistant-stubs/components/camera/prefs.pyi +1 -1
- homeassistant-stubs/components/canary/sensor.pyi +1 -1
- homeassistant-stubs/components/climate/__init__.pyi +2 -1
- homeassistant-stubs/components/climate/const.pyi +24 -23
- homeassistant-stubs/components/climate/reproduce_state.pyi +1 -1
- homeassistant-stubs/components/cloud/__init__.pyi +2 -2
- homeassistant-stubs/components/co2signal/sensor.pyi +1 -1
- homeassistant-stubs/components/command_line/__init__.pyi +1 -2
- homeassistant-stubs/components/command_line/const.pyi +2 -0
- homeassistant-stubs/components/command_line/sensor.pyi +3 -3
- homeassistant-stubs/components/config/config_entries.pyi +2 -2
- homeassistant-stubs/components/cover/__init__.pyi +19 -19
- homeassistant-stubs/components/cover/intent.pyi +1 -1
- homeassistant-stubs/components/date/__init__.pyi +1 -1
- homeassistant-stubs/components/datetime/__init__.pyi +1 -1
- homeassistant-stubs/components/deconz/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/deconz/button.pyi +1 -1
- homeassistant-stubs/components/deconz/deconz_device.pyi +4 -1
- homeassistant-stubs/components/deconz/fan.pyi +1 -0
- homeassistant-stubs/components/deconz/number.pyi +1 -1
- homeassistant-stubs/components/deconz/sensor.pyi +1 -1
- homeassistant-stubs/components/demo/fan.pyi +1 -0
- homeassistant-stubs/components/demo/mailbox.pyi +1 -0
- homeassistant-stubs/components/device_automation/__init__.pyi +5 -4
- homeassistant-stubs/components/device_tracker/config_entry.pyi +10 -9
- homeassistant-stubs/components/device_tracker/const.pyi +4 -4
- homeassistant-stubs/components/devolo_home_network/binary_sensor.pyi +3 -1
- homeassistant-stubs/components/devolo_home_network/button.pyi +3 -1
- homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +2 -0
- homeassistant-stubs/components/devolo_home_network/entity.pyi +3 -1
- homeassistant-stubs/components/devolo_home_network/image.pyi +3 -1
- homeassistant-stubs/components/devolo_home_network/sensor.pyi +4 -3
- homeassistant-stubs/components/devolo_home_network/switch.pyi +2 -1
- homeassistant-stubs/components/devolo_home_network/update.pyi +3 -1
- homeassistant-stubs/components/diagnostics/__init__.pyi +1 -1
- homeassistant-stubs/components/diagnostics/const.pyi +2 -2
- homeassistant-stubs/components/discovergy/sensor.pyi +1 -1
- homeassistant-stubs/components/dlna_dmr/config_flow.pyi +1 -1
- homeassistant-stubs/components/doorbird/__init__.pyi +9 -14
- homeassistant-stubs/components/doorbird/button.pyi +11 -12
- homeassistant-stubs/components/doorbird/camera.pyi +3 -6
- homeassistant-stubs/components/doorbird/config_flow.pyi +10 -3
- homeassistant-stubs/components/doorbird/const.pyi +6 -3
- homeassistant-stubs/components/doorbird/device.pyi +33 -14
- homeassistant-stubs/components/doorbird/event.pyi +23 -0
- homeassistant-stubs/components/doorbird/logbook.pyi +1 -1
- homeassistant-stubs/components/doorbird/models.pyi +3 -0
- homeassistant-stubs/components/doorbird/repairs.pyi +12 -0
- homeassistant-stubs/components/doorbird/util.pyi +3 -2
- homeassistant-stubs/components/doorbird/view.pyi +1 -1
- homeassistant-stubs/components/dormakaba_dkey/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/dsmr/__init__.pyi +14 -4
- homeassistant-stubs/components/dsmr/const.pyi +0 -1
- homeassistant-stubs/components/dsmr/diagnostics.pyi +6 -0
- homeassistant-stubs/components/dsmr/sensor.pyi +19 -10
- homeassistant-stubs/components/easyenergy/sensor.pyi +1 -1
- homeassistant-stubs/components/easyenergy/services.pyi +3 -3
- homeassistant-stubs/components/ecovacs/__init__.pyi +1 -0
- homeassistant-stubs/components/ecovacs/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/ecovacs/button.pyi +2 -2
- homeassistant-stubs/components/ecovacs/const.pyi +3 -2
- homeassistant-stubs/components/ecovacs/controller.pyi +3 -0
- homeassistant-stubs/components/ecovacs/entity.pyi +15 -1
- homeassistant-stubs/components/ecovacs/number.pyi +3 -3
- homeassistant-stubs/components/ecovacs/select.pyi +1 -1
- homeassistant-stubs/components/ecovacs/sensor.pyi +19 -4
- homeassistant-stubs/components/ecovacs/switch.pyi +1 -1
- homeassistant-stubs/components/ecovacs/vacuum.pyi +3 -9
- homeassistant-stubs/components/ecowitt/__init__.pyi +4 -2
- homeassistant-stubs/components/ecowitt/binary_sensor.pyi +3 -4
- homeassistant-stubs/components/ecowitt/diagnostics.pyi +2 -3
- homeassistant-stubs/components/ecowitt/sensor.pyi +3 -4
- homeassistant-stubs/components/electric_kiwi/sensor.pyi +2 -2
- homeassistant-stubs/components/elevenlabs/__init__.pyi +23 -0
- homeassistant-stubs/components/elevenlabs/config_flow.pyi +26 -0
- homeassistant-stubs/components/elevenlabs/const.pyi +4 -0
- homeassistant-stubs/components/elevenlabs/tts.pyi +30 -0
- homeassistant-stubs/components/elgato/button.pyi +1 -1
- homeassistant-stubs/components/elgato/sensor.pyi +1 -1
- homeassistant-stubs/components/elgato/switch.pyi +1 -1
- homeassistant-stubs/components/elkm1/config_flow.pyi +2 -2
- homeassistant-stubs/components/energy/data.pyi +1 -2
- homeassistant-stubs/components/energy/types.pyi +2 -3
- homeassistant-stubs/components/energy/validate.pyi +2 -2
- homeassistant-stubs/components/energyzero/sensor.pyi +1 -1
- homeassistant-stubs/components/energyzero/services.pyi +2 -2
- homeassistant-stubs/components/enigma2/__init__.pyi +3 -5
- homeassistant-stubs/components/enigma2/coordinator.pyi +19 -0
- homeassistant-stubs/components/enigma2/media_player.pyi +6 -8
- homeassistant-stubs/components/enphase_envoy/__init__.pyi +4 -5
- homeassistant-stubs/components/enphase_envoy/binary_sensor.pyi +4 -5
- homeassistant-stubs/components/enphase_envoy/coordinator.pyi +2 -1
- homeassistant-stubs/components/enphase_envoy/diagnostics.pyi +3 -4
- homeassistant-stubs/components/enphase_envoy/number.pyi +4 -5
- homeassistant-stubs/components/enphase_envoy/select.pyi +4 -5
- homeassistant-stubs/components/enphase_envoy/sensor.pyi +10 -11
- homeassistant-stubs/components/enphase_envoy/switch.pyi +5 -8
- homeassistant-stubs/components/eq3btsmart/const.pyi +10 -10
- homeassistant-stubs/components/eq3btsmart/models.pyi +1 -1
- homeassistant-stubs/components/esphome/domain_data.pyi +1 -1
- homeassistant-stubs/components/esphome/entity.pyi +2 -3
- homeassistant-stubs/components/esphome/entry_data.pyi +1 -1
- homeassistant-stubs/components/esphome/fan.pyi +1 -0
- homeassistant-stubs/components/esphome/update.pyi +1 -0
- homeassistant-stubs/components/esphome/voice_assistant.pyi +1 -0
- homeassistant-stubs/components/event/__init__.pyi +4 -4
- homeassistant-stubs/components/evohome/__init__.pyi +18 -34
- homeassistant-stubs/components/evohome/climate.pyi +3 -2
- homeassistant-stubs/components/evohome/coordinator.pyi +11 -16
- homeassistant-stubs/components/evohome/entity.pyi +37 -0
- homeassistant-stubs/components/evohome/water_heater.pyi +2 -1
- homeassistant-stubs/components/faa_delays/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/fan/__init__.pyi +13 -7
- homeassistant-stubs/components/feedreader/__init__.pyi +1 -1
- homeassistant-stubs/components/feedreader/const.pyi +7 -5
- homeassistant-stubs/components/feedreader/coordinator.pyi +11 -7
- homeassistant-stubs/components/feedreader/event.pyi +30 -0
- homeassistant-stubs/components/fitbit/const.pyi +11 -11
- homeassistant-stubs/components/fitbit/sensor.pyi +1 -1
- homeassistant-stubs/components/flexit_bacnet/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/flexit_bacnet/number.pyi +1 -1
- homeassistant-stubs/components/flexit_bacnet/sensor.pyi +1 -1
- homeassistant-stubs/components/flexit_bacnet/switch.pyi +1 -1
- homeassistant-stubs/components/forecast_solar/sensor.pyi +1 -1
- homeassistant-stubs/components/fritz/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/fritz/button.pyi +1 -1
- homeassistant-stubs/components/fritz/config_flow.pyi +1 -0
- homeassistant-stubs/components/fritz/const.pyi +3 -3
- homeassistant-stubs/components/fritz/coordinator.pyi +3 -3
- homeassistant-stubs/components/fritz/entity.pyi +1 -1
- homeassistant-stubs/components/fritz/sensor.pyi +1 -1
- homeassistant-stubs/components/fritz/update.pyi +1 -1
- homeassistant-stubs/components/fritzbox/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/fritzbox/sensor.pyi +1 -1
- homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +5 -5
- homeassistant-stubs/components/fritzbox_callmonitor/const.pyi +4 -4
- homeassistant-stubs/components/fritzbox_callmonitor/sensor.pyi +4 -4
- homeassistant-stubs/components/fronius/const.pyi +21 -21
- homeassistant-stubs/components/fronius/sensor.pyi +1 -1
- homeassistant-stubs/components/frontend/__init__.pyi +3 -2
- homeassistant-stubs/components/fully_kiosk/button.pyi +1 -1
- homeassistant-stubs/components/fully_kiosk/image.pyi +1 -1
- homeassistant-stubs/components/fully_kiosk/notify.pyi +1 -1
- homeassistant-stubs/components/fully_kiosk/sensor.pyi +1 -1
- homeassistant-stubs/components/fully_kiosk/switch.pyi +1 -1
- homeassistant-stubs/components/generic_hygrostat/__init__.pyi +1 -0
- homeassistant-stubs/components/generic_hygrostat/config_flow.pyi +1 -0
- homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +3 -1
- homeassistant-stubs/components/generic_thermostat/__init__.pyi +2 -5
- homeassistant-stubs/components/generic_thermostat/climate.pyi +10 -15
- homeassistant-stubs/components/generic_thermostat/config_flow.pyi +2 -1
- homeassistant-stubs/components/generic_thermostat/const.pyi +14 -0
- homeassistant-stubs/components/geocaching/sensor.pyi +1 -1
- homeassistant-stubs/components/gios/sensor.pyi +1 -1
- homeassistant-stubs/components/glances/sensor.pyi +1 -1
- homeassistant-stubs/components/google/const.pyi +5 -5
- homeassistant-stubs/components/gpsd/__init__.pyi +5 -3
- homeassistant-stubs/components/gpsd/config_flow.pyi +2 -0
- homeassistant-stubs/components/gpsd/sensor.pyi +6 -5
- homeassistant-stubs/components/group/button.pyi +28 -0
- homeassistant-stubs/components/group/config_flow.pyi +2 -0
- homeassistant-stubs/components/group/fan.pyi +1 -0
- homeassistant-stubs/components/group/notify.pyi +19 -3
- homeassistant-stubs/components/guardian/__init__.pyi +1 -1
- homeassistant-stubs/components/guardian/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/guardian/button.pyi +1 -1
- homeassistant-stubs/components/guardian/sensor.pyi +2 -2
- homeassistant-stubs/components/guardian/switch.pyi +1 -1
- homeassistant-stubs/components/guardian/valve.pyi +9 -9
- homeassistant-stubs/components/here_travel_time/config_flow.pyi +4 -1
- homeassistant-stubs/components/history/websocket_api.pyi +1 -1
- homeassistant-stubs/components/history_stats/__init__.pyi +13 -4
- homeassistant-stubs/components/history_stats/config_flow.pyi +19 -0
- homeassistant-stubs/components/history_stats/const.pyi +14 -0
- homeassistant-stubs/components/history_stats/sensor.pyi +6 -11
- homeassistant-stubs/components/homeassistant/__init__.pyi +4 -4
- homeassistant-stubs/components/homeassistant/logbook.pyi +1 -1
- homeassistant-stubs/components/homeassistant/repairs.pyi +15 -0
- homeassistant-stubs/components/homeassistant/scene.pyi +1 -0
- homeassistant-stubs/components/homeassistant_hardware/const.pyi +7 -0
- homeassistant-stubs/components/homeassistant_hardware/firmware_config_flow.pyi +59 -0
- homeassistant-stubs/components/homeassistant_hardware/util.pyi +24 -0
- homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +1 -1
- homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +19 -49
- homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +2 -10
- homeassistant-stubs/components/homeassistant_sky_connect/util.pyi +2 -20
- homeassistant-stubs/components/homekit/__init__.pyi +17 -8
- homeassistant-stubs/components/homekit/accessories.pyi +1 -1
- homeassistant-stubs/components/homekit/aidmanager.pyi +1 -1
- homeassistant-stubs/components/homekit/diagnostics.pyi +2 -4
- homeassistant-stubs/components/homekit/models.pyi +4 -1
- homeassistant-stubs/components/homekit/type_cameras.pyi +5 -3
- homeassistant-stubs/components/homekit/type_switches.pyi +17 -6
- homeassistant-stubs/components/homekit/util.pyi +1 -1
- homeassistant-stubs/components/homekit_controller/button.pyi +1 -1
- homeassistant-stubs/components/homekit_controller/select.pyi +1 -1
- homeassistant-stubs/components/homekit_controller/utils.pyi +1 -2
- homeassistant-stubs/components/homewizard/__init__.pyi +7 -5
- homeassistant-stubs/components/homewizard/button.pyi +2 -3
- homeassistant-stubs/components/homewizard/const.pyi +1 -1
- homeassistant-stubs/components/homewizard/diagnostics.pyi +2 -4
- homeassistant-stubs/components/homewizard/number.pyi +2 -3
- homeassistant-stubs/components/homewizard/sensor.pyi +4 -4
- homeassistant-stubs/components/homewizard/switch.pyi +4 -4
- homeassistant-stubs/components/homeworks/__init__.pyi +1 -1
- homeassistant-stubs/components/homeworks/config_flow.pyi +5 -3
- homeassistant-stubs/components/http/__init__.pyi +1 -1
- homeassistant-stubs/components/http/decorators.pyi +2 -1
- homeassistant-stubs/components/http/static.pyi +1 -4
- homeassistant-stubs/components/huawei_lte/select.pyi +1 -1
- homeassistant-stubs/components/huawei_lte/sensor.pyi +2 -2
- homeassistant-stubs/components/humidifier/__init__.pyi +3 -3
- homeassistant-stubs/components/humidifier/const.pyi +5 -5
- homeassistant-stubs/components/husqvarna_automower/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/husqvarna_automower/entity.pyi +6 -1
- homeassistant-stubs/components/husqvarna_automower/lawn_mower.pyi +6 -5
- homeassistant-stubs/components/husqvarna_automower/number.pyi +3 -5
- homeassistant-stubs/components/husqvarna_automower/select.pyi +1 -2
- homeassistant-stubs/components/husqvarna_automower/sensor.pyi +9 -2
- homeassistant-stubs/components/husqvarna_automower/switch.pyi +1 -3
- homeassistant-stubs/components/hydrawise/binary_sensor.pyi +14 -2
- homeassistant-stubs/components/hydrawise/const.pyi +5 -2
- homeassistant-stubs/components/hydrawise/sensor.pyi +1 -1
- homeassistant-stubs/components/hydrawise/switch.pyi +1 -1
- homeassistant-stubs/components/hydrawise/valve.pyi +24 -0
- homeassistant-stubs/components/ibeacon/sensor.pyi +1 -1
- homeassistant-stubs/components/idasen_desk/button.pyi +1 -1
- homeassistant-stubs/components/idasen_desk/sensor.pyi +1 -1
- homeassistant-stubs/components/image/__init__.pyi +1 -1
- homeassistant-stubs/components/image_processing/__init__.pyi +4 -4
- homeassistant-stubs/components/image_upload/__init__.pyi +1 -1
- homeassistant-stubs/components/imgw_pib/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/imgw_pib/sensor.pyi +1 -1
- homeassistant-stubs/components/integration/sensor.pyi +2 -2
- homeassistant-stubs/components/intent/__init__.pyi +10 -0
- homeassistant-stubs/components/intent/timers.pyi +7 -7
- homeassistant-stubs/components/ios/__init__.pyi +1 -1
- homeassistant-stubs/components/ios/const.pyi +1 -0
- homeassistant-stubs/components/iotty/__init__.pyi +21 -0
- homeassistant-stubs/components/iotty/api.pyi +15 -0
- homeassistant-stubs/components/iotty/application_credentials.pyi +7 -0
- homeassistant-stubs/components/iotty/config_flow.pyi +8 -0
- homeassistant-stubs/components/iotty/const.pyi +1 -0
- homeassistant-stubs/components/iotty/coordinator.pyi +29 -0
- homeassistant-stubs/components/iotty/switch.pyi +34 -0
- homeassistant-stubs/components/ipp/sensor.pyi +1 -1
- homeassistant-stubs/components/isy994/fan.pyi +1 -0
- homeassistant-stubs/components/isy994/switch.pyi +1 -1
- homeassistant-stubs/components/jellyfin/__init__.pyi +5 -3
- homeassistant-stubs/components/jellyfin/config_flow.pyi +4 -5
- homeassistant-stubs/components/jellyfin/coordinator.pyi +0 -2
- homeassistant-stubs/components/jellyfin/diagnostics.pyi +2 -4
- homeassistant-stubs/components/jellyfin/media_player.pyi +2 -3
- homeassistant-stubs/components/jellyfin/media_source.pyi +2 -3
- homeassistant-stubs/components/jellyfin/sensor.pyi +3 -5
- homeassistant-stubs/components/jewish_calendar/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/jvc_projector/select.pyi +1 -1
- homeassistant-stubs/components/kaleidescape/sensor.pyi +1 -1
- homeassistant-stubs/components/knocki/coordinator.pyi +2 -2
- homeassistant-stubs/components/knx/__init__.pyi +7 -3
- homeassistant-stubs/components/knx/binary_sensor.pyi +4 -4
- homeassistant-stubs/components/knx/button.pyi +4 -4
- homeassistant-stubs/components/knx/climate.pyi +5 -3
- homeassistant-stubs/components/knx/config_flow.pyi +1 -1
- homeassistant-stubs/components/knx/const.pyi +5 -4
- homeassistant-stubs/components/knx/cover.pyi +4 -4
- homeassistant-stubs/components/knx/date.pyi +7 -9
- homeassistant-stubs/components/knx/datetime.pyi +7 -6
- homeassistant-stubs/components/knx/device.pyi +2 -1
- homeassistant-stubs/components/knx/expose.pyi +4 -5
- homeassistant-stubs/components/knx/fan.pyi +5 -4
- homeassistant-stubs/components/knx/knx_entity.pyi +29 -5
- homeassistant-stubs/components/knx/light.pyi +32 -11
- homeassistant-stubs/components/knx/notify.pyi +4 -3
- homeassistant-stubs/components/knx/number.pyi +4 -3
- homeassistant-stubs/components/knx/project.pyi +5 -3
- homeassistant-stubs/components/knx/scene.pyi +4 -4
- homeassistant-stubs/components/knx/schema.pyi +5 -2
- homeassistant-stubs/components/knx/select.pyi +5 -4
- homeassistant-stubs/components/knx/sensor.pyi +5 -5
- homeassistant-stubs/components/knx/services.pyi +1 -1
- homeassistant-stubs/components/knx/storage/config_store.pyi +44 -0
- homeassistant-stubs/components/knx/storage/const.pyi +25 -0
- homeassistant-stubs/components/knx/storage/entity_store_schema.pyi +36 -0
- homeassistant-stubs/components/knx/storage/entity_store_validation.pyi +25 -0
- homeassistant-stubs/components/knx/storage/knx_selector.pyi +21 -0
- homeassistant-stubs/components/knx/switch.pyi +23 -9
- homeassistant-stubs/components/knx/telegrams.pyi +5 -6
- homeassistant-stubs/components/knx/text.pyi +4 -3
- homeassistant-stubs/components/knx/time.pyi +7 -9
- homeassistant-stubs/components/knx/trigger.pyi +1 -1
- homeassistant-stubs/components/knx/validation.pyi +8 -1
- homeassistant-stubs/components/knx/weather.pyi +4 -3
- homeassistant-stubs/components/knx/websocket.pyi +17 -1
- homeassistant-stubs/components/kraken/sensor.pyi +1 -1
- homeassistant-stubs/components/lacrosse_view/sensor.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/button.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/entity.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/number.pyi +2 -2
- homeassistant-stubs/components/lamarzocco/select.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/sensor.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/switch.pyi +1 -1
- homeassistant-stubs/components/lamarzocco/update.pyi +3 -1
- homeassistant-stubs/components/lametric/button.pyi +1 -1
- homeassistant-stubs/components/lametric/number.pyi +1 -1
- homeassistant-stubs/components/lametric/select.pyi +1 -1
- homeassistant-stubs/components/lametric/sensor.pyi +1 -1
- homeassistant-stubs/components/lametric/switch.pyi +1 -1
- homeassistant-stubs/components/laundrify/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/laundrify/const.pyi +3 -1
- homeassistant-stubs/components/laundrify/coordinator.pyi +1 -2
- homeassistant-stubs/components/lawn_mower/__init__.pyi +1 -1
- homeassistant-stubs/components/lawn_mower/const.pyi +7 -7
- homeassistant-stubs/components/lcn/schemas.pyi +9 -8
- homeassistant-stubs/components/lidarr/sensor.pyi +1 -1
- homeassistant-stubs/components/lifx/const.pyi +1 -0
- homeassistant-stubs/components/lifx/coordinator.pyi +20 -7
- homeassistant-stubs/components/lifx/light.pyi +5 -2
- homeassistant-stubs/components/lifx/manager.pyi +12 -1
- homeassistant-stubs/components/light/__init__.pyi +16 -17
- homeassistant-stubs/components/linkplay/__init__.pyi +14 -0
- homeassistant-stubs/components/linkplay/config_flow.pyi +14 -0
- homeassistant-stubs/components/linkplay/const.pyi +5 -0
- homeassistant-stubs/components/linkplay/media_player.pyi +66 -0
- homeassistant-stubs/components/linkplay/utils.pyi +19 -0
- homeassistant-stubs/components/litterrobot/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/litterrobot/button.pyi +1 -1
- homeassistant-stubs/components/litterrobot/hub.pyi +2 -2
- homeassistant-stubs/components/litterrobot/select.pyi +1 -1
- homeassistant-stubs/components/litterrobot/sensor.pyi +1 -1
- homeassistant-stubs/components/litterrobot/switch.pyi +1 -1
- homeassistant-stubs/components/litterrobot/time.pyi +1 -1
- homeassistant-stubs/components/lock/__init__.pyi +2 -2
- homeassistant-stubs/components/logbook/models.pyi +2 -2
- homeassistant-stubs/components/logbook/processor.pyi +2 -3
- homeassistant-stubs/components/logbook/websocket_api.pyi +1 -1
- homeassistant-stubs/components/logger/helpers.pyi +5 -5
- homeassistant-stubs/components/madvr/__init__.pyi +13 -0
- homeassistant-stubs/components/madvr/binary_sensor.pyi +30 -0
- homeassistant-stubs/components/madvr/config_flow.pyi +17 -0
- homeassistant-stubs/components/madvr/const.pyi +29 -0
- homeassistant-stubs/components/madvr/coordinator.pyi +18 -0
- homeassistant-stubs/components/madvr/entity.pyi +10 -0
- homeassistant-stubs/components/madvr/errors.pyi +1 -0
- homeassistant-stubs/components/madvr/remote.pyi +24 -0
- homeassistant-stubs/components/madvr/sensor.pyi +31 -0
- homeassistant-stubs/components/mastodon/__init__.pyi +11 -0
- homeassistant-stubs/components/mastodon/config_flow.pyi +18 -0
- homeassistant-stubs/components/mastodon/const.pyi +7 -0
- homeassistant-stubs/components/mastodon/notify.pyi +8 -5
- homeassistant-stubs/components/mastodon/utils.pyi +5 -0
- homeassistant-stubs/components/matrix/__init__.pyi +1 -1
- homeassistant-stubs/components/matter/__init__.pyi +1 -0
- homeassistant-stubs/components/matter/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/matter/climate.pyi +11 -13
- homeassistant-stubs/components/matter/cover.pyi +4 -4
- homeassistant-stubs/components/matter/discovery.pyi +1 -1
- homeassistant-stubs/components/matter/entity.pyi +2 -1
- homeassistant-stubs/components/matter/fan.pyi +4 -0
- homeassistant-stubs/components/matter/light.pyi +2 -0
- homeassistant-stubs/components/matter/lock.pyi +3 -6
- homeassistant-stubs/components/matter/models.pyi +1 -1
- homeassistant-stubs/components/matter/number.pyi +1 -1
- homeassistant-stubs/components/matter/select.pyi +34 -0
- homeassistant-stubs/components/matter/sensor.pyi +1 -1
- homeassistant-stubs/components/matter/update.pyi +53 -0
- homeassistant-stubs/components/media_player/__init__.pyi +8 -8
- homeassistant-stubs/components/media_player/const.pyi +72 -72
- homeassistant-stubs/components/media_player/intent.pyi +2 -4
- homeassistant-stubs/components/minecraft_server/api.pyi +3 -3
- homeassistant-stubs/components/minecraft_server/sensor.pyi +1 -1
- homeassistant-stubs/components/modbus/__init__.pyi +1 -1
- homeassistant-stubs/components/modbus/const.pyi +11 -11
- homeassistant-stubs/components/modbus/fan.pyi +3 -1
- homeassistant-stubs/components/modbus/validators.pyi +2 -3
- homeassistant-stubs/components/monzo/sensor.pyi +1 -1
- homeassistant-stubs/components/mopeka/__init__.pyi +5 -3
- homeassistant-stubs/components/mopeka/config_flow.pyi +18 -1
- homeassistant-stubs/components/mopeka/const.pyi +5 -0
- homeassistant-stubs/components/mopeka/sensor.pyi +3 -4
- homeassistant-stubs/components/mqtt/client.pyi +3 -4
- homeassistant-stubs/components/mqtt/device_trigger.pyi +2 -2
- homeassistant-stubs/components/mqtt/fan.pyi +1 -0
- homeassistant-stubs/components/mqtt/models.pyi +4 -4
- homeassistant-stubs/components/mqtt/subscription.pyi +1 -1
- homeassistant-stubs/components/mqtt/switch.pyi +3 -2
- homeassistant-stubs/components/mqtt/vacuum.pyi +2 -7
- homeassistant-stubs/components/mysensors/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/mysensors/cover.pyi +4 -4
- homeassistant-stubs/components/myuplink/select.pyi +23 -0
- homeassistant-stubs/components/nam/sensor.pyi +1 -1
- homeassistant-stubs/components/nest/media_source.pyi +1 -1
- homeassistant-stubs/components/netatmo/fan.pyi +1 -0
- homeassistant-stubs/components/netatmo/helper.pyi +1 -1
- homeassistant-stubs/components/netatmo/sensor.pyi +2 -2
- homeassistant-stubs/components/nextdns/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/nextdns/sensor.pyi +1 -1
- homeassistant-stubs/components/nextdns/switch.pyi +1 -1
- homeassistant-stubs/components/notify/__init__.pyi +2 -2
- homeassistant-stubs/components/notion/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/notion/config_flow.pyi +1 -1
- homeassistant-stubs/components/notion/coordinator.pyi +1 -1
- homeassistant-stubs/components/notion/sensor.pyi +1 -1
- homeassistant-stubs/components/number/__init__.pyi +1 -1
- homeassistant-stubs/components/number/const.pyi +52 -52
- homeassistant-stubs/components/nut/__init__.pyi +1 -1
- homeassistant-stubs/components/oncue/__init__.pyi +3 -4
- homeassistant-stubs/components/oncue/binary_sensor.pyi +2 -5
- homeassistant-stubs/components/oncue/sensor.pyi +2 -3
- homeassistant-stubs/components/oncue/types.pyi +5 -0
- homeassistant-stubs/components/onewire/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/onewire/onewire_entities.pyi +1 -1
- homeassistant-stubs/components/onewire/sensor.pyi +1 -1
- homeassistant-stubs/components/onewire/switch.pyi +1 -1
- homeassistant-stubs/components/openuv/sensor.pyi +1 -1
- homeassistant-stubs/components/oralb/__init__.pyi +3 -3
- homeassistant-stubs/components/oralb/sensor.pyi +3 -4
- homeassistant-stubs/components/otbr/websocket_api.pyi +6 -3
- homeassistant-stubs/components/overkiz/alarm_control_panel.pyi +1 -1
- homeassistant-stubs/components/overkiz/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/overkiz/button.pyi +1 -1
- homeassistant-stubs/components/overkiz/climate.pyi +1 -1
- homeassistant-stubs/components/overkiz/climate_entities/__init__.pyi +3 -2
- homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_heat_pump_main_component.pyi +18 -0
- homeassistant-stubs/components/overkiz/number.pyi +1 -1
- homeassistant-stubs/components/overkiz/select.pyi +1 -1
- homeassistant-stubs/components/overkiz/sensor.pyi +1 -1
- homeassistant-stubs/components/overkiz/switch.pyi +1 -1
- homeassistant-stubs/components/p1_monitor/coordinator.pyi +1 -1
- homeassistant-stubs/components/peco/sensor.pyi +1 -1
- homeassistant-stubs/components/persistent_notification/__init__.pyi +4 -4
- homeassistant-stubs/components/pi_hole/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/pi_hole/update.pyi +1 -1
- homeassistant-stubs/components/ping/entity.pyi +0 -1
- homeassistant-stubs/components/ping/sensor.pyi +1 -1
- homeassistant-stubs/components/plugwise/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/plugwise/number.pyi +1 -1
- homeassistant-stubs/components/plugwise/select.pyi +1 -1
- homeassistant-stubs/components/plugwise/sensor.pyi +1 -1
- homeassistant-stubs/components/plugwise/switch.pyi +1 -1
- homeassistant-stubs/components/powerwall/__init__.pyi +4 -4
- homeassistant-stubs/components/powerwall/binary_sensor.pyi +2 -4
- homeassistant-stubs/components/powerwall/models.pyi +4 -1
- homeassistant-stubs/components/powerwall/sensor.pyi +4 -6
- homeassistant-stubs/components/powerwall/switch.pyi +2 -4
- homeassistant-stubs/components/private_ble_device/sensor.pyi +1 -1
- homeassistant-stubs/components/prometheus/__init__.pyi +3 -1
- homeassistant-stubs/components/prusalink/__init__.pyi +1 -1
- homeassistant-stubs/components/prusalink/binary_sensor.pyi +36 -0
- homeassistant-stubs/components/prusalink/button.pyi +1 -1
- homeassistant-stubs/components/prusalink/coordinator.pyi +4 -1
- homeassistant-stubs/components/prusalink/sensor.pyi +3 -3
- homeassistant-stubs/components/pure_energie/sensor.pyi +1 -1
- homeassistant-stubs/components/purpleair/config_flow.pyi +1 -1
- homeassistant-stubs/components/purpleair/sensor.pyi +1 -1
- homeassistant-stubs/components/pvoutput/sensor.pyi +1 -1
- homeassistant-stubs/components/qnap_qsw/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/qnap_qsw/button.pyi +1 -1
- homeassistant-stubs/components/qnap_qsw/entity.pyi +1 -1
- homeassistant-stubs/components/qnap_qsw/sensor.pyi +1 -1
- homeassistant-stubs/components/rabbitair/fan.pyi +1 -0
- homeassistant-stubs/components/radarr/coordinator.pyi +1 -1
- homeassistant-stubs/components/radarr/sensor.pyi +1 -1
- homeassistant-stubs/components/rainforest_raven/sensor.pyi +1 -1
- homeassistant-stubs/components/rainmachine/__init__.pyi +8 -7
- homeassistant-stubs/components/rainmachine/binary_sensor.pyi +4 -5
- homeassistant-stubs/components/rainmachine/button.pyi +4 -5
- homeassistant-stubs/components/rainmachine/coordinator.pyi +3 -3
- homeassistant-stubs/components/rainmachine/diagnostics.pyi +3 -4
- homeassistant-stubs/components/rainmachine/model.pyi +1 -1
- homeassistant-stubs/components/rainmachine/select.pyi +5 -5
- homeassistant-stubs/components/rainmachine/sensor.pyi +5 -5
- homeassistant-stubs/components/rainmachine/switch.pyi +6 -6
- homeassistant-stubs/components/rainmachine/update.pyi +9 -10
- homeassistant-stubs/components/rainmachine/util.pyi +4 -4
- homeassistant-stubs/components/rdw/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/rdw/sensor.pyi +1 -1
- homeassistant-stubs/components/recorder/__init__.pyi +2 -1
- homeassistant-stubs/components/recorder/basic_websocket_api.pyi +7 -0
- homeassistant-stubs/components/recorder/const.pyi +5 -8
- homeassistant-stubs/components/recorder/core.pyi +16 -16
- homeassistant-stubs/components/recorder/db_schema.pyi +19 -6
- homeassistant-stubs/components/recorder/migration.pyi +221 -24
- homeassistant-stubs/components/recorder/models/context.pyi +1 -3
- homeassistant-stubs/components/recorder/statistics.pyi +2 -2
- homeassistant-stubs/components/recorder/table_managers/__init__.pyi +0 -1
- homeassistant-stubs/components/recorder/table_managers/event_data.pyi +0 -1
- homeassistant-stubs/components/recorder/table_managers/event_types.pyi +1 -0
- homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi +0 -1
- homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +1 -0
- homeassistant-stubs/components/recorder/tasks.pyi +0 -24
- homeassistant-stubs/components/recorder/util.pyi +8 -6
- homeassistant-stubs/components/recorder/websocket_api.pyi +0 -1
- homeassistant-stubs/components/remote/__init__.pyi +4 -4
- homeassistant-stubs/components/renault/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/renault/button.pyi +1 -1
- homeassistant-stubs/components/renault/entity.pyi +1 -1
- homeassistant-stubs/components/renault/renault_vehicle.pyi +1 -1
- homeassistant-stubs/components/renault/select.pyi +1 -1
- homeassistant-stubs/components/renault/sensor.pyi +1 -1
- homeassistant-stubs/components/repairs/websocket_api.pyi +1 -1
- homeassistant-stubs/components/rfxtrx/sensor.pyi +1 -1
- homeassistant-stubs/components/ring/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/ring/light.pyi +2 -2
- homeassistant-stubs/components/ring/sensor.pyi +1 -1
- homeassistant-stubs/components/rituals_perfume_genie/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/rituals_perfume_genie/number.pyi +1 -1
- homeassistant-stubs/components/rituals_perfume_genie/select.pyi +1 -1
- homeassistant-stubs/components/rituals_perfume_genie/sensor.pyi +1 -1
- homeassistant-stubs/components/rituals_perfume_genie/switch.pyi +1 -1
- homeassistant-stubs/components/roborock/__init__.pyi +4 -3
- homeassistant-stubs/components/roborock/binary_sensor.pyi +3 -6
- homeassistant-stubs/components/roborock/button.pyi +3 -6
- homeassistant-stubs/components/roborock/coordinator.pyi +8 -2
- homeassistant-stubs/components/roborock/diagnostics.pyi +2 -4
- homeassistant-stubs/components/roborock/image.pyi +2 -3
- homeassistant-stubs/components/roborock/number.pyi +3 -6
- homeassistant-stubs/components/roborock/select.pyi +12 -6
- homeassistant-stubs/components/roborock/sensor.pyi +6 -9
- homeassistant-stubs/components/roborock/switch.pyi +3 -6
- homeassistant-stubs/components/roborock/time.pyi +3 -6
- homeassistant-stubs/components/roborock/vacuum.pyi +2 -4
- homeassistant-stubs/components/roku/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/roku/browse_media.pyi +2 -1
- homeassistant-stubs/components/roku/select.pyi +1 -1
- homeassistant-stubs/components/roku/sensor.pyi +1 -1
- homeassistant-stubs/components/samsungtv/bridge.pyi +1 -1
- homeassistant-stubs/components/script/__init__.pyi +148 -0
- homeassistant-stubs/components/script/config.pyi +39 -0
- homeassistant-stubs/components/script/const.pyi +14 -0
- homeassistant-stubs/components/script/helpers.pyi +11 -0
- homeassistant-stubs/components/script/logbook.pyi +8 -0
- homeassistant-stubs/components/script/trace.pyi +10 -0
- homeassistant-stubs/components/search/__init__.pyi +14 -13
- homeassistant-stubs/components/select/__init__.pyi +1 -1
- homeassistant-stubs/components/sensibo/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/sensibo/button.pyi +1 -1
- homeassistant-stubs/components/sensibo/number.pyi +1 -1
- homeassistant-stubs/components/sensibo/select.pyi +1 -1
- homeassistant-stubs/components/sensibo/sensor.pyi +2 -2
- homeassistant-stubs/components/sensibo/switch.pyi +1 -1
- homeassistant-stubs/components/sensibo/update.pyi +1 -1
- homeassistant-stubs/components/sensor/__init__.pyi +1 -1
- homeassistant-stubs/components/sensor/const.pyi +55 -55
- homeassistant-stubs/components/sfr_box/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/sfr_box/button.pyi +1 -1
- homeassistant-stubs/components/sfr_box/sensor.pyi +1 -1
- homeassistant-stubs/components/shelly/binary_sensor.pyi +4 -4
- homeassistant-stubs/components/shelly/button.pyi +1 -1
- homeassistant-stubs/components/shelly/climate.pyi +1 -1
- homeassistant-stubs/components/shelly/const.pyi +6 -3
- homeassistant-stubs/components/shelly/coordinator.pyi +1 -1
- homeassistant-stubs/components/shelly/entity.pyi +9 -3
- homeassistant-stubs/components/shelly/event.pyi +2 -2
- homeassistant-stubs/components/shelly/number.pyi +28 -6
- homeassistant-stubs/components/shelly/select.pyi +25 -0
- homeassistant-stubs/components/shelly/sensor.pyi +6 -4
- homeassistant-stubs/components/shelly/switch.pyi +17 -3
- homeassistant-stubs/components/shelly/text.pyi +23 -0
- homeassistant-stubs/components/shelly/update.pyi +2 -2
- homeassistant-stubs/components/shelly/utils.pyi +3 -1
- homeassistant-stubs/components/shelly/valve.pyi +1 -1
- homeassistant-stubs/components/simplisafe/button.pyi +1 -1
- homeassistant-stubs/components/simplisafe/typing.pyi +3 -2
- homeassistant-stubs/components/siren/__init__.pyi +1 -1
- homeassistant-stubs/components/siren/const.pyi +5 -5
- homeassistant-stubs/components/skybell/sensor.pyi +1 -1
- homeassistant-stubs/components/sleepiq/button.pyi +1 -1
- homeassistant-stubs/components/sleepiq/entity.pyi +1 -1
- homeassistant-stubs/components/sleepiq/number.pyi +1 -1
- homeassistant-stubs/components/snooz/fan.pyi +1 -0
- homeassistant-stubs/components/sonarr/sensor.pyi +1 -1
- homeassistant-stubs/components/speedtestdotnet/sensor.pyi +1 -1
- homeassistant-stubs/components/ssdp/__init__.pyi +1 -1
- homeassistant-stubs/components/starlink/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/starlink/button.pyi +1 -1
- homeassistant-stubs/components/starlink/device_tracker.pyi +1 -1
- homeassistant-stubs/components/starlink/sensor.pyi +1 -1
- homeassistant-stubs/components/starlink/switch.pyi +1 -1
- homeassistant-stubs/components/starlink/time.pyi +1 -1
- homeassistant-stubs/components/steamist/sensor.pyi +1 -1
- homeassistant-stubs/components/stream/core.pyi +9 -9
- homeassistant-stubs/components/stream/fmp4utils.pyi +1 -1
- homeassistant-stubs/components/stream/worker.pyi +1 -2
- homeassistant-stubs/components/streamlabswater/entity.pyi +0 -1
- homeassistant-stubs/components/streamlabswater/sensor.pyi +1 -1
- homeassistant-stubs/components/stt/const.pyi +21 -21
- homeassistant-stubs/components/sun/sensor.pyi +1 -1
- homeassistant-stubs/components/switch/__init__.pyi +3 -3
- homeassistant-stubs/components/switchbot_cloud/__init__.pyi +1 -1
- homeassistant-stubs/components/switchbot_cloud/coordinator.pyi +2 -1
- homeassistant-stubs/components/switcher_kis/button.pyi +1 -1
- homeassistant-stubs/components/synology_dsm/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/synology_dsm/button.pyi +1 -1
- homeassistant-stubs/components/synology_dsm/camera.pyi +1 -1
- homeassistant-stubs/components/synology_dsm/entity.pyi +1 -1
- homeassistant-stubs/components/synology_dsm/sensor.pyi +1 -1
- homeassistant-stubs/components/synology_dsm/switch.pyi +1 -1
- homeassistant-stubs/components/synology_dsm/update.pyi +1 -1
- homeassistant-stubs/components/system_health/__init__.pyi +1 -1
- homeassistant-stubs/components/system_log/__init__.pyi +1 -1
- homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/systemmonitor/sensor.pyi +1 -1
- homeassistant-stubs/components/tag/__init__.pyi +0 -1
- homeassistant-stubs/components/tailscale/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/tailscale/sensor.pyi +1 -1
- homeassistant-stubs/components/tailwind/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/tailwind/button.pyi +1 -1
- homeassistant-stubs/components/tailwind/number.pyi +1 -1
- homeassistant-stubs/components/tami4/button.pyi +1 -1
- homeassistant-stubs/components/tautulli/sensor.pyi +2 -2
- homeassistant-stubs/components/technove/__init__.pyi +2 -2
- homeassistant-stubs/components/technove/binary_sensor.pyi +3 -4
- homeassistant-stubs/components/technove/coordinator.pyi +2 -3
- homeassistant-stubs/components/technove/diagnostics.pyi +9 -0
- homeassistant-stubs/components/technove/number.pyi +37 -0
- homeassistant-stubs/components/technove/sensor.pyi +3 -4
- homeassistant-stubs/components/technove/switch.pyi +3 -4
- homeassistant-stubs/components/tedee/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/tedee/config_flow.pyi +3 -0
- homeassistant-stubs/components/tedee/lock.pyi +1 -1
- homeassistant-stubs/components/tedee/sensor.pyi +1 -1
- homeassistant-stubs/components/text/__init__.pyi +3 -3
- homeassistant-stubs/components/time/__init__.pyi +1 -1
- homeassistant-stubs/components/todo/__init__.pyi +2 -2
- homeassistant-stubs/components/todo/const.pyi +19 -9
- homeassistant-stubs/components/tolo/const.pyi +4 -5
- homeassistant-stubs/components/tolo/fan.pyi +3 -1
- homeassistant-stubs/components/tolo/number.pyi +1 -1
- homeassistant-stubs/components/tolo/select.pyi +1 -1
- homeassistant-stubs/components/tolo/sensor.pyi +1 -1
- homeassistant-stubs/components/tolo/switch.pyi +1 -1
- homeassistant-stubs/components/tplink/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/tplink/button.pyi +1 -1
- homeassistant-stubs/components/tplink/entity.pyi +1 -1
- homeassistant-stubs/components/tplink/fan.pyi +1 -0
- homeassistant-stubs/components/tplink/number.pyi +1 -1
- homeassistant-stubs/components/tplink/select.pyi +1 -1
- homeassistant-stubs/components/tplink/sensor.pyi +1 -1
- homeassistant-stubs/components/tplink/switch.pyi +1 -1
- homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/tplink_omada/switch.pyi +4 -4
- homeassistant-stubs/components/tractive/sensor.pyi +1 -1
- homeassistant-stubs/components/tractive/switch.pyi +1 -1
- homeassistant-stubs/components/tradfri/fan.pyi +1 -0
- homeassistant-stubs/components/tradfri/sensor.pyi +1 -1
- homeassistant-stubs/components/trafikverket_camera/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/trafikverket_camera/config_flow.pyi +3 -3
- homeassistant-stubs/components/trafikverket_camera/coordinator.pyi +2 -2
- homeassistant-stubs/components/trafikverket_camera/sensor.pyi +1 -1
- homeassistant-stubs/components/trafikverket_ferry/coordinator.pyi +1 -1
- homeassistant-stubs/components/trafikverket_ferry/sensor.pyi +1 -1
- homeassistant-stubs/components/trafikverket_train/coordinator.pyi +3 -3
- homeassistant-stubs/components/trafikverket_train/sensor.pyi +1 -1
- homeassistant-stubs/components/trafikverket_weatherstation/coordinator.pyi +3 -3
- homeassistant-stubs/components/trafikverket_weatherstation/sensor.pyi +3 -3
- homeassistant-stubs/components/transmission/sensor.pyi +1 -1
- homeassistant-stubs/components/transmission/switch.pyi +1 -1
- homeassistant-stubs/components/tts/__init__.pyi +10 -9
- homeassistant-stubs/components/tts/const.pyi +1 -3
- homeassistant-stubs/components/twentemilieu/sensor.pyi +1 -1
- homeassistant-stubs/components/unifi/button.pyi +1 -1
- homeassistant-stubs/components/unifi/device_tracker.pyi +6 -5
- homeassistant-stubs/components/unifi/entity.pyi +3 -2
- homeassistant-stubs/components/unifi/hub/entity_loader.pyi +9 -0
- homeassistant-stubs/components/unifi/image.pyi +1 -1
- homeassistant-stubs/components/unifi/sensor.pyi +9 -3
- homeassistant-stubs/components/unifi/switch.pyi +3 -2
- homeassistant-stubs/components/unifi/update.pyi +1 -1
- homeassistant-stubs/components/unifiprotect/binary_sensor.pyi +10 -14
- homeassistant-stubs/components/unifiprotect/button.pyi +7 -6
- homeassistant-stubs/components/unifiprotect/camera.pyi +4 -4
- homeassistant-stubs/components/unifiprotect/data.pyi +2 -3
- homeassistant-stubs/components/unifiprotect/entity.pyi +14 -10
- homeassistant-stubs/components/unifiprotect/event.pyi +25 -0
- homeassistant-stubs/components/unifiprotect/light.pyi +3 -3
- homeassistant-stubs/components/unifiprotect/lock.pyi +3 -3
- homeassistant-stubs/components/unifiprotect/media_player.pyi +3 -3
- homeassistant-stubs/components/unifiprotect/media_source.pyi +10 -10
- homeassistant-stubs/components/unifiprotect/models.pyi +6 -6
- homeassistant-stubs/components/unifiprotect/number.pyi +4 -4
- homeassistant-stubs/components/unifiprotect/select.pyi +4 -4
- homeassistant-stubs/components/unifiprotect/sensor.pyi +6 -6
- homeassistant-stubs/components/unifiprotect/switch.pyi +12 -12
- homeassistant-stubs/components/unifiprotect/text.pyi +4 -4
- homeassistant-stubs/components/unifiprotect/utils.pyi +1 -2
- homeassistant-stubs/components/upcloud/__init__.pyi +1 -1
- homeassistant-stubs/components/update/__init__.pyi +2 -2
- homeassistant-stubs/components/update/const.pyi +5 -5
- homeassistant-stubs/components/vacuum/__init__.pyi +15 -15
- homeassistant-stubs/components/vallox/binary_sensor.pyi +1 -1
- homeassistant-stubs/components/vallox/fan.pyi +1 -0
- homeassistant-stubs/components/vallox/number.pyi +1 -1
- homeassistant-stubs/components/vallox/sensor.pyi +1 -1
- homeassistant-stubs/components/vallox/switch.pyi +1 -1
- homeassistant-stubs/components/valve/__init__.pyi +7 -7
- homeassistant-stubs/components/wake_on_lan/__init__.pyi +5 -1
- homeassistant-stubs/components/wake_on_lan/button.pyi +21 -0
- homeassistant-stubs/components/wake_on_lan/config_flow.pyi +20 -0
- homeassistant-stubs/components/wake_on_lan/const.pyi +7 -0
- homeassistant-stubs/components/wake_on_lan/switch.pyi +2 -5
- homeassistant-stubs/components/wake_word/models.pyi +2 -2
- homeassistant-stubs/components/wallbox/const.pyi +18 -18
- homeassistant-stubs/components/wallbox/number.pyi +1 -1
- homeassistant-stubs/components/wallbox/sensor.pyi +1 -1
- homeassistant-stubs/components/waqi/sensor.pyi +1 -1
- homeassistant-stubs/components/water_heater/__init__.pyi +5 -5
- homeassistant-stubs/components/weather/__init__.pyi +1 -1
- homeassistant-stubs/components/weather/const.pyi +3 -3
- homeassistant-stubs/components/wemo/__init__.pyi +1 -1
- homeassistant-stubs/components/wemo/coordinator.pyi +1 -1
- homeassistant-stubs/components/wemo/entity.pyi +1 -1
- homeassistant-stubs/components/wemo/fan.pyi +1 -0
- homeassistant-stubs/components/wemo/models.pyi +1 -1
- homeassistant-stubs/components/wemo/sensor.pyi +1 -1
- homeassistant-stubs/components/whois/sensor.pyi +1 -1
- homeassistant-stubs/components/withings/__init__.pyi +1 -1
- homeassistant-stubs/components/withings/sensor.pyi +5 -5
- homeassistant-stubs/components/wiz/__init__.pyi +1 -0
- homeassistant-stubs/components/wiz/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/wiz/diagnostics.pyi +2 -4
- homeassistant-stubs/components/wiz/light.pyi +2 -3
- homeassistant-stubs/components/wiz/number.pyi +3 -4
- homeassistant-stubs/components/wiz/sensor.pyi +2 -3
- homeassistant-stubs/components/wiz/switch.pyi +2 -3
- homeassistant-stubs/components/wled/__init__.pyi +7 -2
- homeassistant-stubs/components/wled/const.pyi +7 -0
- homeassistant-stubs/components/wled/coordinator.pyi +7 -2
- homeassistant-stubs/components/wled/helpers.pyi +2 -0
- homeassistant-stubs/components/wled/light.pyi +7 -5
- homeassistant-stubs/components/wled/number.pyi +2 -2
- homeassistant-stubs/components/wled/sensor.pyi +1 -1
- homeassistant-stubs/components/wled/switch.pyi +1 -1
- homeassistant-stubs/components/wled/update.pyi +7 -3
- homeassistant-stubs/components/worldclock/__init__.pyi +7 -0
- homeassistant-stubs/components/worldclock/config_flow.pyi +22 -0
- homeassistant-stubs/components/worldclock/const.pyi +8 -0
- homeassistant-stubs/components/worldclock/sensor.pyi +9 -4
- homeassistant-stubs/components/xiaomi_ble/__init__.pyi +4 -4
- homeassistant-stubs/components/xiaomi_ble/binary_sensor.pyi +3 -4
- homeassistant-stubs/components/xiaomi_ble/coordinator.pyi +2 -2
- homeassistant-stubs/components/xiaomi_ble/event.pyi +2 -3
- homeassistant-stubs/components/xiaomi_ble/sensor.pyi +3 -4
- homeassistant-stubs/components/xiaomi_ble/types.pyi +4 -0
- homeassistant-stubs/components/yalexs_ble/sensor.pyi +1 -1
- homeassistant-stubs/components/youtube/sensor.pyi +1 -1
- homeassistant-stubs/components/zwave_js/binary_sensor.pyi +2 -2
- homeassistant-stubs/components/zwave_js/discovery.pyi +9 -9
- homeassistant-stubs/components/zwave_js/discovery_data_template.pyi +7 -7
- homeassistant-stubs/components/zwave_js/fan.pyi +1 -0
- homeassistant-stubs/components/zwave_js/helpers.pyi +2 -2
- homeassistant-stubs/components/zwave_js/humidifier.pyi +1 -1
- homeassistant-stubs/components/zwave_js/migrate.pyi +1 -1
- homeassistant-stubs/components/zwave_js/sensor.pyi +1 -1
- homeassistant-stubs/components/zwave_js/services.pyi +4 -3
- homeassistant-stubs/config.pyi +10 -10
- homeassistant-stubs/config_entries.pyi +18 -14
- homeassistant-stubs/const.pyi +161 -160
- homeassistant-stubs/core.pyi +29 -26
- homeassistant-stubs/data_entry_flow.pyi +8 -8
- homeassistant-stubs/exceptions.pyi +1 -2
- homeassistant-stubs/helpers/aiohttp_client.pyi +6 -6
- homeassistant-stubs/helpers/area_registry.pyi +4 -1
- homeassistant-stubs/helpers/category_registry.pyi +12 -2
- homeassistant-stubs/helpers/condition.pyi +2 -4
- homeassistant-stubs/helpers/config_validation.pyi +9 -6
- homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
- homeassistant-stubs/helpers/device_registry.pyi +19 -10
- homeassistant-stubs/helpers/entity.pyi +7 -8
- homeassistant-stubs/helpers/entity_platform.pyi +1 -1
- homeassistant-stubs/helpers/entity_registry.pyi +16 -11
- homeassistant-stubs/helpers/event.pyi +7 -7
- homeassistant-stubs/helpers/floor_registry.pyi +9 -2
- homeassistant-stubs/helpers/http.pyi +2 -1
- homeassistant-stubs/helpers/intent.pyi +41 -38
- homeassistant-stubs/helpers/issue_registry.pyi +3 -3
- homeassistant-stubs/helpers/json.pyi +8 -2
- homeassistant-stubs/helpers/label_registry.pyi +9 -2
- homeassistant-stubs/helpers/llm.pyi +1 -1
- homeassistant-stubs/helpers/normalized_name_base_registry.pyi +4 -1
- homeassistant-stubs/helpers/recorder.pyi +10 -1
- homeassistant-stubs/helpers/schema_config_entry_flow.pyi +1 -1
- homeassistant-stubs/helpers/script.pyi +18 -16
- homeassistant-stubs/helpers/selector.pyi +24 -23
- homeassistant-stubs/helpers/service.pyi +2 -2
- homeassistant-stubs/helpers/service_info/mqtt.pyi +1 -2
- homeassistant-stubs/helpers/significant_change.pyi +3 -2
- homeassistant-stubs/helpers/template.pyi +3 -3
- homeassistant-stubs/helpers/trace.pyi +2 -3
- homeassistant-stubs/helpers/trigger.pyi +1 -1
- homeassistant-stubs/helpers/typing.pyi +3 -3
- homeassistant-stubs/helpers/update_coordinator.pyi +8 -4
- homeassistant-stubs/runner.pyi +1 -1
- homeassistant-stubs/setup.pyi +8 -9
- homeassistant-stubs/util/event_type.pyi +1 -1
- homeassistant-stubs/util/hass_dict.pyi +19 -19
- homeassistant-stubs/util/json.pyi +4 -9
- homeassistant-stubs/util/language.pyi +1 -1
- homeassistant-stubs/util/signal_type.pyi +1 -1
- homeassistant-stubs/util/ssl.pyi +3 -3
- homeassistant-stubs/util/timeout.pyi +4 -4
- homeassistant-stubs/util/ulid.pyi +2 -2
- homeassistant-stubs/util/yaml/loader.pyi +2 -3
- {homeassistant_stubs-2024.7.4.dist-info → homeassistant_stubs-2024.8.0.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2024.7.4.dist-info → homeassistant_stubs-2024.8.0.dist-info}/RECORD +943 -861
- homeassistant-stubs/components/laundrify/model.pyi +0 -7
- homeassistant-stubs/helpers/backports/__init__.pyi +0 -0
- homeassistant-stubs/helpers/backports/aiohttp_resolver.pyi +0 -21
- /homeassistant-stubs/components/knx/{helpers → storage}/__init__.pyi +0 -0
- /homeassistant-stubs/components/knx/{helpers → storage}/keyring.pyi +0 -0
- {homeassistant_stubs-2024.7.4.dist-info → homeassistant_stubs-2024.8.0.dist-info}/LICENSE +0 -0
- {homeassistant_stubs-2024.7.4.dist-info → homeassistant_stubs-2024.8.0.dist-info}/WHEEL +0 -0
@@ -9,6 +9,7 @@ from aiounifi.models.event import Event, EventKey
|
|
9
9
|
from collections.abc import Callable as Callable, Mapping
|
10
10
|
from dataclasses import dataclass
|
11
11
|
from datetime import timedelta
|
12
|
+
from functools import cached_property as cached_property
|
12
13
|
from homeassistant.components.device_tracker import DOMAIN as DOMAIN, ScannerEntity as ScannerEntity, SourceType as SourceType
|
13
14
|
from homeassistant.core import Event as core_Event, HomeAssistant as HomeAssistant, callback as callback
|
14
15
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
@@ -36,7 +37,7 @@ class UnifiTrackerEntityDescription(UnifiEntityDescription[HandlerT, ApiItemT]):
|
|
36
37
|
ip_address_fn: Callable[[aiounifi.Controller, str], str | None]
|
37
38
|
is_connected_fn: Callable[[UnifiHub, str], bool]
|
38
39
|
hostname_fn: Callable[[aiounifi.Controller, str], str | None]
|
39
|
-
def __init__(self, *, key, device_class
|
40
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn=..., available_fn=..., name_fn=..., supported_fn=..., event_is_on=..., event_to_subscribe=..., should_poll=..., heartbeat_timedelta_fn, ip_address_fn, is_connected_fn, hostname_fn) -> None: ...
|
40
41
|
|
41
42
|
ENTITY_DESCRIPTIONS: tuple[UnifiTrackerEntityDescription, ...]
|
42
43
|
|
@@ -45,7 +46,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: UnifiConfigEntry,
|
|
45
46
|
|
46
47
|
class UnifiScannerEntity(UnifiEntity[HandlerT, ApiItemT], ScannerEntity):
|
47
48
|
entity_description: UnifiTrackerEntityDescription
|
48
|
-
_event_is_on:
|
49
|
+
_event_is_on: set[EventKey]
|
49
50
|
_ignore_events: bool
|
50
51
|
_is_connected: bool
|
51
52
|
def async_initiate_state(self) -> None: ...
|
@@ -55,11 +56,11 @@ class UnifiScannerEntity(UnifiEntity[HandlerT, ApiItemT], ScannerEntity):
|
|
55
56
|
def hostname(self) -> str | None: ...
|
56
57
|
@property
|
57
58
|
def ip_address(self) -> str | None: ...
|
58
|
-
@
|
59
|
+
@cached_property
|
59
60
|
def mac_address(self) -> str: ...
|
60
|
-
@
|
61
|
+
@cached_property
|
61
62
|
def source_type(self) -> SourceType: ...
|
62
|
-
@
|
63
|
+
@cached_property
|
63
64
|
def unique_id(self) -> str: ...
|
64
65
|
def _make_disconnected(self, *_: core_Event) -> None: ...
|
65
66
|
def async_update_state(self, event: ItemEvent, obj_id: str) -> None: ...
|
@@ -35,16 +35,17 @@ class UnifiEntityDescription(EntityDescription, Generic[HandlerT, ApiItemT]):
|
|
35
35
|
name_fn: Callable[[ApiItemT], str | None] = ...
|
36
36
|
supported_fn: Callable[[UnifiHub, str], bool] = ...
|
37
37
|
has_entity_name = ...
|
38
|
-
event_is_on:
|
38
|
+
event_is_on: set[EventKey] | None = ...
|
39
39
|
event_to_subscribe: tuple[EventKey, ...] | None = ...
|
40
40
|
should_poll: bool = ...
|
41
|
-
def __init__(self, *, key, device_class
|
41
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn=..., available_fn=..., name_fn=..., supported_fn=..., event_is_on=..., event_to_subscribe=..., should_poll=...) -> None: ...
|
42
42
|
|
43
43
|
class UnifiEntity(Entity, Generic[HandlerT, ApiItemT], metaclass=abc.ABCMeta):
|
44
44
|
entity_description: UnifiEntityDescription[HandlerT, ApiItemT]
|
45
45
|
_attr_unique_id: str
|
46
46
|
_obj_id: Incomplete
|
47
47
|
hub: Incomplete
|
48
|
+
api: Incomplete
|
48
49
|
_removed: bool
|
49
50
|
_attr_available: Incomplete
|
50
51
|
_attr_device_info: Incomplete
|
@@ -2,21 +2,30 @@ from ..const import LOGGER as LOGGER, UNIFI_WIRELESS_CLIENTS as UNIFI_WIRELESS_C
|
|
2
2
|
from ..entity import UnifiEntity as UnifiEntity, UnifiEntityDescription as UnifiEntityDescription
|
3
3
|
from .hub import UnifiHub as UnifiHub
|
4
4
|
from _typeshed import Incomplete
|
5
|
+
from collections.abc import Callable as Callable, Coroutine, Sequence
|
5
6
|
from homeassistant.const import Platform as Platform
|
6
7
|
from homeassistant.core import callback as callback
|
7
8
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
8
9
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
10
|
+
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
|
11
|
+
from typing import Any
|
9
12
|
|
10
13
|
CHECK_HEARTBEAT_INTERVAL: Incomplete
|
14
|
+
POLL_INTERVAL: Incomplete
|
11
15
|
|
12
16
|
class UnifiEntityLoader:
|
13
17
|
hub: Incomplete
|
14
18
|
api_updaters: Incomplete
|
19
|
+
polling_api_updaters: Incomplete
|
15
20
|
wireless_clients: Incomplete
|
21
|
+
_dataUpdateCoordinator: Incomplete
|
22
|
+
_update_listener: Incomplete
|
16
23
|
platforms: Incomplete
|
17
24
|
known_objects: Incomplete
|
18
25
|
def __init__(self, hub: UnifiHub) -> None: ...
|
19
26
|
async def initialize(self) -> None: ...
|
27
|
+
async def _refresh_data(self, updaters: Sequence[Callable[[], Coroutine[Any, Any, None]]]) -> None: ...
|
28
|
+
async def _update_pollable_api_data(self) -> None: ...
|
20
29
|
async def _refresh_api_data(self) -> None: ...
|
21
30
|
def _restore_inactive_clients(self) -> None: ...
|
22
31
|
def register_platform(self, async_add_entities: AddEntitiesCallback, entity_class: type[UnifiEntity], descriptions: tuple[UnifiEntityDescription, ...], requires_admin: bool = False) -> None: ...
|
@@ -18,7 +18,7 @@ def async_wlan_qr_code_image_fn(hub: UnifiHub, wlan: Wlan) -> bytes: ...
|
|
18
18
|
class UnifiImageEntityDescription(ImageEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT]):
|
19
19
|
image_fn: Callable[[UnifiHub, ApiItemT], bytes]
|
20
20
|
value_fn: Callable[[ApiItemT], str | None]
|
21
|
-
def __init__(self, *, key, device_class
|
21
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn=..., available_fn=..., name_fn=..., supported_fn=..., event_is_on=..., event_to_subscribe=..., should_poll=..., image_fn, value_fn) -> None: ...
|
22
22
|
|
23
23
|
ENTITY_DESCRIPTIONS: tuple[UnifiImageEntityDescription, ...]
|
24
24
|
|
@@ -6,18 +6,20 @@ from _typeshed import Incomplete
|
|
6
6
|
from aiounifi.interfaces.api_handlers import ItemEvent as ItemEvent
|
7
7
|
from aiounifi.models.api import ApiItemT
|
8
8
|
from aiounifi.models.client import Client
|
9
|
-
from aiounifi.models.device import Device
|
9
|
+
from aiounifi.models.device import Device, TypedDeviceUptimeStatsWanMonitor as TypedDeviceUptimeStatsWanMonitor
|
10
10
|
from aiounifi.models.wlan import Wlan
|
11
11
|
from collections.abc import Callable as Callable
|
12
12
|
from dataclasses import dataclass
|
13
13
|
from datetime import date, datetime
|
14
14
|
from decimal import Decimal
|
15
15
|
from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass, UnitOfTemperature as UnitOfTemperature
|
16
|
-
from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfDataRate as UnitOfDataRate, UnitOfPower as UnitOfPower
|
16
|
+
from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfDataRate as UnitOfDataRate, UnitOfPower as UnitOfPower, UnitOfTime as UnitOfTime
|
17
17
|
from homeassistant.core import Event as core_Event, HomeAssistant as HomeAssistant, callback as callback
|
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
|
22
|
+
from typing import Literal
|
21
23
|
|
22
24
|
def async_bandwidth_sensor_allowed_fn(hub: UnifiHub, obj_id: str) -> bool: ...
|
23
25
|
def async_uptime_sensor_allowed_fn(hub: UnifiHub, obj_id: str) -> bool: ...
|
@@ -33,13 +35,17 @@ def async_device_outlet_supported_fn(hub: UnifiHub, obj_id: str) -> bool: ...
|
|
33
35
|
def device_system_stats_supported_fn(stat_index: int, hub: UnifiHub, obj_id: str) -> bool: ...
|
34
36
|
def async_client_is_connected_fn(hub: UnifiHub, obj_id: str) -> bool: ...
|
35
37
|
def async_device_state_value_fn(hub: UnifiHub, device: Device) -> str: ...
|
38
|
+
def async_device_wan_latency_supported_fn(wan: Literal['WAN', 'WAN2'], monitor_target: str, hub: UnifiHub, obj_id: str) -> bool: ...
|
39
|
+
def async_device_wan_latency_value_fn(wan: Literal['WAN', 'WAN2'], monitor_target: str, hub: UnifiHub, device: Device) -> int | None: ...
|
40
|
+
def _device_wan_latency_monitor(wan: Literal['WAN', 'WAN2'], monitor_target: str, device: Device) -> TypedDeviceUptimeStatsWanMonitor | None: ...
|
41
|
+
def make_wan_latency_sensors() -> tuple[UnifiSensorEntityDescription, ...]: ...
|
36
42
|
|
37
43
|
@dataclass(frozen=True, kw_only=True)
|
38
44
|
class UnifiSensorEntityDescription(SensorEntityDescription, UnifiEntityDescription[HandlerT, ApiItemT]):
|
39
45
|
value_fn: Callable[[UnifiHub, ApiItemT], datetime | float | str | None]
|
40
46
|
is_connected_fn: Callable[[UnifiHub, str], bool] | None = ...
|
41
47
|
value_changed_fn: Callable[[StateType | date | datetime | Decimal, datetime | float | str | None], bool] = ...
|
42
|
-
def __init__(self, *, key, device_class
|
48
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn=..., available_fn=..., name_fn=..., supported_fn=..., event_is_on=..., event_to_subscribe=..., should_poll=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=..., value_fn, is_connected_fn=..., value_changed_fn=...) -> None: ...
|
43
49
|
|
44
50
|
ENTITY_DESCRIPTIONS: tuple[UnifiSensorEntityDescription, ...]
|
45
51
|
|
@@ -23,13 +23,14 @@ CLIENT_UNBLOCKED: Incomplete
|
|
23
23
|
def async_block_client_allowed_fn(hub: UnifiHub, obj_id: str) -> bool: ...
|
24
24
|
def async_dpi_group_is_on_fn(hub: UnifiHub, dpi_group: DPIRestrictionGroup) -> bool: ...
|
25
25
|
def async_dpi_group_device_info_fn(hub: UnifiHub, obj_id: str) -> DeviceInfo: ...
|
26
|
-
def
|
26
|
+
def async_unifi_network_device_info_fn(hub: UnifiHub, obj_id: str) -> DeviceInfo: ...
|
27
27
|
async def async_block_client_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
|
28
28
|
async def async_dpi_group_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
|
29
29
|
def async_outlet_switching_supported_fn(hub: UnifiHub, obj_id: str) -> bool: ...
|
30
30
|
async def async_outlet_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
|
31
31
|
async def async_poe_port_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
|
32
32
|
async def async_port_forward_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
|
33
|
+
async def async_traffic_rule_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
|
33
34
|
async def async_wlan_control_fn(hub: UnifiHub, obj_id: str, target: bool) -> None: ...
|
34
35
|
|
35
36
|
@dataclass(frozen=True, kw_only=True)
|
@@ -38,7 +39,7 @@ class UnifiSwitchEntityDescription(SwitchEntityDescription, UnifiEntityDescripti
|
|
38
39
|
is_on_fn: Callable[[UnifiHub, ApiItemT], bool]
|
39
40
|
custom_subscribe: Callable[[aiounifi.Controller], SubscriptionT] | None = ...
|
40
41
|
only_event_for_state_change: bool = ...
|
41
|
-
def __init__(self, *, key, device_class
|
42
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn=..., available_fn=..., name_fn=..., supported_fn=..., event_is_on=..., event_to_subscribe=..., should_poll=..., control_fn, is_on_fn, custom_subscribe=..., only_event_for_state_change=...) -> None: ...
|
42
43
|
|
43
44
|
ENTITY_DESCRIPTIONS: tuple[UnifiSwitchEntityDescription, ...]
|
44
45
|
|
@@ -22,7 +22,7 @@ async def async_device_control_fn(api: aiounifi.Controller, obj_id: str) -> None
|
|
22
22
|
class UnifiUpdateEntityDescription(UpdateEntityDescription, UnifiEntityDescription[_HandlerT, _DataT]):
|
23
23
|
control_fn: Callable[[aiounifi.Controller, str], Coroutine[Any, Any, None]]
|
24
24
|
state_fn: Callable[[aiounifi.Controller, _DataT], bool]
|
25
|
-
def __init__(self, *, key, device_class
|
25
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., api_handler_fn, device_info_fn, object_fn, unique_id_fn, allowed_fn=..., available_fn=..., name_fn=..., supported_fn=..., event_is_on=..., event_to_subscribe=..., should_poll=..., control_fn, state_fn) -> None: ...
|
26
26
|
|
27
27
|
ENTITY_DESCRIPTIONS: tuple[UnifiUpdateEntityDescription, ...]
|
28
28
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import dataclasses
|
2
|
-
from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
|
3
|
-
from .entity import BaseProtectEntity as BaseProtectEntity, EventEntityMixin as EventEntityMixin, ProtectDeviceEntity as ProtectDeviceEntity, ProtectNVREntity as ProtectNVREntity, async_all_device_entities as async_all_device_entities
|
2
|
+
from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
|
3
|
+
from .entity import BaseProtectEntity as BaseProtectEntity, EventEntityMixin as EventEntityMixin, ProtectDeviceEntity as ProtectDeviceEntity, ProtectIsOnEntity as ProtectIsOnEntity, ProtectNVREntity as ProtectNVREntity, async_all_device_entities as async_all_device_entities
|
4
4
|
from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectEventMixin as ProtectEventMixin
|
5
5
|
from _typeshed import Incomplete
|
6
6
|
from collections.abc import Sequence
|
@@ -8,18 +8,18 @@ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as Bi
|
|
8
8
|
from homeassistant.const import EntityCategory as EntityCategory
|
9
9
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
10
10
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
11
|
-
from uiprotect.data import
|
11
|
+
from uiprotect.data import ModelType, NVR as NVR, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, Sensor as Sensor
|
12
12
|
from uiprotect.data.nvr import UOSDisk as UOSDisk
|
13
13
|
|
14
14
|
_KEY_DOOR: str
|
15
15
|
|
16
16
|
@dataclasses.dataclass(frozen=True, kw_only=True)
|
17
17
|
class ProtectBinaryEntityDescription(ProtectEntityDescription, BinarySensorEntityDescription):
|
18
|
-
def __init__(self, *, key, device_class
|
18
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=...) -> None: ...
|
19
19
|
|
20
20
|
@dataclasses.dataclass(frozen=True, kw_only=True)
|
21
21
|
class ProtectBinaryEventEntityDescription(ProtectEventMixin, BinarySensorEntityDescription):
|
22
|
-
def __init__(self, *, key, device_class
|
22
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_event_obj=..., ufp_obj_type=...) -> None: ...
|
23
23
|
|
24
24
|
MOUNT_DEVICE_CLASS_MAP: Incomplete
|
25
25
|
CAMERA_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
|
@@ -33,18 +33,14 @@ DISK_SENSORS: tuple[ProtectBinaryEntityDescription, ...]
|
|
33
33
|
_MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
|
34
34
|
_MOUNTABLE_MODEL_DESCRIPTIONS: dict[ModelType, Sequence[ProtectEntityDescription]]
|
35
35
|
|
36
|
-
class ProtectDeviceBinarySensor(ProtectDeviceEntity, BinarySensorEntity):
|
37
|
-
device: Camera | Light | Sensor
|
36
|
+
class ProtectDeviceBinarySensor(ProtectIsOnEntity, ProtectDeviceEntity, BinarySensorEntity):
|
38
37
|
entity_description: ProtectBinaryEntityDescription
|
39
|
-
_state_attrs: tuple[str, ...]
|
40
|
-
_attr_is_on: Incomplete
|
41
|
-
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
42
38
|
|
43
39
|
class MountableProtectDeviceBinarySensor(ProtectDeviceBinarySensor):
|
44
40
|
device: Sensor
|
45
|
-
_state_attrs:
|
41
|
+
_state_attrs: Incomplete
|
46
42
|
_attr_device_class: Incomplete
|
47
|
-
def _async_update_device_from_protect(self, device:
|
43
|
+
def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
|
48
44
|
|
49
45
|
class ProtectDiskBinarySensor(ProtectNVREntity, BinarySensorEntity):
|
50
46
|
_disk: UOSDisk
|
@@ -53,7 +49,7 @@ class ProtectDiskBinarySensor(ProtectNVREntity, BinarySensorEntity):
|
|
53
49
|
def __init__(self, data: ProtectData, device: NVR, description: ProtectBinaryEntityDescription, disk: UOSDisk) -> None: ...
|
54
50
|
_attr_available: bool
|
55
51
|
_attr_is_on: Incomplete
|
56
|
-
def _async_update_device_from_protect(self, device:
|
52
|
+
def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
|
57
53
|
|
58
54
|
class ProtectEventBinarySensor(EventEntityMixin, BinarySensorEntity):
|
59
55
|
entity_description: ProtectBinaryEventEntityDescription
|
@@ -63,7 +59,7 @@ class ProtectEventBinarySensor(EventEntityMixin, BinarySensorEntity):
|
|
63
59
|
def _set_event_done(self) -> None: ...
|
64
60
|
_event: Incomplete
|
65
61
|
_event_end: Incomplete
|
66
|
-
def _async_update_device_from_protect(self, device:
|
62
|
+
def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
|
67
63
|
|
68
64
|
MODEL_DESCRIPTIONS_WITH_CLASS: Incomplete
|
69
65
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from .const import DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DOMAIN as DOMAIN
|
2
|
-
from .data import UFPConfigEntry as UFPConfigEntry
|
2
|
+
from .data import ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
|
3
3
|
from .entity import ProtectDeviceEntity as ProtectDeviceEntity, async_all_device_entities as async_all_device_entities
|
4
4
|
from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
|
5
5
|
from _typeshed import Incomplete
|
@@ -11,17 +11,16 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
|
|
11
11
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
12
12
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
13
13
|
from typing import Final
|
14
|
-
from uiprotect.data import ModelType, ProtectAdoptableDeviceModel
|
14
|
+
from uiprotect.data import ModelType, ProtectAdoptableDeviceModel
|
15
15
|
|
16
16
|
_LOGGER: Incomplete
|
17
17
|
|
18
18
|
@dataclass(frozen=True, kw_only=True)
|
19
19
|
class ProtectButtonEntityDescription(ProtectSetableKeysMixin[T], ButtonEntityDescription):
|
20
20
|
ufp_press: str | None = ...
|
21
|
-
def __init__(self, *, key, device_class
|
21
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_set_method=..., ufp_set_method_fn=..., ufp_press=...) -> None: ...
|
22
22
|
|
23
23
|
DEVICE_CLASS_CHIME_BUTTON: Final[str]
|
24
|
-
KEY_ADOPT: str
|
25
24
|
ALL_DEVICE_BUTTONS: tuple[ProtectButtonEntityDescription, ...]
|
26
25
|
ADOPT_BUTTON: Incomplete
|
27
26
|
SENSOR_BUTTONS: tuple[ProtectButtonEntityDescription, ...]
|
@@ -33,6 +32,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_ad
|
|
33
32
|
|
34
33
|
class ProtectButton(ProtectDeviceEntity, ButtonEntity):
|
35
34
|
entity_description: ProtectButtonEntityDescription
|
36
|
-
_attr_available: Incomplete
|
37
|
-
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
38
35
|
async def async_press(self) -> None: ...
|
36
|
+
|
37
|
+
class ProtectAdoptButton(ProtectButton):
|
38
|
+
_attr_available: Incomplete
|
39
|
+
def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
|
@@ -1,15 +1,15 @@
|
|
1
1
|
from .const import ATTR_BITRATE as ATTR_BITRATE, ATTR_CHANNEL_ID as ATTR_CHANNEL_ID, ATTR_FPS as ATTR_FPS, ATTR_HEIGHT as ATTR_HEIGHT, ATTR_WIDTH as ATTR_WIDTH, DOMAIN as DOMAIN
|
2
|
-
from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
|
2
|
+
from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
|
3
3
|
from .entity import ProtectDeviceEntity as ProtectDeviceEntity
|
4
4
|
from .utils import get_camera_base_name as get_camera_base_name
|
5
5
|
from _typeshed import Incomplete
|
6
|
+
from collections.abc import Generator
|
6
7
|
from homeassistant.components.camera import Camera as Camera, CameraEntityFeature as CameraEntityFeature
|
7
8
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
8
9
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
|
9
10
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
10
11
|
from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity
|
11
|
-
from
|
12
|
-
from uiprotect.data import Camera as UFPCamera, CameraChannel as CameraChannel, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel, ProtectModelWithId as ProtectModelWithId
|
12
|
+
from uiprotect.data import Camera as UFPCamera, CameraChannel as CameraChannel, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
|
13
13
|
|
14
14
|
_LOGGER: Incomplete
|
15
15
|
|
@@ -38,7 +38,7 @@ class ProtectCamera(ProtectDeviceEntity, Camera):
|
|
38
38
|
_attr_is_recording: Incomplete
|
39
39
|
_attr_available: Incomplete
|
40
40
|
_attr_extra_state_attributes: Incomplete
|
41
|
-
def _async_update_device_from_protect(self, device:
|
41
|
+
def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
|
42
42
|
async def async_camera_image(self, width: int | None = None, height: int | None = None) -> bytes | None: ...
|
43
43
|
async def stream_source(self) -> str | None: ...
|
44
44
|
async def async_enable_motion_detection(self) -> None: ...
|
@@ -1,20 +1,19 @@
|
|
1
1
|
from .const import AUTH_RETRIES as AUTH_RETRIES, CONF_DISABLE_RTSP as CONF_DISABLE_RTSP, CONF_MAX_MEDIA as CONF_MAX_MEDIA, DEFAULT_MAX_MEDIA as DEFAULT_MAX_MEDIA, DEVICES_THAT_ADOPT as DEVICES_THAT_ADOPT, DISPATCH_ADD as DISPATCH_ADD, DISPATCH_ADOPT as DISPATCH_ADOPT, DISPATCH_CHANNELS as DISPATCH_CHANNELS, DOMAIN as DOMAIN
|
2
2
|
from .utils import async_get_devices_by_type as async_get_devices_by_type
|
3
3
|
from _typeshed import Incomplete
|
4
|
-
from collections.abc import Callable as Callable, Iterable
|
4
|
+
from collections.abc import Callable as Callable, Generator, Iterable
|
5
5
|
from datetime import datetime, timedelta
|
6
6
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
7
7
|
from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
|
8
8
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
|
9
9
|
from homeassistant.helpers.event import async_track_time_interval as async_track_time_interval
|
10
10
|
from typing import Any
|
11
|
-
from typing_extensions import Generator
|
12
11
|
from uiprotect import ProtectApiClient as ProtectApiClient
|
13
12
|
from uiprotect.data import Camera, ModelType, NVR, ProtectAdoptableDeviceModel, WSSubscriptionMessage as WSSubscriptionMessage
|
14
13
|
from uiprotect.websocket import WebsocketState
|
15
14
|
|
16
15
|
_LOGGER: Incomplete
|
17
|
-
ProtectDeviceType
|
16
|
+
ProtectDeviceType = ProtectAdoptableDeviceModel | NVR
|
18
17
|
UFPConfigEntry = ConfigEntry[ProtectData]
|
19
18
|
|
20
19
|
def async_last_update_was_successful(hass: HomeAssistant, entry: UFPConfigEntry) -> bool: ...
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from .const import ATTR_EVENT_ID as ATTR_EVENT_ID, ATTR_EVENT_SCORE as ATTR_EVENT_SCORE, DEFAULT_ATTRIBUTION as DEFAULT_ATTRIBUTION, DEFAULT_BRAND as DEFAULT_BRAND, DOMAIN as DOMAIN
|
2
|
-
from .data import ProtectData as ProtectData
|
2
|
+
from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType
|
3
3
|
from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectEventMixin as ProtectEventMixin
|
4
4
|
from _typeshed import Incomplete
|
5
5
|
from collections.abc import Callable as Callable, Sequence
|
@@ -7,7 +7,7 @@ from datetime import datetime
|
|
7
7
|
from homeassistant.core import callback as callback
|
8
8
|
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
9
9
|
from homeassistant.helpers.entity import Entity as Entity, EntityDescription as EntityDescription
|
10
|
-
from uiprotect.data import Event as Event, ModelType, NVR as NVR, ProtectAdoptableDeviceModel
|
10
|
+
from uiprotect.data import Event as Event, ModelType, NVR as NVR, ProtectAdoptableDeviceModel
|
11
11
|
|
12
12
|
_LOGGER: Incomplete
|
13
13
|
|
@@ -19,7 +19,7 @@ def _combine_model_descs(model_type: ModelType, model_descriptions: dict[ModelTy
|
|
19
19
|
def async_all_device_entities(data: ProtectData, klass: type[BaseProtectEntity], model_descriptions: dict[ModelType, Sequence[ProtectEntityDescription]] | None = None, all_descs: Sequence[ProtectEntityDescription] | None = None, unadopted_descs: list[ProtectEntityDescription] | None = None, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[BaseProtectEntity]: ...
|
20
20
|
|
21
21
|
class BaseProtectEntity(Entity):
|
22
|
-
device:
|
22
|
+
device: ProtectDeviceType
|
23
23
|
_attr_should_poll: bool
|
24
24
|
_attr_attribution = DEFAULT_ATTRIBUTION
|
25
25
|
_state_attrs: tuple[str, ...]
|
@@ -30,24 +30,28 @@ class BaseProtectEntity(Entity):
|
|
30
30
|
_attr_name: Incomplete
|
31
31
|
entity_description: Incomplete
|
32
32
|
_state_getters: Incomplete
|
33
|
-
def __init__(self, data: ProtectData, device:
|
33
|
+
def __init__(self, data: ProtectData, device: ProtectDeviceType, description: EntityDescription | None = None) -> None: ...
|
34
34
|
async def async_update(self) -> None: ...
|
35
|
-
_attr_device_info: Incomplete
|
36
35
|
def _async_set_device_info(self) -> None: ...
|
37
36
|
_attr_available: Incomplete
|
38
|
-
def _async_update_device_from_protect(self, device:
|
39
|
-
def _async_updated_event(self, device:
|
37
|
+
def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
|
38
|
+
def _async_updated_event(self, device: ProtectDeviceType) -> None: ...
|
40
39
|
async def async_added_to_hass(self) -> None: ...
|
41
40
|
|
41
|
+
class ProtectIsOnEntity(BaseProtectEntity):
|
42
|
+
_state_attrs: tuple[str, ...]
|
43
|
+
_attr_is_on: bool | None
|
44
|
+
entity_description: ProtectEntityDescription
|
45
|
+
def _async_update_device_from_protect(self, device: ProtectAdoptableDeviceModel | NVR) -> None: ...
|
46
|
+
|
42
47
|
class ProtectDeviceEntity(BaseProtectEntity):
|
43
|
-
|
48
|
+
_attr_device_info: Incomplete
|
49
|
+
def _async_set_device_info(self) -> None: ...
|
44
50
|
|
45
51
|
class ProtectNVREntity(BaseProtectEntity):
|
46
52
|
device: NVR
|
47
53
|
_attr_device_info: Incomplete
|
48
54
|
def _async_set_device_info(self) -> None: ...
|
49
|
-
_attr_available: Incomplete
|
50
|
-
def _async_update_device_from_protect(self, device: ProtectModelWithId) -> None: ...
|
51
55
|
|
52
56
|
class EventEntityMixin(ProtectDeviceEntity):
|
53
57
|
entity_description: ProtectEventMixin
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import dataclasses
|
2
|
+
from .const import ATTR_EVENT_ID as ATTR_EVENT_ID
|
3
|
+
from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
|
4
|
+
from .entity import EventEntityMixin as EventEntityMixin, ProtectDeviceEntity as ProtectDeviceEntity
|
5
|
+
from .models import ProtectEventMixin as ProtectEventMixin
|
6
|
+
from _typeshed import Incomplete
|
7
|
+
from homeassistant.components.event import EventDeviceClass as EventDeviceClass, EventEntity as EventEntity, EventEntityDescription as EventEntityDescription
|
8
|
+
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
9
|
+
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
10
|
+
from uiprotect.data import ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
|
11
|
+
|
12
|
+
@dataclasses.dataclass(frozen=True, kw_only=True)
|
13
|
+
class ProtectEventEntityDescription(ProtectEventMixin, EventEntityDescription):
|
14
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., event_types=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_event_obj=..., ufp_obj_type=...) -> None: ...
|
15
|
+
|
16
|
+
EVENT_DESCRIPTIONS: tuple[ProtectEventEntityDescription, ...]
|
17
|
+
|
18
|
+
class ProtectDeviceEventEntity(EventEntityMixin, ProtectDeviceEntity, EventEntity):
|
19
|
+
entity_description: ProtectEventEntityDescription
|
20
|
+
_event: Incomplete
|
21
|
+
_event_end: Incomplete
|
22
|
+
def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
|
23
|
+
|
24
|
+
def _async_event_entities(data: ProtectData, ufp_device: ProtectAdoptableDeviceModel | None = None) -> list[ProtectDeviceEntity]: ...
|
25
|
+
async def async_setup_entry(hass: HomeAssistant, entry: UFPConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
|
@@ -1,11 +1,11 @@
|
|
1
|
-
from .data import UFPConfigEntry as UFPConfigEntry
|
1
|
+
from .data import ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
|
2
2
|
from .entity import ProtectDeviceEntity as ProtectDeviceEntity
|
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, callback as callback
|
6
6
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
7
7
|
from typing import Any
|
8
|
-
from uiprotect.data import Light as Light, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
|
8
|
+
from uiprotect.data import Light as Light, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
|
9
9
|
|
10
10
|
_LOGGER: Incomplete
|
11
11
|
|
@@ -21,6 +21,6 @@ class ProtectLight(ProtectDeviceEntity, LightEntity):
|
|
21
21
|
_state_attrs: Incomplete
|
22
22
|
_attr_is_on: Incomplete
|
23
23
|
_attr_brightness: Incomplete
|
24
|
-
def _async_update_device_from_protect(self, device:
|
24
|
+
def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
|
25
25
|
async def async_turn_on(self, **kwargs: Any) -> None: ...
|
26
26
|
async def async_turn_off(self, **kwargs: Any) -> None: ...
|
@@ -1,11 +1,11 @@
|
|
1
|
-
from .data import UFPConfigEntry as UFPConfigEntry
|
1
|
+
from .data import ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
|
2
2
|
from .entity import ProtectDeviceEntity as ProtectDeviceEntity
|
3
3
|
from _typeshed import Incomplete
|
4
4
|
from homeassistant.components.lock import LockEntity as LockEntity, LockEntityDescription as LockEntityDescription
|
5
5
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
6
6
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
7
7
|
from typing import Any
|
8
|
-
from uiprotect.data import Doorlock, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
|
8
|
+
from uiprotect.data import Doorlock, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
|
9
9
|
|
10
10
|
_LOGGER: Incomplete
|
11
11
|
|
@@ -20,6 +20,6 @@ class ProtectLock(ProtectDeviceEntity, LockEntity):
|
|
20
20
|
_attr_is_unlocking: bool
|
21
21
|
_attr_is_jammed: bool
|
22
22
|
_attr_available: bool
|
23
|
-
def _async_update_device_from_protect(self, device:
|
23
|
+
def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
|
24
24
|
async def async_unlock(self, **kwargs: Any) -> None: ...
|
25
25
|
async def async_lock(self, **kwargs: Any) -> None: ...
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from .data import UFPConfigEntry as UFPConfigEntry
|
1
|
+
from .data import ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
|
2
2
|
from .entity import ProtectDeviceEntity as ProtectDeviceEntity
|
3
3
|
from _typeshed import Incomplete
|
4
4
|
from homeassistant.components import media_source as media_source
|
@@ -7,7 +7,7 @@ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callb
|
|
7
7
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
8
8
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
9
9
|
from typing import Any
|
10
|
-
from uiprotect.data import Camera, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
|
10
|
+
from uiprotect.data import Camera, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
|
11
11
|
|
12
12
|
_LOGGER: Incomplete
|
13
13
|
_SPEAKER_DESCRIPTION: Incomplete
|
@@ -23,7 +23,7 @@ class ProtectMediaPlayer(ProtectDeviceEntity, MediaPlayerEntity):
|
|
23
23
|
_attr_volume_level: Incomplete
|
24
24
|
_attr_state: Incomplete
|
25
25
|
_attr_available: Incomplete
|
26
|
-
def _async_update_device_from_protect(self, device:
|
26
|
+
def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
|
27
27
|
async def async_set_volume_level(self, volume: float) -> None: ...
|
28
28
|
async def async_media_stop(self) -> None: ...
|
29
29
|
async def async_play_media(self, media_type: MediaType | str, media_id: str, **kwargs: Any) -> None: ...
|
@@ -18,20 +18,20 @@ THUMBNAIL_WIDTH: int
|
|
18
18
|
THUMBNAIL_HEIGHT: int
|
19
19
|
|
20
20
|
class SimpleEventType(str, Enum):
|
21
|
-
ALL
|
22
|
-
RING
|
23
|
-
MOTION
|
24
|
-
SMART
|
25
|
-
AUDIO
|
21
|
+
ALL = 'all'
|
22
|
+
RING = 'ring'
|
23
|
+
MOTION = 'motion'
|
24
|
+
SMART = 'smart'
|
25
|
+
AUDIO = 'audio'
|
26
26
|
|
27
27
|
class IdentifierType(str, Enum):
|
28
|
-
EVENT
|
29
|
-
EVENT_THUMB
|
30
|
-
BROWSE
|
28
|
+
EVENT = 'event'
|
29
|
+
EVENT_THUMB = 'eventthumb'
|
30
|
+
BROWSE = 'browse'
|
31
31
|
|
32
32
|
class IdentifierTimeType(str, Enum):
|
33
|
-
RECENT
|
34
|
-
RANGE
|
33
|
+
RECENT = 'recent'
|
34
|
+
RANGE = 'range'
|
35
35
|
|
36
36
|
EVENT_MAP: dict[SimpleEventType, set[EventType]]
|
37
37
|
EVENT_NAME_MAP: Incomplete
|
@@ -10,9 +10,9 @@ _LOGGER: Incomplete
|
|
10
10
|
T = TypeVar('T', bound=ProtectAdoptableDeviceModel | NVR)
|
11
11
|
|
12
12
|
class PermRequired(int, Enum):
|
13
|
-
NO_WRITE
|
14
|
-
WRITE
|
15
|
-
DELETE
|
13
|
+
NO_WRITE = 1
|
14
|
+
WRITE = 2
|
15
|
+
DELETE = 3
|
16
16
|
|
17
17
|
@dataclass(frozen=True, kw_only=True)
|
18
18
|
class ProtectEntityDescription(EntityDescription, Generic[T]):
|
@@ -25,7 +25,7 @@ class ProtectEntityDescription(EntityDescription, Generic[T]):
|
|
25
25
|
get_ufp_enabled: Callable[[T], bool] | None = ...
|
26
26
|
def get_ufp_value(self, obj: T) -> Any: ...
|
27
27
|
def __post_init__(self) -> None: ...
|
28
|
-
def __init__(self, *, key, device_class
|
28
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=...) -> None: ...
|
29
29
|
|
30
30
|
@dataclass(frozen=True, kw_only=True)
|
31
31
|
class ProtectEventMixin(ProtectEntityDescription[T]):
|
@@ -34,11 +34,11 @@ class ProtectEventMixin(ProtectEntityDescription[T]):
|
|
34
34
|
def get_event_obj(self, obj: T) -> Event | None: ...
|
35
35
|
def has_matching_smart(self, event: Event) -> bool: ...
|
36
36
|
def __post_init__(self) -> None: ...
|
37
|
-
def __init__(self, *, key, device_class
|
37
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_event_obj=..., ufp_obj_type=...) -> None: ...
|
38
38
|
|
39
39
|
@dataclass(frozen=True, kw_only=True)
|
40
40
|
class ProtectSetableKeysMixin(ProtectEntityDescription[T]):
|
41
41
|
ufp_set_method: str | None = ...
|
42
42
|
ufp_set_method_fn: Callable[[T, Any], Coroutine[Any, Any, None]] | None = ...
|
43
43
|
async def ufp_set(self, obj: T, value: Any) -> None: ...
|
44
|
-
def __init__(self, *, key, device_class
|
44
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_set_method=..., ufp_set_method_fn=...) -> None: ...
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from .data import ProtectData as ProtectData, UFPConfigEntry as UFPConfigEntry
|
1
|
+
from .data import ProtectData as ProtectData, ProtectDeviceType as ProtectDeviceType, UFPConfigEntry as UFPConfigEntry
|
2
2
|
from .entity import ProtectDeviceEntity as ProtectDeviceEntity, async_all_device_entities as async_all_device_entities
|
3
3
|
from .models import PermRequired as PermRequired, ProtectEntityDescription as ProtectEntityDescription, ProtectSetableKeysMixin as ProtectSetableKeysMixin, T as T
|
4
4
|
from _typeshed import Incomplete
|
@@ -8,14 +8,14 @@ from homeassistant.components.number import NumberEntity as NumberEntity, Number
|
|
8
8
|
from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfTime as UnitOfTime
|
9
9
|
from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
|
10
10
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
|
11
|
-
from uiprotect.data import Camera as Camera, Doorlock, Light, ModelType, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
|
11
|
+
from uiprotect.data import Camera as Camera, Doorlock, Light, ModelType, ProtectAdoptableDeviceModel as ProtectAdoptableDeviceModel
|
12
12
|
|
13
13
|
@dataclass(frozen=True, kw_only=True)
|
14
14
|
class ProtectNumberEntityDescription(ProtectSetableKeysMixin[T], NumberEntityDescription):
|
15
15
|
ufp_max: int | float
|
16
16
|
ufp_min: int | float
|
17
17
|
ufp_step: int | float
|
18
|
-
def __init__(self, *, key, device_class
|
18
|
+
def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., max_value=..., min_value=..., mode=..., native_max_value=..., native_min_value=..., native_step=..., native_unit_of_measurement=..., step=..., ufp_required_field=..., ufp_value=..., ufp_value_fn=..., ufp_enabled=..., ufp_perm=..., has_required=..., get_ufp_enabled=..., ufp_set_method=..., ufp_set_method_fn=..., ufp_max, ufp_min, ufp_step) -> None: ...
|
19
19
|
|
20
20
|
def _get_pir_duration(obj: Light) -> int: ...
|
21
21
|
async def _set_pir_duration(obj: Light, value: float) -> None: ...
|
@@ -41,5 +41,5 @@ class ProtectNumbers(ProtectDeviceEntity, NumberEntity):
|
|
41
41
|
_attr_native_step: Incomplete
|
42
42
|
def __init__(self, data: ProtectData, device: Camera | Light, description: ProtectNumberEntityDescription) -> None: ...
|
43
43
|
_attr_native_value: Incomplete
|
44
|
-
def _async_update_device_from_protect(self, device:
|
44
|
+
def _async_update_device_from_protect(self, device: ProtectDeviceType) -> None: ...
|
45
45
|
async def async_set_native_value(self, value: float) -> None: ...
|