homeassistant 2025.9.0b0__py3-none-any.whl → 2025.9.0b2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- homeassistant/components/accuweather/translations/sensor.sr-Latn.json +9 -0
- homeassistant/components/accuweather/translations/sensor.sr.json +9 -0
- homeassistant/components/accuweather/translations/sr-Latn.json +101 -0
- homeassistant/components/accuweather/translations/sr.json +101 -0
- homeassistant/components/ai_task/services.yaml +0 -1
- homeassistant/components/ai_task/translations/cs.json +25 -3
- homeassistant/components/ai_task/translations/el.json +22 -0
- homeassistant/components/ai_task/translations/fr.json +22 -0
- homeassistant/components/ai_task/translations/lt.json +22 -0
- homeassistant/components/ai_task/translations/pt.json +22 -0
- homeassistant/components/ai_task/translations/ru.json +22 -0
- homeassistant/components/ai_task/translations/sk.json +1 -1
- homeassistant/components/airgradient/translations/pt.json +1 -0
- homeassistant/components/airgradient/translations/ru.json +1 -0
- homeassistant/components/airos/manifest.json +1 -1
- homeassistant/components/airos/translations/lt.json +23 -1
- homeassistant/components/aladdin_connect/manifest.json +1 -1
- homeassistant/components/aladdin_connect/translations/ca.json +28 -0
- homeassistant/components/aladdin_connect/translations/cs.json +30 -1
- homeassistant/components/aladdin_connect/translations/el.json +30 -1
- homeassistant/components/aladdin_connect/translations/et.json +30 -1
- homeassistant/components/aladdin_connect/translations/fr.json +10 -0
- homeassistant/components/aladdin_connect/translations/ga.json +30 -1
- homeassistant/components/aladdin_connect/translations/lt.json +30 -1
- homeassistant/components/aladdin_connect/translations/nl.json +28 -0
- homeassistant/components/aladdin_connect/translations/pt.json +30 -1
- homeassistant/components/aladdin_connect/translations/ru.json +30 -1
- homeassistant/components/aladdin_connect/translations/sk.json +30 -1
- homeassistant/components/aladdin_connect/translations/zh-Hans.json +30 -1
- homeassistant/components/aladdin_connect/translations/zh-Hant.json +30 -1
- homeassistant/components/alarm_control_panel/translations/cs.json +3 -3
- homeassistant/components/alexa_devices/__init__.py +1 -1
- homeassistant/components/alexa_devices/const.py +9 -9
- homeassistant/components/alexa_devices/manifest.json +1 -1
- homeassistant/components/alexa_devices/sensor.py +3 -0
- homeassistant/components/alexa_devices/services.py +3 -8
- homeassistant/components/alexa_devices/services.yaml +41 -476
- homeassistant/components/alexa_devices/strings.json +42 -469
- homeassistant/components/alexa_devices/translations/bg.json +0 -8
- homeassistant/components/alexa_devices/translations/cs.json +0 -477
- homeassistant/components/alexa_devices/translations/de.json +42 -469
- homeassistant/components/alexa_devices/translations/en-GB.json +1 -475
- homeassistant/components/alexa_devices/translations/en.json +42 -469
- homeassistant/components/alexa_devices/translations/es.json +0 -307
- homeassistant/components/alexa_devices/translations/et.json +42 -469
- homeassistant/components/alexa_devices/translations/fr.json +0 -9
- homeassistant/components/alexa_devices/translations/ga.json +0 -477
- homeassistant/components/alexa_devices/translations/lt.json +27 -293
- homeassistant/components/alexa_devices/translations/nl.json +0 -15
- homeassistant/components/alexa_devices/translations/pt.json +11 -477
- homeassistant/components/alexa_devices/translations/sk.json +0 -477
- homeassistant/components/alexa_devices/translations/sv.json +0 -8
- homeassistant/components/alexa_devices/translations/zh-Hans.json +0 -387
- homeassistant/components/alexa_devices/translations/zh-Hant.json +42 -469
- homeassistant/components/anthemav/translations/lt.json +2 -1
- homeassistant/components/asuswrt/bridge.py +18 -2
- homeassistant/components/asuswrt/manifest.json +1 -1
- homeassistant/components/august/translations/lt.json +26 -1
- homeassistant/components/august/translations/pt.json +26 -1
- homeassistant/components/backup/manager.py +2 -1
- homeassistant/components/backup/translations/de.json +1 -1
- homeassistant/components/bayesian/strings.json +1 -1
- homeassistant/components/bayesian/translations/cs.json +1 -1
- homeassistant/components/bayesian/translations/de.json +17 -17
- homeassistant/components/bayesian/translations/el.json +102 -0
- homeassistant/components/bayesian/translations/en-GB.json +1 -1
- homeassistant/components/bayesian/translations/en.json +3 -3
- homeassistant/components/bayesian/translations/et.json +1 -1
- homeassistant/components/bayesian/translations/fr.json +41 -0
- homeassistant/components/bayesian/translations/ga.json +48 -6
- homeassistant/components/bayesian/translations/lt.json +218 -0
- homeassistant/components/bayesian/translations/pl.json +7 -0
- homeassistant/components/bayesian/translations/pt.json +257 -0
- homeassistant/components/bayesian/translations/ru.json +257 -0
- homeassistant/components/bayesian/translations/sk.json +5 -5
- homeassistant/components/bayesian/translations/sv.json +11 -0
- homeassistant/components/bayesian/translations/zh-Hans.json +1 -1
- homeassistant/components/bayesian/translations/zh-Hant.json +1 -1
- homeassistant/components/bluetooth/__init__.py +1 -1
- homeassistant/components/bluetooth/manifest.json +3 -3
- homeassistant/components/braviatv/entity.py +10 -4
- homeassistant/components/bring/translations/sk.json +1 -1
- homeassistant/components/buienradar/translations/sr-Latn.json +128 -0
- homeassistant/components/buienradar/translations/sr.json +128 -0
- homeassistant/components/button/translations/ru.json +1 -1
- homeassistant/components/camera/translations/ru.json +2 -2
- homeassistant/components/conversation/manifest.json +1 -1
- homeassistant/components/cover/translations/mk.json +13 -5
- homeassistant/components/cover/translations/pl.json +1 -1
- homeassistant/components/deconz/translations/ga.json +19 -1
- homeassistant/components/device_tracker/translations/ga.json +9 -0
- homeassistant/components/devolo_home_control/translations/lt.json +3 -0
- homeassistant/components/devolo_home_network/translations/lt.json +3 -1
- homeassistant/components/devolo_home_network/translations/ru.json +3 -0
- homeassistant/components/dominos/translations/ru.json +2 -0
- homeassistant/components/downloader/translations/sk.json +1 -1
- homeassistant/components/dsmr/translations/ga.json +8 -0
- homeassistant/components/dsmr_reader/translations/ga.json +34 -0
- homeassistant/components/dwd_weather_warnings/translations/sk.json +1 -1
- homeassistant/components/ecobee/translations/ga.json +20 -1
- homeassistant/components/ecovacs/manifest.json +1 -1
- homeassistant/components/efergy/translations/ga.json +6 -0
- homeassistant/components/elkm1/translations/ga.json +6 -1
- homeassistant/components/emoncms/translations/lt.json +8 -0
- homeassistant/components/enphase_envoy/translations/lt.json +6 -0
- homeassistant/components/environment_canada/translations/sr-Latn.json +9 -0
- homeassistant/components/environment_canada/translations/sr.json +9 -0
- homeassistant/components/eq3btsmart/manifest.json +1 -1
- homeassistant/components/esphome/manifest.json +2 -2
- homeassistant/components/esphome/translations/ga.json +29 -4
- homeassistant/components/esphome/translations/sk.json +1 -1
- homeassistant/components/fan/translations/ga.json +25 -1
- homeassistant/components/filesize/translations/ga.json +12 -0
- homeassistant/components/fireservicerota/translations/ga.json +3 -1
- homeassistant/components/flo/translations/ga.json +16 -0
- homeassistant/components/flume/translations/ga.json +1 -0
- homeassistant/components/flux_led/translations/ga.json +78 -1
- homeassistant/components/flux_led/translations/sk.json +1 -1
- homeassistant/components/foscam/translations/ga.json +13 -0
- homeassistant/components/foscam/translations/lt.json +3 -0
- homeassistant/components/fritz/translations/ga.json +49 -6
- homeassistant/components/fritz/translations/ru.json +3 -0
- homeassistant/components/fritzbox/translations/ca.json +1 -3
- homeassistant/components/fritzbox/translations/cs.json +2 -2
- homeassistant/components/fritzbox/translations/de.json +3 -3
- homeassistant/components/fritzbox/translations/el.json +2 -2
- homeassistant/components/fritzbox/translations/en-GB.json +2 -2
- homeassistant/components/fritzbox/translations/en.json +2 -2
- homeassistant/components/fritzbox/translations/es-419.json +0 -6
- homeassistant/components/fritzbox/translations/es.json +1 -3
- homeassistant/components/fritzbox/translations/et.json +2 -2
- homeassistant/components/fritzbox/translations/fi.json +1 -3
- homeassistant/components/fritzbox/translations/fr.json +1 -3
- homeassistant/components/fritzbox/translations/ga.json +0 -1
- homeassistant/components/fritzbox/translations/hu.json +1 -3
- homeassistant/components/fritzbox/translations/id.json +1 -3
- homeassistant/components/fritzbox/translations/it.json +1 -3
- homeassistant/components/fritzbox/translations/ja.json +1 -3
- homeassistant/components/fritzbox/translations/ko.json +1 -3
- homeassistant/components/fritzbox/translations/lb.json +2 -4
- homeassistant/components/fritzbox/translations/lt.json +1 -3
- homeassistant/components/fritzbox/translations/nb.json +1 -3
- homeassistant/components/fritzbox/translations/nl.json +1 -3
- homeassistant/components/fritzbox/translations/pl.json +1 -3
- homeassistant/components/fritzbox/translations/pt-BR.json +1 -3
- homeassistant/components/fritzbox/translations/pt.json +2 -2
- homeassistant/components/fritzbox/translations/ro.json +1 -3
- homeassistant/components/fritzbox/translations/ru.json +2 -2
- homeassistant/components/fritzbox/translations/sk.json +2 -2
- homeassistant/components/fritzbox/translations/sl.json +1 -3
- homeassistant/components/fritzbox/translations/sv.json +1 -3
- homeassistant/components/fritzbox/translations/tr.json +1 -3
- homeassistant/components/fritzbox/translations/uk.json +1 -3
- homeassistant/components/fritzbox/translations/vi.json +2 -4
- homeassistant/components/fritzbox/translations/zh-Hans.json +2 -2
- homeassistant/components/fritzbox/translations/zh-Hant.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/ca.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/cs.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/de.json +3 -3
- homeassistant/components/fritzbox_callmonitor/translations/el.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/en-GB.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/en.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/es-419.json +0 -3
- homeassistant/components/fritzbox_callmonitor/translations/es.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/et.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/fi.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/fr.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/ga.json +16 -0
- homeassistant/components/fritzbox_callmonitor/translations/hu.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/id.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/it.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/ja.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/ko.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/lt.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/nb.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/nl.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/pl.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/pt-BR.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/pt.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/ro.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/ru.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/sk.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/sv.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/tr.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/uk.json +0 -1
- homeassistant/components/fritzbox_callmonitor/translations/zh-Hans.json +2 -2
- homeassistant/components/fritzbox_callmonitor/translations/zh-Hant.json +2 -2
- homeassistant/components/fronius/translations/ga.json +69 -0
- homeassistant/components/frontend/manifest.json +1 -1
- homeassistant/components/fully_kiosk/translations/fr.json +5 -0
- homeassistant/components/fully_kiosk/translations/ga.json +26 -0
- homeassistant/components/fully_kiosk/translations/lt.json +3 -0
- homeassistant/components/fully_kiosk/translations/pt.json +3 -0
- homeassistant/components/fyta/translations/fr.json +3 -0
- homeassistant/components/fyta/translations/ga.json +1 -0
- homeassistant/components/fyta/translations/lt.json +64 -2
- homeassistant/components/fyta/translations/pt.json +64 -2
- homeassistant/components/generic/translations/ga.json +36 -0
- homeassistant/components/geofency/translations/ga.json +18 -0
- homeassistant/components/geonetnz_quakes/translations/ga.json +4 -0
- homeassistant/components/gios/translations/ga.json +2 -0
- homeassistant/components/github/translations/ga.json +23 -0
- homeassistant/components/glances/translations/ga.json +10 -0
- homeassistant/components/goalzero/translations/ga.json +3 -0
- homeassistant/components/goalzero/translations/lt.json +3 -0
- homeassistant/components/goodwe/translations/ga.json +16 -0
- homeassistant/components/google/translations/ga.json +7 -0
- homeassistant/components/google_assistant_sdk/translations/sk.json +1 -1
- homeassistant/components/google_generative_ai_conversation/translations/cs.json +3 -3
- homeassistant/components/google_generative_ai_conversation/translations/lt.json +5 -0
- homeassistant/components/google_generative_ai_conversation/translations/sk.json +1 -1
- homeassistant/components/google_mail/translations/ga.json +24 -2
- homeassistant/components/google_mail/translations/sk.json +1 -1
- homeassistant/components/google_photos/translations/sk.json +1 -1
- homeassistant/components/google_sheets/translations/ga.json +6 -0
- homeassistant/components/google_sheets/translations/sk.json +1 -1
- homeassistant/components/google_tasks/translations/sk.json +1 -1
- homeassistant/components/govee_ble/translations/ga.json +18 -0
- homeassistant/components/govee_light_local/__init__.py +16 -3
- homeassistant/components/govee_light_local/config_flow.py +28 -10
- homeassistant/components/govee_light_local/coordinator.py +39 -24
- homeassistant/components/gpslogger/translations/ga.json +1 -0
- homeassistant/components/group/translations/ga.json +31 -2
- homeassistant/components/growatt_server/translations/ga.json +127 -0
- homeassistant/components/habitica/translations/cs.json +3 -3
- homeassistant/components/habitica/translations/ga.json +7 -2
- homeassistant/components/harmony/translations/ga.json +32 -2
- homeassistant/components/hassio/translations/ga.json +51 -1
- homeassistant/components/hassio/translations/lt.json +4 -0
- homeassistant/components/hassio/translations/sk.json +1 -1
- homeassistant/components/here_travel_time/translations/ga.json +11 -0
- homeassistant/components/here_travel_time/translations/lt.json +2 -1
- homeassistant/components/hisense_aehw4a1/translations/ga.json +13 -0
- homeassistant/components/history_stats/translations/ga.json +6 -0
- homeassistant/components/history_stats/translations/sk.json +3 -3
- homeassistant/components/hive/translations/ga.json +7 -0
- homeassistant/components/home_connect/translations/ga.json +5 -1
- homeassistant/components/home_connect/translations/lt.json +21 -11
- homeassistant/components/home_connect/translations/ru.json +9 -6
- homeassistant/components/home_connect/translations/sk.json +1 -1
- homeassistant/components/homeassistant_yellow/translations/ga.json +61 -2
- homeassistant/components/homekit_controller/translations/ga.json +25 -0
- homeassistant/components/homekit_controller/translations/select.mk.json +7 -0
- homeassistant/components/homematic/translations/ga.json +26 -1
- homeassistant/components/honeywell/translations/ga.json +10 -0
- homeassistant/components/huawei_lte/translations/ga.json +16 -1
- homeassistant/components/hue/translations/ga.json +19 -0
- homeassistant/components/humidifier/translations/ga.json +31 -0
- homeassistant/components/husqvarna_automower/manifest.json +1 -1
- homeassistant/components/husqvarna_automower/translations/ca.json +3 -0
- homeassistant/components/husqvarna_automower/translations/mk.json +5 -0
- homeassistant/components/husqvarna_automower_ble/translations/ca.json +35 -0
- homeassistant/components/husqvarna_automower_ble/translations/cs.json +35 -1
- homeassistant/components/husqvarna_automower_ble/translations/el.json +4 -0
- homeassistant/components/husqvarna_automower_ble/translations/ga.json +35 -1
- homeassistant/components/husqvarna_automower_ble/translations/lt.json +35 -1
- homeassistant/components/husqvarna_automower_ble/translations/pt.json +35 -1
- homeassistant/components/hvv_departures/translations/ga.json +2 -1
- homeassistant/components/hydrawise/translations/lt.json +4 -1
- homeassistant/components/hyperion/translations/sk.json +1 -1
- homeassistant/components/iaqualink/__init__.py +10 -0
- homeassistant/components/iaqualink/entity.py +1 -0
- homeassistant/components/icloud/translations/ga.json +60 -1
- homeassistant/components/ifttt/translations/ga.json +2 -0
- homeassistant/components/imap/translations/ga.json +3 -1
- homeassistant/components/imeon_inverter/const.py +1 -0
- homeassistant/components/imeon_inverter/strings.json +1 -0
- homeassistant/components/imeon_inverter/translations/en.json +1 -0
- homeassistant/components/imeon_inverter/translations/lt.json +67 -0
- homeassistant/components/imeon_inverter/translations/pt.json +79 -0
- homeassistant/components/imeon_inverter/translations/ru.json +21 -0
- homeassistant/components/inkbird/translations/ga.json +5 -0
- homeassistant/components/input_boolean/translations/ga.json +20 -1
- homeassistant/components/input_button/translations/ga.json +16 -1
- homeassistant/components/input_datetime/translations/ga.json +37 -1
- homeassistant/components/input_number/translations/ga.json +23 -1
- homeassistant/components/insteon/translations/ga.json +6 -1
- homeassistant/components/insteon/translations/lt.json +1 -0
- homeassistant/components/insteon/translations/ru.json +1 -0
- homeassistant/components/integration/translations/ga.json +22 -2
- homeassistant/components/intellifire/translations/ga.json +15 -1
- homeassistant/components/ios/translations/ga.json +19 -0
- homeassistant/components/iotawatt/translations/ga.json +15 -0
- homeassistant/components/iperf3/translations/ga.json +2 -1
- homeassistant/components/ipma/translations/ga.json +2 -0
- homeassistant/components/iqvia/translations/ga.json +7 -0
- homeassistant/components/izone/translations/ga.json +7 -1
- homeassistant/components/jellyfin/translations/ga.json +13 -0
- homeassistant/components/justnimbus/translations/ga.json +16 -0
- homeassistant/components/jvc_projector/translations/ga.json +1 -0
- homeassistant/components/kaleidescape/translations/ga.json +3 -0
- homeassistant/components/keba/translations/lt.json +1 -0
- homeassistant/components/keba/translations/ru.json +1 -0
- homeassistant/components/kitchen_sink/translations/ga.json +3 -0
- homeassistant/components/kmtronic/translations/ga.json +22 -0
- homeassistant/components/knx/translations/ga.json +100 -2
- homeassistant/components/knx/translations/lt.json +270 -0
- homeassistant/components/knx/translations/pt.json +270 -0
- homeassistant/components/konnected/translations/ga.json +3 -1
- homeassistant/components/kostal_plenticore/translations/ga.json +7 -0
- homeassistant/components/kraken/translations/ga.json +20 -0
- homeassistant/components/kulersky/translations/ga.json +3 -0
- homeassistant/components/lacrosse_view/translations/ga.json +25 -0
- homeassistant/components/lametric/translations/ga.json +1 -0
- homeassistant/components/lametric/translations/lt.json +1 -0
- homeassistant/components/landisgyr_heat_meter/translations/ga.json +15 -0
- homeassistant/components/launch_library/translations/lt.json +7 -0
- homeassistant/components/laundrify/translations/lt.json +2 -1
- homeassistant/components/lawn_mower/translations/ga.json +6 -0
- homeassistant/components/lcn/translations/ga.json +52 -3
- homeassistant/components/lcn/translations/lt.json +2 -0
- homeassistant/components/lcn/translations/ru.json +1 -0
- homeassistant/components/leaone/translations/ru.json +2 -1
- homeassistant/components/lg_thinq/translations/el.json +3 -0
- homeassistant/components/lg_thinq/translations/ga.json +5 -0
- homeassistant/components/lg_thinq/translations/lt.json +7 -0
- homeassistant/components/lg_thinq/translations/pt.json +4 -0
- homeassistant/components/lg_thinq/translations/ru.json +5 -0
- homeassistant/components/lidarr/translations/ga.json +16 -0
- homeassistant/components/lifx/translations/ga.json +1 -0
- homeassistant/components/light/translations/ga.json +132 -1
- homeassistant/components/litterrobot/translations/ga.json +6 -0
- homeassistant/components/litterrobot/translations/sensor.ga.json +14 -1
- homeassistant/components/livisi/translations/ga.json +18 -0
- homeassistant/components/local_calendar/translations/ga.json +5 -2
- homeassistant/components/local_ip/translations/ga.json +9 -0
- homeassistant/components/lock/translations/pl.json +1 -0
- homeassistant/components/logbook/translations/ko.json +2 -1
- homeassistant/components/lookin/translations/ga.json +1 -0
- homeassistant/components/lutron_caseta/translations/ga.json +34 -1
- homeassistant/components/lyric/translations/sk.json +1 -1
- homeassistant/components/mastodon/__init__.py +13 -2
- homeassistant/components/mastodon/config_flow.py +7 -2
- homeassistant/components/mastodon/diagnostics.py +8 -3
- homeassistant/components/matter/translations/ga.json +22 -0
- homeassistant/components/matter/translations/lt.json +45 -0
- homeassistant/components/matter/translations/pt.json +27 -0
- homeassistant/components/matter/translations/sr-Latn.json +15 -0
- homeassistant/components/matter/translations/sr.json +15 -0
- homeassistant/components/meater/translations/ga.json +9 -0
- homeassistant/components/media_extractor/translations/ga.json +14 -0
- homeassistant/components/media_player/services.yaml +1 -3
- homeassistant/components/media_player/translations/cs.json +5 -0
- homeassistant/components/media_player/translations/el.json +5 -0
- homeassistant/components/media_player/translations/fr.json +3 -0
- homeassistant/components/media_player/translations/ga.json +35 -0
- homeassistant/components/media_player/translations/lt.json +6 -1
- homeassistant/components/media_player/translations/pt.json +5 -0
- homeassistant/components/media_player/translations/ru.json +5 -0
- homeassistant/components/media_player/translations/sk.json +1 -0
- homeassistant/components/media_player/translations/zh-Hans.json +1 -0
- homeassistant/components/media_player/translations/zh-Hant.json +1 -0
- homeassistant/components/met/translations/ga.json +34 -0
- homeassistant/components/met_eireann/translations/ga.json +15 -0
- homeassistant/components/meteo_france/const.py +1 -1
- homeassistant/components/metoffice/translations/sk.json +1 -1
- homeassistant/components/metoffice/translations/sr-Latn.json +1 -0
- homeassistant/components/metoffice/translations/sr.json +1 -0
- homeassistant/components/miele/translations/ga.json +2 -1
- homeassistant/components/miele/translations/lt.json +36 -0
- homeassistant/components/miele/translations/pt.json +12 -0
- homeassistant/components/miele/translations/sk.json +8 -8
- homeassistant/components/mill/translations/ga.json +35 -0
- homeassistant/components/minecraft_server/translations/ga.json +12 -0
- homeassistant/components/minio/translations/ga.json +30 -0
- homeassistant/components/mjpeg/translations/lt.json +1 -0
- homeassistant/components/modbus/entity.py +4 -1
- homeassistant/components/modbus/translations/lt.json +2 -0
- homeassistant/components/modbus/translations/ru.json +2 -0
- homeassistant/components/modbus/translations/sk.json +1 -1
- homeassistant/components/modern_forms/translations/ga.json +20 -0
- homeassistant/components/moehlenhoff_alpha2/translations/ga.json +7 -0
- homeassistant/components/moon/translations/ga.json +10 -3
- homeassistant/components/moon/translations/sensor.ga.json +14 -0
- homeassistant/components/mopeka/translations/ga.json +12 -2
- homeassistant/components/motion_blinds/translations/ga.json +3 -0
- homeassistant/components/mqtt/translations/ca.json +11 -0
- homeassistant/components/mqtt/translations/cs.json +52 -0
- homeassistant/components/mqtt/translations/el.json +19 -0
- homeassistant/components/mqtt/translations/fr.json +11 -0
- homeassistant/components/mqtt/translations/ga.json +84 -4
- homeassistant/components/mqtt/translations/lt.json +66 -1
- homeassistant/components/mqtt/translations/nl.json +68 -0
- homeassistant/components/mqtt/translations/pt.json +81 -0
- homeassistant/components/mqtt/translations/ru.json +15 -0
- homeassistant/components/mqtt/translations/sk.json +8 -8
- homeassistant/components/mqtt/translations/zh-Hans.json +1 -0
- homeassistant/components/mysensors/translations/ga.json +17 -0
- homeassistant/components/mystrom/translations/ga.json +2 -1
- homeassistant/components/nam/translations/ga.json +26 -0
- homeassistant/components/nest/translations/ga.json +44 -3
- homeassistant/components/nest/translations/lt.json +3 -0
- homeassistant/components/nest/translations/sk.json +2 -2
- homeassistant/components/netatmo/translations/ga.json +5 -1
- homeassistant/components/netatmo/translations/sr-Latn.json +16 -0
- homeassistant/components/netatmo/translations/sr.json +16 -0
- homeassistant/components/nexia/manifest.json +1 -1
- homeassistant/components/nexia/translations/ga.json +8 -0
- homeassistant/components/nextcloud/translations/ga.json +14 -0
- homeassistant/components/nextcloud/translations/mk.json +13 -0
- homeassistant/components/nextdns/translations/ga.json +107 -0
- homeassistant/components/nextdns/translations/lt.json +3 -0
- homeassistant/components/nextdns/translations/sr.json +11 -0
- homeassistant/components/nfandroidtv/translations/ga.json +13 -1
- homeassistant/components/nibe_heatpump/translations/ga.json +5 -0
- homeassistant/components/nightscout/translations/ga.json +10 -0
- homeassistant/components/niko_home_control/translations/el.json +10 -1
- homeassistant/components/niko_home_control/translations/ga.json +10 -1
- homeassistant/components/niko_home_control/translations/lt.json +10 -1
- homeassistant/components/niko_home_control/translations/pt.json +10 -1
- homeassistant/components/nina/translations/ga.json +38 -2
- homeassistant/components/nissan_leaf/translations/ga.json +7 -0
- homeassistant/components/nobo_hub/translations/ga.json +29 -0
- homeassistant/components/notify/translations/ga.json +7 -1
- homeassistant/components/notion/translations/ga.json +49 -0
- homeassistant/components/nuheat/translations/ga.json +21 -0
- homeassistant/components/number/translations/ga.json +15 -1
- homeassistant/components/nut/translations/ga.json +131 -1
- homeassistant/components/nws/translations/ga.json +11 -0
- homeassistant/components/nws/translations/sr-Latn.json +9 -0
- homeassistant/components/nws/translations/sr.json +9 -0
- homeassistant/components/nx584/translations/ga.json +13 -1
- homeassistant/components/nzbget/translations/ga.json +23 -0
- homeassistant/components/nzbget/translations/lt.json +6 -0
- homeassistant/components/nzbget/translations/ru.json +6 -0
- homeassistant/components/obihai/translations/ga.json +19 -1
- homeassistant/components/octoprint/translations/ga.json +3 -0
- homeassistant/components/ollama/translations/cs.json +3 -3
- homeassistant/components/ollama/translations/lt.json +10 -0
- homeassistant/components/oncue/translations/ru.json +8 -1
- homeassistant/components/ondilo_ico/translations/ga.json +7 -1
- homeassistant/components/onewire/translations/ga.json +57 -1
- homeassistant/components/onewire/translations/lt.json +3 -0
- homeassistant/components/onvif/binary_sensor.py +1 -1
- homeassistant/components/onvif/sensor.py +1 -1
- homeassistant/components/onvif/translations/ga.json +42 -1
- homeassistant/components/open_meteo/translations/ga.json +15 -0
- homeassistant/components/open_router/translations/cs.json +2 -2
- homeassistant/components/open_router/translations/lt.json +7 -1
- homeassistant/components/openai_conversation/translations/cs.json +3 -3
- homeassistant/components/openai_conversation/translations/ga.json +12 -0
- homeassistant/components/openai_conversation/translations/lt.json +5 -0
- homeassistant/components/openhome/translations/ga.json +7 -0
- homeassistant/components/opentherm_gw/translations/ga.json +100 -2
- homeassistant/components/openuv/translations/ga.json +33 -0
- homeassistant/components/openweathermap/translations/ga.json +32 -0
- homeassistant/components/openweathermap/translations/sr-Latn.json +16 -0
- homeassistant/components/openweathermap/translations/sr.json +16 -0
- homeassistant/components/opower/manifest.json +1 -1
- homeassistant/components/opower/translations/ga.json +11 -2
- homeassistant/components/opower/translations/lt.json +7 -1
- homeassistant/components/opower/translations/sk.json +1 -1
- homeassistant/components/overkiz/translations/ga.json +71 -3
- homeassistant/components/overkiz/translations/select.ga.json +1 -0
- homeassistant/components/overkiz/translations/sensor.ga.json +29 -1
- homeassistant/components/ovo_energy/translations/ga.json +14 -1
- homeassistant/components/p1_monitor/translations/ga.json +22 -0
- homeassistant/components/panasonic_viera/translations/ga.json +30 -0
- homeassistant/components/peco/translations/ga.json +2 -0
- homeassistant/components/pegel_online/translations/ga.json +18 -0
- homeassistant/components/person/translations/ga.json +15 -0
- homeassistant/components/pi_hole/translations/ga.json +29 -0
- homeassistant/components/picnic/translations/ga.json +41 -0
- homeassistant/components/plaato/translations/ga.json +13 -0
- homeassistant/components/plant/translations/ga.json +12 -0
- homeassistant/components/playstation_network/__init__.py +4 -1
- homeassistant/components/playstation_network/config_flow.py +4 -13
- homeassistant/components/playstation_network/coordinator.py +55 -8
- homeassistant/components/playstation_network/helpers.py +4 -1
- homeassistant/components/playstation_network/notify.py +52 -27
- homeassistant/components/playstation_network/strings.json +11 -5
- homeassistant/components/playstation_network/translations/bg.json +0 -5
- homeassistant/components/playstation_network/translations/ca.json +7 -0
- homeassistant/components/playstation_network/translations/cs.json +11 -5
- homeassistant/components/playstation_network/translations/de.json +11 -5
- homeassistant/components/playstation_network/translations/el.json +54 -0
- homeassistant/components/playstation_network/translations/en-GB.json +11 -5
- homeassistant/components/playstation_network/translations/en.json +11 -5
- homeassistant/components/playstation_network/translations/es.json +1 -13
- homeassistant/components/playstation_network/translations/et.json +11 -5
- homeassistant/components/playstation_network/translations/fr.json +1 -1
- homeassistant/components/playstation_network/translations/ga.json +6 -17
- homeassistant/components/playstation_network/translations/it.json +1 -1
- homeassistant/components/playstation_network/translations/lt.json +17 -5
- homeassistant/components/playstation_network/translations/pt.json +11 -5
- homeassistant/components/playstation_network/translations/sk.json +11 -5
- homeassistant/components/playstation_network/translations/zh-Hans.json +11 -5
- homeassistant/components/playstation_network/translations/zh-Hant.json +11 -5
- homeassistant/components/plex/translations/ga.json +40 -0
- homeassistant/components/plugwise/translations/ga.json +105 -0
- homeassistant/components/plugwise/translations/select.ga.json +17 -0
- homeassistant/components/plum_lightpad/translations/ga.json +18 -0
- homeassistant/components/point/translations/ga.json +4 -0
- homeassistant/components/pooldose/translations/ca.json +56 -0
- homeassistant/components/pooldose/translations/el.json +48 -0
- homeassistant/components/pooldose/translations/ga.json +32 -0
- homeassistant/components/pooldose/translations/lt.json +102 -0
- homeassistant/components/pooldose/translations/nl.json +7 -2
- homeassistant/components/pooldose/translations/pt.json +102 -0
- homeassistant/components/poolsense/translations/ga.json +16 -0
- homeassistant/components/powerwall/translations/ga.json +35 -0
- homeassistant/components/profiler/translations/cs.json +2 -2
- homeassistant/components/profiler/translations/ga.json +11 -0
- homeassistant/components/progettihwsw/translations/ga.json +24 -1
- homeassistant/components/prosegur/translations/ga.json +39 -0
- homeassistant/components/prusalink/translations/sensor.ga.json +7 -0
- homeassistant/components/ps4/translations/ga.json +40 -0
- homeassistant/components/pure_energie/translations/ga.json +39 -0
- homeassistant/components/purpleair/manifest.json +1 -1
- homeassistant/components/purpleair/translations/ga.json +42 -0
- homeassistant/components/pushbullet/translations/ga.json +44 -0
- homeassistant/components/pushover/translations/ga.json +28 -0
- homeassistant/components/pvoutput/translations/ga.json +46 -0
- homeassistant/components/pvpc_hourly_pricing/translations/ga.json +1 -0
- homeassistant/components/qbus/translations/lt.json +8 -0
- homeassistant/components/radarr/translations/ga.json +40 -0
- homeassistant/components/radio_browser/translations/ga.json +9 -0
- homeassistant/components/radiotherm/translations/ga.json +23 -0
- homeassistant/components/rainbird/translations/ga.json +18 -2
- homeassistant/components/rainbird/translations/lt.json +4 -0
- homeassistant/components/rainbird/translations/ru.json +4 -0
- homeassistant/components/rainmachine/translations/ga.json +99 -4
- homeassistant/components/rainmachine/translations/sr-Latn.json +55 -0
- homeassistant/components/rainmachine/translations/sr.json +55 -0
- homeassistant/components/random/translations/ga.json +1 -0
- homeassistant/components/random/translations/lt.json +1 -0
- homeassistant/components/rapt_ble/translations/ga.json +21 -0
- homeassistant/components/rdw/translations/ga.json +36 -0
- homeassistant/components/recollect_waste/translations/ga.json +38 -0
- homeassistant/components/recorder/translations/cs.json +2 -2
- homeassistant/components/recorder/translations/ga.json +11 -0
- homeassistant/components/remember_the_milk/translations/cs.json +7 -7
- homeassistant/components/renault/translations/ga.json +76 -0
- homeassistant/components/reolink/manifest.json +1 -1
- homeassistant/components/reolink/number.py +3 -4
- homeassistant/components/reolink/select.py +0 -1
- homeassistant/components/reolink/translations/cs.json +14 -14
- homeassistant/components/reolink/translations/fr.json +3 -0
- homeassistant/components/reolink/translations/ga.json +47 -5
- homeassistant/components/reolink/translations/lt.json +9 -0
- homeassistant/components/reolink/translations/pt.json +9 -0
- homeassistant/components/rfxtrx/translations/ga.json +30 -0
- homeassistant/components/roborock/translations/sk.json +9 -9
- homeassistant/components/samsungtv/translations/lt.json +1 -0
- homeassistant/components/sensibo/translations/ga.json +4 -2
- homeassistant/components/sensibo/translations/lt.json +22 -0
- homeassistant/components/sensibo/translations/sensor.ga.json +7 -0
- homeassistant/components/sensor/translations/ga.json +3 -0
- homeassistant/components/sensor/translations/sk.json +1 -1
- homeassistant/components/shopping_list/translations/sr-Latn.json +11 -0
- homeassistant/components/shopping_list/translations/sr.json +11 -0
- homeassistant/components/sleep_as_android/translations/de.json +1 -1
- homeassistant/components/sleepiq/translations/lt.json +1 -0
- homeassistant/components/smartthings/translations/ru.json +9 -0
- homeassistant/components/snapcast/translations/sk.json +2 -2
- homeassistant/components/sonos/translations/lt.json +15 -0
- homeassistant/components/sonos/translations/pt.json +15 -0
- homeassistant/components/sun/translations/sk.json +1 -1
- homeassistant/components/switchbot_cloud/translations/lt.json +16 -0
- homeassistant/components/switchbot_cloud/translations/pt.json +16 -0
- homeassistant/components/tado/translations/sr-Latn.json +9 -0
- homeassistant/components/tado/translations/sr.json +9 -0
- homeassistant/components/tautulli/translations/sk.json +1 -1
- homeassistant/components/tellduslive/translations/ru.json +4 -0
- homeassistant/components/template/translations/el.json +50 -0
- homeassistant/components/template/translations/ga.json +1 -0
- homeassistant/components/template/translations/lt.json +196 -13
- homeassistant/components/template/translations/pl.json +140 -7
- homeassistant/components/template/translations/pt.json +149 -0
- homeassistant/components/template/translations/ru.json +8 -0
- homeassistant/components/template/translations/sk.json +6 -6
- homeassistant/components/template/translations/sv.json +31 -8
- homeassistant/components/tesla_fleet/__init__.py +0 -1
- homeassistant/components/teslemetry/translations/lt.json +4 -0
- homeassistant/components/teslemetry/translations/mk.json +5 -0
- homeassistant/components/togrill/translations/fr.json +4 -0
- homeassistant/components/togrill/translations/lt.json +49 -0
- homeassistant/components/togrill/translations/pt.json +49 -0
- homeassistant/components/tomorrowio/translations/lt.json +5 -1
- homeassistant/components/tplink/translations/lt.json +6 -2
- homeassistant/components/trafikverket_weatherstation/translations/sr-Latn.json +29 -0
- homeassistant/components/trafikverket_weatherstation/translations/sr.json +29 -0
- homeassistant/components/triggercmd/__init__.py +6 -2
- homeassistant/components/triggercmd/config_flow.py +3 -1
- homeassistant/components/triggercmd/manifest.json +1 -1
- homeassistant/components/triggercmd/switch.py +1 -0
- homeassistant/components/tts/translations/cs.json +1 -1
- homeassistant/components/tuya/translations/ga.json +8 -0
- homeassistant/components/tuya/translations/lt.json +1 -0
- homeassistant/components/tuya/translations/pl.json +1 -1
- homeassistant/components/tuya/translations/select.ga.json +4 -0
- homeassistant/components/unifiprotect/translations/ga.json +8 -0
- homeassistant/components/unifiprotect/translations/lt.json +6 -1
- homeassistant/components/vallox/translations/lt.json +5 -0
- homeassistant/components/velux/translations/cs.json +7 -0
- homeassistant/components/velux/translations/lt.json +7 -0
- homeassistant/components/velux/translations/nl.json +7 -0
- homeassistant/components/velux/translations/pt.json +7 -0
- homeassistant/components/volvo/translations/lt.json +173 -1
- homeassistant/components/volvo/translations/pt.json +137 -0
- homeassistant/components/volvo/translations/sk.json +1 -1
- homeassistant/components/wallbox/translations/sk.json +1 -1
- homeassistant/components/waze_travel_time/translations/lt.json +2 -0
- homeassistant/components/weather/translations/ga.json +3 -0
- homeassistant/components/weather/translations/sr-Latn.json +24 -7
- homeassistant/components/weather/translations/sr.json +81 -0
- homeassistant/components/weatherflow_cloud/translations/sr-Latn.json +18 -0
- homeassistant/components/weatherflow_cloud/translations/sr.json +18 -0
- homeassistant/components/webostv/translations/lt.json +11 -4
- homeassistant/components/webostv/translations/ru.json +9 -2
- homeassistant/components/websocket_api/http.py +13 -2
- homeassistant/components/withings/translations/sk.json +1 -1
- homeassistant/components/xiaomi_miio/translations/lt.json +3 -0
- homeassistant/components/yalexs_ble/__init__.py +37 -7
- homeassistant/components/yalexs_ble/config_cache.py +31 -0
- homeassistant/components/yalexs_ble/config_flow.py +80 -35
- homeassistant/components/yalexs_ble/strings.json +10 -5
- homeassistant/components/yalexs_ble/translations/bg.json +1 -7
- homeassistant/components/yalexs_ble/translations/ca.json +2 -12
- homeassistant/components/yalexs_ble/translations/cs.json +2 -12
- homeassistant/components/yalexs_ble/translations/de.json +10 -5
- homeassistant/components/yalexs_ble/translations/el.json +2 -12
- homeassistant/components/yalexs_ble/translations/en-GB.json +9 -4
- homeassistant/components/yalexs_ble/translations/en.json +10 -5
- homeassistant/components/yalexs_ble/translations/es.json +2 -12
- homeassistant/components/yalexs_ble/translations/et.json +2 -12
- homeassistant/components/yalexs_ble/translations/fi.json +2 -12
- homeassistant/components/yalexs_ble/translations/fr.json +1 -2
- homeassistant/components/yalexs_ble/translations/hu.json +2 -12
- homeassistant/components/yalexs_ble/translations/id.json +2 -12
- homeassistant/components/yalexs_ble/translations/it.json +2 -12
- homeassistant/components/yalexs_ble/translations/ja.json +2 -12
- homeassistant/components/yalexs_ble/translations/ko.json +2 -12
- homeassistant/components/yalexs_ble/translations/lt.json +2 -12
- homeassistant/components/yalexs_ble/translations/lv.json +1 -7
- homeassistant/components/yalexs_ble/translations/nb.json +2 -12
- homeassistant/components/yalexs_ble/translations/nl.json +2 -12
- homeassistant/components/yalexs_ble/translations/pl.json +2 -12
- homeassistant/components/yalexs_ble/translations/pt-BR.json +2 -12
- homeassistant/components/yalexs_ble/translations/pt.json +2 -12
- homeassistant/components/yalexs_ble/translations/ro.json +2 -12
- homeassistant/components/yalexs_ble/translations/ru.json +2 -12
- homeassistant/components/yalexs_ble/translations/sk.json +2 -12
- homeassistant/components/yalexs_ble/translations/sv.json +2 -12
- homeassistant/components/yalexs_ble/translations/tr.json +2 -12
- homeassistant/components/yalexs_ble/translations/uk.json +2 -12
- homeassistant/components/yalexs_ble/translations/vi.json +0 -9
- homeassistant/components/yalexs_ble/translations/zh-Hans.json +2 -12
- homeassistant/components/yalexs_ble/translations/zh-Hant.json +10 -5
- homeassistant/components/yolink/translations/lt.json +13 -0
- homeassistant/components/yolink/translations/pt.json +13 -0
- homeassistant/components/zha/translations/fr.json +48 -0
- homeassistant/components/zha/translations/lt.json +69 -0
- homeassistant/components/zha/translations/pl.json +3 -0
- homeassistant/components/zha/translations/pt.json +69 -0
- homeassistant/components/zha/translations/sk.json +3 -3
- homeassistant/components/zwave_js/binary_sensor.py +14 -6
- homeassistant/components/zwave_js/translations/lt.json +10 -0
- homeassistant/components/zwave_js/translations/pt.json +10 -0
- homeassistant/components/zwave_js/translations/ru.json +3 -1
- homeassistant/components/zwave_js/translations/sk.json +2 -2
- homeassistant/components/zwave_me/translations/sk.json +1 -1
- homeassistant/const.py +1 -1
- homeassistant/generated/integrations.json +6 -0
- homeassistant/helpers/device_registry.py +37 -14
- homeassistant/helpers/entity_registry.py +68 -29
- homeassistant/package_constraints.txt +9 -5
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/METADATA +1 -1
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/RECORD +674 -602
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/WHEEL +0 -0
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.9.0b0.dist-info → homeassistant-2025.9.0b2.dist-info}/top_level.txt +0 -0
|
@@ -52,13 +52,14 @@
|
|
|
52
52
|
"s2_unauthenticated_key": "\u041a\u043b\u044e\u0447 \u0431\u0435\u0437 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 S2",
|
|
53
53
|
"usb_path": "\u041f\u0443\u0442\u044c \u043a USB-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443"
|
|
54
54
|
},
|
|
55
|
-
"description": "\
|
|
55
|
+
"description": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 Z-Wave",
|
|
56
56
|
"title": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f Z-Wave"
|
|
57
57
|
},
|
|
58
58
|
"configure_addon_user": {
|
|
59
59
|
"data": {
|
|
60
60
|
"usb_path": "\u041f\u0443\u0442\u044c \u043a USB-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443"
|
|
61
61
|
},
|
|
62
|
+
"description": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 Z-Wave",
|
|
62
63
|
"title": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f Z-Wave"
|
|
63
64
|
},
|
|
64
65
|
"configure_security_keys": {
|
|
@@ -263,6 +264,7 @@
|
|
|
263
264
|
},
|
|
264
265
|
"step": {
|
|
265
266
|
"init": {
|
|
267
|
+
"description": "\u0424\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 {device_name} \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f.\n\nZ-Wave \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044f \u0435\u0433\u043e. \u041e\u0434\u043d\u0430\u043a\u043e \u0447\u0430\u0441\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u0427\u0430\u0441\u0442\u044c \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u043f\u0440\u043e\u0441\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.\n\n\u041a\u043e\u0433\u0434\u0430 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f, \u044d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439, \u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0437\u0430\u043d\u043e\u0432\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u0432 \u0441\u0438\u043b\u0443.\n\n\u042d\u0442\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439, \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u043e\u0441\u0430, \u043d\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e\u0441\u043b\u0435 \u0435\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f.\n\n\u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0435\u0448\u0438\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u043e\u043f\u0440\u043e\u0441, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.",
|
|
266
268
|
"menu_options": {
|
|
267
269
|
"confirm": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e",
|
|
268
270
|
"ignore": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430"
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
"title": "Migr\u00e1cia alebo zmena konfigur\u00e1cie"
|
|
145
145
|
},
|
|
146
146
|
"restore_failed": {
|
|
147
|
-
"description": "Va\u0161u sie\u0165 Z-Wave nebolo mo\u017en\u00e9 obnovi\u0165 na nov\u00fd adapt\u00e9r. \
|
|
147
|
+
"description": "Va\u0161u sie\u0165 Z-Wave nebolo mo\u017en\u00e9 obnovi\u0165 na nov\u00fd adapt\u00e9r. \nTo znamen\u00e1, \u017ee va\u0161e zariadenia Z-Wave nie s\u00fa pripojen\u00e9 k aplik\u00e1cii Home Assistant. \n\nZ\u00e1loha je ulo\u017een\u00e1 na \u201d{file_path}\u201d \n\n'<'a href=\"{file_url}\" download=\"{file_name}\"'>'Stiahnu\u0165 s\u00fabor z\u00e1lohy'<'/a'>'",
|
|
148
148
|
"submit": "Sk\u00faste to znova",
|
|
149
149
|
"title": "Obnovenie ne\u00faspe\u0161n\u00e9"
|
|
150
150
|
},
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
"fix_flow": {
|
|
312
312
|
"step": {
|
|
313
313
|
"confirm": {
|
|
314
|
-
"description": "K polo\u017eke konfigur\u00e1cie {config_entry_title} bol pripojen\u00fd adapt\u00e9r Z-Wave modelu {controller_model}. Tento adapt\u00e9r m\u00e1 in\u00e9 ID ({new_unique_id}) ako predt\u00fdm pripojen\u00fd adapt\u00e9r ({old_unique_id}). \n\nD\u00f4vody pre in\u00e9 ID adapt\u00e9ra m\u00f4\u017eu by\u0165: \n\n1. Adapt\u00e9r bol resetovan\u00fd do tov\u00e1rensk\u00e9ho nastavenia pomocou aplik\u00e1cie tretej strany. \n2. Z\u00e1loha nevolatilnej pam\u00e4te adapt\u00e9ra bola obnoven\u00e1 do adapt\u00e9ra pomocou aplik\u00e1cie tretej strany. \n3. K tejto konfigura\u010dnej polo\u017eke bol pripojen\u00fd in\u00fd adapt\u00e9r. \n\nAk bol pripojen\u00fd in\u00fd adapt\u00e9r, mali by ste namiesto toho nastavi\u0165 nov\u00fa konfigura\u010dn\u00fa polo\u017eku pre nov\u00fd adapt\u00e9r. \n\nAk ste si ist\u00ed, \u017ee aktu\u00e1lny adapt\u00e9r je spr\u00e1vny adapt\u00e9r, potvr\u010fte stla\u010den\u00edm tla\u010didla
|
|
314
|
+
"description": "K polo\u017eke konfigur\u00e1cie {config_entry_title} bol pripojen\u00fd adapt\u00e9r Z-Wave modelu {controller_model}. Tento adapt\u00e9r m\u00e1 in\u00e9 ID ({new_unique_id}) ako predt\u00fdm pripojen\u00fd adapt\u00e9r ({old_unique_id}). \n\nD\u00f4vody pre in\u00e9 ID adapt\u00e9ra m\u00f4\u017eu by\u0165: \n\n1. Adapt\u00e9r bol resetovan\u00fd do tov\u00e1rensk\u00e9ho nastavenia pomocou aplik\u00e1cie tretej strany. \n2. Z\u00e1loha nevolatilnej pam\u00e4te adapt\u00e9ra bola obnoven\u00e1 do adapt\u00e9ra pomocou aplik\u00e1cie tretej strany. \n3. K tejto konfigura\u010dnej polo\u017eke bol pripojen\u00fd in\u00fd adapt\u00e9r. \n\nAk bol pripojen\u00fd in\u00fd adapt\u00e9r, mali by ste namiesto toho nastavi\u0165 nov\u00fa konfigura\u010dn\u00fa polo\u017eku pre nov\u00fd adapt\u00e9r. \n\nAk ste si ist\u00ed, \u017ee aktu\u00e1lny adapt\u00e9r je spr\u00e1vny adapt\u00e9r, potvr\u010fte stla\u010den\u00edm tla\u010didla Odosla\u0165. Konfigura\u010dn\u00e1 polo\u017eka si bude pam\u00e4ta\u0165 ID nov\u00e9ho adapt\u00e9ra.",
|
|
315
315
|
"title": "Bol zisten\u00fd nezn\u00e1my adapt\u00e9r"
|
|
316
316
|
}
|
|
317
317
|
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"token": "API token",
|
|
14
14
|
"url": "URL"
|
|
15
15
|
},
|
|
16
|
-
"description": "Zadajte IP adresu s portom a pr\u00edstupov\u00fd token servera Z-Way. Token z\u00edskate v pou\u017e\u00edvate\u013eskom rozhran\u00ed Z-Way Smart Home UI > Menu > Nastavenia > Pou\u017e\u00edvatelia > Spr\u00e1vca > API token. \n\nPr\u00edklad pripojenia k Z-Way spusten\u00e9ho ako doplnok:
|
|
16
|
+
"description": "Zadajte IP adresu s portom a pr\u00edstupov\u00fd token servera Z-Way. Token z\u00edskate v pou\u017e\u00edvate\u013eskom rozhran\u00ed Z-Way Smart Home UI > Menu > Nastavenia > Pou\u017e\u00edvatelia > Spr\u00e1vca > API token. \n\nPr\u00edklad pripojenia k Z-Way spusten\u00e9ho ako doplnok: \nURL: {add_on_url}\nToken: {local_token}\n\nPr\u00edklad pripojenia k Z-Way v lok\u00e1lnej sieti: \nURL: {local_url}\nToken: Z-Way: {local_token}\n\nPr\u00edklad pripojenia k Z-Way prostredn\u00edctvom vzdialen\u00e9ho pr\u00edstupu find.z-wave.me: URL: {find_url}\nToken: {find_token}\n\nPr\u00edklad pripojenia k Z-Way pomocou statickej verejnej IP adresy: \nURL: {remote_url}\nToken: {local_token}\n\nPri prip\u00e1jan\u00ed cez find.z-wave.me mus\u00edte pou\u017ei\u0165 token s glob\u00e1lnym rozsahom (prihl\u00e1ste sa do Z-Way cez find.z-wave.me)."
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
}
|
homeassistant/const.py
CHANGED
|
@@ -25,7 +25,7 @@ if TYPE_CHECKING:
|
|
|
25
25
|
APPLICATION_NAME: Final = "HomeAssistant"
|
|
26
26
|
MAJOR_VERSION: Final = 2025
|
|
27
27
|
MINOR_VERSION: Final = 9
|
|
28
|
-
PATCH_VERSION: Final = "
|
|
28
|
+
PATCH_VERSION: Final = "0b2"
|
|
29
29
|
__short_version__: Final = f"{MAJOR_VERSION}.{MINOR_VERSION}"
|
|
30
30
|
__version__: Final = f"{__short_version__}.{PATCH_VERSION}"
|
|
31
31
|
REQUIRED_PYTHON_VER: Final[tuple[int, int, int]] = (3, 13, 2)
|
|
@@ -187,6 +187,12 @@
|
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
},
|
|
190
|
+
"aladdin_connect": {
|
|
191
|
+
"name": "Aladdin Connect",
|
|
192
|
+
"integration_type": "hub",
|
|
193
|
+
"config_flow": true,
|
|
194
|
+
"iot_class": "cloud_polling"
|
|
195
|
+
},
|
|
190
196
|
"alarmdecoder": {
|
|
191
197
|
"name": "AlarmDecoder",
|
|
192
198
|
"integration_type": "device",
|
|
@@ -9,7 +9,7 @@ from enum import StrEnum
|
|
|
9
9
|
from functools import lru_cache
|
|
10
10
|
import logging
|
|
11
11
|
import time
|
|
12
|
-
from typing import TYPE_CHECKING, Any, Literal, TypedDict
|
|
12
|
+
from typing import TYPE_CHECKING, Any, Final, Literal, TypedDict
|
|
13
13
|
|
|
14
14
|
import attr
|
|
15
15
|
from yarl import URL
|
|
@@ -68,6 +68,8 @@ CONNECTION_ZIGBEE = "zigbee"
|
|
|
68
68
|
|
|
69
69
|
ORPHANED_DEVICE_KEEP_SECONDS = 86400 * 30
|
|
70
70
|
|
|
71
|
+
UNDEFINED_STR: Final = "UNDEFINED"
|
|
72
|
+
|
|
71
73
|
# Can be removed when suggested_area is removed from DeviceEntry
|
|
72
74
|
RUNTIME_ONLY_ATTRS = {"suggested_area"}
|
|
73
75
|
|
|
@@ -465,7 +467,7 @@ class DeletedDeviceEntry:
|
|
|
465
467
|
validator=_normalize_connections_validator
|
|
466
468
|
)
|
|
467
469
|
created_at: datetime = attr.ib()
|
|
468
|
-
disabled_by: DeviceEntryDisabler | None = attr.ib()
|
|
470
|
+
disabled_by: DeviceEntryDisabler | UndefinedType | None = attr.ib()
|
|
469
471
|
id: str = attr.ib()
|
|
470
472
|
identifiers: set[tuple[str, str]] = attr.ib()
|
|
471
473
|
labels: set[str] = attr.ib()
|
|
@@ -480,15 +482,19 @@ class DeletedDeviceEntry:
|
|
|
480
482
|
config_subentry_id: str | None,
|
|
481
483
|
connections: set[tuple[str, str]],
|
|
482
484
|
identifiers: set[tuple[str, str]],
|
|
485
|
+
disabled_by: DeviceEntryDisabler | UndefinedType | None,
|
|
483
486
|
) -> DeviceEntry:
|
|
484
487
|
"""Create DeviceEntry from DeletedDeviceEntry."""
|
|
485
488
|
# Adjust disabled_by based on config entry state
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
if disabled_by
|
|
489
|
-
disabled_by
|
|
490
|
-
|
|
491
|
-
disabled_by
|
|
489
|
+
if self.disabled_by is not UNDEFINED:
|
|
490
|
+
disabled_by = self.disabled_by
|
|
491
|
+
if config_entry.disabled_by:
|
|
492
|
+
if disabled_by is None:
|
|
493
|
+
disabled_by = DeviceEntryDisabler.CONFIG_ENTRY
|
|
494
|
+
elif disabled_by == DeviceEntryDisabler.CONFIG_ENTRY:
|
|
495
|
+
disabled_by = None
|
|
496
|
+
else:
|
|
497
|
+
disabled_by = disabled_by if disabled_by is not UNDEFINED else None
|
|
492
498
|
return DeviceEntry(
|
|
493
499
|
area_id=self.area_id,
|
|
494
500
|
# type ignores: likely https://github.com/python/mypy/issues/8625
|
|
@@ -520,7 +526,9 @@ class DeletedDeviceEntry:
|
|
|
520
526
|
},
|
|
521
527
|
"connections": list(self.connections),
|
|
522
528
|
"created_at": self.created_at,
|
|
523
|
-
"disabled_by": self.disabled_by
|
|
529
|
+
"disabled_by": self.disabled_by
|
|
530
|
+
if self.disabled_by is not UNDEFINED
|
|
531
|
+
else UNDEFINED_STR,
|
|
524
532
|
"identifiers": list(self.identifiers),
|
|
525
533
|
"id": self.id,
|
|
526
534
|
"labels": list(self.labels),
|
|
@@ -608,7 +616,7 @@ class DeviceRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
|
|
|
608
616
|
# Introduced in 2025.6
|
|
609
617
|
for device in old_data["deleted_devices"]:
|
|
610
618
|
device["area_id"] = None
|
|
611
|
-
device["disabled_by"] =
|
|
619
|
+
device["disabled_by"] = UNDEFINED_STR
|
|
612
620
|
device["labels"] = []
|
|
613
621
|
device["name_by_user"] = None
|
|
614
622
|
if old_minor_version < 11:
|
|
@@ -934,7 +942,10 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
|
|
|
934
942
|
config_subentry_id if config_subentry_id is not UNDEFINED else None,
|
|
935
943
|
connections,
|
|
936
944
|
identifiers,
|
|
945
|
+
disabled_by,
|
|
937
946
|
)
|
|
947
|
+
disabled_by = UNDEFINED
|
|
948
|
+
|
|
938
949
|
self.devices[device.id] = device
|
|
939
950
|
# If creating a new device, default to the config entry name
|
|
940
951
|
if device_info_type == "primary" and (not name or name is UNDEFINED):
|
|
@@ -1442,7 +1453,21 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
|
|
|
1442
1453
|
sw_version=device["sw_version"],
|
|
1443
1454
|
via_device_id=device["via_device_id"],
|
|
1444
1455
|
)
|
|
1456
|
+
|
|
1445
1457
|
# Introduced in 0.111
|
|
1458
|
+
def get_optional_enum[_EnumT: StrEnum](
|
|
1459
|
+
cls: type[_EnumT], value: str | None
|
|
1460
|
+
) -> _EnumT | UndefinedType | None:
|
|
1461
|
+
"""Convert string to the passed enum, UNDEFINED or None."""
|
|
1462
|
+
if value is None:
|
|
1463
|
+
return None
|
|
1464
|
+
if value == UNDEFINED_STR:
|
|
1465
|
+
return UNDEFINED
|
|
1466
|
+
try:
|
|
1467
|
+
return cls(value)
|
|
1468
|
+
except ValueError:
|
|
1469
|
+
return None
|
|
1470
|
+
|
|
1446
1471
|
for device in data["deleted_devices"]:
|
|
1447
1472
|
deleted_devices[device["id"]] = DeletedDeviceEntry(
|
|
1448
1473
|
area_id=device["area_id"],
|
|
@@ -1455,10 +1480,8 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
|
|
|
1455
1480
|
},
|
|
1456
1481
|
connections={tuple(conn) for conn in device["connections"]},
|
|
1457
1482
|
created_at=datetime.fromisoformat(device["created_at"]),
|
|
1458
|
-
disabled_by=(
|
|
1459
|
-
DeviceEntryDisabler
|
|
1460
|
-
if device["disabled_by"]
|
|
1461
|
-
else None
|
|
1483
|
+
disabled_by=get_optional_enum(
|
|
1484
|
+
DeviceEntryDisabler, device["disabled_by"]
|
|
1462
1485
|
),
|
|
1463
1486
|
identifiers={tuple(iden) for iden in device["identifiers"]},
|
|
1464
1487
|
id=device["id"],
|
|
@@ -16,7 +16,7 @@ from datetime import datetime, timedelta
|
|
|
16
16
|
from enum import StrEnum
|
|
17
17
|
import logging
|
|
18
18
|
import time
|
|
19
|
-
from typing import TYPE_CHECKING, Any, Literal, NotRequired, TypedDict
|
|
19
|
+
from typing import TYPE_CHECKING, Any, Final, Literal, NotRequired, TypedDict
|
|
20
20
|
|
|
21
21
|
import attr
|
|
22
22
|
import voluptuous as vol
|
|
@@ -85,6 +85,8 @@ STORAGE_KEY = "core.entity_registry"
|
|
|
85
85
|
CLEANUP_INTERVAL = 3600 * 24
|
|
86
86
|
ORPHANED_ENTITY_KEEP_SECONDS = 3600 * 24 * 30
|
|
87
87
|
|
|
88
|
+
UNDEFINED_STR: Final = "UNDEFINED"
|
|
89
|
+
|
|
88
90
|
ENTITY_CATEGORY_VALUE_TO_INDEX: dict[EntityCategory | None, int] = {
|
|
89
91
|
val: idx for idx, val in enumerate(EntityCategory)
|
|
90
92
|
}
|
|
@@ -164,6 +166,17 @@ def _protect_entity_options(
|
|
|
164
166
|
return ReadOnlyDict({key: ReadOnlyDict(val) for key, val in data.items()})
|
|
165
167
|
|
|
166
168
|
|
|
169
|
+
def _protect_optional_entity_options(
|
|
170
|
+
data: EntityOptionsType | UndefinedType | None,
|
|
171
|
+
) -> ReadOnlyEntityOptionsType | UndefinedType:
|
|
172
|
+
"""Protect entity options from being modified."""
|
|
173
|
+
if data is UNDEFINED:
|
|
174
|
+
return UNDEFINED
|
|
175
|
+
if data is None:
|
|
176
|
+
return ReadOnlyDict({})
|
|
177
|
+
return ReadOnlyDict({key: ReadOnlyDict(val) for key, val in data.items()})
|
|
178
|
+
|
|
179
|
+
|
|
167
180
|
@attr.s(frozen=True, kw_only=True, slots=True)
|
|
168
181
|
class RegistryEntry:
|
|
169
182
|
"""Entity Registry Entry."""
|
|
@@ -414,15 +427,17 @@ class DeletedRegistryEntry:
|
|
|
414
427
|
config_subentry_id: str | None = attr.ib()
|
|
415
428
|
created_at: datetime = attr.ib()
|
|
416
429
|
device_class: str | None = attr.ib()
|
|
417
|
-
disabled_by: RegistryEntryDisabler | None = attr.ib()
|
|
430
|
+
disabled_by: RegistryEntryDisabler | UndefinedType | None = attr.ib()
|
|
418
431
|
domain: str = attr.ib(init=False, repr=False)
|
|
419
|
-
hidden_by: RegistryEntryHider | None = attr.ib()
|
|
432
|
+
hidden_by: RegistryEntryHider | UndefinedType | None = attr.ib()
|
|
420
433
|
icon: str | None = attr.ib()
|
|
421
434
|
id: str = attr.ib()
|
|
422
435
|
labels: set[str] = attr.ib()
|
|
423
436
|
modified_at: datetime = attr.ib()
|
|
424
437
|
name: str | None = attr.ib()
|
|
425
|
-
options: ReadOnlyEntityOptionsType = attr.ib(
|
|
438
|
+
options: ReadOnlyEntityOptionsType | UndefinedType = attr.ib(
|
|
439
|
+
converter=_protect_optional_entity_options
|
|
440
|
+
)
|
|
426
441
|
orphaned_timestamp: float | None = attr.ib()
|
|
427
442
|
|
|
428
443
|
_cache: dict[str, Any] = attr.ib(factory=dict, eq=False, init=False)
|
|
@@ -445,15 +460,21 @@ class DeletedRegistryEntry:
|
|
|
445
460
|
"config_subentry_id": self.config_subentry_id,
|
|
446
461
|
"created_at": self.created_at,
|
|
447
462
|
"device_class": self.device_class,
|
|
448
|
-
"disabled_by": self.disabled_by
|
|
463
|
+
"disabled_by": self.disabled_by
|
|
464
|
+
if self.disabled_by is not UNDEFINED
|
|
465
|
+
else UNDEFINED_STR,
|
|
449
466
|
"entity_id": self.entity_id,
|
|
450
|
-
"hidden_by": self.hidden_by
|
|
467
|
+
"hidden_by": self.hidden_by
|
|
468
|
+
if self.hidden_by is not UNDEFINED
|
|
469
|
+
else UNDEFINED_STR,
|
|
451
470
|
"icon": self.icon,
|
|
452
471
|
"id": self.id,
|
|
453
472
|
"labels": list(self.labels),
|
|
454
473
|
"modified_at": self.modified_at,
|
|
455
474
|
"name": self.name,
|
|
456
|
-
"options": self.options
|
|
475
|
+
"options": self.options
|
|
476
|
+
if self.options is not UNDEFINED
|
|
477
|
+
else UNDEFINED_STR,
|
|
457
478
|
"orphaned_timestamp": self.orphaned_timestamp,
|
|
458
479
|
"platform": self.platform,
|
|
459
480
|
"unique_id": self.unique_id,
|
|
@@ -584,12 +605,12 @@ class EntityRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
|
|
|
584
605
|
entity["area_id"] = None
|
|
585
606
|
entity["categories"] = {}
|
|
586
607
|
entity["device_class"] = None
|
|
587
|
-
entity["disabled_by"] =
|
|
588
|
-
entity["hidden_by"] =
|
|
608
|
+
entity["disabled_by"] = UNDEFINED_STR
|
|
609
|
+
entity["hidden_by"] = UNDEFINED_STR
|
|
589
610
|
entity["icon"] = None
|
|
590
611
|
entity["labels"] = []
|
|
591
612
|
entity["name"] = None
|
|
592
|
-
entity["options"] =
|
|
613
|
+
entity["options"] = UNDEFINED_STR
|
|
593
614
|
|
|
594
615
|
if old_major_version > 1:
|
|
595
616
|
raise NotImplementedError
|
|
@@ -958,25 +979,30 @@ class EntityRegistry(BaseRegistry):
|
|
|
958
979
|
categories = deleted_entity.categories
|
|
959
980
|
created_at = deleted_entity.created_at
|
|
960
981
|
device_class = deleted_entity.device_class
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
if config_entry
|
|
965
|
-
if disabled_by
|
|
966
|
-
disabled_by
|
|
982
|
+
if deleted_entity.disabled_by is not UNDEFINED:
|
|
983
|
+
disabled_by = deleted_entity.disabled_by
|
|
984
|
+
# Adjust disabled_by based on config entry state
|
|
985
|
+
if config_entry and config_entry is not UNDEFINED:
|
|
986
|
+
if config_entry.disabled_by:
|
|
987
|
+
if disabled_by is None:
|
|
988
|
+
disabled_by = RegistryEntryDisabler.CONFIG_ENTRY
|
|
989
|
+
elif disabled_by == RegistryEntryDisabler.CONFIG_ENTRY:
|
|
990
|
+
disabled_by = None
|
|
967
991
|
elif disabled_by == RegistryEntryDisabler.CONFIG_ENTRY:
|
|
968
992
|
disabled_by = None
|
|
969
|
-
elif disabled_by == RegistryEntryDisabler.CONFIG_ENTRY:
|
|
970
|
-
disabled_by = None
|
|
971
993
|
# Restore entity_id if it's available
|
|
972
994
|
if self._entity_id_available(deleted_entity.entity_id):
|
|
973
995
|
entity_id = deleted_entity.entity_id
|
|
974
996
|
entity_registry_id = deleted_entity.id
|
|
975
|
-
|
|
997
|
+
if deleted_entity.hidden_by is not UNDEFINED:
|
|
998
|
+
hidden_by = deleted_entity.hidden_by
|
|
976
999
|
icon = deleted_entity.icon
|
|
977
1000
|
labels = deleted_entity.labels
|
|
978
1001
|
name = deleted_entity.name
|
|
979
|
-
|
|
1002
|
+
if deleted_entity.options is not UNDEFINED:
|
|
1003
|
+
options = deleted_entity.options
|
|
1004
|
+
else:
|
|
1005
|
+
options = get_initial_options() if get_initial_options else None
|
|
980
1006
|
else:
|
|
981
1007
|
aliases = set()
|
|
982
1008
|
area_id = None
|
|
@@ -1529,6 +1555,20 @@ class EntityRegistry(BaseRegistry):
|
|
|
1529
1555
|
previous_unique_id=entity["previous_unique_id"],
|
|
1530
1556
|
unit_of_measurement=entity["unit_of_measurement"],
|
|
1531
1557
|
)
|
|
1558
|
+
|
|
1559
|
+
def get_optional_enum[_EnumT: StrEnum](
|
|
1560
|
+
cls: type[_EnumT], value: str | None
|
|
1561
|
+
) -> _EnumT | UndefinedType | None:
|
|
1562
|
+
"""Convert string to the passed enum, UNDEFINED or None."""
|
|
1563
|
+
if value is None:
|
|
1564
|
+
return None
|
|
1565
|
+
if value == UNDEFINED_STR:
|
|
1566
|
+
return UNDEFINED
|
|
1567
|
+
try:
|
|
1568
|
+
return cls(value)
|
|
1569
|
+
except ValueError:
|
|
1570
|
+
return None
|
|
1571
|
+
|
|
1532
1572
|
for entity in data["deleted_entities"]:
|
|
1533
1573
|
try:
|
|
1534
1574
|
domain = split_entity_id(entity["entity_id"])[0]
|
|
@@ -1546,6 +1586,7 @@ class EntityRegistry(BaseRegistry):
|
|
|
1546
1586
|
entity["platform"],
|
|
1547
1587
|
entity["unique_id"],
|
|
1548
1588
|
)
|
|
1589
|
+
|
|
1549
1590
|
deleted_entities[key] = DeletedRegistryEntry(
|
|
1550
1591
|
aliases=set(entity["aliases"]),
|
|
1551
1592
|
area_id=entity["area_id"],
|
|
@@ -1554,23 +1595,21 @@ class EntityRegistry(BaseRegistry):
|
|
|
1554
1595
|
config_subentry_id=entity["config_subentry_id"],
|
|
1555
1596
|
created_at=datetime.fromisoformat(entity["created_at"]),
|
|
1556
1597
|
device_class=entity["device_class"],
|
|
1557
|
-
disabled_by=(
|
|
1558
|
-
RegistryEntryDisabler
|
|
1559
|
-
if entity["disabled_by"]
|
|
1560
|
-
else None
|
|
1598
|
+
disabled_by=get_optional_enum(
|
|
1599
|
+
RegistryEntryDisabler, entity["disabled_by"]
|
|
1561
1600
|
),
|
|
1562
1601
|
entity_id=entity["entity_id"],
|
|
1563
|
-
hidden_by=(
|
|
1564
|
-
RegistryEntryHider
|
|
1565
|
-
if entity["hidden_by"]
|
|
1566
|
-
else None
|
|
1602
|
+
hidden_by=get_optional_enum(
|
|
1603
|
+
RegistryEntryHider, entity["hidden_by"]
|
|
1567
1604
|
),
|
|
1568
1605
|
icon=entity["icon"],
|
|
1569
1606
|
id=entity["id"],
|
|
1570
1607
|
labels=set(entity["labels"]),
|
|
1571
1608
|
modified_at=datetime.fromisoformat(entity["modified_at"]),
|
|
1572
1609
|
name=entity["name"],
|
|
1573
|
-
options=entity["options"]
|
|
1610
|
+
options=entity["options"]
|
|
1611
|
+
if entity["options"] is not UNDEFINED_STR
|
|
1612
|
+
else UNDEFINED,
|
|
1574
1613
|
orphaned_timestamp=entity["orphaned_timestamp"],
|
|
1575
1614
|
platform=entity["platform"],
|
|
1576
1615
|
unique_id=entity["unique_id"],
|
|
@@ -20,9 +20,9 @@ audioop-lts==0.2.1
|
|
|
20
20
|
av==13.1.0
|
|
21
21
|
awesomeversion==25.5.0
|
|
22
22
|
bcrypt==4.3.0
|
|
23
|
-
bleak-retry-connector==4.4.
|
|
23
|
+
bleak-retry-connector==4.4.3
|
|
24
24
|
bleak==1.0.1
|
|
25
|
-
bluetooth-adapters==2.
|
|
25
|
+
bluetooth-adapters==2.1.0
|
|
26
26
|
bluetooth-auto-recovery==1.5.2
|
|
27
27
|
bluetooth-data-tools==1.28.2
|
|
28
28
|
cached-ipaddress==0.10.0
|
|
@@ -34,12 +34,12 @@ dbus-fast==2.44.3
|
|
|
34
34
|
fnv-hash-fast==1.5.0
|
|
35
35
|
go2rtc-client==0.2.1
|
|
36
36
|
ha-ffmpeg==3.2.2
|
|
37
|
-
habluetooth==5.
|
|
37
|
+
habluetooth==5.3.0
|
|
38
38
|
hass-nabucasa==1.0.0
|
|
39
39
|
hassil==3.2.0
|
|
40
40
|
home-assistant-bluetooth==1.13.1
|
|
41
|
-
home-assistant-frontend==
|
|
42
|
-
home-assistant-intents==2025.8.
|
|
41
|
+
home-assistant-frontend==20250829.0
|
|
42
|
+
home-assistant-intents==2025.8.29
|
|
43
43
|
httpx==0.28.1
|
|
44
44
|
ifaddr==0.2.0
|
|
45
45
|
Jinja2==3.1.6
|
|
@@ -223,3 +223,7 @@ pymodbus==3.11.1
|
|
|
223
223
|
|
|
224
224
|
# Some packages don't support gql 4.0.0 yet
|
|
225
225
|
gql<4.0.0
|
|
226
|
+
|
|
227
|
+
# pytest-rerunfailures 16.0 breaks pytest, pin 15.1 until resolved
|
|
228
|
+
# https://github.com/pytest-dev/pytest-rerunfailures/issues/302
|
|
229
|
+
pytest-rerunfailures==15.1
|