homeassistant 2025.7.0b0__py3-none-any.whl → 2025.7.0b2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- homeassistant/components/aemet/sensor.py +1 -1
- homeassistant/components/airq/coordinator.py +2 -2
- homeassistant/components/alexa_devices/__init__.py +5 -2
- homeassistant/components/alexa_devices/notify.py +2 -0
- homeassistant/components/alexa_devices/quality_scale.yaml +1 -1
- homeassistant/components/alexa_devices/strings.json +11 -4
- homeassistant/components/alexa_devices/switch.py +2 -0
- homeassistant/components/alexa_devices/translations/bg.json +6 -4
- homeassistant/components/alexa_devices/translations/cs.json +12 -5
- homeassistant/components/alexa_devices/translations/de.json +14 -7
- homeassistant/components/alexa_devices/translations/el.json +12 -5
- homeassistant/components/alexa_devices/translations/en.json +12 -5
- homeassistant/components/alexa_devices/translations/es.json +12 -5
- homeassistant/components/alexa_devices/translations/et.json +12 -5
- homeassistant/components/alexa_devices/translations/ga.json +0 -6
- homeassistant/components/alexa_devices/translations/he.json +0 -4
- homeassistant/components/alexa_devices/translations/hu.json +0 -4
- homeassistant/components/alexa_devices/translations/id.json +1 -0
- homeassistant/components/alexa_devices/translations/lt.json +0 -4
- homeassistant/components/alexa_devices/translations/mk.json +12 -0
- homeassistant/components/alexa_devices/translations/nl.json +0 -4
- homeassistant/components/alexa_devices/translations/pl.json +0 -4
- homeassistant/components/alexa_devices/translations/pt.json +0 -4
- homeassistant/components/alexa_devices/translations/ru.json +4 -5
- homeassistant/components/alexa_devices/translations/sk.json +12 -5
- homeassistant/components/alexa_devices/translations/sv.json +17 -5
- homeassistant/components/alexa_devices/translations/tr.json +0 -4
- homeassistant/components/alexa_devices/translations/zh-Hans.json +27 -5
- homeassistant/components/alexa_devices/translations/zh-Hant.json +12 -5
- homeassistant/components/alexa_devices/utils.py +40 -0
- homeassistant/components/altruist/translations/id.json +11 -0
- homeassistant/components/anthropic/__init__.py +14 -1
- homeassistant/components/anthropic/translations/bg.json +21 -0
- homeassistant/components/anthropic/translations/ga.json +32 -1
- homeassistant/components/anthropic/translations/id.json +19 -0
- homeassistant/components/anthropic/translations/ru.json +30 -0
- homeassistant/components/backup/translations/de.json +1 -1
- homeassistant/components/buienradar/sensor.py +0 -1
- homeassistant/components/cambridge_audio/translations/sv.json +1 -1
- homeassistant/components/comelit/translations/de.json +1 -1
- homeassistant/components/counter/translations/sv.json +2 -2
- homeassistant/components/demo/translations/select.sv.json +2 -2
- homeassistant/components/derivative/translations/ga.json +20 -0
- homeassistant/components/derivative/translations/ru.json +3 -0
- homeassistant/components/devolo_home_control/translations/bg.json +6 -0
- homeassistant/components/devolo_home_control/translations/id.json +5 -0
- homeassistant/components/devolo_home_control/translations/sv.json +10 -0
- homeassistant/components/devolo_home_control/translations/zh-Hans.json +10 -0
- homeassistant/components/dlink/manifest.json +1 -1
- homeassistant/components/ecovacs/translations/sv.json +1 -1
- homeassistant/components/enphase_envoy/translations/sv.json +5 -2
- homeassistant/components/ezviz/translations/bg.json +6 -0
- homeassistant/components/ezviz/translations/mk.json +13 -0
- homeassistant/components/ezviz/translations/sv.json +10 -0
- homeassistant/components/ezviz/translations/zh-Hans.json +10 -0
- homeassistant/components/fronius/translations/sv.json +2 -2
- homeassistant/components/frontend/manifest.json +1 -1
- homeassistant/components/goodwe/translations/sv.json +5 -5
- homeassistant/components/google_generative_ai_conversation/__init__.py +21 -0
- homeassistant/components/google_generative_ai_conversation/config_flow.py +72 -36
- homeassistant/components/google_generative_ai_conversation/const.py +15 -2
- homeassistant/components/google_generative_ai_conversation/diagnostics.py +1 -0
- homeassistant/components/google_generative_ai_conversation/entity.py +7 -2
- homeassistant/components/google_generative_ai_conversation/helpers.py +73 -0
- homeassistant/components/google_generative_ai_conversation/strings.json +28 -1
- homeassistant/components/google_generative_ai_conversation/translations/bg.json +19 -0
- homeassistant/components/google_generative_ai_conversation/translations/cs.json +28 -0
- homeassistant/components/google_generative_ai_conversation/translations/de.json +28 -0
- homeassistant/components/google_generative_ai_conversation/translations/el.json +28 -0
- homeassistant/components/google_generative_ai_conversation/translations/en.json +28 -0
- homeassistant/components/google_generative_ai_conversation/translations/es.json +28 -0
- homeassistant/components/google_generative_ai_conversation/translations/et.json +28 -0
- homeassistant/components/google_generative_ai_conversation/translations/ga.json +9 -0
- homeassistant/components/google_generative_ai_conversation/translations/id.json +30 -0
- homeassistant/components/google_generative_ai_conversation/translations/mk.json +11 -0
- homeassistant/components/google_generative_ai_conversation/translations/ru.json +67 -0
- homeassistant/components/google_generative_ai_conversation/translations/sk.json +28 -0
- homeassistant/components/google_generative_ai_conversation/translations/sv.json +23 -0
- homeassistant/components/google_generative_ai_conversation/translations/zh-Hans.json +28 -0
- homeassistant/components/google_generative_ai_conversation/translations/zh-Hant.json +28 -0
- homeassistant/components/google_generative_ai_conversation/tts.py +48 -106
- homeassistant/components/group/translations/el.json +18 -18
- homeassistant/components/habitica/const.py +1 -1
- homeassistant/components/harmony/translations/select.sv.json +1 -1
- homeassistant/components/harmony/translations/sv.json +1 -1
- homeassistant/components/homeassistant_hardware/firmware_config_flow.py +89 -7
- homeassistant/components/homeassistant_hardware/strings.json +2 -1
- homeassistant/components/homeassistant_hardware/translations/de.json +1 -0
- homeassistant/components/homeassistant_hardware/translations/en-GB.json +1 -0
- homeassistant/components/homeassistant_hardware/translations/en.json +1 -0
- homeassistant/components/homeassistant_hardware/translations/ga.json +9 -0
- homeassistant/components/homeassistant_hardware/translations/mk.json +9 -0
- homeassistant/components/homeassistant_sky_connect/config_flow.py +1 -1
- homeassistant/components/homeassistant_sky_connect/strings.json +4 -2
- homeassistant/components/homeassistant_sky_connect/translations/de.json +2 -0
- homeassistant/components/homeassistant_sky_connect/translations/en-GB.json +2 -0
- homeassistant/components/homeassistant_sky_connect/translations/en.json +2 -0
- homeassistant/components/homeassistant_sky_connect/translations/ga.json +10 -0
- homeassistant/components/homeassistant_sky_connect/translations/mk.json +7 -0
- homeassistant/components/homeassistant_yellow/strings.json +2 -1
- homeassistant/components/homeassistant_yellow/translations/bg.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/cs.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/de.json +1 -0
- homeassistant/components/homeassistant_yellow/translations/el.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/en-GB.json +2 -1
- homeassistant/components/homeassistant_yellow/translations/en.json +2 -1
- homeassistant/components/homeassistant_yellow/translations/es.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/et.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/fr.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/ga.json +5 -0
- homeassistant/components/homeassistant_yellow/translations/he.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/hu.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/id.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/it.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/ja.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/lt.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/pt.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/ru.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/sk.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/sv.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/tr.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/zh-Hans.json +0 -1
- homeassistant/components/homeassistant_yellow/translations/zh-Hant.json +0 -1
- homeassistant/components/homewizard/translations/sv.json +3 -1
- homeassistant/components/http/auth.py +1 -1
- homeassistant/components/image/__init__.py +34 -3
- homeassistant/components/input_number/translations/sv.json +2 -2
- homeassistant/components/input_select/translations/sv.json +6 -6
- homeassistant/components/input_text/translations/sv.json +1 -1
- homeassistant/components/iron_os/manifest.json +1 -1
- homeassistant/components/iron_os/translations/sv.json +1 -1
- homeassistant/components/keenetic_ndms2/translations/id.json +3 -0
- homeassistant/components/lamarzocco/entity.py +19 -1
- homeassistant/components/lamarzocco/number.py +0 -4
- homeassistant/components/lamarzocco/sensor.py +2 -4
- homeassistant/components/lamarzocco/translations/sv.json +3 -3
- homeassistant/components/lametric/translations/sv.json +2 -2
- homeassistant/components/lametric/update.py +1 -1
- homeassistant/components/lg_thinq/translations/sv.json +5 -5
- homeassistant/components/litterrobot/translations/bg.json +4 -0
- homeassistant/components/litterrobot/translations/ga.json +3 -0
- homeassistant/components/matter/translations/id.json +5 -0
- homeassistant/components/matter/vacuum.py +38 -26
- homeassistant/components/meater/__init__.py +5 -1
- homeassistant/components/meater/coordinator.py +4 -2
- homeassistant/components/media_source/local_source.py +21 -4
- homeassistant/components/minecraft_server/translations/sv.json +1 -1
- homeassistant/components/motioneye/translations/sv.json +1 -1
- homeassistant/components/mqtt/translations/bg.json +10 -0
- homeassistant/components/mqtt/translations/cs.json +19 -0
- homeassistant/components/mqtt/translations/el.json +21 -0
- homeassistant/components/mqtt/translations/fi.json +3 -0
- homeassistant/components/mqtt/translations/ga.json +25 -0
- homeassistant/components/mqtt/translations/mk.json +23 -0
- homeassistant/components/mqtt/translations/ru.json +1 -0
- homeassistant/components/mqtt/translations/sv.json +24 -0
- homeassistant/components/mqtt/translations/zh-Hans.json +26 -0
- homeassistant/components/mqtt/translations/zh-Hant.json +19 -0
- homeassistant/components/music_assistant/button.py +0 -6
- homeassistant/components/ntfy/translations/id.json +13 -0
- homeassistant/components/ntfy/translations/sv.json +1 -0
- homeassistant/components/number/translations/sv.json +2 -2
- homeassistant/components/nut/config_flow.py +4 -2
- homeassistant/components/ohme/translations/sv.json +1 -1
- homeassistant/components/ollama/__init__.py +8 -0
- homeassistant/components/ollama/const.py +2 -0
- homeassistant/components/ollama/translations/bg.json +19 -0
- homeassistant/components/ollama/translations/ga.json +31 -1
- homeassistant/components/ollama/translations/id.json +18 -0
- homeassistant/components/ollama/translations/mk.json +13 -1
- homeassistant/components/ollama/translations/sv.json +1 -0
- homeassistant/components/onewire/translations/sv.json +4 -4
- homeassistant/components/openai_conversation/__init__.py +8 -0
- homeassistant/components/openai_conversation/const.py +1 -1
- homeassistant/components/openai_conversation/conversation.py +1 -1
- homeassistant/components/openai_conversation/translations/bg.json +26 -0
- homeassistant/components/openai_conversation/translations/id.json +23 -0
- homeassistant/components/openai_conversation/translations/mk.json +44 -0
- homeassistant/components/openai_conversation/translations/sv.json +4 -0
- homeassistant/components/playstation_network/diagnostics.py +55 -0
- homeassistant/components/playstation_network/quality_scale.yaml +1 -1
- homeassistant/components/playstation_network/translations/bg.json +25 -1
- homeassistant/components/playstation_network/translations/es.json +1 -1
- homeassistant/components/playstation_network/translations/ga.json +31 -0
- homeassistant/components/playstation_network/translations/id.json +14 -0
- homeassistant/components/playstation_network/translations/mk.json +18 -0
- homeassistant/components/playstation_network/translations/pl.json +73 -0
- homeassistant/components/playstation_network/translations/sv.json +29 -0
- homeassistant/components/playstation_network/translations/zh-Hans.json +29 -0
- homeassistant/components/plugwise/translations/sv.json +2 -2
- homeassistant/components/qnap/translations/sv.json +1 -1
- homeassistant/components/random/translations/sv.json +4 -4
- homeassistant/components/remote_calendar/translations/fi.json +34 -0
- homeassistant/components/select/translations/sv.json +10 -10
- homeassistant/components/smarla/__init__.py +2 -2
- homeassistant/components/sonos/translations/bg.json +5 -0
- homeassistant/components/sonos/translations/cs.json +6 -0
- homeassistant/components/sonos/translations/el.json +6 -0
- homeassistant/components/sonos/translations/ga.json +8 -0
- homeassistant/components/sonos/translations/mk.json +10 -0
- homeassistant/components/sonos/translations/ru.json +6 -0
- homeassistant/components/sonos/translations/sv.json +6 -0
- homeassistant/components/sonos/translations/zh-Hans.json +9 -0
- homeassistant/components/sonos/translations/zh-Hant.json +6 -0
- homeassistant/components/subaru/strings.json +2 -2
- homeassistant/components/subaru/translations/ca.json +0 -1
- homeassistant/components/subaru/translations/cs.json +0 -2
- homeassistant/components/subaru/translations/de.json +2 -2
- homeassistant/components/subaru/translations/el.json +0 -2
- homeassistant/components/subaru/translations/en-GB.json +0 -2
- homeassistant/components/subaru/translations/en.json +2 -2
- homeassistant/components/subaru/translations/es.json +0 -2
- homeassistant/components/subaru/translations/et.json +0 -2
- homeassistant/components/subaru/translations/fi.json +0 -1
- homeassistant/components/subaru/translations/hu.json +0 -2
- homeassistant/components/subaru/translations/it.json +0 -1
- homeassistant/components/subaru/translations/ja.json +0 -1
- homeassistant/components/subaru/translations/ko.json +0 -1
- homeassistant/components/subaru/translations/lt.json +0 -2
- homeassistant/components/subaru/translations/pt-BR.json +0 -1
- homeassistant/components/subaru/translations/pt.json +0 -2
- homeassistant/components/subaru/translations/ru.json +0 -2
- homeassistant/components/subaru/translations/sk.json +0 -2
- homeassistant/components/subaru/translations/sv.json +0 -2
- homeassistant/components/subaru/translations/tr.json +0 -2
- homeassistant/components/subaru/translations/zh-Hans.json +0 -2
- homeassistant/components/subaru/translations/zh-Hant.json +0 -2
- homeassistant/components/switchbot/translations/bg.json +26 -0
- homeassistant/components/switchbot/translations/ga.json +33 -0
- homeassistant/components/switchbot/translations/id.json +19 -0
- homeassistant/components/switchbot/translations/mk.json +49 -0
- homeassistant/components/switchbot/translations/sv.json +54 -0
- homeassistant/components/switchbot/translations/zh-Hans.json +53 -0
- homeassistant/components/telegram_bot/__init__.py +20 -4
- homeassistant/components/telegram_bot/bot.py +33 -29
- homeassistant/components/telegram_bot/config_flow.py +66 -20
- homeassistant/components/telegram_bot/const.py +1 -1
- homeassistant/components/telegram_bot/strings.json +33 -10
- homeassistant/components/telegram_bot/translations/bg.json +0 -1
- homeassistant/components/telegram_bot/translations/cs.json +35 -12
- homeassistant/components/telegram_bot/translations/de.json +35 -12
- homeassistant/components/telegram_bot/translations/el.json +35 -12
- homeassistant/components/telegram_bot/translations/en-GB.json +6 -11
- homeassistant/components/telegram_bot/translations/en.json +35 -12
- homeassistant/components/telegram_bot/translations/es.json +35 -12
- homeassistant/components/telegram_bot/translations/et.json +34 -11
- homeassistant/components/telegram_bot/translations/fr.json +5 -12
- homeassistant/components/telegram_bot/translations/ga.json +5 -11
- homeassistant/components/telegram_bot/translations/he.json +3 -8
- homeassistant/components/telegram_bot/translations/hu.json +5 -12
- homeassistant/components/telegram_bot/translations/id.json +0 -5
- homeassistant/components/telegram_bot/translations/it.json +2 -5
- homeassistant/components/telegram_bot/translations/lt.json +5 -12
- homeassistant/components/telegram_bot/translations/mk.json +7 -5
- homeassistant/components/telegram_bot/translations/nl.json +5 -12
- homeassistant/components/telegram_bot/translations/pt.json +5 -12
- homeassistant/components/telegram_bot/translations/ru.json +12 -11
- homeassistant/components/telegram_bot/translations/sk.json +35 -12
- homeassistant/components/telegram_bot/translations/sv.json +28 -12
- homeassistant/components/telegram_bot/translations/tr.json +5 -12
- homeassistant/components/telegram_bot/translations/zh-Hans.json +35 -12
- homeassistant/components/telegram_bot/translations/zh-Hant.json +35 -12
- homeassistant/components/template/translations/sv.json +5 -5
- homeassistant/components/text/translations/sv.json +1 -1
- homeassistant/components/tilt_pi/translations/id.json +11 -0
- homeassistant/components/tts/__init__.py +15 -0
- homeassistant/components/unifiprotect/translations/zh-Hans.json +3 -3
- homeassistant/components/utility_meter/translations/sv.json +9 -9
- homeassistant/components/vegehub/translations/bg.json +2 -0
- homeassistant/components/vegehub/translations/id.json +11 -0
- homeassistant/components/vegehub/translations/sv.json +2 -1
- homeassistant/components/vicare/translations/sv.json +2 -2
- homeassistant/components/whirlpool/translations/sv.json +12 -12
- homeassistant/components/wyoming/translations/sv.json +2 -2
- homeassistant/components/zha/translations/bg.json +23 -0
- homeassistant/components/zha/translations/el.json +10 -0
- homeassistant/components/zha/translations/ga.json +20 -0
- homeassistant/components/zha/translations/id.json +6 -0
- homeassistant/components/zha/translations/sv.json +23 -0
- homeassistant/components/zha/translations/zh-Hans.json +50 -0
- homeassistant/components/zwave_js/api.py +1 -1
- homeassistant/components/zwave_js/config_flow.py +15 -68
- homeassistant/components/zwave_js/manifest.json +1 -1
- homeassistant/components/zwave_js/strings.json +1 -5
- homeassistant/components/zwave_js/translations/bg.json +0 -3
- homeassistant/components/zwave_js/translations/cs.json +0 -5
- homeassistant/components/zwave_js/translations/de.json +1 -5
- homeassistant/components/zwave_js/translations/el.json +0 -5
- homeassistant/components/zwave_js/translations/en-GB.json +1 -5
- homeassistant/components/zwave_js/translations/en.json +1 -5
- homeassistant/components/zwave_js/translations/es.json +1 -5
- homeassistant/components/zwave_js/translations/et.json +0 -5
- homeassistant/components/zwave_js/translations/ga.json +0 -5
- homeassistant/components/zwave_js/translations/hu.json +0 -5
- homeassistant/components/zwave_js/translations/lt.json +0 -5
- homeassistant/components/zwave_js/translations/mk.json +0 -5
- homeassistant/components/zwave_js/translations/pt.json +0 -5
- homeassistant/components/zwave_js/translations/ru.json +0 -5
- homeassistant/components/zwave_js/translations/sk.json +0 -5
- homeassistant/components/zwave_js/translations/sv.json +0 -5
- homeassistant/components/zwave_js/translations/zh-Hans.json +0 -5
- homeassistant/components/zwave_js/translations/zh-Hant.json +1 -5
- homeassistant/config_entries.py +6 -0
- homeassistant/const.py +1 -1
- homeassistant/package_constraints.txt +1 -1
- {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/METADATA +1 -1
- {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/RECORD +312 -294
- {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/WHEEL +0 -0
- {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/top_level.txt +0 -0
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
"abort": {
|
|
4
4
|
"already_configured": "Enheten \u00e4r redan konfigurerad.",
|
|
5
5
|
"already_in_progress": "Enheten har redan uppt\u00e4ckts. Kontrollera uppt\u00e4ckta enheter.",
|
|
6
|
-
"cannot_connect": "Misslyckades med att ansluta till enheten. F\u00f6rs\u00f6k igen."
|
|
6
|
+
"cannot_connect": "Misslyckades med att ansluta till enheten. F\u00f6rs\u00f6k igen.",
|
|
7
|
+
"unknown_error": "Ett ok\u00e4nt fel har uppst\u00e5tt."
|
|
7
8
|
},
|
|
8
9
|
"error": {
|
|
9
10
|
"invalid_ip": "Ogiltig IPv4-adress."
|
|
@@ -353,10 +353,10 @@
|
|
|
353
353
|
"name": "Varmvatten gasf\u00f6rbrukning senaste sju dagarna"
|
|
354
354
|
},
|
|
355
355
|
"hotwater_max_temperature": {
|
|
356
|
-
"name": "Varmvatten
|
|
356
|
+
"name": "Varmvatten h\u00f6gsta temperatur"
|
|
357
357
|
},
|
|
358
358
|
"hotwater_min_temperature": {
|
|
359
|
-
"name": "Varmvatten
|
|
359
|
+
"name": "Varmvatten l\u00e4gsta temperatur"
|
|
360
360
|
},
|
|
361
361
|
"hotwater_out_temperature": {
|
|
362
362
|
"name": "Varmvatten uttemperatur"
|
|
@@ -52,12 +52,12 @@
|
|
|
52
52
|
"state": {
|
|
53
53
|
"complete": "F\u00e4rdig",
|
|
54
54
|
"customer_focus_mode": "Kundfokusl\u00e4ge",
|
|
55
|
-
"cycle_filling": "
|
|
56
|
-
"cycle_rinsing": "
|
|
57
|
-
"cycle_sensing": "
|
|
58
|
-
"cycle_soaking": "
|
|
59
|
-
"cycle_spinning": "
|
|
60
|
-
"cycle_washing": "
|
|
55
|
+
"cycle_filling": "Fyller",
|
|
56
|
+
"cycle_rinsing": "Sk\u00f6ljer",
|
|
57
|
+
"cycle_sensing": "Kontrollerar",
|
|
58
|
+
"cycle_soaking": "Bl\u00f6tl\u00e4gger",
|
|
59
|
+
"cycle_spinning": "Centrifugerar",
|
|
60
|
+
"cycle_washing": "Tv\u00e4ttfas",
|
|
61
61
|
"delay_countdown": "F\u00f6rdr\u00f6jning nedr\u00e4kning",
|
|
62
62
|
"delay_paused": "F\u00f6rdr\u00f6jning pausad",
|
|
63
63
|
"demo_mode": "Demol\u00e4ge",
|
|
@@ -86,12 +86,12 @@
|
|
|
86
86
|
"state": {
|
|
87
87
|
"complete": "F\u00e4rdig",
|
|
88
88
|
"customer_focus_mode": "Kundfokusl\u00e4ge",
|
|
89
|
-
"cycle_filling": "
|
|
90
|
-
"cycle_rinsing": "
|
|
91
|
-
"cycle_sensing": "
|
|
92
|
-
"cycle_soaking": "
|
|
93
|
-
"cycle_spinning": "
|
|
94
|
-
"cycle_washing": "
|
|
89
|
+
"cycle_filling": "Fyller",
|
|
90
|
+
"cycle_rinsing": "Sk\u00f6ljer",
|
|
91
|
+
"cycle_sensing": "Kontrollerar",
|
|
92
|
+
"cycle_soaking": "Bl\u00f6tl\u00e4gger",
|
|
93
|
+
"cycle_spinning": "Centrifugerar",
|
|
94
|
+
"cycle_washing": "Tv\u00e4ttfas",
|
|
95
95
|
"delay_countdown": "F\u00f6rdr\u00f6jning nedr\u00e4kning",
|
|
96
96
|
"delay_paused": "F\u00f6rdr\u00f6jning pausad",
|
|
97
97
|
"demo_mode": "Demol\u00e4ge",
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
"abort": {
|
|
4
4
|
"already_configured": "Tj\u00e4nsten \u00e4r redan konfigurerad",
|
|
5
5
|
"no_port": "Ingen port f\u00f6r slutpunkt",
|
|
6
|
-
"no_services": "Inga tj\u00e4nster hittades vid
|
|
6
|
+
"no_services": "Inga tj\u00e4nster hittades vid slutpunkten"
|
|
7
7
|
},
|
|
8
8
|
"error": {
|
|
9
9
|
"cannot_connect": "Det gick inte att ansluta"
|
|
10
10
|
},
|
|
11
11
|
"step": {
|
|
12
12
|
"hassio_confirm": {
|
|
13
|
-
"description": "Vill du konfigurera Home Assistant f\u00f6r att ansluta till Wyoming-tj\u00e4nsten som tillhandah\u00e5lls av till\u00e4gget: {addon}
|
|
13
|
+
"description": "Vill du konfigurera Home Assistant f\u00f6r att ansluta till Wyoming-tj\u00e4nsten som tillhandah\u00e5lls av till\u00e4gget: {addon}?"
|
|
14
14
|
},
|
|
15
15
|
"user": {
|
|
16
16
|
"data": {
|
|
@@ -199,6 +199,9 @@
|
|
|
199
199
|
"portion_weight": {
|
|
200
200
|
"name": "\u0422\u0435\u0433\u043b\u043e \u043d\u0430 \u043f\u043e\u0440\u0446\u0438\u044f\u0442\u0430"
|
|
201
201
|
},
|
|
202
|
+
"sound_volume": {
|
|
203
|
+
"name": "\u0421\u0438\u043b\u0430 \u043d\u0430 \u0437\u0432\u0443\u043a\u0430"
|
|
204
|
+
},
|
|
202
205
|
"timer_duration": {
|
|
203
206
|
"name": "\u041f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e\u0441\u0442 \u043d\u0430 \u0442\u0430\u0439\u043c\u0435\u0440\u0430"
|
|
204
207
|
},
|
|
@@ -285,6 +288,26 @@
|
|
|
285
288
|
"internal_temp_monitor": {
|
|
286
289
|
"name": "\u0412\u044a\u0442\u0440\u0435\u0448\u043d\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430"
|
|
287
290
|
},
|
|
291
|
+
"last_action": {
|
|
292
|
+
"name": "\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435",
|
|
293
|
+
"state": {
|
|
294
|
+
"lock": "\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0430",
|
|
295
|
+
"unlock": "\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430"
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
"last_action_source": {
|
|
299
|
+
"state": {
|
|
300
|
+
"fingerprint": "\u041f\u0440\u044a\u0441\u0442\u043e\u0432 \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u044a\u043a",
|
|
301
|
+
"rfid": "RFID",
|
|
302
|
+
"zigbee": "Zigbee"
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
"last_action_user": {
|
|
306
|
+
"name": "\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f"
|
|
307
|
+
},
|
|
308
|
+
"last_pin_code": {
|
|
309
|
+
"name": "\u041f\u043e\u0441\u043b\u0435\u0434\u0435\u043d \u041f\u0418\u041d \u043a\u043e\u0434"
|
|
310
|
+
},
|
|
288
311
|
"leaf_wetness": {
|
|
289
312
|
"name": "\u0412\u043b\u0430\u0436\u043d\u043e\u0441\u0442 \u043d\u0430 \u043b\u0438\u0441\u0442\u0430\u0442\u0430"
|
|
290
313
|
},
|
|
@@ -322,6 +322,9 @@
|
|
|
322
322
|
"tilt_open_close_and_step_time": {
|
|
323
323
|
"name": "\u03a7\u03c1\u03cc\u03bd\u03bf\u03c2 \u03b1\u03bd\u03bf\u03af\u03b3\u03bc\u03b1\u03c4\u03bf\u03c2 \u03ba\u03b1\u03b9 \u03ba\u03bb\u03b5\u03b9\u03c3\u03af\u03bc\u03b1\u03c4\u03bf\u03c2, \u03ba\u03bb\u03af\u03c3\u03b7\u03c2 \u03ba\u03b1\u03b9 \u03b2\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2"
|
|
324
324
|
},
|
|
325
|
+
"tilt_position_percentage_after_move_to_level": {
|
|
326
|
+
"name": "\u03a0\u03bf\u03c3\u03bf\u03c3\u03c4\u03cc \u03b8\u03ad\u03c3\u03b7\u03c2 \u03ba\u03bb\u03af\u03c3\u03b7\u03c2 \u03bc\u03b5\u03c4\u03ac \u03c4\u03b7\u03bd \u03ba\u03af\u03bd\u03b7\u03c3\u03b7 \u03c3\u03c4\u03bf \u03b5\u03c0\u03af\u03c0\u03b5\u03b4\u03bf"
|
|
327
|
+
},
|
|
325
328
|
"timer_duration": {
|
|
326
329
|
"name": "\u0394\u03b9\u03ac\u03c1\u03ba\u03b5\u03b9\u03b1 \u03c7\u03c1\u03bf\u03bd\u03bf\u03b4\u03b9\u03b1\u03ba\u03cc\u03c0\u03c4\u03b7"
|
|
327
330
|
},
|
|
@@ -384,6 +387,12 @@
|
|
|
384
387
|
"speed": {
|
|
385
388
|
"name": "\u03a4\u03b1\u03c7\u03cd\u03c4\u03b7\u03c4\u03b1"
|
|
386
389
|
},
|
|
390
|
+
"switch_actions": {
|
|
391
|
+
"name": "\u0395\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03b5\u03bd\u03b5\u03c1\u03b3\u03b5\u03b9\u03ce\u03bd"
|
|
392
|
+
},
|
|
393
|
+
"switch_indication": {
|
|
394
|
+
"name": "\u0395\u03bd\u03b4\u03b5\u03b9\u03be\u03b7 \u03b4\u03b9\u03b1\u03ba\u03cc\u03c0\u03c4\u03b7"
|
|
395
|
+
},
|
|
387
396
|
"valve_orientation": {
|
|
388
397
|
"name": "\u03a0\u03c1\u03bf\u03c3\u03b1\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03c3\u03bc\u03cc\u03c2 \u03b2\u03b1\u03bb\u03b2\u03af\u03b4\u03b1\u03c2"
|
|
389
398
|
},
|
|
@@ -447,6 +456,7 @@
|
|
|
447
456
|
"name": "\u03a9\u03c1\u03b1 \u03ad\u03bd\u03b1\u03c1\u03be\u03b7\u03c2 \u03ac\u03c1\u03b4\u03b5\u03c5\u03c3\u03b7\u03c2"
|
|
448
457
|
},
|
|
449
458
|
"last_action": {
|
|
459
|
+
"name": "\u03a4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b1 \u03b5\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b1",
|
|
450
460
|
"state": {
|
|
451
461
|
"lock": "\u039a\u03bb\u03b5\u03b9\u03b4\u03c9\u03bc\u03ad\u03bd\u03b7",
|
|
452
462
|
"unlock": "\u039e\u03b5\u03ba\u03bb\u03b5\u03af\u03b4\u03c9\u03c4\u03b7"
|
|
@@ -536,6 +536,20 @@
|
|
|
536
536
|
"humidity_alarm": {
|
|
537
537
|
"name": "Al\u00e1ram taise"
|
|
538
538
|
},
|
|
539
|
+
"last_action_source": {
|
|
540
|
+
"state": {
|
|
541
|
+
"keypad": "M\u00e9archl\u00e1r",
|
|
542
|
+
"rfid": "RFID",
|
|
543
|
+
"self": "F\u00e9in",
|
|
544
|
+
"zigbee": "Zigbee"
|
|
545
|
+
}
|
|
546
|
+
},
|
|
547
|
+
"last_action_user": {
|
|
548
|
+
"name": "\u00das\u00e1ideoir an gn\u00edomh deireanach"
|
|
549
|
+
},
|
|
550
|
+
"last_pin_code": {
|
|
551
|
+
"name": "C\u00f3d PIN deireanach"
|
|
552
|
+
},
|
|
539
553
|
"last_watering_duration": {
|
|
540
554
|
"name": "Fad an uisce dheireanaigh"
|
|
541
555
|
},
|
|
@@ -554,6 +568,9 @@
|
|
|
554
568
|
"lower_explosive_limit": {
|
|
555
569
|
"name": "% Teorainn phl\u00e9ascach n\u00edos \u00edsle"
|
|
556
570
|
},
|
|
571
|
+
"opening": {
|
|
572
|
+
"name": "Oscailt"
|
|
573
|
+
},
|
|
557
574
|
"power_factor_ph_b": {
|
|
558
575
|
"name": "Facht\u00f3ir cumhachta c\u00e9im B"
|
|
559
576
|
},
|
|
@@ -636,6 +653,9 @@
|
|
|
636
653
|
"auto_clean": {
|
|
637
654
|
"name": "Glanadh uathoibr\u00edoch"
|
|
638
655
|
},
|
|
656
|
+
"auto_relock": {
|
|
657
|
+
"name": "Athghlas\u00e1il uathoibr\u00edoch"
|
|
658
|
+
},
|
|
639
659
|
"away_mode": {
|
|
640
660
|
"name": "M\u00f3d as baile"
|
|
641
661
|
},
|
|
@@ -705,6 +705,9 @@
|
|
|
705
705
|
"small_move_sensitivity": {
|
|
706
706
|
"name": "K\u00e4nslighet f\u00f6r sm\u00e5 r\u00f6relser"
|
|
707
707
|
},
|
|
708
|
+
"sound_volume": {
|
|
709
|
+
"name": "Ljudvolym"
|
|
710
|
+
},
|
|
708
711
|
"start_up_color_temperature": {
|
|
709
712
|
"name": "F\u00e4rgtemperatur vid start"
|
|
710
713
|
},
|
|
@@ -1135,6 +1138,20 @@
|
|
|
1135
1138
|
"irrigation_start_time": {
|
|
1136
1139
|
"name": "Starttid f\u00f6r bevattning"
|
|
1137
1140
|
},
|
|
1141
|
+
"last_action": {
|
|
1142
|
+
"name": "Senaste \u00e5tg\u00e4rd",
|
|
1143
|
+
"state": {
|
|
1144
|
+
"lock": "L\u00e5st",
|
|
1145
|
+
"unlock": "Ol\u00e5st"
|
|
1146
|
+
}
|
|
1147
|
+
},
|
|
1148
|
+
"last_action_source": {
|
|
1149
|
+
"state": {
|
|
1150
|
+
"fingerprint": "Fingeravtryck",
|
|
1151
|
+
"rfid": "RFID",
|
|
1152
|
+
"zigbee": "Zigbee"
|
|
1153
|
+
}
|
|
1154
|
+
},
|
|
1138
1155
|
"last_feeding_size": {
|
|
1139
1156
|
"name": "Senaste foderstorlek"
|
|
1140
1157
|
},
|
|
@@ -1183,6 +1200,9 @@
|
|
|
1183
1200
|
"open_window_detected": {
|
|
1184
1201
|
"name": "\u00d6ppet f\u00f6nster uppt\u00e4ckt"
|
|
1185
1202
|
},
|
|
1203
|
+
"opening": {
|
|
1204
|
+
"name": "\u00d6ppning"
|
|
1205
|
+
},
|
|
1186
1206
|
"overheated": {
|
|
1187
1207
|
"name": "\u00d6verhettningsskydd"
|
|
1188
1208
|
},
|
|
@@ -1374,6 +1394,9 @@
|
|
|
1374
1394
|
"auto_clean": {
|
|
1375
1395
|
"name": "Autoreng\u00f6ring"
|
|
1376
1396
|
},
|
|
1397
|
+
"auto_relock": {
|
|
1398
|
+
"name": "Automatisk \u00e5terl\u00e5sning"
|
|
1399
|
+
},
|
|
1377
1400
|
"aux_switch_scenes": {
|
|
1378
1401
|
"name": "Brytare f\u00f6r Aux-scener"
|
|
1379
1402
|
},
|
|
@@ -549,6 +549,12 @@
|
|
|
549
549
|
"led_intensity_when_on": {
|
|
550
550
|
"name": "\u9ed8\u8ba4\u6240\u6709 LED \u4eae\u8d77\u5f3a\u5ea6"
|
|
551
551
|
},
|
|
552
|
+
"lift_drive_down_time": {
|
|
553
|
+
"name": "\u5347\u964d\u673a\u4e0b\u964d\u65f6\u95f4"
|
|
554
|
+
},
|
|
555
|
+
"lift_drive_up_time": {
|
|
556
|
+
"name": "\u5347\u964d\u673a\u4e0a\u5347\u65f6\u95f4"
|
|
557
|
+
},
|
|
552
558
|
"liquid_depth_max": {
|
|
553
559
|
"name": "\u4f20\u611f\u5668\u5230\u6db2\u4f4d\u7684\u9ad8\u5ea6"
|
|
554
560
|
},
|
|
@@ -708,6 +714,9 @@
|
|
|
708
714
|
"small_move_sensitivity": {
|
|
709
715
|
"name": "\u5c0f\u52a8\u4f5c\u7075\u654f\u5ea6"
|
|
710
716
|
},
|
|
717
|
+
"sound_volume": {
|
|
718
|
+
"name": "\u97f3\u91cf"
|
|
719
|
+
},
|
|
711
720
|
"start_up_color_temperature": {
|
|
712
721
|
"name": "\u542f\u52a8\u8272\u6e29"
|
|
713
722
|
},
|
|
@@ -741,6 +750,12 @@
|
|
|
741
750
|
"temperature_sensitivity": {
|
|
742
751
|
"name": "\u6e29\u5ea6\u654f\u611f\u6027"
|
|
743
752
|
},
|
|
753
|
+
"tilt_open_close_and_step_time": {
|
|
754
|
+
"name": "\u503e\u659c\u5f00\u542f\u5173\u95ed\u548c\u6b65\u8fdb\u65f6\u95f4"
|
|
755
|
+
},
|
|
756
|
+
"tilt_position_percentage_after_move_to_level": {
|
|
757
|
+
"name": "\u79fb\u81f3\u6c34\u5e73\u540e\u503e\u659c\u4f4d\u7f6e\u767e\u5206\u6bd4"
|
|
758
|
+
},
|
|
744
759
|
"timer_duration": {
|
|
745
760
|
"name": "\u8ba1\u65f6\u5668\u65f6\u957f"
|
|
746
761
|
},
|
|
@@ -986,6 +1001,12 @@
|
|
|
986
1001
|
"status_indication": {
|
|
987
1002
|
"name": "\u72b6\u6001\u6307\u793a"
|
|
988
1003
|
},
|
|
1004
|
+
"switch_actions": {
|
|
1005
|
+
"name": "\u5f00\u5173\u64cd\u4f5c"
|
|
1006
|
+
},
|
|
1007
|
+
"switch_indication": {
|
|
1008
|
+
"name": "\u5f00\u5173\u6307\u793a"
|
|
1009
|
+
},
|
|
989
1010
|
"switch_mode": {
|
|
990
1011
|
"name": "\u5f00\u5173\u6a21\u5f0f"
|
|
991
1012
|
},
|
|
@@ -1138,6 +1159,26 @@
|
|
|
1138
1159
|
"irrigation_start_time": {
|
|
1139
1160
|
"name": "\u704c\u6e89\u5f00\u59cb\u65f6\u95f4"
|
|
1140
1161
|
},
|
|
1162
|
+
"last_action": {
|
|
1163
|
+
"name": "\u4e0a\u6b21\u64cd\u4f5c",
|
|
1164
|
+
"state": {
|
|
1165
|
+
"lock": "\u5df2\u9501\u5b9a",
|
|
1166
|
+
"unlock": "\u5df2\u89e3\u9501"
|
|
1167
|
+
}
|
|
1168
|
+
},
|
|
1169
|
+
"last_action_source": {
|
|
1170
|
+
"name": "\u4e0a\u6b21\u64cd\u4f5c\u6765\u6e90",
|
|
1171
|
+
"state": {
|
|
1172
|
+
"fingerprint": "\u6307\u7eb9",
|
|
1173
|
+
"keypad": "\u952e\u76d8",
|
|
1174
|
+
"rfid": "RFID",
|
|
1175
|
+
"self": "\u81ea\u8eab",
|
|
1176
|
+
"zigbee": "Zigbee"
|
|
1177
|
+
}
|
|
1178
|
+
},
|
|
1179
|
+
"last_action_user": {
|
|
1180
|
+
"name": "\u4e0a\u6b21\u64cd\u4f5c\u7528\u6237"
|
|
1181
|
+
},
|
|
1141
1182
|
"last_feeding_size": {
|
|
1142
1183
|
"name": "\u4e0a\u6b21\u5582\u98df\u5c3a\u5bf8"
|
|
1143
1184
|
},
|
|
@@ -1147,6 +1188,9 @@
|
|
|
1147
1188
|
"last_illumination_state": {
|
|
1148
1189
|
"name": "\u4e0a\u6b21\u7167\u660e\u72b6\u6001"
|
|
1149
1190
|
},
|
|
1191
|
+
"last_pin_code": {
|
|
1192
|
+
"name": "\u4e0a\u6b21 PIN \u7801"
|
|
1193
|
+
},
|
|
1150
1194
|
"last_valve_open_duration": {
|
|
1151
1195
|
"name": "\u4e0a\u6b21\u9600\u95e8\u5f00\u542f\u65f6\u957f"
|
|
1152
1196
|
},
|
|
@@ -1186,6 +1230,9 @@
|
|
|
1186
1230
|
"open_window_detected": {
|
|
1187
1231
|
"name": "\u68c0\u6d4b\u5230\u7a97\u6237\u6253\u5f00"
|
|
1188
1232
|
},
|
|
1233
|
+
"opening": {
|
|
1234
|
+
"name": "\u6b63\u5728\u6253\u5f00"
|
|
1235
|
+
},
|
|
1189
1236
|
"overheated": {
|
|
1190
1237
|
"name": "\u8fc7\u70ed\u4fdd\u62a4"
|
|
1191
1238
|
},
|
|
@@ -1377,6 +1424,9 @@
|
|
|
1377
1424
|
"auto_clean": {
|
|
1378
1425
|
"name": "\u81ea\u52a8\u6e05\u6d01"
|
|
1379
1426
|
},
|
|
1427
|
+
"auto_relock": {
|
|
1428
|
+
"name": "\u81ea\u52a8\u91cd\u65b0\u9501\u5b9a"
|
|
1429
|
+
},
|
|
1380
1430
|
"aux_switch_scenes": {
|
|
1381
1431
|
"name": "\u8f85\u52a9\u5207\u6362\u573a\u666f"
|
|
1382
1432
|
},
|
|
@@ -3105,7 +3105,7 @@ async def websocket_restore_nvm(
|
|
|
3105
3105
|
driver.once("driver ready", set_driver_ready),
|
|
3106
3106
|
]
|
|
3107
3107
|
|
|
3108
|
-
await controller.async_restore_nvm_base64(msg["data"])
|
|
3108
|
+
await controller.async_restore_nvm_base64(msg["data"], {"preserveRoutes": False})
|
|
3109
3109
|
|
|
3110
3110
|
with suppress(TimeoutError):
|
|
3111
3111
|
async with asyncio.timeout(DRIVER_READY_TIMEOUT):
|
|
@@ -138,13 +138,15 @@ def get_usb_ports() -> dict[str, str]:
|
|
|
138
138
|
)
|
|
139
139
|
port_descriptions[dev_path] = human_name
|
|
140
140
|
|
|
141
|
-
#
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
141
|
+
# Filter out "n/a" descriptions only if there are other ports available
|
|
142
|
+
non_na_ports = {
|
|
143
|
+
path: desc
|
|
144
|
+
for path, desc in port_descriptions.items()
|
|
145
|
+
if not desc.lower().startswith("n/a")
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
# If we have non-"n/a" ports, return only those; otherwise return all ports as-is
|
|
149
|
+
return non_na_ports if non_na_ports else port_descriptions
|
|
148
150
|
|
|
149
151
|
|
|
150
152
|
async def async_get_usb_ports(hass: HomeAssistant) -> dict[str, str]:
|
|
@@ -843,11 +845,8 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
843
845
|
},
|
|
844
846
|
)
|
|
845
847
|
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
return await self.async_step_backup_nvm()
|
|
849
|
-
|
|
850
|
-
return self.async_show_form(step_id="intent_migrate")
|
|
848
|
+
self._migrating = True
|
|
849
|
+
return await self.async_step_backup_nvm()
|
|
851
850
|
|
|
852
851
|
async def async_step_backup_nvm(
|
|
853
852
|
self, user_input: dict[str, Any] | None = None
|
|
@@ -902,7 +901,7 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
902
901
|
async def async_step_instruct_unplug(
|
|
903
902
|
self, user_input: dict[str, Any] | None = None
|
|
904
903
|
) -> ConfigFlowResult:
|
|
905
|
-
"""
|
|
904
|
+
"""Instruct the user to unplug the old controller."""
|
|
906
905
|
|
|
907
906
|
if user_input is not None:
|
|
908
907
|
if self.usb_path:
|
|
@@ -912,63 +911,9 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
912
911
|
# Now that the old controller is gone, we can scan for serial ports again
|
|
913
912
|
return await self.async_step_choose_serial_port()
|
|
914
913
|
|
|
915
|
-
try:
|
|
916
|
-
driver = self._get_driver()
|
|
917
|
-
except AbortFlow:
|
|
918
|
-
return self.async_abort(reason="config_entry_not_loaded")
|
|
919
|
-
|
|
920
|
-
@callback
|
|
921
|
-
def set_driver_ready(event: dict) -> None:
|
|
922
|
-
"Set the driver ready event."
|
|
923
|
-
wait_driver_ready.set()
|
|
924
|
-
|
|
925
|
-
wait_driver_ready = asyncio.Event()
|
|
926
|
-
|
|
927
|
-
unsubscribe = driver.once("driver ready", set_driver_ready)
|
|
928
|
-
|
|
929
|
-
# reset the old controller
|
|
930
|
-
try:
|
|
931
|
-
await driver.async_hard_reset()
|
|
932
|
-
except FailedCommand as err:
|
|
933
|
-
unsubscribe()
|
|
934
|
-
_LOGGER.error("Failed to reset controller: %s", err)
|
|
935
|
-
return self.async_abort(reason="reset_failed")
|
|
936
|
-
|
|
937
|
-
# Update the unique id of the config entry
|
|
938
|
-
# to the new home id, which requires waiting for the driver
|
|
939
|
-
# to be ready before getting the new home id.
|
|
940
|
-
# If the backup restore, done later in the flow, fails,
|
|
941
|
-
# the config entry unique id should be the new home id
|
|
942
|
-
# after the controller reset.
|
|
943
|
-
try:
|
|
944
|
-
async with asyncio.timeout(DRIVER_READY_TIMEOUT):
|
|
945
|
-
await wait_driver_ready.wait()
|
|
946
|
-
except TimeoutError:
|
|
947
|
-
pass
|
|
948
|
-
finally:
|
|
949
|
-
unsubscribe()
|
|
950
|
-
|
|
951
914
|
config_entry = self._reconfigure_config_entry
|
|
952
915
|
assert config_entry is not None
|
|
953
916
|
|
|
954
|
-
try:
|
|
955
|
-
version_info = await async_get_version_info(
|
|
956
|
-
self.hass, config_entry.data[CONF_URL]
|
|
957
|
-
)
|
|
958
|
-
except CannotConnect:
|
|
959
|
-
# Just log this error, as there's nothing to do about it here.
|
|
960
|
-
# The stale unique id needs to be handled by a repair flow,
|
|
961
|
-
# after the config entry has been reloaded, if the backup restore
|
|
962
|
-
# also fails.
|
|
963
|
-
_LOGGER.debug(
|
|
964
|
-
"Failed to get server version, cannot update config entry "
|
|
965
|
-
"unique id with new home id, after controller reset"
|
|
966
|
-
)
|
|
967
|
-
else:
|
|
968
|
-
self.hass.config_entries.async_update_entry(
|
|
969
|
-
config_entry, unique_id=str(version_info.home_id)
|
|
970
|
-
)
|
|
971
|
-
|
|
972
917
|
# Unload the config entry before asking the user to unplug the controller.
|
|
973
918
|
await self.hass.config_entries.async_unload(config_entry.entry_id)
|
|
974
919
|
|
|
@@ -1400,7 +1345,9 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
1400
1345
|
driver.once("driver ready", set_driver_ready),
|
|
1401
1346
|
]
|
|
1402
1347
|
try:
|
|
1403
|
-
await controller.async_restore_nvm(
|
|
1348
|
+
await controller.async_restore_nvm(
|
|
1349
|
+
self.backup_data, {"preserveRoutes": False}
|
|
1350
|
+
)
|
|
1404
1351
|
except FailedCommand as err:
|
|
1405
1352
|
raise AbortFlow(f"Failed to restore network: {err}") from err
|
|
1406
1353
|
else:
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"integration_type": "hub",
|
|
10
10
|
"iot_class": "local_push",
|
|
11
11
|
"loggers": ["zwave_js_server"],
|
|
12
|
-
"requirements": ["pyserial==3.5", "zwave-js-server-python==0.
|
|
12
|
+
"requirements": ["pyserial==3.5", "zwave-js-server-python==0.65.0"],
|
|
13
13
|
"usb": [
|
|
14
14
|
{
|
|
15
15
|
"vid": "0658",
|
|
@@ -108,13 +108,9 @@
|
|
|
108
108
|
"intent_reconfigure": "Re-configure the current controller"
|
|
109
109
|
}
|
|
110
110
|
},
|
|
111
|
-
"intent_migrate": {
|
|
112
|
-
"title": "[%key:component::zwave_js::config::step::reconfigure::menu_options::intent_migrate%]",
|
|
113
|
-
"description": "Before setting up your new controller, your old controller needs to be reset. A backup will be performed first.\n\nDo you wish to continue?"
|
|
114
|
-
},
|
|
115
111
|
"instruct_unplug": {
|
|
116
112
|
"title": "Unplug your old controller",
|
|
117
|
-
"description": "Backup saved to \"{file_path}\"\n\nYour old controller has been reset.
|
|
113
|
+
"description": "Backup saved to \"{file_path}\"\n\nYour old controller has not been reset. You should now unplug it to prevent it from interfering with the new controller.\n\nPlease make sure your new controller is plugged in before continuing."
|
|
118
114
|
},
|
|
119
115
|
"restore_failed": {
|
|
120
116
|
"title": "Restoring unsuccessful",
|
|
@@ -32,9 +32,6 @@
|
|
|
32
32
|
"instruct_unplug": {
|
|
33
33
|
"title": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u0442\u0435 \u0441\u0442\u0430\u0440\u0438\u044f \u0441\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u0440"
|
|
34
34
|
},
|
|
35
|
-
"intent_migrate": {
|
|
36
|
-
"title": "\u041c\u0438\u0433\u0440\u0438\u0440\u0430\u043d\u0435 \u043a\u044a\u043c \u043d\u043e\u0432 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u0440"
|
|
37
|
-
},
|
|
38
35
|
"manual": {
|
|
39
36
|
"data": {
|
|
40
37
|
"url": "URL"
|
|
@@ -84,13 +84,8 @@
|
|
|
84
84
|
"title": "Nastavit Z-Wave"
|
|
85
85
|
},
|
|
86
86
|
"instruct_unplug": {
|
|
87
|
-
"description": "Z\u00e1loha byla ulo\u017eena do \"{file_path}\".\n \nV\u00e1\u0161 star\u00fd ovlada\u010d byl resetov\u00e1n. Pokud ji\u017e hardware nepot\u0159ebujete, m\u016f\u017eete jej nyn\u00ed odpojit.\n\nNe\u017e budete pokra\u010dovat, ujist\u011bte se, \u017ee je v\u00e1\u0161 nov\u00fd ovlada\u010d zapojen.",
|
|
88
87
|
"title": "Odpojte star\u00fd ovlada\u010d"
|
|
89
88
|
},
|
|
90
|
-
"intent_migrate": {
|
|
91
|
-
"description": "P\u0159ed nastaven\u00edm nov\u00e9ho ovlada\u010de je t\u0159eba resetovat v\u00e1\u0161 star\u00fd ovlada\u010d. Nejprve bude provedena z\u00e1loha.\n\nChcete pokra\u010dovat?",
|
|
92
|
-
"title": "Migrujte na nov\u00fd \u0159adi\u010d"
|
|
93
|
-
},
|
|
94
89
|
"manual": {
|
|
95
90
|
"data": {
|
|
96
91
|
"url": "URL"
|
|
@@ -84,13 +84,9 @@
|
|
|
84
84
|
"title": "Z-Wave einrichten"
|
|
85
85
|
},
|
|
86
86
|
"instruct_unplug": {
|
|
87
|
-
"description": "Sicherung gespeichert unter \u201e{file_path}\u201c \n \nDein alter Controller wurde zur\u00fcckgesetzt.
|
|
87
|
+
"description": "Sicherung gespeichert unter \u201e{file_path}\u201c \n \nDein alter Controller wurde nicht zur\u00fcckgesetzt. Du solltest ihn jetzt ausstecken, um St\u00f6rungen des neuen Controllers zu vermeiden. \n \nBitte stelle sicher, dass dein neuer Controller eingesteckt ist, bevor du fortf\u00e4hrst.",
|
|
88
88
|
"title": "Trenne deinen alten Controller"
|
|
89
89
|
},
|
|
90
|
-
"intent_migrate": {
|
|
91
|
-
"description": "Bevor du deinen neuen Controller einrichtest, muss dein alter Controller zur\u00fcckgesetzt werden. Zuerst wird eine Sicherung durchgef\u00fchrt. \n \nM\u00f6chtest du fortfahren?",
|
|
92
|
-
"title": "Zu einem neuen Controller migrieren"
|
|
93
|
-
},
|
|
94
90
|
"manual": {
|
|
95
91
|
"data": {
|
|
96
92
|
"url": "URL"
|
|
@@ -84,13 +84,8 @@
|
|
|
84
84
|
"title": "\u03a1\u03cd\u03b8\u03bc\u03b9\u03c3\u03b7 \u03c4\u03bf\u03c5 Z-Wave"
|
|
85
85
|
},
|
|
86
86
|
"instruct_unplug": {
|
|
87
|
-
"description": "\u03a4\u03bf \u03b1\u03bd\u03c4\u03af\u03b3\u03c1\u03b1\u03c6\u03bf \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c4\u03bf \"{file_path}\"\n\n\u0395\u03b3\u03b9\u03bd\u03b5 \u03b5\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03c4\u03bf\u03c5 \u03c0\u03b1\u03bb\u03b9\u03bf\u03cd \u03c3\u03b1\u03c2 \u03b5\u03bb\u03b5\u03b3\u03ba\u03c4\u03ae. \u0395\u03ac\u03bd \u03c4\u03bf \u03c5\u03bb\u03b9\u03ba\u03cc \u03b4\u03b5\u03bd \u03c7\u03c1\u03b5\u03b9\u03ac\u03b6\u03b5\u03c4\u03b1\u03b9 \u03c0\u03bb\u03ad\u03bf\u03bd, \u03bc\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03c4\u03ce\u03c1\u03b1 \u03bd\u03b1 \u03c4\u03bf \u03b1\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03c4\u03b5.\n\n\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b2\u03b5\u03b2\u03b1\u03b9\u03c9\u03b8\u03b5\u03af\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03bf \u03bd\u03ad\u03bf\u03c2 \u03c3\u03b1\u03c2 \u03b5\u03bb\u03b5\u03b3\u03ba\u03c4\u03ae\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b4\u03b5\u03bc\u03ad\u03bd\u03bf\u03c2 \u03c0\u03c1\u03b9\u03bd \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5.",
|
|
88
87
|
"title": "\u0391\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03c4\u03b5 \u03c4\u03bf\u03bd \u03c0\u03b1\u03bb\u03b9\u03cc \u03c3\u03b1\u03c2 \u03b5\u03bb\u03b5\u03b3\u03ba\u03c4\u03ae"
|
|
89
88
|
},
|
|
90
|
-
"intent_migrate": {
|
|
91
|
-
"description": "\u03a0\u03c1\u03b9\u03bd \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf\u03bd \u03bd\u03ad\u03bf \u03c3\u03b1\u03c2 \u03b5\u03bb\u03b5\u03b3\u03ba\u03c4\u03ae, \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b3\u03af\u03bd\u03b5\u03b9 \u03b5\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03c4\u03bf\u03c5 \u03c0\u03b1\u03bb\u03b9\u03bf\u03cd \u03c3\u03b1\u03c2 \u03b5\u03bb\u03b5\u03b3\u03ba\u03c4\u03ae. \u0398\u03b1 \u03c0\u03c1\u03b1\u03b3\u03bc\u03b1\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af \u03c0\u03c1\u03ce\u03c4\u03b1 \u03ad\u03bd\u03b1 \u03b1\u03bd\u03c4\u03af\u03b3\u03c1\u03b1\u03c6\u03bf \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2.\n\n\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5;",
|
|
92
|
-
"title": "\u039c\u03b5\u03c4\u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03c3\u03b5 \u03bd\u03ad\u03bf \u03b5\u03bb\u03b5\u03b3\u03ba\u03c4\u03ae"
|
|
93
|
-
},
|
|
94
89
|
"manual": {
|
|
95
90
|
"data": {
|
|
96
91
|
"url": "URL"
|
|
@@ -84,13 +84,9 @@
|
|
|
84
84
|
"title": "Set up Z-Wave"
|
|
85
85
|
},
|
|
86
86
|
"instruct_unplug": {
|
|
87
|
-
"description": "Backup saved to \"{file_path}\"\n\nYour old controller has been reset.
|
|
87
|
+
"description": "Backup saved to \"{file_path}\"\n\nYour old controller has not been reset. You should now unplug it to prevent it from interfering with the new controller.\n\nPlease make sure your new controller is plugged in before continuing.",
|
|
88
88
|
"title": "Unplug your old controller"
|
|
89
89
|
},
|
|
90
|
-
"intent_migrate": {
|
|
91
|
-
"description": "Before setting up your new controller, your old controller needs to be reset. A backup will be performed first.\n\nDo you wish to continue?",
|
|
92
|
-
"title": "Migrate to a new controller"
|
|
93
|
-
},
|
|
94
90
|
"manual": {
|
|
95
91
|
"data": {
|
|
96
92
|
"url": "URL"
|
|
@@ -84,13 +84,9 @@
|
|
|
84
84
|
"title": "Set up Z-Wave"
|
|
85
85
|
},
|
|
86
86
|
"instruct_unplug": {
|
|
87
|
-
"description": "Backup saved to \"{file_path}\"\n\nYour old controller has been reset.
|
|
87
|
+
"description": "Backup saved to \"{file_path}\"\n\nYour old controller has not been reset. You should now unplug it to prevent it from interfering with the new controller.\n\nPlease make sure your new controller is plugged in before continuing.",
|
|
88
88
|
"title": "Unplug your old controller"
|
|
89
89
|
},
|
|
90
|
-
"intent_migrate": {
|
|
91
|
-
"description": "Before setting up your new controller, your old controller needs to be reset. A backup will be performed first.\n\nDo you wish to continue?",
|
|
92
|
-
"title": "Migrate to a new controller"
|
|
93
|
-
},
|
|
94
90
|
"manual": {
|
|
95
91
|
"data": {
|
|
96
92
|
"url": "URL"
|
|
@@ -84,13 +84,9 @@
|
|
|
84
84
|
"title": "Configurar Z-Wave"
|
|
85
85
|
},
|
|
86
86
|
"instruct_unplug": {
|
|
87
|
-
"description": "Copia de seguridad guardada en \"{file_path}\"
|
|
87
|
+
"description": "Copia de seguridad guardada en \"{file_path}\".\n \nTu antiguo controlador no se ha restablecido. Ahora debes desconectarlo para evitar que interfiera con el nuevo. \n \nPor favor, aseg\u00farate de que tu nuevo controlador est\u00e9 conectado antes de continuar.",
|
|
88
88
|
"title": "Desconecta tu controlador antiguo"
|
|
89
89
|
},
|
|
90
|
-
"intent_migrate": {
|
|
91
|
-
"description": "Antes de configurar el nuevo controlador, es necesario restablecer el antiguo. Primero se realizar\u00e1 una copia de seguridad.\n\n\u00bfQuieres continuar?",
|
|
92
|
-
"title": "Migrar a un nuevo controlador"
|
|
93
|
-
},
|
|
94
90
|
"manual": {
|
|
95
91
|
"data": {
|
|
96
92
|
"url": "URL"
|