homeassistant 2025.11.0b5__py3-none-any.whl → 2025.11.2__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/auth/mfa_modules/notify.py +7 -7
- homeassistant/auth/providers/homeassistant.py +8 -2
- homeassistant/components/abode/translations/mk.json +11 -0
- homeassistant/components/abode/translations/uk.json +4 -1
- homeassistant/components/accuweather/translations/mk.json +1 -0
- homeassistant/components/actron_air/translations/sr-Latn.json +3 -0
- homeassistant/components/adax/translations/sv.json +1 -1
- homeassistant/components/ads/translations/mk.json +11 -0
- homeassistant/components/aemet/translations/sv.json +2 -1
- homeassistant/components/aftership/translations/mk.json +11 -0
- homeassistant/components/ai_task/translations/mk.json +42 -1
- homeassistant/components/ai_task/translations/sv.json +3 -0
- homeassistant/components/airgradient/translations/bg.json +11 -0
- homeassistant/components/airgradient/translations/sr-Latn.json +3 -3
- homeassistant/components/airgradient/translations/sv.json +2 -0
- homeassistant/components/airly/translations/sv.json +2 -1
- homeassistant/components/airnow/translations/sv.json +2 -1
- homeassistant/components/airq/translations/sv.json +1 -0
- homeassistant/components/airthings/translations/mk.json +9 -1
- homeassistant/components/airthings_ble/config_flow.py +10 -7
- homeassistant/components/airthings_ble/const.py +5 -0
- homeassistant/components/airthings_ble/coordinator.py +32 -3
- homeassistant/components/airzone/translations/bg.json +2 -1
- homeassistant/components/airzone/translations/sr-Latn.json +1 -1
- homeassistant/components/airzone/translations/vi.json +9 -0
- homeassistant/components/airzone_cloud/translations/bg.json +5 -0
- homeassistant/components/airzone_cloud/translations/sr-Latn.json +2 -2
- homeassistant/components/airzone_cloud/translations/vi.json +9 -0
- homeassistant/components/aladdin_connect/translations/sr-Latn.json +7 -0
- homeassistant/components/aladdin_connect/translations/sv.json +1 -1
- homeassistant/components/alarm_control_panel/translations/mk.json +12 -0
- homeassistant/components/alarm_control_panel/translations/vi.json +16 -11
- homeassistant/components/alexa_devices/binary_sensor.py +2 -2
- homeassistant/components/alexa_devices/coordinator.py +6 -1
- homeassistant/components/alexa_devices/diagnostics.py +1 -1
- homeassistant/components/alexa_devices/entity.py +2 -2
- homeassistant/components/alexa_devices/manifest.json +1 -1
- homeassistant/components/alexa_devices/notify.py +3 -2
- homeassistant/components/alexa_devices/sensor.py +2 -2
- homeassistant/components/alexa_devices/services.py +1 -1
- homeassistant/components/alexa_devices/switch.py +1 -1
- homeassistant/components/alexa_devices/translations/it.json +3 -3
- homeassistant/components/alexa_devices/translations/mk.json +7 -0
- homeassistant/components/alexa_devices/translations/pt.json +11 -0
- homeassistant/components/alexa_devices/translations/sv.json +16 -0
- homeassistant/components/alexa_devices/utils.py +1 -1
- homeassistant/components/anthropic/translations/en-GB.json +1 -1
- homeassistant/components/anthropic/translations/lt.json +1 -1
- homeassistant/components/aosmith/translations/bg.json +2 -1
- homeassistant/components/aosmith/translations/sr-Latn.json +1 -1
- homeassistant/components/apcupsd/translations/mk.json +3 -0
- homeassistant/components/apcupsd/translations/pl.json +13 -0
- homeassistant/components/aprilaire/translations/bg.json +30 -5
- homeassistant/components/aprilaire/translations/sr-Latn.json +14 -14
- homeassistant/components/assist_pipeline/translations/sv.json +1 -1
- homeassistant/components/assist_satellite/translations/mk.json +59 -0
- homeassistant/components/assist_satellite/translations/vi.json +38 -0
- homeassistant/components/august/translations/sr-Latn.json +7 -1
- homeassistant/components/august/translations/sv.json +4 -0
- homeassistant/components/automation/translations/bg.json +3 -0
- homeassistant/components/automation/translations/sv.json +1 -1
- homeassistant/components/awair/translations/sv.json +1 -1
- homeassistant/components/backup/manifest.json +1 -1
- homeassistant/components/backup/translations/de.json +1 -1
- homeassistant/components/backup/translations/sr-Latn.json +11 -0
- homeassistant/components/bang_olufsen/translations/mk.json +21 -0
- homeassistant/components/bayesian/translations/de.json +1 -1
- homeassistant/components/bayesian/translations/sr-Latn.json +1 -0
- homeassistant/components/bayesian/translations/sv.json +108 -11
- homeassistant/components/bayesian/translations/vi.json +8 -0
- homeassistant/components/binary_sensor/translations/bg.json +9 -2
- homeassistant/components/binary_sensor/translations/mk.json +4 -0
- homeassistant/components/binary_sensor/translations/sr-Latn.json +3 -3
- homeassistant/components/blackbird/translations/mk.json +11 -0
- homeassistant/components/blink/translations/ca.json +8 -1
- homeassistant/components/blink/translations/mk.json +3 -0
- homeassistant/components/blink/translations/pt.json +17 -1
- homeassistant/components/blink/translations/sv.json +15 -1
- homeassistant/components/bluesound/translations/mk.json +8 -0
- homeassistant/components/bond/translations/sr-Latn.json +3 -0
- homeassistant/components/bosch_alarm/translations/sr-Latn.json +3 -0
- homeassistant/components/bring/translations/mk.json +5 -0
- homeassistant/components/bring/translations/sr-Latn.json +3 -0
- homeassistant/components/brother/translations/mk.json +9 -0
- homeassistant/components/brother/translations/pt.json +10 -2
- homeassistant/components/brother/translations/ru.json +5 -1
- homeassistant/components/brother/translations/sv.json +10 -2
- homeassistant/components/bryant_evolution/translations/pt.json +3 -0
- homeassistant/components/bryant_evolution/translations/ru.json +3 -0
- homeassistant/components/bryant_evolution/translations/vi.json +19 -0
- homeassistant/components/bsblan/climate.py +5 -2
- homeassistant/components/bsblan/manifest.json +1 -1
- homeassistant/components/bsblan/translations/vi.json +5 -0
- homeassistant/components/bthome/translations/mk.json +20 -0
- homeassistant/components/button/translations/mk.json +8 -1
- homeassistant/components/button/translations/vi.json +1 -0
- homeassistant/components/calendar/translations/bg.json +3 -0
- homeassistant/components/calendar/translations/mk.json +72 -0
- homeassistant/components/calendar/translations/sr-Latn.json +2 -2
- homeassistant/components/calendar/translations/sv.json +1 -1
- homeassistant/components/calendar/translations/vi.json +1 -0
- homeassistant/components/cambridge_audio/translations/bg.json +1 -0
- homeassistant/components/cambridge_audio/translations/sr-Latn.json +2 -2
- homeassistant/components/camera/translations/mk.json +60 -0
- homeassistant/components/camera/translations/sv.json +1 -1
- homeassistant/components/cert_expiry/translations/it.json +1 -0
- homeassistant/components/channels/translations/mk.json +11 -0
- homeassistant/components/climate/reproduce_state.py +3 -3
- homeassistant/components/climate/translations/bg.json +10 -4
- homeassistant/components/climate/translations/mk.json +101 -1
- homeassistant/components/climate/translations/pl.json +13 -13
- homeassistant/components/climate/translations/sr-Latn.json +4 -4
- homeassistant/components/climate/translations/vi.json +66 -10
- homeassistant/components/comelit/config_flow.py +42 -30
- homeassistant/components/conversation/manifest.json +1 -1
- homeassistant/components/conversation/translations/mk.json +37 -0
- homeassistant/components/conversation/translations/vi.json +38 -0
- homeassistant/components/counter/translations/mk.json +27 -0
- homeassistant/components/cover/translations/mk.json +6 -1
- homeassistant/components/daikin/translations/mk.json +3 -0
- homeassistant/components/daikin/translations/pl.json +7 -0
- homeassistant/components/deluge/translations/sv.json +3 -0
- homeassistant/components/demo/translations/bg.json +3 -1
- homeassistant/components/demo/translations/mk.json +11 -0
- homeassistant/components/demo/translations/sr-Latn.json +3 -3
- homeassistant/components/demo/translations/vi.json +11 -0
- homeassistant/components/denonavr/translations/sr-Latn.json +3 -0
- homeassistant/components/derivative/translations/mk.json +9 -0
- homeassistant/components/device_tracker/translations/mk.json +22 -1
- homeassistant/components/devolo_home_control/translations/cs.json +1 -1
- homeassistant/components/devolo_home_control/translations/de.json +1 -1
- homeassistant/components/devolo_home_control/translations/el.json +0 -3
- homeassistant/components/devolo_home_control/translations/en-GB.json +1 -1
- homeassistant/components/devolo_home_control/translations/en.json +1 -1
- homeassistant/components/devolo_home_control/translations/es.json +1 -1
- homeassistant/components/devolo_home_control/translations/et.json +1 -1
- homeassistant/components/devolo_home_control/translations/ga.json +0 -3
- homeassistant/components/devolo_home_control/translations/hu.json +0 -3
- homeassistant/components/devolo_home_control/translations/ja.json +0 -3
- homeassistant/components/devolo_home_control/translations/lt.json +1 -1
- homeassistant/components/devolo_home_control/translations/pt.json +1 -1
- homeassistant/components/devolo_home_control/translations/sk.json +1 -1
- homeassistant/components/devolo_home_control/translations/tr.json +0 -3
- homeassistant/components/devolo_home_control/translations/zh-Hans.json +1 -1
- homeassistant/components/devolo_home_control/translations/zh-Hant.json +1 -1
- homeassistant/components/dlna_dmr/translations/sv.json +1 -1
- homeassistant/components/downloader/translations/mk.json +11 -0
- homeassistant/components/drop_connect/translations/mk.json +1 -0
- homeassistant/components/ecobee/translations/mk.json +21 -0
- homeassistant/components/ecobee/translations/sv.json +3 -0
- homeassistant/components/ecoforest/translations/bg.json +1 -0
- homeassistant/components/ecoforest/translations/mk.json +9 -0
- homeassistant/components/ecoforest/translations/sr-Latn.json +2 -2
- homeassistant/components/econet/translations/sv.json +1 -1
- homeassistant/components/ecovacs/translations/mk.json +9 -0
- homeassistant/components/eheimdigital/translations/sr-Latn.json +5 -0
- homeassistant/components/ekeybionyx/translations/sr-Latn.json +10 -0
- homeassistant/components/electric_kiwi/translations/sv.json +3 -0
- homeassistant/components/elkm1/translations/mk.json +7 -0
- homeassistant/components/esphome/translations/sv.json +1 -1
- homeassistant/components/event/translations/mk.json +7 -0
- homeassistant/components/evohome/translations/mk.json +18 -0
- homeassistant/components/ezviz/translations/mk.json +9 -0
- homeassistant/components/faa_delays/translations/mk.json +13 -0
- homeassistant/components/fan/translations/bg.json +3 -0
- homeassistant/components/fan/translations/mk.json +35 -0
- homeassistant/components/filter/translations/mk.json +9 -0
- homeassistant/components/fing/translations/ca.json +23 -0
- homeassistant/components/fing/translations/sv.json +17 -0
- homeassistant/components/fitbit/translations/sv.json +3 -0
- homeassistant/components/fivem/translations/mk.json +9 -0
- homeassistant/components/flexit_bacnet/translations/vi.json +7 -0
- homeassistant/components/foscam/camera.py +4 -1
- homeassistant/components/foscam/coordinator.py +37 -19
- homeassistant/components/foscam/switch.py +1 -0
- homeassistant/components/foscam/translations/mk.json +9 -0
- homeassistant/components/freebox/translations/sv.json +1 -1
- homeassistant/components/fritzbox/translations/vi.json +13 -0
- homeassistant/components/fritzbox_callmonitor/translations/mk.json +3 -0
- homeassistant/components/fronius/translations/pl.json +3 -3
- homeassistant/components/frontend/manifest.json +1 -1
- homeassistant/components/frontend/translations/mk.json +9 -0
- homeassistant/components/frontend/translations/pl.json +18 -1
- homeassistant/components/fully_kiosk/translations/mk.json +11 -0
- homeassistant/components/fyta/translations/sr-Latn.json +3 -0
- homeassistant/components/generic_thermostat/translations/mk.json +2 -0
- homeassistant/components/generic_thermostat/translations/pl.json +2 -0
- homeassistant/components/geniushub/translations/mk.json +18 -0
- homeassistant/components/geo_location/translations/mk.json +11 -0
- homeassistant/components/geocaching/translations/sv.json +3 -0
- homeassistant/components/glances/translations/sl.json +7 -0
- homeassistant/components/goalzero/translations/sv.json +3 -0
- homeassistant/components/google/translations/mk.json +53 -0
- homeassistant/components/google/translations/sv.json +3 -0
- homeassistant/components/google_assistant_sdk/translations/sv.json +3 -0
- homeassistant/components/google_cloud/translations/sv.json +1 -0
- homeassistant/components/google_drive/translations/sr-Latn.json +7 -0
- homeassistant/components/google_drive/translations/sv.json +3 -0
- homeassistant/components/google_generative_ai_conversation/translations/lt.json +1 -1
- homeassistant/components/google_generative_ai_conversation/translations/mk.json +3 -0
- homeassistant/components/google_generative_ai_conversation/translations/sv.json +3 -1
- homeassistant/components/google_mail/translations/mk.json +12 -0
- homeassistant/components/google_mail/translations/sv.json +3 -0
- homeassistant/components/google_mail/translations/vi.json +7 -0
- homeassistant/components/google_photos/translations/mk.json +9 -0
- homeassistant/components/google_photos/translations/sv.json +3 -0
- homeassistant/components/google_sheets/translations/ca.json +11 -0
- homeassistant/components/google_sheets/translations/mk.json +9 -0
- homeassistant/components/google_sheets/translations/sv.json +14 -0
- homeassistant/components/google_tasks/translations/sv.json +3 -0
- homeassistant/components/google_travel_time/translations/ru.json +4 -2
- homeassistant/components/google_travel_time/translations/sv.json +4 -2
- homeassistant/components/govee_ble/translations/mk.json +15 -0
- homeassistant/components/group/translations/bg.json +1 -0
- homeassistant/components/group/translations/ca.json +15 -0
- homeassistant/components/group/translations/mk.json +6 -0
- homeassistant/components/growatt_server/__init__.py +15 -0
- homeassistant/components/growatt_server/translations/it.json +14 -0
- homeassistant/components/growatt_server/translations/ru.json +6 -0
- homeassistant/components/growatt_server/translations/sv.json +4 -2
- homeassistant/components/guardian/translations/mk.json +11 -0
- homeassistant/components/habitica/translations/ca.json +7 -0
- homeassistant/components/habitica/translations/mk.json +16 -1
- homeassistant/components/habitica/translations/sv.json +19 -1
- homeassistant/components/hassio/translations/it.json +13 -0
- homeassistant/components/hassio/translations/sv.json +7 -2
- homeassistant/components/hdmi_cec/translations/mk.json +7 -0
- homeassistant/components/heos/translations/mk.json +1 -1
- homeassistant/components/heos/translations/sr-Latn.json +3 -0
- homeassistant/components/here_travel_time/translations/mk.json +7 -0
- homeassistant/components/history_stats/translations/mk.json +11 -0
- homeassistant/components/hive/translations/bg.json +2 -0
- homeassistant/components/hive/translations/mk.json +16 -0
- homeassistant/components/hive/translations/sr-Latn.json +3 -3
- homeassistant/components/home_connect/translations/bg.json +160 -32
- homeassistant/components/home_connect/translations/mk.json +10 -0
- homeassistant/components/home_connect/translations/pt.json +3 -0
- homeassistant/components/home_connect/translations/sr-Latn.json +44 -44
- homeassistant/components/home_connect/translations/sv.json +7 -1
- homeassistant/components/homeassistant/translations/sv.json +5 -1
- homeassistant/components/homeassistant_connect_zbt2/config_flow.py +17 -0
- homeassistant/components/homeassistant_connect_zbt2/const.py +58 -0
- homeassistant/components/homeassistant_connect_zbt2/manifest.json +6 -0
- homeassistant/components/homeassistant_connect_zbt2/translations/pt.json +7 -0
- homeassistant/components/homeassistant_connect_zbt2/translations/sv.json +35 -3
- homeassistant/components/homeassistant_hardware/firmware_config_flow.py +101 -65
- homeassistant/components/homeassistant_hardware/translations/sv.json +5 -2
- homeassistant/components/homeassistant_hardware/translations/vi.json +1 -0
- homeassistant/components/homeassistant_sky_connect/manifest.json +6 -0
- homeassistant/components/homeassistant_sky_connect/translations/pt.json +7 -0
- homeassistant/components/homeassistant_sky_connect/translations/sv.json +20 -5
- homeassistant/components/homeassistant_sky_connect/translations/vi.json +1 -0
- homeassistant/components/homeassistant_yellow/manifest.json +6 -0
- homeassistant/components/homeassistant_yellow/translations/pt.json +5 -0
- homeassistant/components/homeassistant_yellow/translations/sv.json +13 -3
- homeassistant/components/homeassistant_yellow/translations/vi.json +1 -0
- homeassistant/components/homee/translations/bg.json +2 -1
- homeassistant/components/homee/translations/mk.json +16 -0
- homeassistant/components/homee/translations/sr-Latn.json +4 -2
- homeassistant/components/homekit/translations/sv.json +6 -0
- homeassistant/components/homekit_controller/translations/mk.json +1 -0
- homeassistant/components/homematic/translations/mk.json +18 -0
- homeassistant/components/homematicip_cloud/translations/mk.json +7 -0
- homeassistant/components/homematicip_cloud/translations/sv.json +1 -1
- homeassistant/components/homewizard/translations/pl.json +1 -1
- homeassistant/components/homewizard/translations/ru.json +4 -2
- homeassistant/components/homewizard/translations/sv.json +1 -1
- homeassistant/components/homeworks/translations/mk.json +11 -0
- homeassistant/components/honeywell/translations/mk.json +15 -0
- homeassistant/components/honeywell/translations/vi.json +11 -0
- homeassistant/components/html5/translations/mk.json +9 -1
- homeassistant/components/http/__init__.py +13 -2
- homeassistant/components/http/strings.json +4 -0
- homeassistant/components/http/translations/cs.json +4 -0
- homeassistant/components/http/translations/de.json +4 -0
- homeassistant/components/http/translations/en-GB.json +4 -0
- homeassistant/components/http/translations/en.json +4 -0
- homeassistant/components/http/translations/es.json +4 -0
- homeassistant/components/http/translations/et.json +4 -0
- homeassistant/components/http/translations/ga.json +4 -0
- homeassistant/components/http/translations/he.json +4 -0
- homeassistant/components/http/translations/it.json +4 -0
- homeassistant/components/http/translations/lt.json +4 -0
- homeassistant/components/http/translations/pt.json +4 -0
- homeassistant/components/http/translations/ru.json +3 -0
- homeassistant/components/http/translations/sk.json +4 -0
- homeassistant/components/http/translations/sr-Latn.json +7 -0
- homeassistant/components/http/translations/sv.json +4 -0
- homeassistant/components/http/translations/zh-Hans.json +4 -0
- homeassistant/components/http/translations/zh-Hant.json +4 -0
- homeassistant/components/huawei_lte/translations/bg.json +0 -6
- homeassistant/components/huawei_lte/translations/ca.json +0 -6
- homeassistant/components/huawei_lte/translations/cs.json +2 -2
- homeassistant/components/huawei_lte/translations/de.json +2 -2
- homeassistant/components/huawei_lte/translations/el.json +2 -2
- homeassistant/components/huawei_lte/translations/en-GB.json +2 -2
- homeassistant/components/huawei_lte/translations/en.json +2 -2
- homeassistant/components/huawei_lte/translations/es.json +2 -2
- homeassistant/components/huawei_lte/translations/et.json +2 -2
- homeassistant/components/huawei_lte/translations/fi.json +0 -6
- homeassistant/components/huawei_lte/translations/ga.json +0 -6
- homeassistant/components/huawei_lte/translations/hu.json +0 -6
- homeassistant/components/huawei_lte/translations/it.json +0 -6
- homeassistant/components/huawei_lte/translations/ja.json +0 -6
- homeassistant/components/huawei_lte/translations/ko.json +0 -6
- homeassistant/components/huawei_lte/translations/lt.json +2 -2
- homeassistant/components/huawei_lte/translations/nl.json +0 -6
- homeassistant/components/huawei_lte/translations/pt.json +2 -2
- homeassistant/components/huawei_lte/translations/ru.json +2 -2
- homeassistant/components/huawei_lte/translations/sk.json +2 -2
- homeassistant/components/huawei_lte/translations/tr.json +0 -6
- homeassistant/components/huawei_lte/translations/zh-Hans.json +2 -2
- homeassistant/components/huawei_lte/translations/zh-Hant.json +2 -2
- homeassistant/components/hue/translations/sv.json +1 -0
- homeassistant/components/humidifier/translations/bg.json +5 -1
- homeassistant/components/humidifier/translations/mk.json +18 -0
- homeassistant/components/humidifier/translations/pl.json +11 -4
- homeassistant/components/humidifier/translations/sr-Latn.json +3 -3
- homeassistant/components/husqvarna_automower/entity.py +7 -4
- homeassistant/components/husqvarna_automower/translations/bg.json +2 -0
- homeassistant/components/husqvarna_automower/translations/mk.json +14 -0
- homeassistant/components/husqvarna_automower/translations/sr-Latn.json +2 -2
- homeassistant/components/husqvarna_automower/translations/sv.json +3 -0
- homeassistant/components/husqvarna_automower_ble/translations/sv.json +22 -1
- homeassistant/components/huum/translations/vi.json +9 -0
- homeassistant/components/hydrawise/translations/mk.json +11 -0
- homeassistant/components/hyperion/camera.py +3 -1
- homeassistant/components/hyperion/translations/sv.json +1 -1
- homeassistant/components/icloud/translations/mk.json +17 -0
- homeassistant/components/icloud/translations/sv.json +2 -0
- homeassistant/components/ifttt/translations/mk.json +9 -0
- homeassistant/components/ihc/translations/mk.json +25 -0
- homeassistant/components/image/translations/mk.json +12 -0
- homeassistant/components/imeon_inverter/translations/sv.json +8 -0
- homeassistant/components/incomfort/translations/bg.json +1 -0
- homeassistant/components/incomfort/translations/sr-Latn.json +1 -1
- homeassistant/components/inels/translations/ca.json +7 -0
- homeassistant/components/inels/translations/sr-Latn.json +1 -0
- homeassistant/components/inels/translations/sv.json +12 -0
- homeassistant/components/input_boolean/translations/bg.json +1 -0
- homeassistant/components/input_boolean/translations/cs.json +2 -2
- homeassistant/components/input_boolean/translations/mk.json +17 -0
- homeassistant/components/input_boolean/translations/pl.json +4 -0
- homeassistant/components/input_boolean/translations/sr-Latn.json +2 -2
- homeassistant/components/input_button/translations/mk.json +12 -0
- homeassistant/components/input_datetime/translations/mk.json +10 -0
- homeassistant/components/input_number/translations/mk.json +21 -0
- homeassistant/components/input_select/translations/mk.json +38 -0
- homeassistant/components/input_select/translations/vi.json +2 -0
- homeassistant/components/input_text/translations/mk.json +15 -0
- homeassistant/components/integration/translations/mk.json +9 -0
- homeassistant/components/iometer/translations/sr-Latn.json +7 -0
- homeassistant/components/iotawatt/translations/sv.json +1 -1
- homeassistant/components/iotty/translations/sv.json +3 -0
- homeassistant/components/iron_os/translations/bg.json +9 -1
- homeassistant/components/iron_os/translations/sr-Latn.json +5 -5
- homeassistant/components/iskra/translations/sv.json +2 -1
- homeassistant/components/isy994/translations/mk.json +14 -0
- homeassistant/components/isy994/translations/sv.json +2 -0
- homeassistant/components/ituran/binary_sensor.py +1 -2
- homeassistant/components/ituran/device_tracker.py +2 -4
- homeassistant/components/ituran/sensor.py +1 -2
- homeassistant/components/jvc_projector/translations/sr-Latn.json +1 -1
- homeassistant/components/keba/translations/sv.json +1 -0
- homeassistant/components/keymitt_ble/translations/mk.json +11 -0
- homeassistant/components/kitchen_sink/translations/sv.json +3 -3
- homeassistant/components/knx/manifest.json +1 -1
- homeassistant/components/knx/storage/entity_store_schema.py +1 -1
- homeassistant/components/knx/translations/bg.json +2 -1
- homeassistant/components/knx/translations/ca.json +15 -0
- homeassistant/components/knx/translations/it.json +119 -2
- homeassistant/components/knx/translations/mk.json +13 -0
- homeassistant/components/knx/translations/pl.json +16 -0
- homeassistant/components/knx/translations/sv.json +56 -5
- homeassistant/components/knx/translations/vi.json +29 -0
- homeassistant/components/kodi/translations/mk.json +11 -0
- homeassistant/components/lamarzocco/update.py +1 -1
- homeassistant/components/lametric/translations/mk.json +16 -0
- homeassistant/components/lametric/translations/sv.json +4 -0
- homeassistant/components/laundrify/translations/mk.json +9 -0
- homeassistant/components/lawn_mower/translations/mk.json +7 -0
- homeassistant/components/lawn_mower/translations/sr-Latn.json +1 -1
- homeassistant/components/lcn/translations/mk.json +23 -1
- homeassistant/components/lg_thinq/translations/bg.json +25 -3
- homeassistant/components/lg_thinq/translations/mk.json +13 -0
- homeassistant/components/lg_thinq/translations/pl.json +5 -0
- homeassistant/components/lg_thinq/translations/sr-Latn.json +16 -16
- homeassistant/components/lg_thinq/translations/sv.json +1 -0
- homeassistant/components/libre_hardware_monitor/translations/sv.json +4 -0
- homeassistant/components/lifx/translations/mk.json +7 -0
- homeassistant/components/light/translations/bg.json +7 -1
- homeassistant/components/light/translations/mk.json +3 -1
- homeassistant/components/light/translations/sr-Latn.json +3 -3
- homeassistant/components/light/translations/vi.json +25 -2
- homeassistant/components/litterrobot/translations/bg.json +3 -1
- homeassistant/components/litterrobot/translations/mk.json +12 -0
- homeassistant/components/litterrobot/translations/sr-Latn.json +2 -2
- homeassistant/components/lock/translations/he.json +1 -1
- homeassistant/components/lock/translations/vi.json +5 -1
- homeassistant/components/logbook/translations/mk.json +14 -0
- homeassistant/components/logger/translations/de.json +1 -1
- homeassistant/components/logger/translations/mk.json +11 -0
- homeassistant/components/lutron/translations/mk.json +13 -0
- homeassistant/components/lutron_caseta/translations/bg.json +2 -1
- homeassistant/components/lutron_caseta/translations/sr-Latn.json +2 -2
- homeassistant/components/lyric/translations/sv.json +4 -1
- homeassistant/components/mastodon/translations/mk.json +17 -0
- homeassistant/components/matrix/translations/mk.json +17 -0
- homeassistant/components/matrix/translations/sv.json +31 -0
- homeassistant/components/matter/translations/bg.json +5 -2
- homeassistant/components/matter/translations/cs.json +1 -1
- homeassistant/components/matter/translations/de.json +0 -3
- homeassistant/components/matter/translations/el.json +0 -3
- homeassistant/components/matter/translations/en-GB.json +0 -3
- homeassistant/components/matter/translations/en.json +1 -1
- homeassistant/components/matter/translations/es.json +0 -3
- homeassistant/components/matter/translations/et.json +0 -3
- homeassistant/components/matter/translations/he.json +0 -3
- homeassistant/components/matter/translations/it.json +40 -0
- homeassistant/components/matter/translations/lt.json +0 -3
- homeassistant/components/matter/translations/mk.json +19 -3
- homeassistant/components/matter/translations/pl.json +5 -0
- homeassistant/components/matter/translations/pt.json +0 -3
- homeassistant/components/matter/translations/ru.json +0 -3
- homeassistant/components/matter/translations/sk.json +0 -3
- homeassistant/components/matter/translations/sr-Latn.json +5 -5
- homeassistant/components/matter/translations/sv.json +10 -0
- homeassistant/components/matter/translations/zh-Hans.json +0 -3
- homeassistant/components/matter/translations/zh-Hant.json +0 -3
- homeassistant/components/mcp/translations/sv.json +3 -0
- homeassistant/components/mcp_server/translations/lt.json +1 -1
- homeassistant/components/mealie/translations/mk.json +14 -0
- homeassistant/components/mealie/translations/sr-Latn.json +2 -1
- homeassistant/components/media_extractor/translations/mk.json +7 -0
- homeassistant/components/media_player/translations/bg.json +3 -0
- homeassistant/components/media_player/translations/mk.json +200 -2
- homeassistant/components/media_player/translations/sr-Latn.json +6 -6
- homeassistant/components/media_player/translations/vi.json +54 -1
- homeassistant/components/media_source/translations/mk.json +5 -0
- homeassistant/components/meteo_lt/weather.py +2 -2
- homeassistant/components/metoffice/translations/sr-Latn.json +3 -1
- homeassistant/components/microbees/translations/sv.json +3 -0
- homeassistant/components/miele/button.py +4 -3
- homeassistant/components/miele/climate.py +3 -2
- homeassistant/components/miele/coordinator.py +1 -1
- homeassistant/components/miele/fan.py +5 -2
- homeassistant/components/miele/light.py +3 -2
- homeassistant/components/miele/sensor.py +8 -2
- homeassistant/components/miele/services.py +4 -4
- homeassistant/components/miele/switch.py +5 -3
- homeassistant/components/miele/translations/bg.json +1 -0
- homeassistant/components/miele/translations/cs.json +1 -1
- homeassistant/components/miele/translations/de.json +1 -1
- homeassistant/components/miele/translations/en-GB.json +1 -1
- homeassistant/components/miele/translations/en.json +1 -1
- homeassistant/components/miele/translations/es.json +1 -1
- homeassistant/components/miele/translations/et.json +1 -1
- homeassistant/components/miele/translations/ga.json +1 -2
- homeassistant/components/miele/translations/hu.json +1 -2
- homeassistant/components/miele/translations/it.json +1 -2
- homeassistant/components/miele/translations/lt.json +1 -1
- homeassistant/components/miele/translations/mk.json +11 -0
- homeassistant/components/miele/translations/pt.json +1 -1
- homeassistant/components/miele/translations/sk.json +1 -1
- homeassistant/components/miele/translations/sr-Latn.json +3 -2
- homeassistant/components/miele/translations/sv.json +21 -2
- homeassistant/components/miele/translations/tr.json +1 -2
- homeassistant/components/miele/translations/vi.json +9 -0
- homeassistant/components/miele/translations/zh-Hans.json +1 -1
- homeassistant/components/miele/translations/zh-Hant.json +1 -1
- homeassistant/components/miele/vacuum.py +3 -2
- homeassistant/components/mill/manifest.json +1 -1
- homeassistant/components/minecraft_server/translations/mk.json +9 -0
- homeassistant/components/mjpeg/translations/sv.json +2 -0
- homeassistant/components/mobile_app/binary_sensor.py +6 -4
- homeassistant/components/mobile_app/sensor.py +6 -4
- homeassistant/components/mobile_app/translations/mk.json +11 -0
- homeassistant/components/modbus/translations/mk.json +11 -0
- homeassistant/components/modbus/translations/sv.json +2 -0
- homeassistant/components/monarch_money/translations/mk.json +9 -0
- homeassistant/components/monzo/translations/sv.json +3 -0
- homeassistant/components/motion_blinds/cover.py +1 -0
- homeassistant/components/motion_blinds/translations/sv.json +2 -1
- homeassistant/components/motionmount/translations/sr-Latn.json +4 -0
- homeassistant/components/motionmount/translations/sv.json +4 -1
- homeassistant/components/mqtt/translations/bg.json +4 -2
- homeassistant/components/mqtt/translations/mk.json +13 -1
- homeassistant/components/mqtt/translations/sr-Latn.json +2 -2
- homeassistant/components/mqtt/translations/sv.json +50 -10
- homeassistant/components/mqtt/translations/vi.json +83 -7
- homeassistant/components/music_assistant/translations/mk.json +10 -0
- homeassistant/components/mutesync/translations/mk.json +9 -0
- homeassistant/components/myuplink/translations/mk.json +7 -0
- homeassistant/components/myuplink/translations/sv.json +3 -0
- homeassistant/components/nanoleaf/translations/sv.json +1 -1
- homeassistant/components/neato/translations/sv.json +3 -0
- homeassistant/components/nederlandse_spoorwegen/translations/ca.json +7 -1
- homeassistant/components/nederlandse_spoorwegen/translations/pt.json +12 -1
- homeassistant/components/nederlandse_spoorwegen/translations/sv.json +3 -0
- homeassistant/components/nest/translations/sr-Latn.json +1 -0
- homeassistant/components/nest/translations/sv.json +3 -0
- homeassistant/components/netatmo/translations/mk.json +14 -0
- homeassistant/components/netatmo/translations/sv.json +3 -0
- homeassistant/components/nexia/translations/mk.json +14 -0
- homeassistant/components/nexia/translations/vi.json +12 -0
- homeassistant/components/nextdns/translations/ca.json +7 -1
- homeassistant/components/nextdns/translations/it.json +1 -0
- homeassistant/components/nextdns/translations/sv.json +10 -1
- homeassistant/components/nina/translations/sv.json +14 -0
- homeassistant/components/nintendo_parental_controls/translations/pt.json +27 -0
- homeassistant/components/nintendo_parental_controls/translations/sv.json +23 -0
- homeassistant/components/nobo_hub/translations/mk.json +11 -0
- homeassistant/components/nobo_hub/translations/vi.json +11 -0
- homeassistant/components/nordpool/translations/mk.json +14 -0
- homeassistant/components/notify/translations/mk.json +58 -0
- homeassistant/components/notify/translations/sv.json +1 -1
- homeassistant/components/ntfy/translations/mk.json +14 -0
- homeassistant/components/ntfy/translations/sv.json +1 -1
- homeassistant/components/nuki/translations/ru.json +4 -0
- homeassistant/components/number/translations/mk.json +14 -1
- homeassistant/components/nut/translations/bg.json +1 -0
- homeassistant/components/nut/translations/mk.json +8 -0
- homeassistant/components/nut/translations/pl.json +6 -0
- homeassistant/components/nut/translations/sr-Latn.json +1 -1
- homeassistant/components/nws/translations/mk.json +10 -0
- homeassistant/components/ohme/translations/mk.json +5 -0
- homeassistant/components/ollama/translations/lt.json +1 -1
- homeassistant/components/ollama/translations/sr-Latn.json +6 -0
- homeassistant/components/ondilo_ico/translations/sv.json +3 -0
- homeassistant/components/onedrive/manifest.json +1 -1
- homeassistant/components/onedrive/translations/mk.json +9 -0
- homeassistant/components/onedrive/translations/sr-Latn.json +5 -0
- homeassistant/components/onedrive/translations/sv.json +3 -0
- homeassistant/components/onewire/manifest.json +1 -1
- homeassistant/components/onewire/translations/el.json +1 -1
- homeassistant/components/onewire/translations/en-GB.json +1 -1
- homeassistant/components/onewire/translations/en.json +1 -1
- homeassistant/components/onewire/translations/es.json +1 -1
- homeassistant/components/onewire/translations/et.json +1 -1
- homeassistant/components/onewire/translations/ga.json +0 -1
- homeassistant/components/onewire/translations/sv.json +0 -1
- homeassistant/components/onvif/translations/sv.json +1 -1
- homeassistant/components/open_router/manifest.json +1 -1
- homeassistant/components/open_router/translations/lt.json +1 -1
- homeassistant/components/open_router/translations/mk.json +3 -0
- homeassistant/components/openai_conversation/translations/lt.json +1 -1
- homeassistant/components/openrgb/translations/cs.json +1 -1
- homeassistant/components/openrgb/translations/de.json +1 -1
- homeassistant/components/openrgb/translations/es.json +1 -1
- homeassistant/components/openrgb/translations/pt.json +1 -1
- homeassistant/components/opentherm_gw/translations/mk.json +10 -0
- homeassistant/components/opentherm_gw/translations/vi.json +5 -0
- homeassistant/components/openweathermap/translations/sv.json +1 -1
- homeassistant/components/oralb/translations/bg.json +2 -0
- homeassistant/components/oralb/translations/fr.json +41 -4
- homeassistant/components/osoenergy/translations/bg.json +6 -0
- homeassistant/components/osoenergy/translations/sr-Latn.json +2 -2
- homeassistant/components/overkiz/translations/mk.json +11 -0
- homeassistant/components/overkiz/translations/pt.json +2 -1
- homeassistant/components/overkiz/translations/ru.json +2 -1
- homeassistant/components/overkiz/translations/vi.json +6 -0
- homeassistant/components/palazzetti/manifest.json +1 -1
- homeassistant/components/palazzetti/translations/mk.json +1 -0
- homeassistant/components/palazzetti/translations/sr-Latn.json +1 -1
- homeassistant/components/persistent_notification/translations/mk.json +15 -0
- homeassistant/components/person/translations/mk.json +7 -1
- homeassistant/components/pi_hole/translations/mk.json +14 -0
- homeassistant/components/playstation_network/translations/sr-Latn.json +3 -0
- homeassistant/components/plugwise/translations/bg.json +9 -2
- homeassistant/components/plugwise/translations/cs.json +3 -0
- homeassistant/components/plugwise/translations/en-GB.json +3 -0
- homeassistant/components/plugwise/translations/es.json +3 -0
- homeassistant/components/plugwise/translations/et.json +3 -0
- homeassistant/components/plugwise/translations/ga.json +3 -0
- homeassistant/components/plugwise/translations/it.json +3 -0
- homeassistant/components/plugwise/translations/lt.json +3 -0
- homeassistant/components/plugwise/translations/mk.json +8 -0
- homeassistant/components/plugwise/translations/pt.json +3 -0
- homeassistant/components/plugwise/translations/sr-Latn.json +3 -3
- homeassistant/components/plugwise/translations/sv.json +3 -0
- homeassistant/components/plugwise/translations/vi.json +6 -1
- homeassistant/components/plugwise/translations/zh-Hans.json +3 -0
- homeassistant/components/plugwise/translations/zh-Hant.json +3 -0
- homeassistant/components/point/translations/sv.json +3 -0
- homeassistant/components/pooldose/translations/bg.json +4 -0
- homeassistant/components/pooldose/translations/it.json +1 -0
- homeassistant/components/pooldose/translations/sr-Latn.json +4 -4
- homeassistant/components/pooldose/translations/sv.json +14 -1
- homeassistant/components/portainer/manifest.json +1 -1
- homeassistant/components/portainer/translations/ca.json +9 -1
- homeassistant/components/portainer/translations/mk.json +9 -0
- homeassistant/components/portainer/translations/pt.json +16 -1
- homeassistant/components/portainer/translations/sv.json +16 -3
- homeassistant/components/powerwall/translations/mk.json +9 -0
- homeassistant/components/profiler/translations/mk.json +18 -0
- homeassistant/components/prusalink/translations/mk.json +9 -0
- homeassistant/components/ps4/translations/sv.json +2 -2
- homeassistant/components/pterodactyl/translations/mk.json +7 -0
- homeassistant/components/pushbullet/translations/mk.json +9 -0
- homeassistant/components/qbittorrent/translations/mk.json +3 -0
- homeassistant/components/qbittorrent/translations/ru.json +4 -0
- homeassistant/components/qbus/translations/sr-Latn.json +5 -0
- homeassistant/components/qbus/translations/sv.json +7 -0
- homeassistant/components/qnap/translations/mk.json +7 -0
- homeassistant/components/rachio/translations/mk.json +23 -0
- homeassistant/components/rainbird/translations/mk.json +18 -0
- homeassistant/components/rainmachine/translations/mk.json +21 -0
- homeassistant/components/rainmachine/translations/pt.json +1 -0
- homeassistant/components/random/translations/sr-Latn.json +2 -1
- homeassistant/components/recorder/auto_repairs/statistics/schema.py +3 -0
- homeassistant/components/recorder/const.py +1 -1
- homeassistant/components/recorder/db_schema.py +1 -1
- homeassistant/components/recorder/migration.py +73 -4
- homeassistant/components/recorder/translations/mk.json +6 -0
- homeassistant/components/renault/translations/sr-Latn.json +1 -0
- homeassistant/components/renault/translations/vi.json +11 -0
- homeassistant/components/renson/translations/bg.json +2 -1
- homeassistant/components/renson/translations/mk.json +11 -0
- homeassistant/components/renson/translations/sr-Latn.json +4 -4
- homeassistant/components/reolink/manifest.json +1 -1
- homeassistant/components/reolink/translations/bg.json +34 -1
- homeassistant/components/reolink/translations/ga.json +1 -0
- homeassistant/components/reolink/translations/it.json +5 -0
- homeassistant/components/reolink/translations/mk.json +4 -0
- homeassistant/components/reolink/translations/pt.json +1 -0
- homeassistant/components/reolink/translations/sr-Latn.json +12 -12
- homeassistant/components/reolink/translations/sv.json +1 -1
- homeassistant/components/rfxtrx/translations/bg.json +1 -0
- homeassistant/components/rfxtrx/translations/sr-Latn.json +2 -2
- homeassistant/components/risco/translations/vi.json +8 -0
- homeassistant/components/roborock/translations/bg.json +3 -1
- homeassistant/components/roborock/translations/mk.json +3 -0
- homeassistant/components/roborock/translations/sr-Latn.json +2 -2
- homeassistant/components/roomba/translations/sv.json +1 -1
- homeassistant/components/roon/translations/sv.json +1 -1
- homeassistant/components/sabnzbd/translations/mk.json +9 -0
- homeassistant/components/satel_integra/translations/it.json +1 -0
- homeassistant/components/satel_integra/translations/pl.json +3 -3
- homeassistant/components/satel_integra/translations/sr-Latn.json +2 -1
- homeassistant/components/satel_integra/translations/sv.json +9 -2
- homeassistant/components/satel_integra/translations/vi.json +10 -0
- homeassistant/components/schedule/translations/vi.json +8 -1
- homeassistant/components/scrape/translations/mk.json +2 -1
- homeassistant/components/select/translations/mk.json +48 -0
- homeassistant/components/sensibo/translations/bg.json +72 -7
- homeassistant/components/sensibo/translations/mk.json +21 -0
- homeassistant/components/sensibo/translations/pl.json +2 -2
- homeassistant/components/sensibo/translations/sr-Latn.json +27 -27
- homeassistant/components/sensibo/translations/vi.json +26 -0
- homeassistant/components/sensor/translations/mk.json +6 -0
- homeassistant/components/sensor/translations/pl.json +2 -2
- homeassistant/components/senz/translations/sv.json +3 -0
- homeassistant/components/sfr_box/__init__.py +4 -0
- homeassistant/components/sfr_box/translations/pt.json +4 -0
- homeassistant/components/sftp_storage/translations/sv.json +1 -0
- homeassistant/components/shelly/translations/ca.json +4 -0
- homeassistant/components/shelly/translations/mk.json +11 -0
- homeassistant/components/shelly/translations/pl.json +1 -1
- homeassistant/components/shelly/translations/pt.json +2 -1
- homeassistant/components/shelly/translations/sv.json +10 -3
- homeassistant/components/shopping_list/translations/mk.json +8 -0
- homeassistant/components/sia/translations/sv.json +6 -3
- homeassistant/components/simplisafe/translations/mk.json +11 -0
- homeassistant/components/siren/translations/mk.json +19 -0
- homeassistant/components/siren/translations/sr-Latn.json +1 -1
- homeassistant/components/skybell/translations/mk.json +9 -0
- homeassistant/components/slack/translations/sv.json +2 -0
- homeassistant/components/sleep_as_android/translations/sv.json +24 -0
- homeassistant/components/sleepiq/translations/bg.json +14 -0
- homeassistant/components/sleepiq/translations/sr-Latn.json +2 -2
- homeassistant/components/smappee/translations/sv.json +3 -0
- homeassistant/components/smarla/translations/sv.json +5 -0
- homeassistant/components/smartthings/manifest.json +1 -1
- homeassistant/components/smartthings/translations/bg.json +25 -2
- homeassistant/components/smartthings/translations/mk.json +15 -0
- homeassistant/components/smartthings/translations/sr-Latn.json +9 -9
- homeassistant/components/smartthings/translations/sv.json +6 -0
- homeassistant/components/smarttub/translations/mk.json +9 -0
- homeassistant/components/sms/translations/sr-Latn.json +3 -0
- homeassistant/components/snapcast/translations/mk.json +10 -0
- homeassistant/components/snapcast/translations/sv.json +10 -0
- homeassistant/components/snips/translations/mk.json +18 -0
- homeassistant/components/snooz/translations/sv.json +1 -1
- homeassistant/components/solaredge/__init__.py +3 -0
- homeassistant/components/solaredge/config_flow.py +5 -2
- homeassistant/components/solaredge/translations/ca.json +22 -1
- homeassistant/components/solaredge/translations/ru.json +4 -2
- homeassistant/components/somfy_mylink/translations/ru.json +2 -1
- homeassistant/components/songpal/translations/mk.json +11 -0
- homeassistant/components/sonos/translations/bg.json +7 -0
- homeassistant/components/sonos/translations/sr-Latn.json +1 -1
- homeassistant/components/spotify/translations/sv.json +3 -0
- homeassistant/components/sql/translations/bg.json +1 -2
- homeassistant/components/sql/translations/ca.json +2 -4
- homeassistant/components/sql/translations/cs.json +2 -2
- homeassistant/components/sql/translations/de.json +2 -2
- homeassistant/components/sql/translations/el.json +2 -4
- homeassistant/components/sql/translations/en-GB.json +2 -2
- homeassistant/components/sql/translations/en.json +2 -2
- homeassistant/components/sql/translations/es.json +2 -2
- homeassistant/components/sql/translations/et.json +2 -2
- homeassistant/components/sql/translations/fi.json +2 -4
- homeassistant/components/sql/translations/fr.json +2 -4
- homeassistant/components/sql/translations/ga.json +2 -4
- homeassistant/components/sql/translations/he.json +2 -4
- homeassistant/components/sql/translations/hu.json +2 -4
- homeassistant/components/sql/translations/id.json +2 -4
- homeassistant/components/sql/translations/ja.json +2 -4
- homeassistant/components/sql/translations/lt.json +2 -2
- homeassistant/components/sql/translations/mk.json +11 -0
- homeassistant/components/sql/translations/pl.json +2 -4
- homeassistant/components/sql/translations/pt-BR.json +2 -4
- homeassistant/components/sql/translations/pt.json +2 -2
- homeassistant/components/sql/translations/ru.json +2 -4
- homeassistant/components/sql/translations/sk.json +2 -2
- homeassistant/components/sql/translations/sl.json +2 -4
- homeassistant/components/sql/translations/sr-Latn.json +3 -0
- homeassistant/components/sql/translations/sv.json +16 -5
- homeassistant/components/sql/translations/tr.json +2 -4
- homeassistant/components/sql/translations/zh-Hans.json +2 -2
- homeassistant/components/sql/translations/zh-Hant.json +2 -2
- homeassistant/components/squeezebox/translations/sr-Latn.json +8 -0
- homeassistant/components/squeezebox/translations/uk.json +5 -0
- homeassistant/components/starline/translations/mk.json +9 -0
- homeassistant/components/statistics/translations/sl.json +7 -0
- homeassistant/components/subaru/translations/sv.json +2 -0
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/__init__.py +2 -2
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/config_flow.py +2 -2
- homeassistant/components/sunricher_dali/const.py +5 -0
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/light.py +2 -2
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/manifest.json +3 -3
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/strings.json +4 -6
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/bg.json +1 -2
- homeassistant/components/sunricher_dali/translations/ca.json +11 -0
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/cs.json +4 -6
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/de.json +5 -7
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/en-GB.json +4 -6
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/en.json +4 -6
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/es.json +4 -6
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/et.json +4 -6
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/ga.json +4 -6
- homeassistant/components/sunricher_dali/translations/it.json +27 -0
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/lt.json +5 -7
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/pt.json +4 -6
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/sk.json +4 -6
- homeassistant/components/sunricher_dali/translations/sr-Latn.json +25 -0
- homeassistant/components/sunricher_dali/translations/sv.json +27 -0
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/zh-Hans.json +4 -6
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/zh-Hant.json +4 -6
- homeassistant/components/{sunricher_dali_center → sunricher_dali}/types.py +2 -2
- homeassistant/components/swiss_public_transport/translations/mk.json +1 -0
- homeassistant/components/switch/translations/bg.json +10 -0
- homeassistant/components/switch/translations/mk.json +10 -0
- homeassistant/components/switch_as_x/translations/cs.json +1 -1
- homeassistant/components/switchbot_cloud/translations/mk.json +15 -0
- homeassistant/components/switchbot_cloud/translations/sv.json +2 -1
- homeassistant/components/synology_dsm/translations/mk.json +13 -0
- homeassistant/components/system_bridge/translations/mk.json +12 -0
- homeassistant/components/system_bridge/translations/ru.json +1 -0
- homeassistant/components/system_log/translations/mk.json +14 -0
- homeassistant/components/systemmonitor/translations/sv.json +1 -1
- homeassistant/components/tado/translations/sv.json +2 -2
- homeassistant/components/tankerkoenig/translations/mk.json +9 -0
- homeassistant/components/tautulli/translations/sv.json +2 -1
- homeassistant/components/technove/translations/mk.json +1 -0
- homeassistant/components/telegram/translations/pt.json +6 -0
- homeassistant/components/telegram/translations/ru.json +6 -0
- homeassistant/components/telegram_bot/translations/mk.json +95 -0
- homeassistant/components/telegram_bot/translations/ru.json +69 -0
- homeassistant/components/telegram_bot/translations/sv.json +19 -0
- homeassistant/components/telegram_bot/translations/vi.json +7 -0
- homeassistant/components/template/translations/it.json +5 -0
- homeassistant/components/template/translations/mk.json +9 -0
- homeassistant/components/template/translations/sr-Latn.json +8 -0
- homeassistant/components/template/translations/sv.json +140 -40
- homeassistant/components/template/translations/vi.json +301 -10
- homeassistant/components/tesla_fleet/translations/bg.json +40 -0
- homeassistant/components/tesla_fleet/translations/mk.json +10 -0
- homeassistant/components/tesla_fleet/translations/sr-Latn.json +13 -8
- homeassistant/components/tesla_fleet/translations/sv.json +3 -0
- homeassistant/components/tesla_fleet/translations/vi.json +5 -0
- homeassistant/components/tesla_wall_connector/translations/mk.json +3 -0
- homeassistant/components/teslemetry/translations/bg.json +68 -3
- homeassistant/components/teslemetry/translations/mk.json +32 -1
- homeassistant/components/teslemetry/translations/sr-Latn.json +16 -16
- homeassistant/components/teslemetry/translations/sv.json +133 -2
- homeassistant/components/teslemetry/translations/vi.json +22 -0
- homeassistant/components/teslemetry/update.py +1 -1
- homeassistant/components/tessie/translations/bg.json +45 -0
- homeassistant/components/tessie/translations/mk.json +10 -0
- homeassistant/components/tessie/translations/sr-Latn.json +9 -9
- homeassistant/components/tessie/translations/vi.json +5 -0
- homeassistant/components/text/translations/mk.json +23 -0
- homeassistant/components/thethingsnetwork/translations/sv.json +1 -0
- homeassistant/components/timer/translations/mk.json +27 -0
- homeassistant/components/timer/translations/sk.json +1 -1
- homeassistant/components/timer/translations/vi.json +29 -1
- homeassistant/components/todo/translations/mk.json +61 -0
- homeassistant/components/todo/translations/vi.json +102 -1
- homeassistant/components/todoist/translations/mk.json +11 -0
- homeassistant/components/todoist/translations/vi.json +76 -1
- homeassistant/components/togrill/translations/pl.json +5 -0
- homeassistant/components/togrill/translations/sr-Latn.json +3 -0
- homeassistant/components/tomorrowio/translations/sv.json +2 -1
- homeassistant/components/toon/translations/sv.json +3 -0
- homeassistant/components/tplink/climate.py +8 -9
- homeassistant/components/tplink/translations/mk.json +6 -0
- homeassistant/components/tplink/translations/sr-Latn.json +3 -0
- homeassistant/components/traccar_server/translations/ca.json +6 -0
- homeassistant/components/traccar_server/translations/mk.json +7 -0
- homeassistant/components/traccar_server/translations/pt.json +10 -0
- homeassistant/components/trafikverket_camera/translations/mk.json +21 -0
- homeassistant/components/transmission/translations/mk.json +9 -0
- homeassistant/components/transmission/translations/pt.json +25 -0
- homeassistant/components/transmission/translations/ru.json +1 -0
- homeassistant/components/transmission/translations/sv.json +24 -0
- homeassistant/components/tts/translations/mk.json +11 -0
- homeassistant/components/tuya/manifest.json +1 -1
- homeassistant/components/tuya/translations/bg.json +10 -2
- homeassistant/components/tuya/translations/mk.json +27 -1
- homeassistant/components/tuya/translations/pl.json +3 -0
- homeassistant/components/tuya/translations/pt.json +12 -0
- homeassistant/components/tuya/translations/sr-Latn.json +5 -5
- homeassistant/components/tuya/translations/sv.json +3 -0
- homeassistant/components/twinkly/translations/bg.json +9 -0
- homeassistant/components/twinkly/translations/sr-Latn.json +1 -1
- homeassistant/components/twitch/translations/mk.json +13 -0
- homeassistant/components/ukraine_alarm/__init__.py +63 -0
- homeassistant/components/ukraine_alarm/config_flow.py +2 -2
- homeassistant/components/ukraine_alarm/strings.json +9 -3
- homeassistant/components/ukraine_alarm/translations/bg.json +9 -6
- homeassistant/components/ukraine_alarm/translations/ca.json +3 -6
- homeassistant/components/ukraine_alarm/translations/cs.json +9 -3
- homeassistant/components/ukraine_alarm/translations/de.json +9 -3
- homeassistant/components/ukraine_alarm/translations/el.json +3 -6
- homeassistant/components/ukraine_alarm/translations/en-GB.json +9 -3
- homeassistant/components/ukraine_alarm/translations/en.json +9 -3
- homeassistant/components/ukraine_alarm/translations/es.json +9 -3
- homeassistant/components/ukraine_alarm/translations/et.json +6 -0
- homeassistant/components/ukraine_alarm/translations/fi.json +3 -6
- homeassistant/components/ukraine_alarm/translations/fr.json +3 -6
- homeassistant/components/ukraine_alarm/translations/ga.json +3 -6
- homeassistant/components/ukraine_alarm/translations/hu.json +3 -6
- homeassistant/components/ukraine_alarm/translations/id.json +3 -6
- homeassistant/components/ukraine_alarm/translations/it.json +1 -8
- homeassistant/components/ukraine_alarm/translations/ja.json +3 -6
- homeassistant/components/ukraine_alarm/translations/ko.json +3 -6
- homeassistant/components/ukraine_alarm/translations/lt.json +9 -3
- homeassistant/components/ukraine_alarm/translations/nb.json +3 -6
- homeassistant/components/ukraine_alarm/translations/nl.json +3 -6
- homeassistant/components/ukraine_alarm/translations/pl.json +3 -6
- homeassistant/components/ukraine_alarm/translations/pt-BR.json +3 -6
- homeassistant/components/ukraine_alarm/translations/pt.json +9 -3
- homeassistant/components/ukraine_alarm/translations/ro.json +3 -6
- homeassistant/components/ukraine_alarm/translations/ru.json +3 -6
- homeassistant/components/ukraine_alarm/translations/sk.json +9 -3
- homeassistant/components/ukraine_alarm/translations/sv.json +3 -6
- homeassistant/components/ukraine_alarm/translations/tr.json +3 -6
- homeassistant/components/ukraine_alarm/translations/uk.json +3 -6
- homeassistant/components/ukraine_alarm/translations/zh-Hans.json +9 -3
- homeassistant/components/ukraine_alarm/translations/zh-Hant.json +9 -3
- homeassistant/components/unifiprotect/translations/vi.json +7 -0
- homeassistant/components/update/translations/mk.json +3 -0
- homeassistant/components/update/translations/sr-Latn.json +1 -0
- homeassistant/components/utility_meter/manifest.json +1 -1
- homeassistant/components/utility_meter/translations/mk.json +20 -0
- homeassistant/components/vacuum/translations/sr-Latn.json +1 -1
- homeassistant/components/vallox/translations/mk.json +13 -0
- homeassistant/components/vegehub/translations/sr-Latn.json +7 -0
- homeassistant/components/velux/translations/cs.json +1 -1
- homeassistant/components/velux/translations/de.json +1 -1
- homeassistant/components/velux/translations/el.json +0 -1
- homeassistant/components/velux/translations/en-GB.json +1 -1
- homeassistant/components/velux/translations/en.json +1 -1
- homeassistant/components/velux/translations/es.json +1 -1
- homeassistant/components/velux/translations/et.json +1 -1
- homeassistant/components/velux/translations/fi.json +0 -1
- homeassistant/components/velux/translations/fr.json +0 -1
- homeassistant/components/velux/translations/ga.json +0 -1
- homeassistant/components/velux/translations/gl.json +0 -1
- homeassistant/components/velux/translations/hu.json +0 -1
- homeassistant/components/velux/translations/it.json +0 -1
- homeassistant/components/velux/translations/ja.json +0 -1
- homeassistant/components/velux/translations/ko.json +0 -1
- homeassistant/components/velux/translations/lt.json +1 -1
- homeassistant/components/velux/translations/nl.json +0 -1
- homeassistant/components/velux/translations/pt.json +1 -1
- homeassistant/components/velux/translations/ru.json +0 -1
- homeassistant/components/velux/translations/sk.json +1 -1
- homeassistant/components/velux/translations/sv.json +7 -1
- homeassistant/components/velux/translations/tr.json +0 -1
- homeassistant/components/velux/translations/uk.json +0 -1
- homeassistant/components/velux/translations/vi.json +0 -1
- homeassistant/components/velux/translations/zh-Hans.json +1 -1
- homeassistant/components/velux/translations/zh-Hant.json +1 -1
- homeassistant/components/vesync/manifest.json +1 -1
- homeassistant/components/vesync/translations/bg.json +7 -0
- homeassistant/components/vesync/translations/en-GB.json +11 -0
- homeassistant/components/vesync/translations/ga.json +11 -0
- homeassistant/components/vesync/translations/it.json +11 -0
- homeassistant/components/vesync/translations/mk.json +11 -0
- homeassistant/components/vesync/translations/pt.json +11 -0
- homeassistant/components/vesync/translations/sr-Latn.json +2 -2
- homeassistant/components/vesync/translations/sv.json +11 -0
- homeassistant/components/voip/translations/sv.json +1 -1
- homeassistant/components/volvo/translations/ga.json +5 -0
- homeassistant/components/volvo/translations/it.json +5 -0
- homeassistant/components/volvo/translations/mk.json +9 -0
- homeassistant/components/volvo/translations/pt.json +5 -0
- homeassistant/components/volvo/translations/sr-Latn.json +8 -0
- homeassistant/components/volvo/translations/sv.json +37 -1
- homeassistant/components/volvo/translations/vi.json +1 -0
- homeassistant/components/wallbox/translations/bg.json +2 -1
- homeassistant/components/wallbox/translations/sr-Latn.json +1 -1
- homeassistant/components/water_heater/translations/bg.json +5 -0
- homeassistant/components/water_heater/translations/sr-Latn.json +3 -3
- homeassistant/components/watergate/translations/mk.json +15 -0
- homeassistant/components/weather/translations/mk.json +11 -1
- homeassistant/components/weather/translations/sv.json +1 -1
- homeassistant/components/weatherflow/translations/sv.json +1 -1
- homeassistant/components/webostv/translations/mk.json +12 -0
- homeassistant/components/webostv/translations/sv.json +3 -3
- homeassistant/components/weheat/translations/pl.json +1 -0
- homeassistant/components/weheat/translations/sv.json +3 -0
- homeassistant/components/wemo/translations/mk.json +11 -0
- homeassistant/components/wemo/translations/pl.json +10 -0
- homeassistant/components/whirlpool/translations/ca.json +30 -0
- homeassistant/components/whirlpool/translations/mk.json +3 -0
- homeassistant/components/whirlpool/translations/pl.json +3 -0
- homeassistant/components/whirlpool/translations/sv.json +66 -0
- homeassistant/components/wilight/translations/mk.json +25 -0
- homeassistant/components/withings/translations/sv.json +4 -1
- homeassistant/components/wolflink/translations/bg.json +1 -0
- homeassistant/components/wolflink/translations/sr-Latn.json +2 -2
- homeassistant/components/workday/translations/vi.json +5 -0
- homeassistant/components/wyoming/translations/bg.json +2 -1
- homeassistant/components/wyoming/translations/sr-Latn.json +1 -1
- homeassistant/components/xbox/coordinator.py +18 -2
- homeassistant/components/xbox/translations/es.json +1 -1
- homeassistant/components/xbox/translations/mk.json +7 -0
- homeassistant/components/xbox/translations/pt.json +11 -0
- homeassistant/components/xbox/translations/sv.json +47 -2
- homeassistant/components/xiaomi_aqara/translations/sr-Latn.json +3 -0
- homeassistant/components/xiaomi_ble/translations/mk.json +19 -0
- homeassistant/components/xiaomi_miio/translations/bg.json +5 -0
- homeassistant/components/xiaomi_miio/translations/mk.json +114 -0
- homeassistant/components/xiaomi_miio/translations/pt.json +4 -2
- homeassistant/components/xiaomi_miio/translations/ru.json +4 -2
- homeassistant/components/xiaomi_miio/translations/sr-Latn.json +1 -1
- homeassistant/components/xiaomi_miio/translations/sv.json +2 -1
- homeassistant/components/yale/translations/sv.json +3 -0
- homeassistant/components/yale_smart_alarm/translations/bg.json +4 -1
- homeassistant/components/yale_smart_alarm/translations/sr-Latn.json +1 -1
- homeassistant/components/yamaha_musiccast/translations/bg.json +5 -0
- homeassistant/components/yamaha_musiccast/translations/sr-Latn.json +1 -1
- homeassistant/components/yardian/translations/mk.json +11 -0
- homeassistant/components/yeelight/translations/bg.json +5 -0
- homeassistant/components/yeelight/translations/mk.json +1 -0
- homeassistant/components/yeelight/translations/sr-Latn.json +1 -1
- homeassistant/components/yolink/translations/bg.json +4 -2
- homeassistant/components/yolink/translations/mk.json +5 -0
- homeassistant/components/yolink/translations/sr-Latn.json +2 -2
- homeassistant/components/yolink/translations/sv.json +16 -0
- homeassistant/components/zha/config_flow.py +91 -27
- homeassistant/components/zha/manifest.json +1 -1
- homeassistant/components/zha/radio_manager.py +3 -2
- homeassistant/components/zha/translations/bg.json +53 -0
- homeassistant/components/zha/translations/cs.json +39 -0
- homeassistant/components/zha/translations/en-GB.json +71 -0
- homeassistant/components/zha/translations/es.json +39 -0
- homeassistant/components/zha/translations/et.json +39 -0
- homeassistant/components/zha/translations/ga.json +68 -0
- homeassistant/components/zha/translations/it.json +68 -0
- homeassistant/components/zha/translations/lt.json +71 -0
- homeassistant/components/zha/translations/mk.json +39 -0
- homeassistant/components/zha/translations/pl.json +25 -2
- homeassistant/components/zha/translations/pt.json +118 -1
- homeassistant/components/zha/translations/ru.json +40 -0
- homeassistant/components/zha/translations/sr-Latn.json +62 -0
- homeassistant/components/zha/translations/sv.json +56 -0
- homeassistant/components/zha/translations/uk.json +3 -0
- homeassistant/components/zha/translations/vi.json +10 -0
- homeassistant/components/zha/translations/zh-Hans.json +39 -0
- homeassistant/components/zha/translations/zh-Hant.json +39 -0
- homeassistant/components/zwave_js/translations/mk.json +20 -0
- homeassistant/components/zwave_js/translations/pl.json +93 -0
- homeassistant/components/zwave_js/translations/sr-Latn.json +6 -0
- homeassistant/components/zwave_js/translations/sv.json +18 -2
- homeassistant/config_entries.py +9 -7
- homeassistant/const.py +1 -1
- homeassistant/data_entry_flow.py +49 -35
- homeassistant/generated/config_flows.py +1 -1
- homeassistant/generated/integrations.json +2 -2
- homeassistant/package_constraints.txt +3 -3
- {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/METADATA +2 -2
- {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/RECORD +1005 -888
- homeassistant/components/sunricher_dali_center/const.py +0 -5
- homeassistant/components/sunricher_dali_center/translations/it.json +0 -11
- homeassistant/components/sunricher_dali_center/translations/sr-Latn.json +0 -11
- /homeassistant/components/{sunricher_dali_center → sunricher_dali}/quality_scale.yaml +0 -0
- /homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/el.json +0 -0
- /homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/he.json +0 -0
- /homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/nl.json +0 -0
- {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/WHEEL +0 -0
- {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/top_level.txt +0 -0
|
@@ -8,13 +8,14 @@ import collections
|
|
|
8
8
|
from contextlib import suppress
|
|
9
9
|
from enum import StrEnum
|
|
10
10
|
import json
|
|
11
|
+
import logging
|
|
11
12
|
import os
|
|
12
13
|
from typing import Any
|
|
13
14
|
|
|
14
15
|
import voluptuous as vol
|
|
15
16
|
from zha.application.const import RadioType
|
|
16
17
|
import zigpy.backups
|
|
17
|
-
from zigpy.config import CONF_DEVICE, CONF_DEVICE_PATH
|
|
18
|
+
from zigpy.config import CONF_DEVICE, CONF_DEVICE_PATH, CONF_NWK_TX_POWER
|
|
18
19
|
from zigpy.exceptions import CannotWriteNetworkSettings, DestructiveWriteNetworkSettings
|
|
19
20
|
|
|
20
21
|
from homeassistant.components import onboarding, usb
|
|
@@ -39,7 +40,7 @@ from homeassistant.config_entries import (
|
|
|
39
40
|
)
|
|
40
41
|
from homeassistant.const import CONF_NAME
|
|
41
42
|
from homeassistant.core import HomeAssistant, callback
|
|
42
|
-
from homeassistant.data_entry_flow import AbortFlow
|
|
43
|
+
from homeassistant.data_entry_flow import AbortFlow
|
|
43
44
|
from homeassistant.exceptions import HomeAssistantError
|
|
44
45
|
from homeassistant.helpers.hassio import is_hassio
|
|
45
46
|
from homeassistant.helpers.selector import FileSelector, FileSelectorConfig
|
|
@@ -57,6 +58,8 @@ from .radio_manager import (
|
|
|
57
58
|
ZhaRadioManager,
|
|
58
59
|
)
|
|
59
60
|
|
|
61
|
+
_LOGGER = logging.getLogger(__name__)
|
|
62
|
+
|
|
60
63
|
CONF_MANUAL_PATH = "Enter Manually"
|
|
61
64
|
DECONZ_DOMAIN = "deconz"
|
|
62
65
|
|
|
@@ -191,6 +194,13 @@ class BaseZhaFlow(ConfigEntryBaseFlow):
|
|
|
191
194
|
self._hass = None # type: ignore[assignment]
|
|
192
195
|
self._radio_mgr = ZhaRadioManager()
|
|
193
196
|
self._restore_backup_task: asyncio.Task[None] | None = None
|
|
197
|
+
self._reset_old_radio_task: asyncio.Task[None] | None = None
|
|
198
|
+
self._form_network_task: asyncio.Task[None] | None = None
|
|
199
|
+
self._extra_network_config: dict[str, Any] = {}
|
|
200
|
+
|
|
201
|
+
# Progress flow steps cannot abort so we need to store the abort reason and then
|
|
202
|
+
# re-raise it in a dedicated step
|
|
203
|
+
self._progress_error: AbortFlow | None = None
|
|
194
204
|
|
|
195
205
|
@property
|
|
196
206
|
def hass(self) -> HomeAssistant:
|
|
@@ -223,6 +233,13 @@ class BaseZhaFlow(ConfigEntryBaseFlow):
|
|
|
223
233
|
async def _async_create_radio_entry(self) -> ConfigFlowResult:
|
|
224
234
|
"""Create a config entry with the current flow state."""
|
|
225
235
|
|
|
236
|
+
async def async_step_progress_failed(
|
|
237
|
+
self, user_input: dict[str, Any] | None = None
|
|
238
|
+
) -> ConfigFlowResult:
|
|
239
|
+
"""Abort when progress step failed."""
|
|
240
|
+
assert self._progress_error is not None
|
|
241
|
+
raise self._progress_error
|
|
242
|
+
|
|
226
243
|
async def async_step_choose_serial_port(
|
|
227
244
|
self, user_input: dict[str, Any] | None = None
|
|
228
245
|
) -> ConfigFlowResult:
|
|
@@ -463,7 +480,22 @@ class BaseZhaFlow(ConfigEntryBaseFlow):
|
|
|
463
480
|
self._radio_mgr.chosen_backup = self._radio_mgr.backups[0]
|
|
464
481
|
return await self.async_step_maybe_reset_old_radio()
|
|
465
482
|
|
|
466
|
-
|
|
483
|
+
async def _async_reset_old_radio(self, config_entry: ConfigEntry) -> None:
|
|
484
|
+
"""Do the work of resetting the old radio."""
|
|
485
|
+
|
|
486
|
+
# Unload ZHA before connecting to the old adapter
|
|
487
|
+
with suppress(OperationNotAllowed):
|
|
488
|
+
await self.hass.config_entries.async_unload(config_entry.entry_id)
|
|
489
|
+
|
|
490
|
+
# Create a radio manager to connect to the old stick to reset it
|
|
491
|
+
temp_radio_mgr = ZhaRadioManager()
|
|
492
|
+
temp_radio_mgr.hass = self.hass
|
|
493
|
+
temp_radio_mgr.device_path = config_entry.data[CONF_DEVICE][CONF_DEVICE_PATH]
|
|
494
|
+
temp_radio_mgr.device_settings = config_entry.data[CONF_DEVICE]
|
|
495
|
+
temp_radio_mgr.radio_type = RadioType[config_entry.data[CONF_RADIO_TYPE]]
|
|
496
|
+
|
|
497
|
+
await temp_radio_mgr.async_reset_adapter()
|
|
498
|
+
|
|
467
499
|
async def async_step_maybe_reset_old_radio(
|
|
468
500
|
self, user_input: dict[str, Any] | None = None
|
|
469
501
|
) -> ConfigFlowResult:
|
|
@@ -474,30 +506,37 @@ class BaseZhaFlow(ConfigEntryBaseFlow):
|
|
|
474
506
|
DOMAIN, include_ignore=False
|
|
475
507
|
)
|
|
476
508
|
|
|
477
|
-
if config_entries:
|
|
509
|
+
if not config_entries:
|
|
510
|
+
return await self.async_step_restore_backup()
|
|
511
|
+
|
|
512
|
+
if self._reset_old_radio_task is None:
|
|
513
|
+
# This will only ever be called during migration, so there must be an
|
|
514
|
+
# existing config entry
|
|
478
515
|
assert len(config_entries) == 1
|
|
479
516
|
config_entry = config_entries[0]
|
|
480
517
|
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
518
|
+
self._reset_old_radio_task = self.hass.async_create_task(
|
|
519
|
+
self._async_reset_old_radio(config_entry),
|
|
520
|
+
"Reset old radio",
|
|
521
|
+
)
|
|
484
522
|
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
temp_radio_mgr.device_settings = config_entry.data[CONF_DEVICE]
|
|
492
|
-
temp_radio_mgr.radio_type = RadioType[config_entry.data[CONF_RADIO_TYPE]]
|
|
523
|
+
if not self._reset_old_radio_task.done():
|
|
524
|
+
return self.async_show_progress(
|
|
525
|
+
step_id="maybe_reset_old_radio",
|
|
526
|
+
progress_action="maybe_reset_old_radio",
|
|
527
|
+
progress_task=self._reset_old_radio_task,
|
|
528
|
+
)
|
|
493
529
|
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
530
|
+
try:
|
|
531
|
+
await self._reset_old_radio_task
|
|
532
|
+
except HomeAssistantError:
|
|
533
|
+
_LOGGER.exception("Failed to reset old radio during migration")
|
|
534
|
+
# Old adapter not found or cannot connect, show prompt to plug back in
|
|
535
|
+
return self.async_show_progress_done(next_step_id="plug_in_old_radio")
|
|
536
|
+
finally:
|
|
537
|
+
self._reset_old_radio_task = None
|
|
499
538
|
|
|
500
|
-
return
|
|
539
|
+
return self.async_show_progress_done(next_step_id="restore_backup")
|
|
501
540
|
|
|
502
541
|
async def async_step_plug_in_old_radio(
|
|
503
542
|
self, user_input: dict[str, Any] | None = None
|
|
@@ -617,15 +656,35 @@ class BaseZhaFlow(ConfigEntryBaseFlow):
|
|
|
617
656
|
# This step exists only for translations, it does nothing new
|
|
618
657
|
return await self.async_step_form_new_network(user_input)
|
|
619
658
|
|
|
620
|
-
|
|
659
|
+
async def _async_form_new_network(self) -> None:
|
|
660
|
+
"""Do the work of forming a new network."""
|
|
661
|
+
await self._radio_mgr.async_form_network(config=self._extra_network_config)
|
|
662
|
+
# Load the newly formed network settings to get the network info
|
|
663
|
+
await self._radio_mgr.async_load_network_settings()
|
|
664
|
+
|
|
621
665
|
async def async_step_form_new_network(
|
|
622
666
|
self, user_input: dict[str, Any] | None = None
|
|
623
667
|
) -> ConfigFlowResult:
|
|
624
668
|
"""Form a brand-new network."""
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
669
|
+
if self._form_network_task is None:
|
|
670
|
+
self._form_network_task = self.hass.async_create_task(
|
|
671
|
+
self._async_form_new_network(),
|
|
672
|
+
"Form new network",
|
|
673
|
+
)
|
|
674
|
+
|
|
675
|
+
if not self._form_network_task.done():
|
|
676
|
+
return self.async_show_progress(
|
|
677
|
+
step_id="form_new_network",
|
|
678
|
+
progress_action="form_new_network",
|
|
679
|
+
progress_task=self._form_network_task,
|
|
680
|
+
)
|
|
681
|
+
|
|
682
|
+
try:
|
|
683
|
+
await self._form_network_task
|
|
684
|
+
finally:
|
|
685
|
+
self._form_network_task = None
|
|
686
|
+
|
|
687
|
+
return self.async_show_progress_done(next_step_id="create_entry")
|
|
629
688
|
|
|
630
689
|
def _parse_uploaded_backup(
|
|
631
690
|
self, uploaded_file_id: str
|
|
@@ -730,13 +789,15 @@ class BaseZhaFlow(ConfigEntryBaseFlow):
|
|
|
730
789
|
next_step_id="pre_confirm_ezsp_ieee_overwrite"
|
|
731
790
|
)
|
|
732
791
|
except HomeAssistantError:
|
|
792
|
+
_LOGGER.exception("Failed to restore network backup to new radio")
|
|
733
793
|
# User unplugged the new adapter, allow retry
|
|
734
794
|
return self.async_show_progress_done(next_step_id="pre_plug_in_new_radio")
|
|
735
795
|
except CannotWriteNetworkSettings as exc:
|
|
736
|
-
|
|
796
|
+
self._progress_error = AbortFlow(
|
|
737
797
|
reason="cannot_restore_backup",
|
|
738
798
|
description_placeholders={"error": str(exc)},
|
|
739
799
|
)
|
|
800
|
+
return self.async_show_progress_done(next_step_id="progress_failed")
|
|
740
801
|
finally:
|
|
741
802
|
self._restore_backup_task = None
|
|
742
803
|
|
|
@@ -1007,6 +1068,9 @@ class ZhaConfigFlowHandler(BaseZhaFlow, ConfigFlow, domain=DOMAIN):
|
|
|
1007
1068
|
device_path = device_settings[CONF_DEVICE_PATH]
|
|
1008
1069
|
self._flow_strategy = discovery_data.get("flow_strategy")
|
|
1009
1070
|
|
|
1071
|
+
if "tx_power" in discovery_data:
|
|
1072
|
+
self._extra_network_config[CONF_NWK_TX_POWER] = discovery_data["tx_power"]
|
|
1073
|
+
|
|
1010
1074
|
await self._set_unique_id_and_update_ignored_flow(
|
|
1011
1075
|
unique_id=f"{name}_{radio_type.name}_{device_path}",
|
|
1012
1076
|
device_path=device_path,
|
|
@@ -78,6 +78,7 @@ HARDWARE_DISCOVERY_SCHEMA = vol.Schema(
|
|
|
78
78
|
vol.Required("port"): DEVICE_SCHEMA,
|
|
79
79
|
vol.Required("radio_type"): str,
|
|
80
80
|
vol.Optional("flow_strategy"): vol.All(str, vol.Coerce(ZigbeeFlowStrategy)),
|
|
81
|
+
vol.Optional("tx_power"): vol.All(vol.Coerce(int), vol.Range(min=0, max=10)),
|
|
81
82
|
}
|
|
82
83
|
)
|
|
83
84
|
|
|
@@ -322,7 +323,7 @@ class ZhaRadioManager:
|
|
|
322
323
|
|
|
323
324
|
return backup
|
|
324
325
|
|
|
325
|
-
async def async_form_network(self) -> None:
|
|
326
|
+
async def async_form_network(self, config: dict[str, Any] | None) -> None:
|
|
326
327
|
"""Form a brand-new network."""
|
|
327
328
|
|
|
328
329
|
# When forming a new network, we delete the ZHA database to prevent old devices
|
|
@@ -331,7 +332,7 @@ class ZhaRadioManager:
|
|
|
331
332
|
await self.hass.async_add_executor_job(os.remove, self.zigpy_database_path)
|
|
332
333
|
|
|
333
334
|
async with self.create_zigpy_app() as app:
|
|
334
|
-
await app.form_network()
|
|
335
|
+
await app.form_network(config=config)
|
|
335
336
|
|
|
336
337
|
async def async_reset_adapter(self) -> None:
|
|
337
338
|
"""Reset the current adapter."""
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435"
|
|
11
11
|
},
|
|
12
12
|
"flow_title": "{name}",
|
|
13
|
+
"progress": {
|
|
14
|
+
"form_new_network": "\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 Zigbee \u043c\u0440\u0435\u0436\u0430. \u0412 \u0440\u0430\u043c\u043a\u0438\u0442\u0435 \u043d\u0430 \u0442\u043e\u0437\u0438 \u043f\u0440\u043e\u0446\u0435\u0441 \u0441\u043a\u0430\u043d\u0438\u0440\u0430\u043c\u0435 \u0437\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u0435\u043d \u043c\u0440\u0435\u0436\u043e\u0432 \u043a\u0430\u043d\u0430\u043b, \u043a\u043e\u0435\u0442\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u043e\u0442\u043d\u0435\u043c\u0435 \u043c\u0438\u043d\u0443\u0442\u0430.",
|
|
15
|
+
"restore_backup": "\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0440\u0435\u0436\u043e\u0432\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043d\u043e\u0432\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440.\n\n\u0422\u043e\u0432\u0430 \u0449\u0435 \u043e\u0442\u043d\u0435\u043c\u0435 \u043c\u0438\u043d\u0443\u0442\u0430."
|
|
16
|
+
},
|
|
13
17
|
"step": {
|
|
14
18
|
"choose_automatic_backup": {
|
|
15
19
|
"data": {
|
|
@@ -58,6 +62,9 @@
|
|
|
58
62
|
"confirm": {
|
|
59
63
|
"description": "\u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 \u0434\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u0435 {name}?"
|
|
60
64
|
},
|
|
65
|
+
"form_new_network": {
|
|
66
|
+
"title": "\u0424\u043e\u0440\u043c\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 \u043c\u0440\u0435\u0436\u0430"
|
|
67
|
+
},
|
|
61
68
|
"manual_port_config": {
|
|
62
69
|
"data_description": {
|
|
63
70
|
"baudrate": "\u0421\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435, \u043a\u043e\u044f\u0442\u043e \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u043f\u0440\u0438 \u043a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u044a\u0441 \u0441\u0435\u0440\u0438\u0439\u043d\u0438\u044f \u043f\u043e\u0440\u0442, \u043e\u0431\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u043e 115200 \u0438\u043b\u0438 460800",
|
|
@@ -68,6 +75,24 @@
|
|
|
68
75
|
"maybe_reset_old_radio": {
|
|
69
76
|
"title": "\u041d\u0443\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
|
|
70
77
|
},
|
|
78
|
+
"plug_in_new_radio": {
|
|
79
|
+
"description": "\u0412\u0430\u0448\u0438\u044f\u0442 \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 `{device_path}` \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d.\n\u041c\u043e\u043b\u044f, \u0432\u043a\u043b\u044e\u0447\u0435\u0442\u0435 \u0433\u043e \u0438 \u0449\u0440\u0430\u043a\u043d\u0435\u0442\u0435 \u0432\u044a\u0440\u0445\u0443 \u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435, \u0437\u0430 \u0434\u0430 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435.",
|
|
80
|
+
"title": "\u041d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
|
|
81
|
+
},
|
|
82
|
+
"plug_in_old_radio": {
|
|
83
|
+
"menu_option_descriptions": {
|
|
84
|
+
"retry_old_radio": "\u041e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0441\u044a\u0441 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440, \u0437\u0430 \u0434\u0430 \u0433\u043e \u043d\u0443\u043b\u0438\u0440\u0430\u0442\u0435 \u043a\u0430\u0442\u043e \u0447\u0430\u0441\u0442 \u043e\u0442 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430.",
|
|
85
|
+
"skip_reset_old_radio": "\u041f\u0440\u043e\u043f\u0443\u0441\u043d\u0435\u0442\u0435 \u043d\u0443\u043b\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u0438 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0435\u0442\u0435 \u0441 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430."
|
|
86
|
+
},
|
|
87
|
+
"menu_options": {
|
|
88
|
+
"retry_old_radio": "\u041f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0435",
|
|
89
|
+
"skip_reset_old_radio": "\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u043d\u0443\u043b\u0438\u0440\u0430\u043d\u0435\u0442\u043e"
|
|
90
|
+
},
|
|
91
|
+
"title": "\u0421\u0442\u0430\u0440\u0438\u044f\u0442 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d"
|
|
92
|
+
},
|
|
93
|
+
"restore_backup": {
|
|
94
|
+
"title": "\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0440\u0435\u0436\u0430\u0442\u0430 \u043a\u044a\u043c \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
|
|
95
|
+
},
|
|
71
96
|
"upload_manual_backup": {
|
|
72
97
|
"data": {
|
|
73
98
|
"uploaded_backup_file": "\u041a\u0430\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b"
|
|
@@ -453,6 +478,10 @@
|
|
|
453
478
|
"cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435"
|
|
454
479
|
},
|
|
455
480
|
"flow_title": "{name}",
|
|
481
|
+
"progress": {
|
|
482
|
+
"form_new_network": "\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 Zigbee \u043c\u0440\u0435\u0436\u0430. \u0412 \u0440\u0430\u043c\u043a\u0438\u0442\u0435 \u043d\u0430 \u0442\u043e\u0437\u0438 \u043f\u0440\u043e\u0446\u0435\u0441 \u0441\u043a\u0430\u043d\u0438\u0440\u0430\u043c\u0435 \u0437\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u0435\u043d \u043c\u0440\u0435\u0436\u043e\u0432 \u043a\u0430\u043d\u0430\u043b, \u043a\u043e\u0435\u0442\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u043e\u0442\u043d\u0435\u043c\u0435 \u043c\u0438\u043d\u0443\u0442\u0430.",
|
|
483
|
+
"restore_backup": "\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0440\u0435\u0436\u043e\u0432\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043d\u043e\u0432\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440.\n\n\u0422\u043e\u0432\u0430 \u0449\u0435 \u043e\u0442\u043d\u0435\u043c\u0435 \u043c\u0438\u043d\u0443\u0442\u0430."
|
|
484
|
+
},
|
|
456
485
|
"step": {
|
|
457
486
|
"choose_automatic_backup": {
|
|
458
487
|
"data": {
|
|
@@ -486,9 +515,30 @@
|
|
|
486
515
|
},
|
|
487
516
|
"title": "\u041c\u0438\u0433\u0440\u0438\u0440\u0430\u043d\u0435 \u043a\u044a\u043c \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
|
|
488
517
|
},
|
|
518
|
+
"form_new_network": {
|
|
519
|
+
"title": "\u0424\u043e\u0440\u043c\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 \u043c\u0440\u0435\u0436\u0430"
|
|
520
|
+
},
|
|
489
521
|
"init": {
|
|
490
522
|
"title": "\u041f\u0440\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 ZHA"
|
|
491
523
|
},
|
|
524
|
+
"maybe_reset_old_radio": {
|
|
525
|
+
"title": "\u041d\u0443\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
|
|
526
|
+
},
|
|
527
|
+
"plug_in_new_radio": {
|
|
528
|
+
"description": "\u0412\u0430\u0448\u0438\u044f\u0442 \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 `{device_path}` \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d.\n\u041c\u043e\u043b\u044f, \u0432\u043a\u043b\u044e\u0447\u0435\u0442\u0435 \u0433\u043e \u0438 \u0449\u0440\u0430\u043a\u043d\u0435\u0442\u0435 \u0432\u044a\u0440\u0445\u0443 \u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435, \u0437\u0430 \u0434\u0430 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435.",
|
|
529
|
+
"title": "\u041d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
|
|
530
|
+
},
|
|
531
|
+
"plug_in_old_radio": {
|
|
532
|
+
"menu_option_descriptions": {
|
|
533
|
+
"retry_old_radio": "\u041e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0441\u044a\u0441 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440, \u0437\u0430 \u0434\u0430 \u0433\u043e \u043d\u0443\u043b\u0438\u0440\u0430\u0442\u0435 \u043a\u0430\u0442\u043e \u0447\u0430\u0441\u0442 \u043e\u0442 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430.",
|
|
534
|
+
"skip_reset_old_radio": "\u041f\u0440\u043e\u043f\u0443\u0441\u043d\u0435\u0442\u0435 \u043d\u0443\u043b\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u0438 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0435\u0442\u0435 \u0441 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430."
|
|
535
|
+
},
|
|
536
|
+
"menu_options": {
|
|
537
|
+
"retry_old_radio": "\u041f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0435",
|
|
538
|
+
"skip_reset_old_radio": "\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u043d\u0443\u043b\u0438\u0440\u0430\u043d\u0435\u0442\u043e"
|
|
539
|
+
},
|
|
540
|
+
"title": "\u0421\u0442\u0430\u0440\u0438\u044f\u0442 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d"
|
|
541
|
+
},
|
|
492
542
|
"prompt_migrate_or_reconfigure": {
|
|
493
543
|
"menu_option_descriptions": {
|
|
494
544
|
"intent_migrate": "\u0422\u043e\u0432\u0430 \u0449\u0435 \u0432\u0438 \u043f\u043e\u043c\u043e\u0433\u043d\u0435 \u0434\u0430 \u043c\u0438\u0433\u0440\u0438\u0440\u0430\u0442\u0435 \u0432\u0430\u0448\u0430\u0442\u0430 Zigbee \u043c\u0440\u0435\u0436\u0430 \u043e\u0442 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043a\u044a\u043c \u043d\u043e\u0432.",
|
|
@@ -496,6 +546,9 @@
|
|
|
496
546
|
},
|
|
497
547
|
"title": "\u041c\u0438\u0433\u0440\u0438\u0440\u0430\u043d\u0435 \u0438\u043b\u0438 \u043f\u0440\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0435"
|
|
498
548
|
},
|
|
549
|
+
"restore_backup": {
|
|
550
|
+
"title": "\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0440\u0435\u0436\u0430\u0442\u0430 \u043a\u044a\u043c \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
|
|
551
|
+
},
|
|
499
552
|
"upload_manual_backup": {
|
|
500
553
|
"data": {
|
|
501
554
|
"uploaded_backup_file": "\u041a\u0430\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b"
|
|
@@ -16,6 +16,11 @@
|
|
|
16
16
|
"invalid_backup_json": "Neplatn\u00fd z\u00e1lo\u017en\u00ed JSON"
|
|
17
17
|
},
|
|
18
18
|
"flow_title": "{name}",
|
|
19
|
+
"progress": {
|
|
20
|
+
"form_new_network": "Vytvo\u0159en\u00ed nov\u00e9 s\u00edt\u011b Zigbee.\n \nV r\u00e1mci tohoto procesu hled\u00e1me voln\u00fd s\u00ed\u0165ov\u00fd kan\u00e1l, co\u017e m\u016f\u017ee trvat minutu.",
|
|
21
|
+
"maybe_reset_old_radio": "Resetov\u00e1n\u00ed star\u00e9ho adapt\u00e9ru.\n \nV\u00e1\u0161 star\u00fd adapt\u00e9r byl z\u00e1lohov\u00e1n a prob\u00edh\u00e1 obnoven\u00ed tov\u00e1rn\u00edho nastaven\u00ed.",
|
|
22
|
+
"restore_backup": "Obnoven\u00ed s\u00ed\u0165ov\u00fdch nastaven\u00ed do nov\u00e9ho adapt\u00e9ru.\n \nTo bude chv\u00edli trvat."
|
|
23
|
+
},
|
|
19
24
|
"step": {
|
|
20
25
|
"choose_automatic_backup": {
|
|
21
26
|
"data": {
|
|
@@ -76,6 +81,16 @@
|
|
|
76
81
|
"confirm": {
|
|
77
82
|
"description": "Chcete nastavit {name}?"
|
|
78
83
|
},
|
|
84
|
+
"confirm_ezsp_ieee_overwrite": {
|
|
85
|
+
"data": {
|
|
86
|
+
"overwrite_coordinator_ieee": "Trvale nahradit IEEE adresu adapt\u00e9ru"
|
|
87
|
+
},
|
|
88
|
+
"description": "Va\u0161e z\u00e1loha m\u00e1 jinou adresu IEEE ne\u017e v\u00e1\u0161 adapt\u00e9r. Aby s\u00ed\u0165 fungovala spr\u00e1vn\u011b, m\u011bla by b\u00fdt zm\u011bn\u011bna tak\u00e9 adresa IEEE va\u0161eho adapt\u00e9ru.\n\nJedn\u00e1 se o trvalou operaci.",
|
|
89
|
+
"title": "P\u0159epsat adresu IEEE adapt\u00e9ru"
|
|
90
|
+
},
|
|
91
|
+
"form_new_network": {
|
|
92
|
+
"title": "Vytv\u00e1\u0159en\u00ed nov\u00e9 s\u00edt\u011b"
|
|
93
|
+
},
|
|
79
94
|
"manual_pick_radio_type": {
|
|
80
95
|
"data": {
|
|
81
96
|
"radio_type": "Typ adapt\u00e9ru"
|
|
@@ -116,6 +131,9 @@
|
|
|
116
131
|
},
|
|
117
132
|
"title": "Star\u00fd adapt\u00e9r nebyl nalezen"
|
|
118
133
|
},
|
|
134
|
+
"restore_backup": {
|
|
135
|
+
"title": "Obnovov\u00e1n\u00ed s\u00edt\u011b na nov\u00fd adapt\u00e9r"
|
|
136
|
+
},
|
|
119
137
|
"upload_manual_backup": {
|
|
120
138
|
"data": {
|
|
121
139
|
"uploaded_backup_file": "Nahr\u00e1t soubor"
|
|
@@ -1874,6 +1892,11 @@
|
|
|
1874
1892
|
"invalid_backup_json": "Neplatn\u00fd z\u00e1lo\u017en\u00ed JSON"
|
|
1875
1893
|
},
|
|
1876
1894
|
"flow_title": "{name}",
|
|
1895
|
+
"progress": {
|
|
1896
|
+
"form_new_network": "Vytvo\u0159en\u00ed nov\u00e9 s\u00edt\u011b Zigbee.\n \nV r\u00e1mci tohoto procesu hled\u00e1me voln\u00fd s\u00ed\u0165ov\u00fd kan\u00e1l, co\u017e m\u016f\u017ee trvat minutu.",
|
|
1897
|
+
"maybe_reset_old_radio": "Resetov\u00e1n\u00ed star\u00e9ho adapt\u00e9ru.\n \nV\u00e1\u0161 star\u00fd adapt\u00e9r byl z\u00e1lohov\u00e1n a prob\u00edh\u00e1 obnoven\u00ed tov\u00e1rn\u00edho nastaven\u00ed.",
|
|
1898
|
+
"restore_backup": "Obnoven\u00ed s\u00ed\u0165ov\u00fdch nastaven\u00ed do nov\u00e9ho adapt\u00e9ru.\n \nTo bude chv\u00edli trvat."
|
|
1899
|
+
},
|
|
1877
1900
|
"step": {
|
|
1878
1901
|
"choose_automatic_backup": {
|
|
1879
1902
|
"data": {
|
|
@@ -1919,6 +1942,16 @@
|
|
|
1919
1942
|
"description": "Vyberte s\u00e9riov\u00fd port pro v\u00e1\u0161 adapt\u00e9r Zigbee.",
|
|
1920
1943
|
"title": "Vybrat s\u00e9riov\u00fd port"
|
|
1921
1944
|
},
|
|
1945
|
+
"confirm_ezsp_ieee_overwrite": {
|
|
1946
|
+
"data": {
|
|
1947
|
+
"overwrite_coordinator_ieee": "Trvale nahradit IEEE adresu adapt\u00e9ru"
|
|
1948
|
+
},
|
|
1949
|
+
"description": "Va\u0161e z\u00e1loha m\u00e1 jinou adresu IEEE ne\u017e v\u00e1\u0161 adapt\u00e9r. Aby s\u00ed\u0165 fungovala spr\u00e1vn\u011b, m\u011bla by b\u00fdt zm\u011bn\u011bna tak\u00e9 adresa IEEE va\u0161eho adapt\u00e9ru.\n\nJedn\u00e1 se o trvalou operaci.",
|
|
1950
|
+
"title": "P\u0159epsat adresu IEEE adapt\u00e9ru"
|
|
1951
|
+
},
|
|
1952
|
+
"form_new_network": {
|
|
1953
|
+
"title": "Vytv\u00e1\u0159en\u00ed nov\u00e9 s\u00edt\u011b"
|
|
1954
|
+
},
|
|
1922
1955
|
"init": {
|
|
1923
1956
|
"description": "Bude provedena z\u00e1loha a ZHA bude zastavena. Chcete pokra\u010dovat?",
|
|
1924
1957
|
"title": "P\u0159enastavit ZHA"
|
|
@@ -1943,6 +1976,9 @@
|
|
|
1943
1976
|
"description": "ZHA nedok\u00e1zala automaticky detekovat nastaven\u00ed s\u00e9riov\u00e9ho portu pro v\u00e1\u0161 adapt\u00e9r. Obvykle se jedn\u00e1 o probl\u00e9m s firmwarem nebo opr\u00e1vn\u011bn\u00edmi.\n \nPokud pou\u017e\u00edv\u00e1te firmware s nestandardn\u00edm nastaven\u00edm, zadejte nastaven\u00ed s\u00e9riov\u00e9ho portu.",
|
|
1944
1977
|
"title": "Nastaven\u00ed s\u00e9riov\u00e9ho portu"
|
|
1945
1978
|
},
|
|
1979
|
+
"maybe_reset_old_radio": {
|
|
1980
|
+
"title": "Resetov\u00e1n\u00ed star\u00e9ho adapt\u00e9ru"
|
|
1981
|
+
},
|
|
1946
1982
|
"plug_in_new_radio": {
|
|
1947
1983
|
"description": "V\u00e1\u0161 nov\u00fd adapt\u00e9r na adrese \"{device_path}\" nebyl nalezen.\nZapojte jej a klepn\u011bte na tla\u010d\u00edtko Odeslat pro pokra\u010dov\u00e1n\u00ed.",
|
|
1948
1984
|
"title": "Nov\u00fd adapt\u00e9r nebyl nalezen"
|
|
@@ -1971,6 +2007,9 @@
|
|
|
1971
2007
|
},
|
|
1972
2008
|
"title": "Migrovat nebo p\u0159enastavit"
|
|
1973
2009
|
},
|
|
2010
|
+
"restore_backup": {
|
|
2011
|
+
"title": "Obnovov\u00e1n\u00ed s\u00edt\u011b na nov\u00fd adapt\u00e9r"
|
|
2012
|
+
},
|
|
1974
2013
|
"upload_manual_backup": {
|
|
1975
2014
|
"data": {
|
|
1976
2015
|
"uploaded_backup_file": "Nahr\u00e1t soubor"
|
|
@@ -16,6 +16,11 @@
|
|
|
16
16
|
"invalid_backup_json": "Invalid backup JSON"
|
|
17
17
|
},
|
|
18
18
|
"flow_title": "{name}",
|
|
19
|
+
"progress": {
|
|
20
|
+
"form_new_network": "Forming a new Zigbee network.\n\nWe scan for a clear network channel as part of this process, this can take a minute.",
|
|
21
|
+
"maybe_reset_old_radio": "Resetting old adapter.\n\nYour old adapter has been backed up and is being factory reset.",
|
|
22
|
+
"restore_backup": "Restoring network settings to new adapter.\n\nThis will take a minute."
|
|
23
|
+
},
|
|
19
24
|
"step": {
|
|
20
25
|
"choose_automatic_backup": {
|
|
21
26
|
"data": {
|
|
@@ -76,6 +81,16 @@
|
|
|
76
81
|
"confirm": {
|
|
77
82
|
"description": "Do you want to set up {name}?"
|
|
78
83
|
},
|
|
84
|
+
"confirm_ezsp_ieee_overwrite": {
|
|
85
|
+
"data": {
|
|
86
|
+
"overwrite_coordinator_ieee": "Permanently replace the adapter IEEE address"
|
|
87
|
+
},
|
|
88
|
+
"description": "Your backup has a different IEEE address than your adapter. For your network to function properly, the IEEE address of your adapter should also be changed.\n\nThis is a permanent operation.",
|
|
89
|
+
"title": "Overwrite adapter IEEE address"
|
|
90
|
+
},
|
|
91
|
+
"form_new_network": {
|
|
92
|
+
"title": "Forming new network"
|
|
93
|
+
},
|
|
79
94
|
"manual_pick_radio_type": {
|
|
80
95
|
"data": {
|
|
81
96
|
"radio_type": "Adapter type"
|
|
@@ -100,6 +115,25 @@
|
|
|
100
115
|
"maybe_reset_old_radio": {
|
|
101
116
|
"title": "Resetting old adapter"
|
|
102
117
|
},
|
|
118
|
+
"plug_in_new_radio": {
|
|
119
|
+
"description": "Your new adapter at `{device_path}` was not found.\nPlease plug it in and click Submit to continue.",
|
|
120
|
+
"title": "New adapter not found"
|
|
121
|
+
},
|
|
122
|
+
"plug_in_old_radio": {
|
|
123
|
+
"description": "Your old adapter at `{device_path}` was not found. You can retry after plugging it back in, or skip resetting the old adapter.\n\n**Warning:** If you skip resetting the old adapter, ensure it remains permanently disconnected. Plugging it back in later will cause network issues.",
|
|
124
|
+
"menu_option_descriptions": {
|
|
125
|
+
"retry_old_radio": "Retry connecting to the old adapter to reset it as part of the migration.",
|
|
126
|
+
"skip_reset_old_radio": "Skip resetting the old adapter and continue with the migration."
|
|
127
|
+
},
|
|
128
|
+
"menu_options": {
|
|
129
|
+
"retry_old_radio": "Retry",
|
|
130
|
+
"skip_reset_old_radio": "Skip reset"
|
|
131
|
+
},
|
|
132
|
+
"title": "Old adapter not found"
|
|
133
|
+
},
|
|
134
|
+
"restore_backup": {
|
|
135
|
+
"title": "Restoring network to new adapter"
|
|
136
|
+
},
|
|
103
137
|
"upload_manual_backup": {
|
|
104
138
|
"data": {
|
|
105
139
|
"uploaded_backup_file": "Upload a file"
|
|
@@ -1858,6 +1892,11 @@
|
|
|
1858
1892
|
"invalid_backup_json": "Invalid backup JSON"
|
|
1859
1893
|
},
|
|
1860
1894
|
"flow_title": "{name}",
|
|
1895
|
+
"progress": {
|
|
1896
|
+
"form_new_network": "Forming a new Zigbee network.\n\nWe scan for a clear network channel as part of this process, this can take a minute.",
|
|
1897
|
+
"maybe_reset_old_radio": "Resetting old adapter.\n\nYour old adapter has been backed up and is being factory reset.",
|
|
1898
|
+
"restore_backup": "Restoring network settings to new adapter.\n\nThis will take a minute."
|
|
1899
|
+
},
|
|
1861
1900
|
"step": {
|
|
1862
1901
|
"choose_automatic_backup": {
|
|
1863
1902
|
"data": {
|
|
@@ -1903,6 +1942,16 @@
|
|
|
1903
1942
|
"description": "Select the serial port for your Zigbee adapter",
|
|
1904
1943
|
"title": "Select a serial port"
|
|
1905
1944
|
},
|
|
1945
|
+
"confirm_ezsp_ieee_overwrite": {
|
|
1946
|
+
"data": {
|
|
1947
|
+
"overwrite_coordinator_ieee": "Permanently replace the adapter IEEE address"
|
|
1948
|
+
},
|
|
1949
|
+
"description": "Your backup has a different IEEE address than your adapter. For your network to function properly, the IEEE address of your adapter should also be changed.\n\nThis is a permanent operation.",
|
|
1950
|
+
"title": "Overwrite adapter IEEE address"
|
|
1951
|
+
},
|
|
1952
|
+
"form_new_network": {
|
|
1953
|
+
"title": "Forming new network"
|
|
1954
|
+
},
|
|
1906
1955
|
"init": {
|
|
1907
1956
|
"description": "A backup will be performed and ZHA will be stopped. Do you wish to continue?",
|
|
1908
1957
|
"title": "Reconfigure ZHA"
|
|
@@ -1927,6 +1976,25 @@
|
|
|
1927
1976
|
"description": "ZHA was not able to automatically detect serial port settings for your adapter. This usually is an issue with the firmware or permissions.\n\nIf you are using firmware with non-standard settings, enter the serial port settings",
|
|
1928
1977
|
"title": "Serial port settings"
|
|
1929
1978
|
},
|
|
1979
|
+
"maybe_reset_old_radio": {
|
|
1980
|
+
"title": "Resetting old adapter"
|
|
1981
|
+
},
|
|
1982
|
+
"plug_in_new_radio": {
|
|
1983
|
+
"description": "Your new adapter at `{device_path}` was not found.\nPlease plug it in and click Submit to continue.",
|
|
1984
|
+
"title": "New adapter not found"
|
|
1985
|
+
},
|
|
1986
|
+
"plug_in_old_radio": {
|
|
1987
|
+
"description": "Your old adapter at `{device_path}` was not found. You can retry after plugging it back in, or skip resetting the old adapter.\n\n**Warning:** If you skip resetting the old adapter, ensure it remains permanently disconnected. Plugging it back in later will cause network issues.",
|
|
1988
|
+
"menu_option_descriptions": {
|
|
1989
|
+
"retry_old_radio": "Retry connecting to the old adapter to reset it as part of the migration.",
|
|
1990
|
+
"skip_reset_old_radio": "Skip resetting the old adapter and continue with the migration."
|
|
1991
|
+
},
|
|
1992
|
+
"menu_options": {
|
|
1993
|
+
"retry_old_radio": "Retry",
|
|
1994
|
+
"skip_reset_old_radio": "Skip reset"
|
|
1995
|
+
},
|
|
1996
|
+
"title": "Old adapter not found"
|
|
1997
|
+
},
|
|
1930
1998
|
"prompt_migrate_or_reconfigure": {
|
|
1931
1999
|
"description": "Are you migrating to a new adapter or re-configuring the current adapter?",
|
|
1932
2000
|
"menu_option_descriptions": {
|
|
@@ -1939,6 +2007,9 @@
|
|
|
1939
2007
|
},
|
|
1940
2008
|
"title": "Migrate or re-configure"
|
|
1941
2009
|
},
|
|
2010
|
+
"restore_backup": {
|
|
2011
|
+
"title": "Restoring network to new adapter"
|
|
2012
|
+
},
|
|
1942
2013
|
"upload_manual_backup": {
|
|
1943
2014
|
"data": {
|
|
1944
2015
|
"uploaded_backup_file": "Upload a file"
|
|
@@ -16,6 +16,11 @@
|
|
|
16
16
|
"invalid_backup_json": "Copia de seguridad JSON no v\u00e1lida"
|
|
17
17
|
},
|
|
18
18
|
"flow_title": "{name}",
|
|
19
|
+
"progress": {
|
|
20
|
+
"form_new_network": "Creando una nueva red Zigbee. \n \nComo parte de este proceso, buscamos un canal de red libre; esto puede tardar un minuto.",
|
|
21
|
+
"maybe_reset_old_radio": "Restableciendo el adaptador antiguo. \n \nSe ha realizado una copia de seguridad de tu adaptador antiguo y se est\u00e1 restableciendo a la configuraci\u00f3n de f\u00e1brica.",
|
|
22
|
+
"restore_backup": "Restaurando la configuraci\u00f3n de red en el nuevo adaptador.\n\nEsto tardar\u00e1 un minuto."
|
|
23
|
+
},
|
|
19
24
|
"step": {
|
|
20
25
|
"choose_automatic_backup": {
|
|
21
26
|
"data": {
|
|
@@ -76,6 +81,16 @@
|
|
|
76
81
|
"confirm": {
|
|
77
82
|
"description": "\u00bfQuieres configurar {name} ?"
|
|
78
83
|
},
|
|
84
|
+
"confirm_ezsp_ieee_overwrite": {
|
|
85
|
+
"data": {
|
|
86
|
+
"overwrite_coordinator_ieee": "Reemplazar permanentemente la direcci\u00f3n IEEE del adaptador"
|
|
87
|
+
},
|
|
88
|
+
"description": "Tu copia de seguridad tiene una direcci\u00f3n IEEE diferente a la de tu adaptador. Para que tu red funcione correctamente, tambi\u00e9n debes cambiar la direcci\u00f3n IEEE de tu adaptador. \n \nEsta operaci\u00f3n es permanente.",
|
|
89
|
+
"title": "Sobrescribir la direcci\u00f3n IEEE del adaptador"
|
|
90
|
+
},
|
|
91
|
+
"form_new_network": {
|
|
92
|
+
"title": "Formar una nueva red"
|
|
93
|
+
},
|
|
79
94
|
"manual_pick_radio_type": {
|
|
80
95
|
"data": {
|
|
81
96
|
"radio_type": "Tipo de adaptador"
|
|
@@ -116,6 +131,9 @@
|
|
|
116
131
|
},
|
|
117
132
|
"title": "No se encontr\u00f3 el adaptador antiguo"
|
|
118
133
|
},
|
|
134
|
+
"restore_backup": {
|
|
135
|
+
"title": "Restauraci\u00f3n de la red al nuevo adaptador"
|
|
136
|
+
},
|
|
119
137
|
"upload_manual_backup": {
|
|
120
138
|
"data": {
|
|
121
139
|
"uploaded_backup_file": "Subir un archivo"
|
|
@@ -1874,6 +1892,11 @@
|
|
|
1874
1892
|
"invalid_backup_json": "Copia de seguridad JSON no v\u00e1lida"
|
|
1875
1893
|
},
|
|
1876
1894
|
"flow_title": "{name}",
|
|
1895
|
+
"progress": {
|
|
1896
|
+
"form_new_network": "Creando una nueva red Zigbee. \n \nComo parte de este proceso, buscamos un canal de red libre; esto puede tardar un minuto.",
|
|
1897
|
+
"maybe_reset_old_radio": "Restableciendo el adaptador antiguo. \n \nSe ha realizado una copia de seguridad de tu adaptador antiguo y se est\u00e1 restableciendo a la configuraci\u00f3n de f\u00e1brica.",
|
|
1898
|
+
"restore_backup": "Restaurando la configuraci\u00f3n de red en el nuevo adaptador.\n\nEsto tardar\u00e1 un minuto."
|
|
1899
|
+
},
|
|
1877
1900
|
"step": {
|
|
1878
1901
|
"choose_automatic_backup": {
|
|
1879
1902
|
"data": {
|
|
@@ -1919,6 +1942,16 @@
|
|
|
1919
1942
|
"description": "Selecciona el puerto serie para tu adaptador Zigbee",
|
|
1920
1943
|
"title": "Seleccionar un puerto serie"
|
|
1921
1944
|
},
|
|
1945
|
+
"confirm_ezsp_ieee_overwrite": {
|
|
1946
|
+
"data": {
|
|
1947
|
+
"overwrite_coordinator_ieee": "Reemplazar permanentemente la direcci\u00f3n IEEE del adaptador"
|
|
1948
|
+
},
|
|
1949
|
+
"description": "Tu copia de seguridad tiene una direcci\u00f3n IEEE diferente a la de tu adaptador. Para que tu red funcione correctamente, tambi\u00e9n debes cambiar la direcci\u00f3n IEEE de tu adaptador. \n \nEsta operaci\u00f3n es permanente.",
|
|
1950
|
+
"title": "Sobrescribir la direcci\u00f3n IEEE del adaptador"
|
|
1951
|
+
},
|
|
1952
|
+
"form_new_network": {
|
|
1953
|
+
"title": "Formar una nueva red"
|
|
1954
|
+
},
|
|
1922
1955
|
"init": {
|
|
1923
1956
|
"description": "Se realizar\u00e1 una copia de seguridad y se detendr\u00e1 ZHA. \u00bfQuieres continuar?",
|
|
1924
1957
|
"title": "Volver a configurar ZHA"
|
|
@@ -1943,6 +1976,9 @@
|
|
|
1943
1976
|
"description": "ZHA no pudo detectar autom\u00e1ticamente la configuraci\u00f3n del puerto serie de tu adaptador. Esto suele deberse a un problema con el firmware o los permisos. \n \nSi utilizas un firmware con una configuraci\u00f3n no est\u00e1ndar, introduce la configuraci\u00f3n del puerto serie.",
|
|
1944
1977
|
"title": "Configuraci\u00f3n del puerto serie"
|
|
1945
1978
|
},
|
|
1979
|
+
"maybe_reset_old_radio": {
|
|
1980
|
+
"title": "Restablecer el adaptador antiguo"
|
|
1981
|
+
},
|
|
1946
1982
|
"plug_in_new_radio": {
|
|
1947
1983
|
"description": "No se encontr\u00f3 el nuevo adaptador en `{device_path}`. Por favor, con\u00e9ctalo y haz clic en Enviar para continuar.",
|
|
1948
1984
|
"title": "No se encontr\u00f3 el nuevo adaptador."
|
|
@@ -1971,6 +2007,9 @@
|
|
|
1971
2007
|
},
|
|
1972
2008
|
"title": "Migrar o volver a configurar"
|
|
1973
2009
|
},
|
|
2010
|
+
"restore_backup": {
|
|
2011
|
+
"title": "Restauraci\u00f3n de la red al nuevo adaptador"
|
|
2012
|
+
},
|
|
1974
2013
|
"upload_manual_backup": {
|
|
1975
2014
|
"data": {
|
|
1976
2015
|
"uploaded_backup_file": "Subir un archivo"
|