homeassistant 2025.12.0__py3-none-any.whl → 2025.12.0b1__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/permissions/events.py +0 -2
- homeassistant/components/acaia/translations/pl.json +1 -23
- homeassistant/components/accuweather/translations/tr.json +0 -19
- homeassistant/components/ai_task/translations/tr.json +0 -17
- homeassistant/components/airly/translations/sr-Latn.json +0 -7
- homeassistant/components/airnow/translations/sr-Latn.json +0 -3
- homeassistant/components/airobot/translations/bg.json +2 -1
- homeassistant/components/airobot/translations/cs.json +1 -1
- homeassistant/components/airobot/translations/de.json +1 -1
- homeassistant/components/airobot/translations/el.json +1 -4
- homeassistant/components/airobot/translations/en-GB.json +1 -1
- homeassistant/components/airobot/translations/en.json +1 -1
- homeassistant/components/airobot/translations/et.json +1 -1
- homeassistant/components/airobot/translations/lt.json +1 -1
- homeassistant/components/airobot/translations/nl.json +2 -1
- homeassistant/components/airobot/translations/pt.json +5 -1
- homeassistant/components/airobot/translations/sk.json +1 -1
- homeassistant/components/airobot/translations/sv.json +2 -1
- homeassistant/components/airobot/translations/tr.json +5 -1
- homeassistant/components/airobot/translations/zh-Hans.json +1 -1
- homeassistant/components/airobot/translations/zh-Hant.json +1 -1
- homeassistant/components/airq/translations/sr-Latn.json +0 -7
- homeassistant/components/airthings/translations/tr.json +1 -2
- homeassistant/components/airthings_ble/translations/sr-Latn.json +0 -7
- homeassistant/components/airthings_ble/translations/tr.json +0 -7
- homeassistant/components/airvisual/translations/sr-Latn.json +0 -14
- homeassistant/components/airzone/translations/tr.json +0 -9
- homeassistant/components/aladdin_connect/translations/tr.json +1 -7
- homeassistant/components/alarm_control_panel/strings.json +21 -14
- homeassistant/components/alarm_control_panel/translations/cs.json +19 -12
- homeassistant/components/alarm_control_panel/translations/de.json +14 -7
- homeassistant/components/alarm_control_panel/translations/en-GB.json +1 -86
- homeassistant/components/alarm_control_panel/translations/en.json +21 -14
- homeassistant/components/alarm_control_panel/translations/es.json +1 -86
- homeassistant/components/alarm_control_panel/translations/et.json +1 -86
- homeassistant/components/alarm_control_panel/translations/ga.json +1 -72
- homeassistant/components/alarm_control_panel/translations/lt.json +21 -14
- homeassistant/components/alarm_control_panel/translations/pt.json +31 -14
- homeassistant/components/alarm_control_panel/translations/sk.json +21 -14
- homeassistant/components/alarm_control_panel/translations/sr-Latn.json +1 -5
- homeassistant/components/alarm_control_panel/translations/tr.json +1 -72
- homeassistant/components/alarm_control_panel/translations/zh-Hans.json +6 -1
- homeassistant/components/alarm_control_panel/translations/zh-Hant.json +21 -14
- homeassistant/components/alexa_devices/translations/it.json +1 -24
- homeassistant/components/alexa_devices/translations/tr.json +0 -52
- homeassistant/components/androidtv_remote/translations/mk.json +0 -7
- homeassistant/components/anglian_water/__init__.py +2 -6
- homeassistant/components/anglian_water/entity.py +1 -5
- homeassistant/components/anglian_water/sensor.py +2 -1
- homeassistant/components/anglian_water/strings.json +1 -1
- homeassistant/components/anglian_water/translations/de.json +1 -1
- homeassistant/components/anglian_water/translations/en.json +1 -1
- homeassistant/components/anglian_water/translations/et.json +1 -45
- homeassistant/components/anglian_water/translations/pt.json +2 -1
- homeassistant/components/anglian_water/translations/sk.json +1 -1
- homeassistant/components/anglian_water/translations/zh-Hans.json +2 -32
- homeassistant/components/anthropic/__init__.py +9 -2
- homeassistant/components/aosmith/translations/tr.json +0 -11
- homeassistant/components/apcupsd/translations/es.json +0 -14
- homeassistant/components/apcupsd/translations/sr-Latn.json +0 -3
- homeassistant/components/apple_tv/manifest.json +0 -1
- homeassistant/components/assist_pipeline/pipeline.py +57 -58
- homeassistant/components/assist_satellite/manifest.json +1 -1
- homeassistant/components/assist_satellite/strings.json +12 -8
- homeassistant/components/assist_satellite/translations/cs.json +12 -8
- homeassistant/components/assist_satellite/translations/de.json +12 -8
- homeassistant/components/assist_satellite/translations/en-GB.json +1 -54
- homeassistant/components/assist_satellite/translations/en.json +12 -8
- homeassistant/components/assist_satellite/translations/es.json +1 -54
- homeassistant/components/assist_satellite/translations/et.json +1 -54
- homeassistant/components/assist_satellite/translations/ga.json +1 -46
- homeassistant/components/assist_satellite/translations/lt.json +12 -8
- homeassistant/components/assist_satellite/translations/pt.json +16 -4
- homeassistant/components/assist_satellite/translations/sk.json +12 -8
- homeassistant/components/assist_satellite/translations/tr.json +1 -46
- homeassistant/components/assist_satellite/translations/zh-Hans.json +0 -5
- homeassistant/components/assist_satellite/translations/zh-Hant.json +12 -8
- homeassistant/components/august/translations/tr.json +1 -23
- homeassistant/components/automation/__init__.py +0 -1
- homeassistant/components/automation/manifest.json +0 -2
- homeassistant/components/automation/strings.json +4 -4
- homeassistant/components/automation/translations/cs.json +4 -4
- homeassistant/components/automation/translations/de.json +4 -4
- homeassistant/components/automation/translations/en-GB.json +0 -8
- homeassistant/components/automation/translations/en.json +4 -4
- homeassistant/components/automation/translations/es.json +0 -8
- homeassistant/components/automation/translations/et.json +4 -4
- homeassistant/components/automation/translations/fr.json +0 -8
- homeassistant/components/automation/translations/lt.json +4 -4
- homeassistant/components/automation/translations/pt.json +8 -0
- homeassistant/components/automation/translations/sk.json +4 -4
- homeassistant/components/automation/translations/sr-Latn.json +0 -28
- homeassistant/components/automation/translations/zh-Hant.json +4 -4
- homeassistant/components/backblaze_b2/translations/de.json +2 -2
- homeassistant/components/backblaze_b2/translations/es.json +1 -1
- homeassistant/components/bang_olufsen/translations/es.json +0 -992
- homeassistant/components/bang_olufsen/translations/ga.json +0 -992
- homeassistant/components/bang_olufsen/translations/nl.json +3 -76
- homeassistant/components/bang_olufsen/translations/pt.json +0 -1
- homeassistant/components/bayesian/translations/sr-Latn.json +1 -2
- homeassistant/components/bayesian/translations/tr.json +10 -81
- homeassistant/components/binary_sensor/icons.json +0 -8
- homeassistant/components/binary_sensor/strings.json +1 -36
- homeassistant/components/binary_sensor/translations/cs.json +1 -36
- homeassistant/components/binary_sensor/translations/de.json +1 -36
- homeassistant/components/binary_sensor/translations/en-GB.json +1 -36
- homeassistant/components/binary_sensor/translations/en.json +1 -36
- homeassistant/components/binary_sensor/translations/es.json +1 -36
- homeassistant/components/binary_sensor/translations/et.json +1 -36
- homeassistant/components/binary_sensor/translations/lt.json +1 -36
- homeassistant/components/binary_sensor/translations/mk.json +0 -8
- homeassistant/components/binary_sensor/translations/sk.json +1 -36
- homeassistant/components/binary_sensor/translations/sr-Latn.json +0 -1
- homeassistant/components/binary_sensor/translations/zh-Hant.json +1 -36
- homeassistant/components/blebox/translations/sr-Latn.json +0 -1
- homeassistant/components/blink/translations/tr.json +1 -16
- homeassistant/components/blue_current/translations/tr.json +0 -44
- homeassistant/components/bosch_alarm/__init__.py +2 -2
- homeassistant/components/bosch_alarm/config_flow.py +1 -1
- homeassistant/components/bosch_alarm/diagnostics.py +1 -2
- homeassistant/components/bosch_alarm/entity.py +1 -1
- homeassistant/components/bosch_alarm/manifest.json +1 -1
- homeassistant/components/broadlink/manifest.json +0 -1
- homeassistant/components/broadlink/translations/sr-Latn.json +0 -5
- homeassistant/components/brother/translations/tr.json +2 -53
- homeassistant/components/bsblan/translations/sr-Latn.json +0 -4
- homeassistant/components/bsblan/translations/tr.json +2 -22
- homeassistant/components/bthome/translations/tr.json +0 -35
- homeassistant/components/button/translations/sr-Latn.json +0 -20
- homeassistant/components/camera/__init__.py +1 -1
- homeassistant/components/camera/translations/mk.json +2 -4
- homeassistant/components/climate/strings.json +15 -10
- homeassistant/components/climate/translations/bg.json +0 -14
- homeassistant/components/climate/translations/cs.json +9 -26
- homeassistant/components/climate/translations/de.json +6 -23
- homeassistant/components/climate/translations/el.json +1 -54
- homeassistant/components/climate/translations/en-GB.json +1 -64
- homeassistant/components/climate/translations/en.json +15 -10
- homeassistant/components/climate/translations/es.json +1 -64
- homeassistant/components/climate/translations/et.json +1 -64
- homeassistant/components/climate/translations/ga.json +1 -54
- homeassistant/components/climate/translations/lt.json +9 -26
- homeassistant/components/climate/translations/mk.json +3 -10
- homeassistant/components/climate/translations/pt.json +12 -19
- homeassistant/components/climate/translations/ru.json +1 -54
- homeassistant/components/climate/translations/sk.json +9 -26
- homeassistant/components/climate/translations/sr-Latn.json +3 -101
- homeassistant/components/climate/translations/sv.json +1 -17
- homeassistant/components/climate/translations/tr.json +1 -54
- homeassistant/components/climate/translations/zh-Hans.json +0 -14
- homeassistant/components/climate/translations/zh-Hant.json +9 -26
- homeassistant/components/cloud/__init__.py +5 -18
- homeassistant/components/cloud/ai_task.py +12 -5
- homeassistant/components/cloud/client.py +5 -9
- homeassistant/components/cloud/conversation.py +11 -2
- homeassistant/components/cloud/entity.py +6 -5
- homeassistant/components/cloud/http_api.py +0 -21
- homeassistant/components/cloud/manifest.json +1 -1
- homeassistant/components/cloud/translations/en-GB.json +0 -7
- homeassistant/components/cloud/translations/es.json +0 -7
- homeassistant/components/cloud/translations/et.json +0 -7
- homeassistant/components/cloud/translations/ga.json +0 -7
- homeassistant/components/cloud/translations/tr.json +0 -7
- homeassistant/components/coinbase/translations/tr.json +1 -10
- homeassistant/components/comelit/translations/tr.json +0 -2
- homeassistant/components/conversation/__init__.py +3 -8
- homeassistant/components/conversation/default_agent.py +56 -61
- homeassistant/components/conversation/manifest.json +1 -1
- homeassistant/components/counter/translations/sr-Latn.json +1 -41
- homeassistant/components/cover/icons.json +29 -0
- homeassistant/components/cover/strings.json +159 -1
- homeassistant/components/cover/translations/cs.json +159 -1
- homeassistant/components/cover/translations/de.json +159 -1
- homeassistant/components/cover/translations/en.json +159 -1
- homeassistant/components/cover/translations/et.json +30 -1
- homeassistant/components/cover/translations/lt.json +159 -1
- homeassistant/components/cover/translations/pt.json +158 -1
- homeassistant/components/cover/translations/sk.json +159 -1
- homeassistant/components/cover/translations/sr-Latn.json +1 -5
- homeassistant/components/cover/translations/zh-Hans.json +105 -1
- homeassistant/components/cover/translations/zh-Hant.json +159 -1
- homeassistant/components/cover/trigger.py +116 -0
- homeassistant/components/cover/triggers.yaml +79 -0
- homeassistant/components/deconz/translations/mk.json +1 -3
- homeassistant/components/deluge/translations/tr.json +0 -8
- homeassistant/components/derivative/translations/es.json +0 -6
- homeassistant/components/derivative/translations/ga.json +0 -6
- homeassistant/components/derivative/translations/sr-Latn.json +4 -41
- homeassistant/components/dlna_dmr/manifest.json +0 -1
- homeassistant/components/dlna_dms/manifest.json +0 -1
- homeassistant/components/downloader/translations/tr.json +0 -8
- homeassistant/components/duckdns/translations/en-GB.json +0 -1
- homeassistant/components/duckdns/translations/es.json +0 -41
- homeassistant/components/duckdns/translations/ga.json +0 -40
- homeassistant/components/ecovacs/manifest.json +1 -1
- homeassistant/components/ecovacs/translations/tr.json +2 -50
- homeassistant/components/ecowitt/manifest.json +0 -1
- homeassistant/components/elevenlabs/translations/tr.json +1 -17
- homeassistant/components/elkm1/translations/tr.json +0 -4
- homeassistant/components/energyid/translations/zh-Hans.json +1 -17
- homeassistant/components/enphase_envoy/manifest.json +1 -1
- homeassistant/components/enphase_envoy/translations/tr.json +0 -15
- homeassistant/components/esphome/const.py +1 -1
- homeassistant/components/esphome/manifest.json +1 -1
- homeassistant/components/esphome/strings.json +1 -1
- homeassistant/components/esphome/translations/bg.json +1 -0
- homeassistant/components/esphome/translations/ca.json +1 -0
- homeassistant/components/esphome/translations/cs.json +1 -1
- homeassistant/components/esphome/translations/da.json +1 -0
- homeassistant/components/esphome/translations/de.json +1 -1
- homeassistant/components/esphome/translations/el.json +1 -0
- homeassistant/components/esphome/translations/en-GB.json +1 -1
- homeassistant/components/esphome/translations/en.json +1 -1
- homeassistant/components/esphome/translations/es.json +1 -1
- homeassistant/components/esphome/translations/et.json +1 -1
- homeassistant/components/esphome/translations/fi.json +1 -0
- homeassistant/components/esphome/translations/fr.json +1 -0
- homeassistant/components/esphome/translations/ga.json +1 -0
- homeassistant/components/esphome/translations/he.json +1 -0
- homeassistant/components/esphome/translations/hu.json +1 -0
- homeassistant/components/esphome/translations/id.json +1 -0
- homeassistant/components/esphome/translations/it.json +1 -0
- homeassistant/components/esphome/translations/ja.json +1 -0
- homeassistant/components/esphome/translations/ko.json +1 -0
- homeassistant/components/esphome/translations/lt.json +1 -1
- homeassistant/components/esphome/translations/nb.json +1 -0
- homeassistant/components/esphome/translations/nl.json +1 -0
- homeassistant/components/esphome/translations/pl.json +1 -0
- homeassistant/components/esphome/translations/pt-BR.json +1 -0
- homeassistant/components/esphome/translations/pt.json +1 -1
- homeassistant/components/esphome/translations/ro.json +1 -0
- homeassistant/components/esphome/translations/ru.json +1 -0
- homeassistant/components/esphome/translations/sk.json +1 -1
- homeassistant/components/esphome/translations/sl.json +1 -0
- homeassistant/components/esphome/translations/sv.json +1 -0
- homeassistant/components/esphome/translations/tr.json +1 -1
- homeassistant/components/esphome/translations/uk.json +1 -0
- homeassistant/components/esphome/translations/vi.json +1 -0
- homeassistant/components/esphome/translations/zh-Hans.json +1 -1
- homeassistant/components/esphome/translations/zh-Hant.json +1 -1
- homeassistant/components/essent/translations/nl.json +0 -32
- homeassistant/components/essent/translations/zh-Hans.json +0 -38
- homeassistant/components/event/translations/pl.json +1 -2
- homeassistant/components/event/translations/sr-Latn.json +1 -16
- homeassistant/components/fan/strings.json +6 -4
- homeassistant/components/fan/translations/cs.json +6 -4
- homeassistant/components/fan/translations/de.json +4 -2
- homeassistant/components/fan/translations/en-GB.json +1 -34
- homeassistant/components/fan/translations/en.json +6 -4
- homeassistant/components/fan/translations/es.json +1 -34
- homeassistant/components/fan/translations/et.json +6 -4
- homeassistant/components/fan/translations/ga.json +1 -30
- homeassistant/components/fan/translations/lt.json +6 -4
- homeassistant/components/fan/translations/mk.json +0 -11
- homeassistant/components/fan/translations/nl.json +1 -6
- homeassistant/components/fan/translations/pt.json +8 -2
- homeassistant/components/fan/translations/sk.json +6 -4
- homeassistant/components/fan/translations/tr.json +1 -30
- homeassistant/components/fan/translations/zh-Hant.json +6 -4
- homeassistant/components/file/translations/tr.json +0 -26
- homeassistant/components/filter/translations/sr-Latn.json +11 -149
- homeassistant/components/firefly_iii/translations/de.json +2 -2
- homeassistant/components/firefly_iii/translations/tr.json +0 -87
- homeassistant/components/foscam/translations/tr.json +1 -45
- homeassistant/components/fritz/translations/tr.json +0 -24
- homeassistant/components/fronius/manifest.json +0 -1
- homeassistant/components/fronius/translations/sr-Latn.json +0 -3
- homeassistant/components/frontend/manifest.json +1 -1
- homeassistant/components/frontend/storage.py +6 -16
- homeassistant/components/frontend/translations/de.json +2 -2
- homeassistant/components/frontend/translations/el.json +0 -8
- homeassistant/components/frontend/translations/es.json +0 -8
- homeassistant/components/frontend/translations/ga.json +0 -8
- homeassistant/components/frontend/translations/ru.json +0 -8
- homeassistant/components/frontend/translations/sr-Latn.json +0 -8
- homeassistant/components/frontend/translations/tr.json +0 -8
- homeassistant/components/frontend/translations/zh-Hans.json +0 -3
- homeassistant/components/fully_kiosk/translations/tr.json +0 -15
- homeassistant/components/fyta/translations/sr-Latn.json +0 -6
- homeassistant/components/generic/translations/sr-Latn.json +0 -42
- homeassistant/components/generic_hygrostat/translations/sr-Latn.json +4 -36
- homeassistant/components/generic_thermostat/translations/sr-Latn.json +6 -46
- homeassistant/components/geocaching/translations/tr.json +1 -2
- homeassistant/components/gios/translations/sr-Latn.json +0 -10
- homeassistant/components/go2rtc/__init__.py +2 -6
- homeassistant/components/go2rtc/const.py +1 -0
- homeassistant/components/go2rtc/server.py +6 -16
- homeassistant/components/google/manifest.json +0 -1
- homeassistant/components/google_air_quality/manifest.json +1 -1
- homeassistant/components/google_air_quality/strings.json +6 -8
- homeassistant/components/google_air_quality/translations/bg.json +7 -0
- homeassistant/components/google_air_quality/translations/cs.json +6 -8
- homeassistant/components/google_air_quality/translations/de.json +6 -8
- homeassistant/components/google_air_quality/translations/en.json +6 -8
- homeassistant/components/google_air_quality/translations/et.json +13 -82
- homeassistant/components/google_air_quality/translations/lt.json +13 -1
- homeassistant/components/google_air_quality/translations/nl.json +6 -38
- homeassistant/components/google_air_quality/translations/pt.json +13 -1
- homeassistant/components/google_air_quality/translations/sk.json +13 -1
- homeassistant/components/google_air_quality/translations/zh-Hans.json +11 -81
- homeassistant/components/google_air_quality/translations/zh-Hant.json +13 -1
- homeassistant/components/google_assistant/translations/sr-Latn.json +1 -1
- homeassistant/components/google_assistant_sdk/translations/es.json +0 -3
- homeassistant/components/google_assistant_sdk/translations/tr.json +0 -7
- homeassistant/components/google_generative_ai_conversation/translations/tr.json +0 -6
- homeassistant/components/google_sheets/translations/es.json +0 -4
- homeassistant/components/google_sheets/translations/tr.json +0 -22
- homeassistant/components/google_translate/manifest.json +0 -1
- homeassistant/components/google_weather/translations/es.json +0 -66
- homeassistant/components/google_weather/translations/ga.json +0 -37
- homeassistant/components/gpsd/translations/sr-Latn.json +0 -3
- homeassistant/components/group/notify.py +5 -28
- homeassistant/components/group/translations/sr-Latn.json +12 -154
- homeassistant/components/group/translations/tr.json +1 -19
- homeassistant/components/growatt_server/translations/tr.json +0 -87
- homeassistant/components/habitica/translations/tr.json +0 -76
- homeassistant/components/hassio/const.py +0 -1
- homeassistant/components/hassio/strings.json +1 -1
- homeassistant/components/hassio/translations/cs.json +1 -1
- homeassistant/components/hassio/translations/de.json +1 -1
- homeassistant/components/hassio/translations/el.json +1 -0
- homeassistant/components/hassio/translations/en-GB.json +1 -1
- homeassistant/components/hassio/translations/en.json +1 -1
- homeassistant/components/hassio/translations/es.json +1 -1
- homeassistant/components/hassio/translations/et.json +1 -1
- homeassistant/components/hassio/translations/fr.json +1 -0
- homeassistant/components/hassio/translations/fy.json +3 -0
- homeassistant/components/hassio/translations/ga.json +1 -0
- homeassistant/components/hassio/translations/he.json +1 -0
- homeassistant/components/hassio/translations/id.json +1 -0
- homeassistant/components/hassio/translations/lt.json +1 -1
- homeassistant/components/hassio/translations/mk.json +1 -0
- homeassistant/components/hassio/translations/nl.json +1 -0
- homeassistant/components/hassio/translations/pt.json +1 -0
- homeassistant/components/hassio/translations/ru.json +1 -0
- homeassistant/components/hassio/translations/sk.json +1 -1
- homeassistant/components/hassio/translations/sr-Latn.json +0 -5
- homeassistant/components/hassio/translations/sv.json +1 -0
- homeassistant/components/hassio/translations/tr.json +0 -38
- homeassistant/components/hassio/translations/zh-Hans.json +1 -0
- homeassistant/components/hassio/translations/zh-Hant.json +1 -1
- homeassistant/components/history_stats/translations/sr-Latn.json +3 -85
- homeassistant/components/holiday/translations/pl.json +0 -7
- homeassistant/components/home_connect/manifest.json +0 -1
- homeassistant/components/home_connect/translations/de.json +2 -2
- homeassistant/components/home_connect/translations/es.json +0 -46
- homeassistant/components/home_connect/translations/ga.json +0 -46
- homeassistant/components/home_connect/translations/tr.json +0 -32
- homeassistant/components/homeassistant_connect_zbt2/config_flow.py +17 -0
- homeassistant/components/homeassistant_connect_zbt2/const.py +58 -0
- homeassistant/components/homeassistant_connect_zbt2/translations/es.json +0 -8
- homeassistant/components/homeassistant_connect_zbt2/translations/ga.json +0 -8
- homeassistant/components/homeassistant_connect_zbt2/translations/tr.json +0 -145
- homeassistant/components/homeassistant_hardware/firmware_config_flow.py +73 -81
- homeassistant/components/homeassistant_hardware/translations/es.json +0 -4
- homeassistant/components/homeassistant_hardware/translations/ga.json +0 -4
- homeassistant/components/homeassistant_hardware/translations/tr.json +1 -44
- homeassistant/components/homeassistant_hardware/update.py +10 -13
- homeassistant/components/homeassistant_hardware/util.py +53 -59
- homeassistant/components/homeassistant_sky_connect/translations/es.json +0 -8
- homeassistant/components/homeassistant_sky_connect/translations/ga.json +0 -8
- homeassistant/components/homeassistant_sky_connect/translations/tr.json +0 -71
- homeassistant/components/homeassistant_yellow/translations/es.json +0 -4
- homeassistant/components/homeassistant_yellow/translations/ga.json +0 -4
- homeassistant/components/homeassistant_yellow/translations/tr.json +0 -35
- homeassistant/components/homekit/translations/tr.json +0 -12
- homeassistant/components/homekit_controller/manifest.json +0 -1
- homeassistant/components/homewizard/manifest.json +0 -1
- homeassistant/components/hue/translations/mk.json +1 -3
- homeassistant/components/hue/translations/tr.json +0 -1
- homeassistant/components/hue_ble/strings.json +1 -1
- homeassistant/components/hue_ble/translations/en.json +1 -1
- homeassistant/components/hue_ble/translations/lt.json +1 -1
- homeassistant/components/hue_ble/translations/nl.json +0 -3
- homeassistant/components/hue_ble/translations/pt.json +2 -1
- homeassistant/components/hue_ble/translations/sk.json +1 -1
- homeassistant/components/hue_ble/translations/zh-Hans.json +1 -11
- homeassistant/components/humidifier/translations/mk.json +0 -6
- homeassistant/components/husqvarna_automower/translations/tr.json +0 -88
- homeassistant/components/huum/translations/sr-Latn.json +0 -5
- homeassistant/components/ibeacon/manifest.json +0 -1
- homeassistant/components/icloud/translations/tr.json +0 -3
- homeassistant/components/image/translations/sr-Latn.json +1 -2
- homeassistant/components/imap/translations/tr.json +0 -21
- homeassistant/components/imeon_inverter/translations/en-GB.json +0 -21
- homeassistant/components/incomfort/translations/tr.json +0 -3
- homeassistant/components/input_boolean/translations/mk.json +2 -4
- homeassistant/components/input_number/translations/sr-Latn.json +0 -17
- homeassistant/components/integration/translations/sr-Latn.json +2 -54
- homeassistant/components/iometer/manifest.json +1 -1
- homeassistant/components/iometer/translations/tr.json +1 -3
- homeassistant/components/iron_os/translations/en-GB.json +1 -5
- homeassistant/components/iron_os/translations/es.json +1 -5
- homeassistant/components/jewish_calendar/translations/tr.json +1 -9
- homeassistant/components/kitchen_sink/translations/en-GB.json +0 -2
- homeassistant/components/kitchen_sink/translations/es.json +0 -20
- homeassistant/components/kitchen_sink/translations/et.json +1 -5
- homeassistant/components/kitchen_sink/translations/ga.json +0 -4
- homeassistant/components/kitchen_sink/translations/it.json +0 -12
- homeassistant/components/kitchen_sink/translations/nl.json +0 -4
- homeassistant/components/kitchen_sink/translations/ru.json +0 -8
- homeassistant/components/kitchen_sink/translations/sv.json +0 -3
- homeassistant/components/kitchen_sink/translations/tr.json +0 -4
- homeassistant/components/knx/translations/el.json +0 -43
- homeassistant/components/knx/translations/es.json +0 -3
- homeassistant/components/knx/translations/et.json +0 -3
- homeassistant/components/knx/translations/sk.json +0 -3
- homeassistant/components/knx/translations/tr.json +0 -318
- homeassistant/components/knx/translations/zh-Hans.json +0 -3
- homeassistant/components/konnected/manifest.json +0 -1
- homeassistant/components/konnected/translations/tr.json +0 -6
- homeassistant/components/labs/__init__.py +1 -2
- homeassistant/components/labs/const.py +2 -0
- homeassistant/components/labs/translations/lt.json +1 -1
- homeassistant/components/labs/websocket_api.py +1 -2
- homeassistant/components/lawn_mower/strings.json +12 -8
- homeassistant/components/lawn_mower/translations/cs.json +11 -7
- homeassistant/components/lawn_mower/translations/de.json +11 -7
- homeassistant/components/lawn_mower/translations/en-GB.json +1 -56
- homeassistant/components/lawn_mower/translations/en.json +12 -8
- homeassistant/components/lawn_mower/translations/es.json +1 -56
- homeassistant/components/lawn_mower/translations/et.json +2 -46
- homeassistant/components/lawn_mower/translations/ga.json +1 -48
- homeassistant/components/lawn_mower/translations/lt.json +12 -8
- homeassistant/components/lawn_mower/translations/pt.json +16 -4
- homeassistant/components/lawn_mower/translations/sk.json +12 -8
- homeassistant/components/lawn_mower/translations/tr.json +1 -48
- homeassistant/components/lawn_mower/translations/zh-Hant.json +12 -8
- homeassistant/components/letpot/manifest.json +1 -1
- homeassistant/components/letpot/translations/tr.json +0 -8
- homeassistant/components/lg_thinq/manifest.json +1 -1
- homeassistant/components/lg_thinq/translations/sr-Latn.json +0 -8
- homeassistant/components/lg_thinq/translations/tr.json +0 -20
- homeassistant/components/libre_hardware_monitor/coordinator.py +18 -26
- homeassistant/components/lifx/translations/tr.json +0 -3
- homeassistant/components/light/strings.json +8 -4
- homeassistant/components/light/translations/bg.json +12 -0
- homeassistant/components/light/translations/cs.json +8 -4
- homeassistant/components/light/translations/de.json +6 -2
- homeassistant/components/light/translations/el.json +0 -6
- homeassistant/components/light/translations/en-GB.json +2 -69
- homeassistant/components/light/translations/en.json +8 -4
- homeassistant/components/light/translations/es.json +2 -68
- homeassistant/components/light/translations/et.json +8 -34
- homeassistant/components/light/translations/ga.json +2 -65
- homeassistant/components/light/translations/lt.json +8 -4
- homeassistant/components/light/translations/mk.json +3 -10
- homeassistant/components/light/translations/nl.json +1 -6
- homeassistant/components/light/translations/pt.json +10 -2
- homeassistant/components/light/translations/ru.json +3 -67
- homeassistant/components/light/translations/sk.json +8 -4
- homeassistant/components/light/translations/sr-Latn.json +4 -217
- homeassistant/components/light/translations/tr.json +2 -65
- homeassistant/components/light/translations/zh-Hans.json +10 -2
- homeassistant/components/light/translations/zh-Hant.json +8 -4
- homeassistant/components/litterrobot/translations/tr.json +0 -6
- homeassistant/components/logger/helpers.py +0 -10
- homeassistant/components/logger/websocket_api.py +1 -12
- homeassistant/components/lovelace/translations/es.json +0 -5
- homeassistant/components/lovelace/translations/ga.json +0 -5
- homeassistant/components/mastodon/translations/es.json +0 -7
- homeassistant/components/mastodon/translations/ga.json +0 -7
- homeassistant/components/mastodon/translations/tr.json +0 -4
- homeassistant/components/matrix/translations/tr.json +0 -42
- homeassistant/components/matter/manifest.json +0 -1
- homeassistant/components/matter/translations/es.json +0 -13
- homeassistant/components/matter/translations/ga.json +0 -10
- homeassistant/components/matter/translations/sr-Latn.json +0 -3
- homeassistant/components/matter/translations/tr.json +0 -105
- homeassistant/components/mcp/translations/tr.json +1 -20
- homeassistant/components/mealie/translations/tr.json +0 -11
- homeassistant/components/media_extractor/manifest.json +1 -1
- homeassistant/components/media_player/strings.json +3 -2
- homeassistant/components/media_player/translations/cs.json +3 -2
- homeassistant/components/media_player/translations/de.json +2 -1
- homeassistant/components/media_player/translations/en-GB.json +1 -24
- homeassistant/components/media_player/translations/en.json +3 -2
- homeassistant/components/media_player/translations/es.json +1 -24
- homeassistant/components/media_player/translations/et.json +1 -8
- homeassistant/components/media_player/translations/ga.json +1 -22
- homeassistant/components/media_player/translations/lt.json +3 -2
- homeassistant/components/media_player/translations/mk.json +2 -4
- homeassistant/components/media_player/translations/pt.json +4 -1
- homeassistant/components/media_player/translations/sk.json +3 -2
- homeassistant/components/media_player/translations/tr.json +1 -22
- homeassistant/components/media_player/translations/zh-Hant.json +3 -2
- homeassistant/components/met/manifest.json +0 -1
- homeassistant/components/meteo_france/const.py +0 -1
- homeassistant/components/miele/const.py +7 -9
- homeassistant/components/miele/strings.json +0 -1
- homeassistant/components/miele/translations/cs.json +0 -1
- homeassistant/components/miele/translations/de.json +0 -1
- homeassistant/components/miele/translations/en-GB.json +0 -1
- homeassistant/components/miele/translations/en.json +0 -1
- homeassistant/components/miele/translations/es.json +0 -16
- homeassistant/components/miele/translations/et.json +0 -1
- homeassistant/components/miele/translations/ga.json +0 -14
- homeassistant/components/miele/translations/it.json +0 -1
- homeassistant/components/miele/translations/lt.json +0 -1
- homeassistant/components/miele/translations/sk.json +0 -1
- homeassistant/components/miele/translations/sr-Latn.json +0 -10
- homeassistant/components/miele/translations/tr.json +1 -20
- homeassistant/components/miele/translations/zh-Hant.json +0 -1
- homeassistant/components/min_max/translations/sr-Latn.json +2 -44
- homeassistant/components/mold_indicator/translations/sr-Latn.json +3 -41
- homeassistant/components/motion_blinds/manifest.json +0 -1
- homeassistant/components/mqtt/entity.py +0 -1
- homeassistant/components/mqtt/strings.json +5 -4
- homeassistant/components/mqtt/translations/bg.json +5 -0
- homeassistant/components/mqtt/translations/cs.json +27 -26
- homeassistant/components/mqtt/translations/de.json +8 -7
- homeassistant/components/mqtt/translations/en-GB.json +5 -4
- homeassistant/components/mqtt/translations/en.json +5 -4
- homeassistant/components/mqtt/translations/es.json +8 -91
- homeassistant/components/mqtt/translations/et.json +5 -4
- homeassistant/components/mqtt/translations/fr.json +4 -1
- homeassistant/components/mqtt/translations/ga.json +9 -65
- homeassistant/components/mqtt/translations/he.json +6 -1
- homeassistant/components/mqtt/translations/hu.json +2 -0
- homeassistant/components/mqtt/translations/it.json +7 -2
- homeassistant/components/mqtt/translations/lt.json +5 -4
- homeassistant/components/mqtt/translations/mk.json +0 -6
- homeassistant/components/mqtt/translations/nl.json +6 -1
- homeassistant/components/mqtt/translations/pt.json +6 -3
- homeassistant/components/mqtt/translations/ru.json +6 -6
- homeassistant/components/mqtt/translations/sk.json +5 -4
- homeassistant/components/mqtt/translations/sr-Latn.json +22 -148
- homeassistant/components/mqtt/translations/sv.json +2 -1
- homeassistant/components/mqtt/translations/tr.json +5 -255
- homeassistant/components/mqtt/translations/zh-Hans.json +6 -3
- homeassistant/components/mqtt/translations/zh-Hant.json +5 -4
- homeassistant/components/music_assistant/__init__.py +1 -2
- homeassistant/components/music_assistant/config_flow.py +5 -23
- homeassistant/components/music_assistant/manifest.json +0 -1
- homeassistant/components/music_assistant/translations/bg.json +1 -6
- homeassistant/components/music_assistant/translations/el.json +1 -3
- homeassistant/components/music_assistant/translations/en-GB.json +1 -23
- homeassistant/components/music_assistant/translations/es.json +1 -25
- homeassistant/components/music_assistant/translations/et.json +0 -1
- homeassistant/components/music_assistant/translations/ga.json +1 -24
- homeassistant/components/music_assistant/translations/it.json +1 -26
- homeassistant/components/music_assistant/translations/nl.json +1 -3
- homeassistant/components/music_assistant/translations/ru.json +1 -23
- homeassistant/components/music_assistant/translations/sv.json +1 -3
- homeassistant/components/music_assistant/translations/tr.json +1 -24
- homeassistant/components/music_assistant/translations/zh-Hans.json +0 -16
- homeassistant/components/nasweb/translations/tr.json +0 -7
- homeassistant/components/neato/translations/es.json +0 -5
- homeassistant/components/neato/translations/ga.json +0 -5
- homeassistant/components/neato/translations/tr.json +0 -5
- homeassistant/components/nederlandse_spoorwegen/translations/es.json +0 -10
- homeassistant/components/nederlandse_spoorwegen/translations/tr.json +0 -25
- homeassistant/components/nest/manifest.json +1 -1
- homeassistant/components/nest/translations/es.json +0 -12
- homeassistant/components/nest/translations/tr.json +0 -12
- homeassistant/components/netgear/translations/sr-Latn.json +0 -3
- homeassistant/components/nextdns/translations/tr.json +1 -14
- homeassistant/components/nightscout/translations/tr.json +0 -4
- homeassistant/components/niko_home_control/translations/el.json +0 -18
- homeassistant/components/niko_home_control/translations/es.json +1 -3
- homeassistant/components/niko_home_control/translations/tr.json +1 -10
- homeassistant/components/nina/translations/el.json +0 -6
- homeassistant/components/nina/translations/en-GB.json +0 -8
- homeassistant/components/nina/translations/es.json +0 -8
- homeassistant/components/nina/translations/ga.json +0 -8
- homeassistant/components/nina/translations/tr.json +0 -54
- homeassistant/components/nina/translations/zh-Hans.json +0 -2
- homeassistant/components/nordpool/manifest.json +1 -1
- homeassistant/components/ntfy/translations/tr.json +0 -78
- homeassistant/components/nuki/manifest.json +0 -1
- homeassistant/components/number/translations/sr-Latn.json +0 -181
- homeassistant/components/number/translations/tr.json +0 -6
- homeassistant/components/octoprint/translations/tr.json +0 -10
- homeassistant/components/onboarding/const.py +1 -16
- homeassistant/components/onboarding/views.py +2 -2
- homeassistant/components/onedrive/translations/es.json +0 -3
- homeassistant/components/onewire/translations/tr.json +0 -10
- homeassistant/components/openai_conversation/translations/tr.json +1 -6
- homeassistant/components/opentherm_gw/services.py +2 -17
- homeassistant/components/opentherm_gw/strings.json +3 -3
- homeassistant/components/opentherm_gw/translations/cs.json +3 -3
- homeassistant/components/opentherm_gw/translations/de.json +3 -3
- homeassistant/components/opentherm_gw/translations/el.json +3 -3
- homeassistant/components/opentherm_gw/translations/en-GB.json +3 -3
- homeassistant/components/opentherm_gw/translations/en.json +3 -3
- homeassistant/components/opentherm_gw/translations/es.json +3 -3
- homeassistant/components/opentherm_gw/translations/et.json +3 -3
- homeassistant/components/opentherm_gw/translations/ga.json +3 -0
- homeassistant/components/opentherm_gw/translations/hu.json +3 -0
- homeassistant/components/opentherm_gw/translations/it.json +2 -0
- homeassistant/components/opentherm_gw/translations/ja.json +3 -0
- homeassistant/components/opentherm_gw/translations/lt.json +3 -3
- homeassistant/components/opentherm_gw/translations/nl.json +2 -0
- homeassistant/components/opentherm_gw/translations/pt.json +3 -3
- homeassistant/components/opentherm_gw/translations/ru.json +3 -3
- homeassistant/components/opentherm_gw/translations/sk.json +3 -3
- homeassistant/components/opentherm_gw/translations/sv.json +3 -0
- homeassistant/components/opentherm_gw/translations/tr.json +3 -0
- homeassistant/components/opentherm_gw/translations/zh-Hans.json +3 -3
- homeassistant/components/opentherm_gw/translations/zh-Hant.json +3 -3
- homeassistant/components/openweathermap/translations/tr.json +0 -49
- homeassistant/components/opower/translations/tr.json +1 -33
- homeassistant/components/oralb/manifest.json +0 -1
- homeassistant/components/oralb/translations/tr.json +2 -29
- homeassistant/components/ping/helpers.py +1 -1
- homeassistant/components/ping/manifest.json +0 -1
- homeassistant/components/playstation_network/coordinator.py +7 -14
- homeassistant/components/playstation_network/translations/tr.json +0 -56
- homeassistant/components/plugwise/translations/en-GB.json +1 -1
- homeassistant/components/plugwise/translations/es.json +0 -2
- homeassistant/components/plugwise/translations/sr-Latn.json +0 -12
- homeassistant/components/plugwise/translations/tr.json +1 -11
- homeassistant/components/plum_lightpad/translations/tr.json +1 -8
- homeassistant/components/point/translations/es.json +0 -5
- homeassistant/components/pooldose/translations/en-GB.json +0 -11
- homeassistant/components/pooldose/translations/es.json +0 -68
- homeassistant/components/pooldose/translations/et.json +0 -11
- homeassistant/components/pooldose/translations/ga.json +0 -11
- homeassistant/components/pooldose/translations/it.json +0 -11
- homeassistant/components/pooldose/translations/tr.json +1 -84
- homeassistant/components/pooldose/translations/zh-Hans.json +0 -6
- homeassistant/components/portainer/translations/tr.json +0 -82
- homeassistant/components/probe_plus/translations/tr.json +0 -5
- homeassistant/components/ps4/translations/tr.json +0 -6
- homeassistant/components/qbittorrent/translations/tr.json +0 -4
- homeassistant/components/qbus/translations/tr.json +0 -10
- homeassistant/components/random/translations/es.json +0 -1
- homeassistant/components/random/translations/sr-Latn.json +6 -119
- homeassistant/components/random/translations/tr.json +0 -2
- homeassistant/components/renault/translations/tr.json +0 -12
- homeassistant/components/reolink/manifest.json +1 -2
- homeassistant/components/reolink/translations/pl.json +1 -10
- homeassistant/components/reolink/translations/tr.json +1 -67
- homeassistant/components/rest/manifest.json +0 -1
- homeassistant/components/ridwell/translations/tr.json +0 -22
- homeassistant/components/ring/manifest.json +0 -1
- homeassistant/components/roborock/image.py +2 -5
- homeassistant/components/roborock/manifest.json +1 -2
- homeassistant/components/roborock/roborock_storage.py +10 -29
- homeassistant/components/roborock/translations/tr.json +1 -9
- homeassistant/components/roomba/translations/tr.json +0 -6
- homeassistant/components/satel_integra/translations/sr-Latn.json +1 -2
- homeassistant/components/saunum/translations/el.json +1 -7
- homeassistant/components/saunum/translations/en-GB.json +1 -11
- homeassistant/components/saunum/translations/es.json +1 -38
- homeassistant/components/saunum/translations/et.json +1 -11
- homeassistant/components/saunum/translations/ga.json +1 -38
- homeassistant/components/saunum/translations/mk.json +0 -5
- homeassistant/components/saunum/translations/tr.json +1 -11
- homeassistant/components/schedule/translations/sr-Latn.json +1 -18
- homeassistant/components/scrape/translations/es.json +0 -1
- homeassistant/components/scrape/translations/sr-Latn.json +2 -63
- homeassistant/components/scrape/translations/tr.json +0 -4
- homeassistant/components/sensibo/translations/sr-Latn.json +0 -19
- homeassistant/components/sensor/translations/sr-Latn.json +5 -141
- homeassistant/components/sensor/translations/tr.json +0 -10
- homeassistant/components/senz/manifest.json +0 -1
- homeassistant/components/senz/translations/es.json +1 -17
- homeassistant/components/sfr_box/translations/tr.json +0 -4
- homeassistant/components/shelly/const.py +0 -1
- homeassistant/components/shelly/manifest.json +1 -1
- homeassistant/components/shelly/sensor.py +2 -0
- homeassistant/components/shelly/strings.json +0 -8
- homeassistant/components/shelly/switch.py +1 -0
- homeassistant/components/shelly/translations/bg.json +0 -5
- homeassistant/components/shelly/translations/cs.json +0 -8
- homeassistant/components/shelly/translations/de.json +0 -8
- homeassistant/components/shelly/translations/en-GB.json +0 -8
- homeassistant/components/shelly/translations/en.json +0 -8
- homeassistant/components/shelly/translations/es.json +2 -192
- homeassistant/components/shelly/translations/et.json +1 -10
- homeassistant/components/shelly/translations/fr.json +0 -10
- homeassistant/components/shelly/translations/ga.json +0 -46
- homeassistant/components/shelly/translations/it.json +2 -13
- homeassistant/components/shelly/translations/lt.json +0 -8
- homeassistant/components/shelly/translations/mk.json +0 -3
- homeassistant/components/shelly/translations/nl.json +0 -7
- homeassistant/components/shelly/translations/pl.json +0 -8
- homeassistant/components/shelly/translations/pt.json +0 -8
- homeassistant/components/shelly/translations/ru.json +0 -5
- homeassistant/components/shelly/translations/sk.json +0 -8
- homeassistant/components/shelly/translations/sv.json +9 -189
- homeassistant/components/shelly/translations/tr.json +5 -171
- homeassistant/components/shelly/translations/zh-Hans.json +0 -8
- homeassistant/components/shelly/translations/zh-Hant.json +0 -8
- homeassistant/components/shelly/valve.py +1 -1
- homeassistant/components/siren/translations/mk.json +2 -4
- homeassistant/components/smarla/translations/tr.json +0 -15
- homeassistant/components/smartthings/manifest.json +0 -1
- homeassistant/components/smartthings/translations/es.json +0 -74
- homeassistant/components/smartthings/translations/nl.json +0 -13
- homeassistant/components/smartthings/translations/tr.json +0 -20
- homeassistant/components/smhi/translations/tr.json +0 -19
- homeassistant/components/snoo/translations/tr.json +0 -8
- homeassistant/components/solaredge/translations/tr.json +3 -64
- homeassistant/components/sonos/manifest.json +0 -1
- homeassistant/components/speedtestdotnet/manifest.json +0 -1
- homeassistant/components/spotify/translations/es.json +0 -5
- homeassistant/components/sql/translations/es.json +0 -1
- homeassistant/components/sql/translations/sr-Latn.json +2 -61
- homeassistant/components/sql/translations/tr.json +0 -83
- homeassistant/components/squeezebox/translations/mk.json +0 -5
- homeassistant/components/squeezebox/translations/tr.json +0 -63
- homeassistant/components/starline/translations/sr-Latn.json +0 -7
- homeassistant/components/statistics/translations/sr-Latn.json +2 -118
- homeassistant/components/switch/translations/mk.json +1 -5
- homeassistant/components/switch/translations/sr-Latn.json +1 -2
- homeassistant/components/switch_as_x/translations/sr-Latn.json +3 -27
- homeassistant/components/switchbot/manifest.json +0 -1
- homeassistant/components/switchbot/translations/el.json +1 -2
- homeassistant/components/switchbot/translations/tr.json +0 -34
- homeassistant/components/switchbot_cloud/translations/tr.json +0 -20
- homeassistant/components/synology_dsm/translations/sr-Latn.json +0 -3
- homeassistant/components/system_bridge/translations/tr.json +0 -3
- homeassistant/components/systemmonitor/translations/tr.json +0 -6
- homeassistant/components/tautulli/translations/de.json +1 -1
- homeassistant/components/tedee/manifest.json +0 -1
- homeassistant/components/telegram/translations/de.json +1 -1
- homeassistant/components/telegram/translations/tr.json +0 -6
- homeassistant/components/telegram_bot/translations/tr.json +4 -203
- homeassistant/components/template/__init__.py +1 -31
- homeassistant/components/template/helpers.py +0 -5
- homeassistant/components/template/translations/de.json +4 -4
- homeassistant/components/template/translations/el.json +0 -4
- homeassistant/components/template/translations/es.json +0 -5
- homeassistant/components/template/translations/ga.json +0 -4
- homeassistant/components/template/translations/it.json +0 -4
- homeassistant/components/template/translations/pl.json +0 -37
- homeassistant/components/template/translations/ru.json +0 -4
- homeassistant/components/template/translations/sr-Latn.json +72 -933
- homeassistant/components/template/translations/tr.json +2 -172
- homeassistant/components/template/translations/zh-Hans.json +0 -4
- homeassistant/components/tesla_fleet/manifest.json +0 -1
- homeassistant/components/tesla_fleet/translations/es.json +0 -5
- homeassistant/components/tesla_fleet/translations/sr-Latn.json +0 -5
- homeassistant/components/tesla_wall_connector/translations/es.json +0 -3
- homeassistant/components/tesla_wall_connector/translations/ga.json +0 -3
- homeassistant/components/teslemetry/manifest.json +0 -1
- homeassistant/components/teslemetry/translations/sr-Latn.json +0 -5
- homeassistant/components/teslemetry/translations/tr.json +1 -77
- homeassistant/components/tessie/manifest.json +0 -1
- homeassistant/components/tessie/translations/sr-Latn.json +0 -5
- homeassistant/components/tessie/translations/tr.json +0 -3
- homeassistant/components/text/strings.json +3 -2
- homeassistant/components/text/translations/bg.json +8 -1
- homeassistant/components/text/translations/cs.json +3 -2
- homeassistant/components/text/translations/de.json +3 -2
- homeassistant/components/text/translations/en-GB.json +1 -7
- homeassistant/components/text/translations/en.json +3 -2
- homeassistant/components/text/translations/es.json +1 -7
- homeassistant/components/text/translations/et.json +1 -7
- homeassistant/components/text/translations/lt.json +3 -2
- homeassistant/components/text/translations/pt.json +8 -1
- homeassistant/components/text/translations/sk.json +3 -2
- homeassistant/components/text/translations/sr-Latn.json +2 -4
- homeassistant/components/text/translations/zh-Hant.json +3 -2
- homeassistant/components/tod/translations/sr-Latn.json +1 -16
- homeassistant/components/tolo/translations/tr.json +1 -2
- homeassistant/components/tomorrowio/translations/sr-Latn.json +0 -24
- homeassistant/components/tplink/manifest.json +0 -1
- homeassistant/components/traccar_server/translations/tr.json +0 -12
- homeassistant/components/transmission/translations/tr.json +0 -24
- homeassistant/components/trend/translations/sr-Latn.json +0 -21
- homeassistant/components/tuya/__init__.py +4 -12
- homeassistant/components/tuya/binary_sensor.py +2 -2
- homeassistant/components/tuya/humidifier.py +3 -3
- homeassistant/components/tuya/models.py +20 -18
- homeassistant/components/tuya/translations/es.json +0 -32
- homeassistant/components/tuya/translations/ga.json +0 -6
- homeassistant/components/tuya/translations/sr-Latn.json +0 -45
- homeassistant/components/tuya/translations/tr.json +0 -72
- homeassistant/components/tuya/util.py +9 -11
- homeassistant/components/twitch/translations/es.json +0 -5
- homeassistant/components/ukraine_alarm/translations/tr.json +1 -2
- homeassistant/components/unifi/light.py +29 -62
- homeassistant/components/unifi/translations/es.json +0 -3
- homeassistant/components/unifi/translations/tr.json +0 -5
- homeassistant/components/unifiprotect/camera.py +1 -5
- homeassistant/components/unifiprotect/manifest.json +1 -1
- homeassistant/components/unifiprotect/translations/bg.json +7 -0
- homeassistant/components/unifiprotect/translations/cs.json +1 -1
- homeassistant/components/unifiprotect/translations/de.json +1 -1
- homeassistant/components/unifiprotect/translations/el.json +5 -1
- homeassistant/components/unifiprotect/translations/en-GB.json +1 -11
- homeassistant/components/unifiprotect/translations/en.json +1 -1
- homeassistant/components/unifiprotect/translations/es.json +1 -11
- homeassistant/components/unifiprotect/translations/fi.json +7 -0
- homeassistant/components/unifiprotect/translations/ga.json +10 -10
- homeassistant/components/unifiprotect/translations/lt.json +1 -1
- homeassistant/components/unifiprotect/translations/nl.json +3 -0
- homeassistant/components/unifiprotect/translations/pt.json +10 -0
- homeassistant/components/unifiprotect/translations/sk.json +1 -1
- homeassistant/components/unifiprotect/translations/sr-Latn.json +0 -11
- homeassistant/components/unifiprotect/translations/sv.json +0 -3
- homeassistant/components/unifiprotect/translations/tr.json +0 -10
- homeassistant/components/unifiprotect/translations/zh-Hans.json +3 -2
- homeassistant/components/unifiprotect/translations/zh-Hant.json +1 -1
- homeassistant/components/update/translations/sr-Latn.json +1 -51
- homeassistant/components/utility_meter/translations/sr-Latn.json +2 -63
- homeassistant/components/vacuum/strings.json +12 -8
- homeassistant/components/vacuum/translations/cs.json +12 -8
- homeassistant/components/vacuum/translations/de.json +11 -7
- homeassistant/components/vacuum/translations/en-GB.json +1 -56
- homeassistant/components/vacuum/translations/en.json +12 -8
- homeassistant/components/vacuum/translations/es.json +1 -56
- homeassistant/components/vacuum/translations/et.json +1 -51
- homeassistant/components/vacuum/translations/ga.json +1 -48
- homeassistant/components/vacuum/translations/lt.json +12 -8
- homeassistant/components/vacuum/translations/pt.json +16 -4
- homeassistant/components/vacuum/translations/ru.json +1 -48
- homeassistant/components/vacuum/translations/sk.json +12 -8
- homeassistant/components/vacuum/translations/sv.json +1 -13
- homeassistant/components/vacuum/translations/tr.json +1 -48
- homeassistant/components/vacuum/translations/zh-Hans.json +2 -6
- homeassistant/components/vacuum/translations/zh-Hant.json +12 -8
- homeassistant/components/vegehub/translations/tr.json +0 -5
- homeassistant/components/velux/translations/tr.json +0 -12
- homeassistant/components/vesync/manifest.json +1 -1
- homeassistant/components/vesync/translations/tr.json +0 -11
- homeassistant/components/vicare/translations/es.json +0 -54
- homeassistant/components/vicare/translations/sr-Latn.json +0 -10
- homeassistant/components/vicare/translations/tr.json +0 -21
- homeassistant/components/volvo/translations/es.json +0 -6
- homeassistant/components/volvo/translations/tr.json +0 -142
- homeassistant/components/volvooncall/translations/tr.json +1 -18
- homeassistant/components/waqi/translations/sr-Latn.json +0 -32
- homeassistant/components/waqi/translations/tr.json +0 -40
- homeassistant/components/water_heater/translations/sr-Latn.json +1 -2
- homeassistant/components/weatherflow/translations/tr.json +0 -8
- homeassistant/components/webostv/manifest.json +0 -1
- homeassistant/components/whirlpool/translations/tr.json +0 -81
- homeassistant/components/withings/translations/es.json +0 -5
- homeassistant/components/withings/translations/sr-Latn.json +0 -5
- homeassistant/components/wled/config_flow.py +2 -34
- homeassistant/components/wled/coordinator.py +0 -21
- homeassistant/components/wled/strings.json +2 -15
- homeassistant/components/wled/translations/bg.json +1 -2
- homeassistant/components/wled/translations/cs.json +2 -15
- homeassistant/components/wled/translations/de.json +2 -15
- homeassistant/components/wled/translations/el.json +1 -20
- homeassistant/components/wled/translations/en-GB.json +2 -15
- homeassistant/components/wled/translations/en.json +2 -15
- homeassistant/components/wled/translations/es.json +2 -15
- homeassistant/components/wled/translations/et.json +2 -15
- homeassistant/components/wled/translations/ga.json +1 -6
- homeassistant/components/wled/translations/it.json +1 -6
- homeassistant/components/wled/translations/lt.json +2 -15
- homeassistant/components/wled/translations/nl.json +1 -2
- homeassistant/components/wled/translations/pl.json +1 -8
- homeassistant/components/wled/translations/pt.json +1 -6
- homeassistant/components/wled/translations/ru.json +2 -29
- homeassistant/components/wled/translations/sk.json +2 -15
- homeassistant/components/wled/translations/tr.json +1 -26
- homeassistant/components/wled/translations/zh-Hans.json +1 -6
- homeassistant/components/wled/translations/zh-Hant.json +2 -15
- homeassistant/components/wled/update.py +1 -1
- homeassistant/components/workday/translations/tr.json +0 -5
- homeassistant/components/xbox/translations/es.json +1 -16
- homeassistant/components/xbox/translations/ga.json +1 -10
- homeassistant/components/xbox/translations/tr.json +0 -111
- homeassistant/components/xiaomi_aqara/translations/sr-Latn.json +0 -6
- homeassistant/components/xiaomi_ble/manifest.json +0 -1
- homeassistant/components/yardian/translations/tr.json +0 -16
- homeassistant/components/yolink/translations/tr.json +0 -14
- homeassistant/components/youtube/manifest.json +1 -1
- homeassistant/components/youtube/translations/es.json +0 -5
- homeassistant/components/zha/config_flow.py +6 -2
- homeassistant/components/zha/manifest.json +0 -1
- homeassistant/components/zha/radio_manager.py +2 -2
- homeassistant/components/zha/translations/de.json +1 -1
- homeassistant/components/zha/translations/en-GB.json +0 -44
- homeassistant/components/zha/translations/es.json +0 -44
- homeassistant/components/zha/translations/et.json +0 -42
- homeassistant/components/zha/translations/ga.json +0 -44
- homeassistant/components/zha/translations/it.json +0 -44
- homeassistant/components/zha/translations/mk.json +1 -18
- homeassistant/components/zha/translations/nl.json +0 -8
- homeassistant/components/zha/translations/sr-Latn.json +0 -3
- homeassistant/components/zha/translations/tr.json +2 -213
- homeassistant/components/zha/translations/zh-Hans.json +0 -12
- homeassistant/components/zwave_js/translations/tr.json +0 -17
- homeassistant/const.py +1 -2
- homeassistant/generated/integrations.json +21 -21
- homeassistant/generated/labs.py +2 -2
- homeassistant/helpers/area_registry.py +1 -8
- homeassistant/helpers/condition.py +1 -16
- homeassistant/helpers/entity.py +1 -3
- homeassistant/helpers/floor_registry.py +1 -12
- homeassistant/helpers/trigger.py +1 -16
- homeassistant/package_constraints.txt +4 -4
- {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b1.dist-info}/METADATA +2 -2
- {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b1.dist-info}/RECORD +897 -983
- homeassistant/components/actron_air/translations/tr.json +0 -27
- homeassistant/components/airobot/translations/es.json +0 -44
- homeassistant/components/airobot/translations/ga.json +0 -40
- homeassistant/components/airobot/translations/it.json +0 -1
- homeassistant/components/airos/translations/tr.json +0 -71
- homeassistant/components/alert/translations/mk.json +0 -10
- homeassistant/components/anglian_water/translations/el.json +0 -20
- homeassistant/components/anglian_water/translations/en-GB.json +0 -55
- homeassistant/components/anglian_water/translations/es.json +0 -55
- homeassistant/components/anglian_water/translations/ga.json +0 -54
- homeassistant/components/anglian_water/translations/sv.json +0 -14
- homeassistant/components/anglian_water/translations/tr.json +0 -54
- homeassistant/components/automation/translations/mk.json +0 -10
- homeassistant/components/backblaze_b2/translations/tr.json +0 -92
- homeassistant/components/binary_sensor/trigger.py +0 -67
- homeassistant/components/binary_sensor/triggers.yaml +0 -25
- homeassistant/components/color_extractor/translations/mk.json +0 -7
- homeassistant/components/compit/translations/tr.json +0 -35
- homeassistant/components/cync/translations/tr.json +0 -46
- homeassistant/components/datetime/translations/sr-Latn.json +0 -17
- homeassistant/components/droplet/translations/tr.json +0 -40
- homeassistant/components/ekeybionyx/translations/tr.json +0 -66
- homeassistant/components/energy/translations/sr-Latn.json +0 -64
- homeassistant/components/energyid/translations/bg.json +0 -7
- homeassistant/components/energyid/translations/el.json +0 -53
- homeassistant/components/energyid/translations/en-GB.json +0 -71
- homeassistant/components/energyid/translations/es.json +0 -71
- homeassistant/components/energyid/translations/ga.json +0 -71
- homeassistant/components/energyid/translations/it.json +0 -71
- homeassistant/components/energyid/translations/nl.json +0 -1
- homeassistant/components/energyid/translations/sv.json +0 -37
- homeassistant/components/energyid/translations/tr.json +0 -71
- homeassistant/components/essent/translations/el.json +0 -9
- homeassistant/components/essent/translations/en-GB.json +0 -70
- homeassistant/components/essent/translations/es.json +0 -70
- homeassistant/components/essent/translations/ga.json +0 -70
- homeassistant/components/essent/translations/tr.json +0 -70
- homeassistant/components/fing/translations/tr.json +0 -24
- homeassistant/components/forked_daapd/translations/sr-Latn.json +0 -8
- homeassistant/components/go2rtc/util.py +0 -12
- homeassistant/components/google_air_quality/translations/el.json +0 -72
- homeassistant/components/google_air_quality/translations/en-GB.json +0 -225
- homeassistant/components/google_air_quality/translations/es.json +0 -239
- homeassistant/components/google_air_quality/translations/fr.json +0 -14
- homeassistant/components/google_air_quality/translations/ga.json +0 -225
- homeassistant/components/google_air_quality/translations/it.json +0 -106
- homeassistant/components/google_air_quality/translations/pl.json +0 -11
- homeassistant/components/google_air_quality/translations/ru.json +0 -33
- homeassistant/components/google_air_quality/translations/sr-Latn.json +0 -35
- homeassistant/components/google_air_quality/translations/sv.json +0 -122
- homeassistant/components/google_air_quality/translations/tr.json +0 -225
- homeassistant/components/hanna/translations/es.json +0 -44
- homeassistant/components/hue_ble/translations/el.json +0 -11
- homeassistant/components/hue_ble/translations/en-GB.json +0 -21
- homeassistant/components/hue_ble/translations/es.json +0 -21
- homeassistant/components/hue_ble/translations/et.json +0 -21
- homeassistant/components/hue_ble/translations/ga.json +0 -20
- homeassistant/components/hue_ble/translations/tr.json +0 -20
- homeassistant/components/hunterdouglas_powerview/translations/sr-Latn.json +0 -9
- homeassistant/components/imeon_inverter/translations/tr.json +0 -57
- homeassistant/components/inels/translations/tr.json +0 -30
- homeassistant/components/irm_kmi/translations/tr.json +0 -21
- homeassistant/components/labs/translations/es.json +0 -3
- homeassistant/components/labs/translations/sr-Latn.json +0 -3
- homeassistant/components/lannouncer/translations/tr.json +0 -8
- homeassistant/components/libre_hardware_monitor/translations/tr.json +0 -23
- homeassistant/components/london_underground/translations/tr.json +0 -38
- homeassistant/components/lunatone/translations/tr.json +0 -36
- homeassistant/components/media_source/translations/tr.json +0 -5
- homeassistant/components/meteo_lt/translations/tr.json +0 -14
- homeassistant/components/nintendo_parental_controls/translations/tr.json +0 -68
- homeassistant/components/notify/translations/sr-Latn.json +0 -3
- homeassistant/components/openrgb/translations/tr.json +0 -84
- homeassistant/components/prowl/translations/tr.json +0 -21
- homeassistant/components/remote/translations/mk.json +0 -10
- homeassistant/components/satel_integra/translations/tr.json +0 -131
- homeassistant/components/saunum/translations/ru.json +0 -9
- homeassistant/components/saunum/translations/sr-Latn.json +0 -9
- homeassistant/components/script/translations/mk.json +0 -10
- homeassistant/components/sftp_storage/translations/tr.json +0 -22
- homeassistant/components/sleep_as_android/translations/tr.json +0 -68
- homeassistant/components/togrill/translations/tr.json +0 -58
- homeassistant/components/uptime_kuma/translations/tr.json +0 -13
- homeassistant/components/vacuum/translations/mk.json +0 -10
- homeassistant/components/victron_ble/translations/es.json +0 -234
- homeassistant/components/victron_remote_monitoring/translations/tr.json +0 -102
- homeassistant/components/water_heater/translations/mk.json +0 -10
- homeassistant/components/zeroconf/translations/tr.json +0 -14
- {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b1.dist-info}/WHEEL +0 -0
- {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b1.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b1.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b1.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b1.dist-info}/top_level.txt +0 -0
|
@@ -1,162 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"config": {
|
|
3
|
-
"abort": {
|
|
4
|
-
"addon_already_running": "{addon_name} eklentisi zaten \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ba\u015flat\u0131lamad\u0131.",
|
|
5
|
-
"addon_info_failed": "{addon_name} eklenti bilgisi al\u0131namad\u0131.",
|
|
6
|
-
"addon_install_failed": "{addon_name} eklentisi y\u00fcklenemedi.",
|
|
7
|
-
"addon_set_config_failed": "{addon_name} yap\u0131land\u0131rmas\u0131 ayarlanamad\u0131.",
|
|
8
|
-
"addon_start_failed": "{addon_name} eklentisi ba\u015flat\u0131lamad\u0131.",
|
|
9
|
-
"not_hassio": "Donan\u0131m se\u00e7enekleri yaln\u0131zca Home Assistant OS kurulumlar\u0131nda yap\u0131land\u0131r\u0131labilir.",
|
|
10
|
-
"otbr_addon_already_running": "OpenThread Border Router eklentisi zaten \u00e7al\u0131\u015f\u0131yor, tekrar y\u00fcklenemez.",
|
|
11
|
-
"otbr_still_using_stick": "Bu {model} OpenThread Border Router eklentisi taraf\u0131ndan kullan\u0131l\u0131yor. Thread a\u011f\u0131n\u0131 kullan\u0131yorsan\u0131z alternatif border router'lar\u0131n\u0131z oldu\u011fundan emin olun. Eklentiyi kald\u0131r\u0131n ve tekrar deneyin.",
|
|
12
|
-
"unsupported_firmware": "{model} cihaz\u0131n\u0131zdaki radyo yaz\u0131l\u0131m\u0131 belirlenemedi. \u015eu anda cihazla ileti\u015fim kurmaya \u00e7al\u0131\u015fan ba\u015fka bir entegrasyon veya eklenti olmad\u0131\u011f\u0131ndan emin olun. Home Assistant OS'yi sanal bir makinede veya Docker'da \u00e7al\u0131\u015ft\u0131r\u0131yorsan\u0131z, l\u00fctfen cihaz i\u00e7in izinlerin do\u011fru \u015fekilde ayarland\u0131\u011f\u0131ndan emin olun.",
|
|
13
|
-
"zha_migration_failed": "ZHA ge\u00e7i\u015fi ba\u015far\u0131l\u0131 olmad\u0131.",
|
|
14
|
-
"zha_still_using_stick": "Bu {model} Zigbee Ev Otomasyonu entegrasyonu taraf\u0131ndan kullan\u0131l\u0131yor. L\u00fctfen Zigbee a\u011f\u0131n\u0131z\u0131 ba\u015fka bir adapt\u00f6re ta\u015f\u0131y\u0131n veya entegrasyonu silin ve tekrar deneyin."
|
|
15
|
-
},
|
|
16
|
-
"flow_title": "{model}",
|
|
17
|
-
"progress": {
|
|
18
|
-
"install_addon": "{addon_name} eklentisinin kurulumu tamamlanana kadar l\u00fctfen bekleyin. Bu birka\u00e7 dakika s\u00fcrebilir.",
|
|
19
|
-
"install_firmware": "Kurulum {firmware_name} firmware. \n \n Bu i\u015flem tamamlanana kadar donan\u0131m\u0131n\u0131zda veya yaz\u0131l\u0131m\u0131n\u0131zda herhangi bir de\u011fi\u015fiklik yapmay\u0131n.",
|
|
20
|
-
"install_otbr_addon": "Eklenti y\u00fckleniyor"
|
|
21
|
-
},
|
|
22
3
|
"step": {
|
|
23
|
-
"install_thread_firmware": {
|
|
24
|
-
"title": "Ba\u011fda\u015ft\u0131r\u0131c\u0131 g\u00fcncelleniyor"
|
|
25
|
-
},
|
|
26
|
-
"install_zigbee_firmware": {
|
|
27
|
-
"title": "Ba\u011fda\u015ft\u0131r\u0131c\u0131 g\u00fcncelleniyor"
|
|
28
|
-
},
|
|
29
|
-
"pick_firmware": {
|
|
30
|
-
"menu_option_descriptions": {
|
|
31
|
-
"pick_firmware_thread": "Genellikle Matter over Thread cihazlar\u0131nda kullan\u0131l\u0131r.",
|
|
32
|
-
"pick_firmware_thread_migrate": "Bu, Thread Border Router'\u0131n\u0131z\u0131 yeni adapt\u00f6re ta\u015f\u0131yacakt\u0131r.",
|
|
33
|
-
"pick_firmware_zigbee": "En yayg\u0131n protokol.",
|
|
34
|
-
"pick_firmware_zigbee_migrate": "Bu, Zigbee a\u011f\u0131n\u0131z\u0131 yeni adapt\u00f6re ta\u015f\u0131yacakt\u0131r."
|
|
35
|
-
},
|
|
36
|
-
"menu_options": {
|
|
37
|
-
"pick_firmware_thread_migrate": "Thread'i yeni bir adapt\u00f6re ta\u015f\u0131y\u0131n",
|
|
38
|
-
"pick_firmware_zigbee_migrate": "Zigbee'yi yeni bir adapt\u00f6re ta\u015f\u0131y\u0131n"
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
4
|
"show_z2m_docs_url": {
|
|
42
5
|
"description": "Senin {model} \u015eu anda en son Zigbee ayg\u0131t yaz\u0131l\u0131m\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131yor. \n L\u00fctfen EmberZNet ba\u011fda\u015ft\u0131r\u0131c\u0131lar\u0131 i\u00e7in Zigbee2MQTT belgelerini okuyun ve yap\u0131land\u0131rmay\u0131 kopyalay\u0131n. {model}: {z2m_docs_url}",
|
|
43
6
|
"title": "Zigbee2MQTT'yi kurun"
|
|
44
|
-
},
|
|
45
|
-
"zigbee_installation_type": {
|
|
46
|
-
"description": "Zigbee adapt\u00f6r\u00fc i\u00e7in kurulum t\u00fcr\u00fcn\u00fc se\u00e7in.",
|
|
47
|
-
"menu_option_descriptions": {
|
|
48
|
-
"zigbee_intent_custom": "\u00d6rne\u011fin Zigbee2MQTT ile Zigbee'yi manuel olarak kurun ve yap\u0131land\u0131r\u0131n.",
|
|
49
|
-
"zigbee_intent_recommended": "Zigbee'yi otomatik olarak kurun ve yap\u0131land\u0131r\u0131n."
|
|
50
|
-
},
|
|
51
|
-
"menu_options": {
|
|
52
|
-
"zigbee_intent_custom": "Ki\u015fiselle\u015ftirilmi\u015f",
|
|
53
|
-
"zigbee_intent_recommended": "\u00d6nerilen kurulum"
|
|
54
|
-
},
|
|
55
|
-
"title": "Zigbee'yi kurun"
|
|
56
|
-
},
|
|
57
|
-
"zigbee_integration": {
|
|
58
|
-
"menu_option_descriptions": {
|
|
59
|
-
"zigbee_integration_other": "\u00d6rne\u011fin adapt\u00f6r\u00fc Zigbee2MQTT ile kullanmak istiyorsan\u0131z.",
|
|
60
|
-
"zigbee_integration_zha": "Home Assistant'\u0131n Zigbee a\u011f\u0131n\u0131 kontrol etmesini sa\u011flar."
|
|
61
|
-
},
|
|
62
|
-
"menu_options": {
|
|
63
|
-
"zigbee_integration_other": "Di\u011fer",
|
|
64
|
-
"zigbee_integration_zha": "Zigbee Ev Otomasyonu"
|
|
65
|
-
},
|
|
66
|
-
"title": "Zigbee y\u00f6ntemini se\u00e7in"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
"entity": {
|
|
71
|
-
"switch": {
|
|
72
|
-
"beta_firmware": {
|
|
73
|
-
"name": "Beta \u00fcr\u00fcn yaz\u0131l\u0131m\u0131 g\u00fcncellemeleri"
|
|
74
7
|
}
|
|
75
8
|
}
|
|
76
9
|
},
|
|
77
10
|
"options": {
|
|
78
|
-
"abort": {
|
|
79
|
-
"zha_migration_failed": "ZHA ge\u00e7i\u015fi ba\u015far\u0131l\u0131 olmad\u0131.",
|
|
80
|
-
"zha_still_using_stick": "Bu {model} Zigbee Ev Otomasyonu entegrasyonu taraf\u0131ndan kullan\u0131l\u0131yor. L\u00fctfen Zigbee a\u011f\u0131n\u0131z\u0131 ba\u015fka bir adapt\u00f6re ta\u015f\u0131y\u0131n veya entegrasyonu silin ve tekrar deneyin."
|
|
81
|
-
},
|
|
82
|
-
"error": {
|
|
83
|
-
"unknown": "Beklenmeyen hata"
|
|
84
|
-
},
|
|
85
|
-
"progress": {
|
|
86
|
-
"install_addon": "{addon_name} eklentisinin kurulumu tamamlanana kadar l\u00fctfen bekleyin. Bu birka\u00e7 dakika s\u00fcrebilir.",
|
|
87
|
-
"install_firmware": "Kurulum {firmware_name} firmware. \n \n Bu i\u015flem tamamlanana kadar donan\u0131m\u0131n\u0131zda veya yaz\u0131l\u0131m\u0131n\u0131zda herhangi bir de\u011fi\u015fiklik yapmay\u0131n.",
|
|
88
|
-
"install_otbr_addon": "Eklenti y\u00fckleniyor",
|
|
89
|
-
"start_addon": "{addon_name} eklentisinin ba\u015flat\u0131lmas\u0131 tamamlanana kadar l\u00fctfen bekleyin. Bu birka\u00e7 saniye s\u00fcrebilir.",
|
|
90
|
-
"start_otbr_addon": "Eklenti ba\u015flat\u0131l\u0131yor"
|
|
91
|
-
},
|
|
92
11
|
"step": {
|
|
93
|
-
"addon_installed_other_device": {
|
|
94
|
-
"title": "Ba\u015fka bir cihaz i\u00e7in \u00e7oklu protokol deste\u011fi zaten etkin"
|
|
95
|
-
},
|
|
96
|
-
"addon_menu": {
|
|
97
|
-
"menu_options": {
|
|
98
|
-
"reconfigure_addon": "IEEE 802.15.4 radyo \u00e7oklu protokol deste\u011fini yeniden yap\u0131land\u0131r\u0131n",
|
|
99
|
-
"uninstall_addon": "IEEE 802.15.4 radyo \u00e7oklu protokol deste\u011fini kald\u0131r\u0131n"
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
"addon_not_installed": {
|
|
103
|
-
"data": {
|
|
104
|
-
"enable_multi_pan": "\u00c7oklu protokol deste\u011fini etkinle\u015ftir"
|
|
105
|
-
},
|
|
106
|
-
"description": "\u00c7oklu protokol deste\u011fi etkinle\u015ftirildi\u011finde, {hardware_name} cihaz\u0131n\u0131n IEEE 802.15.4 radyosu ayn\u0131 anda hem Zigbee hem de Thread (Matter taraf\u0131ndan kullan\u0131l\u0131r) i\u00e7in kullan\u0131labilir. Telsiz zaten ZHA Zigbee entegrasyonu taraf\u0131ndan kullan\u0131l\u0131yorsa, ZHA \u00e7oklu protokol bellenimini kullanmak \u00fczere yeniden yap\u0131land\u0131r\u0131lacakt\u0131r. \n\n Not: Bu deneysel bir \u00f6zelliktir.",
|
|
107
|
-
"title": "IEEE 802.15.4 radyosunda \u00e7oklu protokol deste\u011fini etkinle\u015ftirin"
|
|
108
|
-
},
|
|
109
|
-
"change_channel": {
|
|
110
|
-
"data": {
|
|
111
|
-
"channel": "Kanal"
|
|
112
|
-
},
|
|
113
|
-
"description": "Zigbee ve Thread a\u011flar\u0131n\u0131z i\u00e7in bir kanal de\u011fi\u015fikli\u011fi ba\u015flat\u0131n. \n\n Not: Bu geli\u015fmi\u015f bir i\u015flemdir ve yeni kanal t\u0131kan\u0131rsa Thread ve Zigbee a\u011flar\u0131n\u0131z\u0131 \u00e7al\u0131\u015fmaz hale getirebilir. Mevcut a\u011f ko\u015fullar\u0131na ba\u011fl\u0131 olarak, cihazlar\u0131n\u0131z\u0131n \u00e7o\u011fu yeni kanala ta\u015f\u0131nmayabilir ve tekrar \u00e7al\u0131\u015fmaya ba\u015flamadan \u00f6nce yeniden kat\u0131lmalar\u0131 gerekebilir. Dikkatle kullan\u0131n. \n\n **G\u00f6nder**'i se\u00e7ti\u011finizde, kanal de\u011fi\u015fikli\u011fi arka planda sessizce ba\u015flar ve birka\u00e7 dakika sonra tamamlan\u0131r.",
|
|
114
|
-
"title": "IEEE 802.15.4 radyo \u00e7oklu protokol deste\u011fini yeniden yap\u0131land\u0131r\u0131n"
|
|
115
|
-
},
|
|
116
|
-
"confirm_otbr": {
|
|
117
|
-
"title": "OpenThread Border Router kurulumu tamamland\u0131"
|
|
118
|
-
},
|
|
119
|
-
"confirm_zigbee": {
|
|
120
|
-
"title": "Zigbee kurulumu tamamland\u0131"
|
|
121
|
-
},
|
|
122
|
-
"install_addon": {
|
|
123
|
-
"title": "Silicon Labs Multiprotocol eklenti kurulumu ba\u015flad\u0131"
|
|
124
|
-
},
|
|
125
|
-
"install_thread_firmware": {
|
|
126
|
-
"title": "Ba\u011fda\u015ft\u0131r\u0131c\u0131 g\u00fcncelleniyor"
|
|
127
|
-
},
|
|
128
|
-
"install_zigbee_firmware": {
|
|
129
|
-
"title": "Ba\u011fda\u015ft\u0131r\u0131c\u0131 g\u00fcncelleniyor"
|
|
130
|
-
},
|
|
131
|
-
"notify_channel_change": {
|
|
132
|
-
"description": "Bir Zigbee ve Konu kanal\u0131 de\u011fi\u015fikli\u011fi ba\u015flat\u0131ld\u0131 ve {delay_minutes} dakika i\u00e7inde tamamlanacak.",
|
|
133
|
-
"title": "Kanal de\u011fi\u015fikli\u011fi ba\u015flat\u0131ld\u0131"
|
|
134
|
-
},
|
|
135
|
-
"notify_unknown_multipan_user": {
|
|
136
|
-
"description": "Home Assistant, OTBR ve ZHA i\u00e7in kanallar\u0131 otomatik olarak de\u011fi\u015ftirebilir. Radyo kullanmak i\u00e7in ba\u015fka bir entegrasyon yap\u0131land\u0131rd\u0131ysan\u0131z, \u00f6rne\u011fin Zigbee2MQTT, bu k\u0131lavuzu tamamlad\u0131ktan sonra o entegrasyondaki kanal\u0131 yeniden yap\u0131land\u0131rman\u0131z gerekecektir.",
|
|
137
|
-
"title": "Manuel yap\u0131land\u0131rma gerekebilir"
|
|
138
|
-
},
|
|
139
|
-
"otbr_failed": {
|
|
140
|
-
"description": "OpenThread Border Router eklentisi kurulumu ba\u015far\u0131s\u0131z oldu. Ba\u015fka hi\u00e7bir yaz\u0131l\u0131m\u0131n {model} ile ileti\u015fim kurmaya \u00e7al\u0131\u015fmad\u0131\u011f\u0131ndan, \u0130nternete eri\u015fiminiz oldu\u011fundan ve di\u011fer eklentileri kurabildi\u011finizden emin olun ve tekrar deneyin. Sorun devam ederse Supervisor g\u00fcnl\u00fcklerini kontrol edin."
|
|
141
|
-
},
|
|
142
|
-
"pick_firmware": {
|
|
143
|
-
"menu_option_descriptions": {
|
|
144
|
-
"pick_firmware_thread": "Genellikle Matter over Thread cihazlar\u0131nda kullan\u0131l\u0131r.",
|
|
145
|
-
"pick_firmware_thread_migrate": "Bu, Thread Border Router'\u0131n\u0131z\u0131 yeni adapt\u00f6re ta\u015f\u0131yacakt\u0131r.",
|
|
146
|
-
"pick_firmware_zigbee": "En yayg\u0131n protokol.",
|
|
147
|
-
"pick_firmware_zigbee_migrate": "Bu, Zigbee a\u011f\u0131n\u0131z\u0131 yeni adapt\u00f6re ta\u015f\u0131yacakt\u0131r."
|
|
148
|
-
},
|
|
149
|
-
"menu_options": {
|
|
150
|
-
"pick_firmware_thread_migrate": "Thread'i yeni bir adapt\u00f6re ta\u015f\u0131y\u0131n",
|
|
151
|
-
"pick_firmware_zigbee_migrate": "Zigbee'yi yeni bir adapt\u00f6re ta\u015f\u0131y\u0131n"
|
|
152
|
-
}
|
|
153
|
-
},
|
|
154
12
|
"show_z2m_docs_url": {
|
|
155
13
|
"description": "Senin {model} \u015eu anda en son Zigbee ayg\u0131t yaz\u0131l\u0131m\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131yor. \n L\u00fctfen EmberZNet ba\u011fda\u015ft\u0131r\u0131c\u0131lar\u0131 i\u00e7in Zigbee2MQTT belgelerini okuyun ve yap\u0131land\u0131rmay\u0131 kopyalay\u0131n. {model}: {z2m_docs_url}",
|
|
156
14
|
"title": "Zigbee2MQTT'yi kurun"
|
|
157
|
-
},
|
|
158
|
-
"zigbee_integration": {
|
|
159
|
-
"title": "Zigbee y\u00f6ntemini se\u00e7in"
|
|
160
15
|
}
|
|
161
16
|
}
|
|
162
17
|
}
|
|
@@ -33,14 +33,13 @@ from homeassistant.exceptions import HomeAssistantError
|
|
|
33
33
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
|
34
34
|
from homeassistant.helpers.hassio import is_hassio
|
|
35
35
|
|
|
36
|
-
from .const import
|
|
36
|
+
from .const import OTBR_DOMAIN, Z2M_EMBER_DOCS_URL, ZHA_DOMAIN
|
|
37
37
|
from .util import (
|
|
38
38
|
ApplicationType,
|
|
39
39
|
FirmwareInfo,
|
|
40
40
|
OwningAddon,
|
|
41
41
|
OwningIntegration,
|
|
42
42
|
ResetTarget,
|
|
43
|
-
async_firmware_flashing_context,
|
|
44
43
|
async_flash_silabs_firmware,
|
|
45
44
|
get_otbr_addon_manager,
|
|
46
45
|
guess_firmware_info,
|
|
@@ -229,95 +228,83 @@ class BaseFirmwareInstallFlow(ConfigEntryBaseFlow, ABC):
|
|
|
229
228
|
# Keep track of the firmware we're working with, for error messages
|
|
230
229
|
self.installing_firmware_name = firmware_name
|
|
231
230
|
|
|
232
|
-
#
|
|
233
|
-
#
|
|
234
|
-
#
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
)
|
|
231
|
+
# Installing new firmware is only truly required if the wrong type is
|
|
232
|
+
# installed: upgrading to the latest release of the current firmware type
|
|
233
|
+
# isn't strictly necessary for functionality.
|
|
234
|
+
self._probed_firmware_info = await probe_silabs_firmware_info(
|
|
235
|
+
self._device,
|
|
236
|
+
bootloader_reset_methods=self.BOOTLOADER_RESET_METHODS,
|
|
237
|
+
application_probe_methods=self.APPLICATION_PROBE_METHODS,
|
|
238
|
+
)
|
|
239
|
+
|
|
240
|
+
firmware_install_required = self._probed_firmware_info is None or (
|
|
241
|
+
self._probed_firmware_info.firmware_type != expected_installed_firmware_type
|
|
242
|
+
)
|
|
245
243
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
244
|
+
session = async_get_clientsession(self.hass)
|
|
245
|
+
client = FirmwareUpdateClient(fw_update_url, session)
|
|
246
|
+
|
|
247
|
+
try:
|
|
248
|
+
manifest = await client.async_update_data()
|
|
249
|
+
fw_manifest = next(
|
|
250
|
+
fw for fw in manifest.firmwares if fw.filename.startswith(fw_type)
|
|
249
251
|
)
|
|
252
|
+
except (StopIteration, TimeoutError, ClientError, ManifestMissing) as err:
|
|
253
|
+
_LOGGER.warning("Failed to fetch firmware update manifest", exc_info=True)
|
|
250
254
|
|
|
251
|
-
|
|
252
|
-
|
|
255
|
+
# Not having internet access should not prevent setup
|
|
256
|
+
if not firmware_install_required:
|
|
257
|
+
_LOGGER.debug("Skipping firmware upgrade due to index download failure")
|
|
258
|
+
return
|
|
253
259
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
)
|
|
259
|
-
except (StopIteration, TimeoutError, ClientError, ManifestMissing) as err:
|
|
260
|
-
_LOGGER.warning(
|
|
261
|
-
"Failed to fetch firmware update manifest", exc_info=True
|
|
262
|
-
)
|
|
260
|
+
raise AbortFlow(
|
|
261
|
+
reason="fw_download_failed",
|
|
262
|
+
description_placeholders=self._get_translation_placeholders(),
|
|
263
|
+
) from err
|
|
263
264
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
_LOGGER.debug(
|
|
267
|
-
"Skipping firmware upgrade due to index download failure"
|
|
268
|
-
)
|
|
269
|
-
return
|
|
265
|
+
if not firmware_install_required:
|
|
266
|
+
assert self._probed_firmware_info is not None
|
|
270
267
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
268
|
+
# Make sure we do not downgrade the firmware
|
|
269
|
+
fw_metadata = NabuCasaMetadata.from_json(fw_manifest.metadata)
|
|
270
|
+
fw_version = fw_metadata.get_public_version()
|
|
271
|
+
probed_fw_version = Version(self._probed_firmware_info.firmware_version)
|
|
275
272
|
|
|
273
|
+
if probed_fw_version >= fw_version:
|
|
274
|
+
_LOGGER.debug(
|
|
275
|
+
"Not downgrading firmware, installed %s is newer than available %s",
|
|
276
|
+
probed_fw_version,
|
|
277
|
+
fw_version,
|
|
278
|
+
)
|
|
279
|
+
return
|
|
280
|
+
|
|
281
|
+
try:
|
|
282
|
+
fw_data = await client.async_fetch_firmware(fw_manifest)
|
|
283
|
+
except (TimeoutError, ClientError, ValueError) as err:
|
|
284
|
+
_LOGGER.warning("Failed to fetch firmware update", exc_info=True)
|
|
285
|
+
|
|
286
|
+
# If we cannot download new firmware, we shouldn't block setup
|
|
276
287
|
if not firmware_install_required:
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
# Make sure we do not downgrade the firmware
|
|
280
|
-
fw_metadata = NabuCasaMetadata.from_json(fw_manifest.metadata)
|
|
281
|
-
fw_version = fw_metadata.get_public_version()
|
|
282
|
-
probed_fw_version = Version(self._probed_firmware_info.firmware_version)
|
|
283
|
-
|
|
284
|
-
if probed_fw_version >= fw_version:
|
|
285
|
-
_LOGGER.debug(
|
|
286
|
-
"Not downgrading firmware, installed %s is newer than available %s",
|
|
287
|
-
probed_fw_version,
|
|
288
|
-
fw_version,
|
|
289
|
-
)
|
|
290
|
-
return
|
|
288
|
+
_LOGGER.debug("Skipping firmware upgrade due to image download failure")
|
|
289
|
+
return
|
|
291
290
|
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
291
|
+
# Otherwise, fail
|
|
292
|
+
raise AbortFlow(
|
|
293
|
+
reason="fw_download_failed",
|
|
294
|
+
description_placeholders=self._get_translation_placeholders(),
|
|
295
|
+
) from err
|
|
296
296
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
) from err
|
|
309
|
-
|
|
310
|
-
self._probed_firmware_info = await async_flash_silabs_firmware(
|
|
311
|
-
hass=self.hass,
|
|
312
|
-
device=self._device,
|
|
313
|
-
fw_data=fw_data,
|
|
314
|
-
expected_installed_firmware_type=expected_installed_firmware_type,
|
|
315
|
-
bootloader_reset_methods=self.BOOTLOADER_RESET_METHODS,
|
|
316
|
-
application_probe_methods=self.APPLICATION_PROBE_METHODS,
|
|
317
|
-
progress_callback=lambda offset, total: self.async_update_progress(
|
|
318
|
-
offset / total
|
|
319
|
-
),
|
|
320
|
-
)
|
|
297
|
+
self._probed_firmware_info = await async_flash_silabs_firmware(
|
|
298
|
+
hass=self.hass,
|
|
299
|
+
device=self._device,
|
|
300
|
+
fw_data=fw_data,
|
|
301
|
+
expected_installed_firmware_type=expected_installed_firmware_type,
|
|
302
|
+
bootloader_reset_methods=self.BOOTLOADER_RESET_METHODS,
|
|
303
|
+
application_probe_methods=self.APPLICATION_PROBE_METHODS,
|
|
304
|
+
progress_callback=lambda offset, total: self.async_update_progress(
|
|
305
|
+
offset / total
|
|
306
|
+
),
|
|
307
|
+
)
|
|
321
308
|
|
|
322
309
|
async def _configure_and_start_otbr_addon(self) -> None:
|
|
323
310
|
"""Configure and start the OTBR addon."""
|
|
@@ -457,6 +444,10 @@ class BaseFirmwareInstallFlow(ConfigEntryBaseFlow, ABC):
|
|
|
457
444
|
# This step is necessary to prevent `user_input` from being passed through
|
|
458
445
|
return await self.async_step_continue_zigbee()
|
|
459
446
|
|
|
447
|
+
def _extra_zha_hardware_options(self) -> dict[str, Any]:
|
|
448
|
+
"""Return extra ZHA hardware options."""
|
|
449
|
+
return {}
|
|
450
|
+
|
|
460
451
|
async def async_step_continue_zigbee(
|
|
461
452
|
self, user_input: dict[str, Any] | None = None
|
|
462
453
|
) -> ConfigFlowResult:
|
|
@@ -479,6 +470,7 @@ class BaseFirmwareInstallFlow(ConfigEntryBaseFlow, ABC):
|
|
|
479
470
|
},
|
|
480
471
|
"radio_type": "ezsp",
|
|
481
472
|
"flow_strategy": self._zigbee_flow_strategy,
|
|
473
|
+
**self._extra_zha_hardware_options(),
|
|
482
474
|
},
|
|
483
475
|
)
|
|
484
476
|
return self._continue_zha_flow(result)
|
|
@@ -53,10 +53,6 @@
|
|
|
53
53
|
},
|
|
54
54
|
"title": "Elige tu protocolo"
|
|
55
55
|
},
|
|
56
|
-
"show_z2m_docs_url": {
|
|
57
|
-
"description": "Tu {model} ahora est\u00e1 ejecutando el \u00faltimo firmware Zigbee. \nPor favor, lee la documentaci\u00f3n de Zigbee2MQTT para los adaptadores EmberZNet y copia la configuraci\u00f3n para tu {model}: {z2m_docs_url}",
|
|
58
|
-
"title": "Configurar Zigbee2MQTT"
|
|
59
|
-
},
|
|
60
56
|
"start_otbr_addon": {
|
|
61
57
|
"title": "Configuraci\u00f3n de Thread"
|
|
62
58
|
},
|
|
@@ -44,10 +44,6 @@
|
|
|
44
44
|
"pick_firmware_zigbee_migrate": "Aistrigh Zigbee chuig oiri\u00fant\u00f3ir nua"
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
|
-
"show_z2m_docs_url": {
|
|
48
|
-
"description": "T\u00e1 an fhirmchl\u00e1r Zigbee is d\u00e9ana\u00ed \u00e1 rith ar do {model} anois.\nL\u00e9igh an doicim\u00e9ad\u00fa Zigbee2MQTT le haghaidh oiri\u00fanaitheoir\u00ed EmberZNet agus c\u00f3ipe\u00e1il an chumra\u00edocht do do {model}: {z2m_docs_url}",
|
|
49
|
-
"title": "Socraigh Zigbee2MQTT"
|
|
50
|
-
},
|
|
51
47
|
"zigbee_installation_type": {
|
|
52
48
|
"description": "Roghnaigh an cine\u00e1l suite\u00e1la don oiri\u00fant\u00f3ir Zigbee.",
|
|
53
49
|
"menu_option_descriptions": {
|
|
@@ -8,9 +8,7 @@
|
|
|
8
8
|
"zha_still_using_stick": "Bu {model} Zigbee Ev Otomasyonu entegrasyonu taraf\u0131ndan kullan\u0131l\u0131yor. L\u00fctfen Zigbee a\u011f\u0131n\u0131z\u0131 ba\u015fka bir adapt\u00f6re ta\u015f\u0131y\u0131n veya entegrasyonu silin ve tekrar deneyin."
|
|
9
9
|
},
|
|
10
10
|
"progress": {
|
|
11
|
-
"install_firmware": "Kurulum {firmware_name} firmware. \n \n Bu i\u015flem tamamlanana kadar donan\u0131m\u0131n\u0131zda veya yaz\u0131l\u0131m\u0131n\u0131zda herhangi bir de\u011fi\u015fiklik yapmay\u0131n."
|
|
12
|
-
"install_otbr_addon": "Eklenti y\u00fckleniyor",
|
|
13
|
-
"start_otbr_addon": "Eklenti ba\u015flat\u0131l\u0131yor"
|
|
11
|
+
"install_firmware": "Kurulum {firmware_name} firmware. \n \n Bu i\u015flem tamamlanana kadar donan\u0131m\u0131n\u0131zda veya yaz\u0131l\u0131m\u0131n\u0131zda herhangi bir de\u011fi\u015fiklik yapmay\u0131n."
|
|
14
12
|
},
|
|
15
13
|
"step": {
|
|
16
14
|
"confirm_otbr": {
|
|
@@ -19,53 +17,12 @@
|
|
|
19
17
|
"confirm_zigbee": {
|
|
20
18
|
"title": "Zigbee kurulumu tamamland\u0131"
|
|
21
19
|
},
|
|
22
|
-
"install_thread_firmware": {
|
|
23
|
-
"title": "Ba\u011fda\u015ft\u0131r\u0131c\u0131 g\u00fcncelleniyor"
|
|
24
|
-
},
|
|
25
|
-
"install_zigbee_firmware": {
|
|
26
|
-
"title": "Ba\u011fda\u015ft\u0131r\u0131c\u0131 g\u00fcncelleniyor"
|
|
27
|
-
},
|
|
28
20
|
"otbr_failed": {
|
|
29
21
|
"description": "OpenThread Border Router eklentisi kurulumu ba\u015far\u0131s\u0131z oldu. Ba\u015fka hi\u00e7bir yaz\u0131l\u0131m\u0131n {model} ile ileti\u015fim kurmaya \u00e7al\u0131\u015fmad\u0131\u011f\u0131ndan, \u0130nternete eri\u015fiminiz oldu\u011fundan ve di\u011fer eklentileri kurabildi\u011finizden emin olun ve tekrar deneyin. Sorun devam ederse Supervisor g\u00fcnl\u00fcklerini kontrol edin."
|
|
30
22
|
},
|
|
31
|
-
"pick_firmware": {
|
|
32
|
-
"menu_option_descriptions": {
|
|
33
|
-
"pick_firmware_thread": "Genellikle Matter over Thread cihazlar\u0131nda kullan\u0131l\u0131r.",
|
|
34
|
-
"pick_firmware_thread_migrate": "Bu, Thread Border Router'\u0131n\u0131z\u0131 yeni adapt\u00f6re ta\u015f\u0131yacakt\u0131r.",
|
|
35
|
-
"pick_firmware_zigbee": "En yayg\u0131n protokol.",
|
|
36
|
-
"pick_firmware_zigbee_migrate": "Bu, Zigbee a\u011f\u0131n\u0131z\u0131 yeni adapt\u00f6re ta\u015f\u0131yacakt\u0131r."
|
|
37
|
-
},
|
|
38
|
-
"menu_options": {
|
|
39
|
-
"pick_firmware_thread_migrate": "Thread'i yeni bir adapt\u00f6re ta\u015f\u0131y\u0131n",
|
|
40
|
-
"pick_firmware_zigbee_migrate": "Zigbee'yi yeni bir adapt\u00f6re ta\u015f\u0131y\u0131n"
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
23
|
"show_z2m_docs_url": {
|
|
44
24
|
"description": "Senin {model} \u015eu anda en son Zigbee ayg\u0131t yaz\u0131l\u0131m\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131yor. \n L\u00fctfen EmberZNet ba\u011fda\u015ft\u0131r\u0131c\u0131lar\u0131 i\u00e7in Zigbee2MQTT belgelerini okuyun ve yap\u0131land\u0131rmay\u0131 kopyalay\u0131n. {model}: {z2m_docs_url}",
|
|
45
25
|
"title": "Zigbee2MQTT'yi kurun"
|
|
46
|
-
},
|
|
47
|
-
"zigbee_installation_type": {
|
|
48
|
-
"description": "Zigbee adapt\u00f6r\u00fc i\u00e7in kurulum t\u00fcr\u00fcn\u00fc se\u00e7in.",
|
|
49
|
-
"menu_option_descriptions": {
|
|
50
|
-
"zigbee_intent_custom": "\u00d6rne\u011fin Zigbee2MQTT ile Zigbee'yi manuel olarak kurun ve yap\u0131land\u0131r\u0131n.",
|
|
51
|
-
"zigbee_intent_recommended": "Zigbee'yi otomatik olarak kurun ve yap\u0131land\u0131r\u0131n."
|
|
52
|
-
},
|
|
53
|
-
"menu_options": {
|
|
54
|
-
"zigbee_intent_custom": "Ki\u015fiselle\u015ftirilmi\u015f",
|
|
55
|
-
"zigbee_intent_recommended": "\u00d6nerilen kurulum"
|
|
56
|
-
},
|
|
57
|
-
"title": "Zigbee'yi kurun"
|
|
58
|
-
},
|
|
59
|
-
"zigbee_integration": {
|
|
60
|
-
"menu_option_descriptions": {
|
|
61
|
-
"zigbee_integration_other": "\u00d6rne\u011fin adapt\u00f6r\u00fc Zigbee2MQTT ile kullanmak istiyorsan\u0131z.",
|
|
62
|
-
"zigbee_integration_zha": "Home Assistant'\u0131n Zigbee a\u011f\u0131n\u0131 kontrol etmesini sa\u011flar."
|
|
63
|
-
},
|
|
64
|
-
"menu_options": {
|
|
65
|
-
"zigbee_integration_other": "Di\u011fer",
|
|
66
|
-
"zigbee_integration_zha": "Zigbee Ev Otomasyonu"
|
|
67
|
-
},
|
|
68
|
-
"title": "Zigbee y\u00f6ntemini se\u00e7in"
|
|
69
26
|
}
|
|
70
27
|
}
|
|
71
28
|
}
|
|
@@ -26,7 +26,6 @@ from .util import (
|
|
|
26
26
|
ApplicationType,
|
|
27
27
|
FirmwareInfo,
|
|
28
28
|
ResetTarget,
|
|
29
|
-
async_firmware_flashing_context,
|
|
30
29
|
async_flash_silabs_firmware,
|
|
31
30
|
)
|
|
32
31
|
|
|
@@ -275,18 +274,16 @@ class BaseFirmwareUpdateEntity(
|
|
|
275
274
|
)
|
|
276
275
|
|
|
277
276
|
try:
|
|
278
|
-
|
|
279
|
-
self.hass,
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
progress_callback=self._update_progress,
|
|
289
|
-
)
|
|
277
|
+
firmware_info = await async_flash_silabs_firmware(
|
|
278
|
+
hass=self.hass,
|
|
279
|
+
device=self._current_device,
|
|
280
|
+
fw_data=fw_data,
|
|
281
|
+
expected_installed_firmware_type=self.entity_description.expected_firmware_type,
|
|
282
|
+
bootloader_reset_methods=self.BOOTLOADER_RESET_METHODS,
|
|
283
|
+
application_probe_methods=self.APPLICATION_PROBE_METHODS,
|
|
284
|
+
progress_callback=self._update_progress,
|
|
285
|
+
domain=self._config_entry.domain,
|
|
286
|
+
)
|
|
290
287
|
finally:
|
|
291
288
|
self._attr_in_progress = False
|
|
292
289
|
self.async_write_ha_state()
|
|
@@ -26,6 +26,7 @@ from homeassistant.helpers.singleton import singleton
|
|
|
26
26
|
|
|
27
27
|
from . import DATA_COMPONENT
|
|
28
28
|
from .const import (
|
|
29
|
+
DOMAIN,
|
|
29
30
|
OTBR_ADDON_MANAGER_DATA,
|
|
30
31
|
OTBR_ADDON_NAME,
|
|
31
32
|
OTBR_ADDON_SLUG,
|
|
@@ -365,22 +366,6 @@ async def probe_silabs_firmware_type(
|
|
|
365
366
|
return fw_info.firmware_type
|
|
366
367
|
|
|
367
368
|
|
|
368
|
-
@asynccontextmanager
|
|
369
|
-
async def async_firmware_flashing_context(
|
|
370
|
-
hass: HomeAssistant, device: str, source_domain: str
|
|
371
|
-
) -> AsyncIterator[None]:
|
|
372
|
-
"""Register a device as having its firmware being actively interacted with."""
|
|
373
|
-
async with async_firmware_update_context(hass, device, source_domain):
|
|
374
|
-
firmware_info = await guess_firmware_info(hass, device)
|
|
375
|
-
_LOGGER.debug("Guessed firmware info before update: %s", firmware_info)
|
|
376
|
-
|
|
377
|
-
async with AsyncExitStack() as stack:
|
|
378
|
-
for owner in firmware_info.owners:
|
|
379
|
-
await stack.enter_async_context(owner.temporarily_stop(hass))
|
|
380
|
-
|
|
381
|
-
yield
|
|
382
|
-
|
|
383
|
-
|
|
384
369
|
async def async_flash_silabs_firmware(
|
|
385
370
|
hass: HomeAssistant,
|
|
386
371
|
device: str,
|
|
@@ -389,11 +374,10 @@ async def async_flash_silabs_firmware(
|
|
|
389
374
|
bootloader_reset_methods: Sequence[ResetTarget],
|
|
390
375
|
application_probe_methods: Sequence[tuple[ApplicationType, int]],
|
|
391
376
|
progress_callback: Callable[[int, int], None] | None = None,
|
|
377
|
+
*,
|
|
378
|
+
domain: str = DOMAIN,
|
|
392
379
|
) -> FirmwareInfo:
|
|
393
|
-
"""Flash firmware to the SiLabs device.
|
|
394
|
-
|
|
395
|
-
This function is meant to be used within a firmware update context.
|
|
396
|
-
"""
|
|
380
|
+
"""Flash firmware to the SiLabs device."""
|
|
397
381
|
if not any(
|
|
398
382
|
method == expected_installed_firmware_type
|
|
399
383
|
for method, _ in application_probe_methods
|
|
@@ -403,44 +387,54 @@ async def async_flash_silabs_firmware(
|
|
|
403
387
|
f" not in application probe methods {application_probe_methods!r}"
|
|
404
388
|
)
|
|
405
389
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
# Flash the firmware, with progress
|
|
424
|
-
await flasher.flash_firmware(fw_image, progress_callback=progress_callback)
|
|
425
|
-
except PermissionError as err:
|
|
426
|
-
raise HomeAssistantError(
|
|
427
|
-
"Failed to flash firmware: Device is used by another application"
|
|
428
|
-
) from err
|
|
429
|
-
except Exception as err:
|
|
430
|
-
raise HomeAssistantError("Failed to flash firmware") from err
|
|
431
|
-
|
|
432
|
-
probed_firmware_info = await probe_silabs_firmware_info(
|
|
433
|
-
device,
|
|
434
|
-
bootloader_reset_methods=bootloader_reset_methods,
|
|
435
|
-
# Only probe for the expected installed firmware type
|
|
436
|
-
application_probe_methods=[
|
|
437
|
-
(method, baudrate)
|
|
438
|
-
for method, baudrate in application_probe_methods
|
|
439
|
-
if method == expected_installed_firmware_type
|
|
440
|
-
],
|
|
441
|
-
)
|
|
390
|
+
async with async_firmware_update_context(hass, device, domain):
|
|
391
|
+
firmware_info = await guess_firmware_info(hass, device)
|
|
392
|
+
_LOGGER.debug("Identified firmware info: %s", firmware_info)
|
|
393
|
+
|
|
394
|
+
fw_image = await hass.async_add_executor_job(parse_firmware_image, fw_data)
|
|
395
|
+
|
|
396
|
+
flasher = Flasher(
|
|
397
|
+
device=device,
|
|
398
|
+
probe_methods=tuple(
|
|
399
|
+
(m.as_flasher_application_type(), baudrate)
|
|
400
|
+
for m, baudrate in application_probe_methods
|
|
401
|
+
),
|
|
402
|
+
bootloader_reset=tuple(
|
|
403
|
+
m.as_flasher_reset_target() for m in bootloader_reset_methods
|
|
404
|
+
),
|
|
405
|
+
)
|
|
442
406
|
|
|
443
|
-
|
|
444
|
-
|
|
407
|
+
async with AsyncExitStack() as stack:
|
|
408
|
+
for owner in firmware_info.owners:
|
|
409
|
+
await stack.enter_async_context(owner.temporarily_stop(hass))
|
|
445
410
|
|
|
446
|
-
|
|
411
|
+
try:
|
|
412
|
+
# Enter the bootloader with indeterminate progress
|
|
413
|
+
await flasher.enter_bootloader()
|
|
414
|
+
|
|
415
|
+
# Flash the firmware, with progress
|
|
416
|
+
await flasher.flash_firmware(
|
|
417
|
+
fw_image, progress_callback=progress_callback
|
|
418
|
+
)
|
|
419
|
+
except PermissionError as err:
|
|
420
|
+
raise HomeAssistantError(
|
|
421
|
+
"Failed to flash firmware: Device is used by another application"
|
|
422
|
+
) from err
|
|
423
|
+
except Exception as err:
|
|
424
|
+
raise HomeAssistantError("Failed to flash firmware") from err
|
|
425
|
+
|
|
426
|
+
probed_firmware_info = await probe_silabs_firmware_info(
|
|
427
|
+
device,
|
|
428
|
+
bootloader_reset_methods=bootloader_reset_methods,
|
|
429
|
+
# Only probe for the expected installed firmware type
|
|
430
|
+
application_probe_methods=[
|
|
431
|
+
(method, baudrate)
|
|
432
|
+
for method, baudrate in application_probe_methods
|
|
433
|
+
if method == expected_installed_firmware_type
|
|
434
|
+
],
|
|
435
|
+
)
|
|
436
|
+
|
|
437
|
+
if probed_firmware_info is None:
|
|
438
|
+
raise HomeAssistantError("Failed to probe the firmware after flashing")
|
|
439
|
+
|
|
440
|
+
return probed_firmware_info
|