homeassistant 2025.7.0b1__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.
Files changed (140) hide show
  1. homeassistant/components/alexa_devices/translations/cs.json +12 -1
  2. homeassistant/components/alexa_devices/translations/de.json +8 -0
  3. homeassistant/components/alexa_devices/translations/el.json +8 -0
  4. homeassistant/components/alexa_devices/translations/es.json +12 -1
  5. homeassistant/components/alexa_devices/translations/et.json +8 -0
  6. homeassistant/components/alexa_devices/translations/sk.json +8 -0
  7. homeassistant/components/alexa_devices/translations/zh-Hans.json +12 -1
  8. homeassistant/components/alexa_devices/translations/zh-Hant.json +8 -0
  9. homeassistant/components/anthropic/__init__.py +6 -0
  10. homeassistant/components/backup/translations/de.json +1 -1
  11. homeassistant/components/comelit/translations/de.json +1 -1
  12. homeassistant/components/counter/translations/sv.json +2 -2
  13. homeassistant/components/enphase_envoy/translations/sv.json +3 -0
  14. homeassistant/components/fronius/translations/sv.json +2 -2
  15. homeassistant/components/google_generative_ai_conversation/__init__.py +6 -0
  16. homeassistant/components/google_generative_ai_conversation/translations/cs.json +28 -0
  17. homeassistant/components/google_generative_ai_conversation/translations/sv.json +2 -0
  18. homeassistant/components/homeassistant_hardware/firmware_config_flow.py +89 -7
  19. homeassistant/components/homeassistant_hardware/strings.json +2 -1
  20. homeassistant/components/homeassistant_hardware/translations/de.json +1 -0
  21. homeassistant/components/homeassistant_hardware/translations/en-GB.json +1 -0
  22. homeassistant/components/homeassistant_hardware/translations/en.json +1 -0
  23. homeassistant/components/homeassistant_sky_connect/config_flow.py +1 -1
  24. homeassistant/components/homeassistant_sky_connect/strings.json +4 -2
  25. homeassistant/components/homeassistant_sky_connect/translations/de.json +2 -0
  26. homeassistant/components/homeassistant_sky_connect/translations/en-GB.json +2 -0
  27. homeassistant/components/homeassistant_sky_connect/translations/en.json +2 -0
  28. homeassistant/components/homeassistant_yellow/strings.json +2 -1
  29. homeassistant/components/homeassistant_yellow/translations/bg.json +0 -1
  30. homeassistant/components/homeassistant_yellow/translations/cs.json +0 -1
  31. homeassistant/components/homeassistant_yellow/translations/de.json +1 -0
  32. homeassistant/components/homeassistant_yellow/translations/el.json +0 -1
  33. homeassistant/components/homeassistant_yellow/translations/en-GB.json +2 -1
  34. homeassistant/components/homeassistant_yellow/translations/en.json +2 -1
  35. homeassistant/components/homeassistant_yellow/translations/es.json +0 -1
  36. homeassistant/components/homeassistant_yellow/translations/et.json +0 -1
  37. homeassistant/components/homeassistant_yellow/translations/fr.json +0 -1
  38. homeassistant/components/homeassistant_yellow/translations/he.json +0 -1
  39. homeassistant/components/homeassistant_yellow/translations/hu.json +0 -1
  40. homeassistant/components/homeassistant_yellow/translations/id.json +0 -1
  41. homeassistant/components/homeassistant_yellow/translations/it.json +0 -1
  42. homeassistant/components/homeassistant_yellow/translations/ja.json +0 -1
  43. homeassistant/components/homeassistant_yellow/translations/lt.json +0 -1
  44. homeassistant/components/homeassistant_yellow/translations/pt.json +0 -1
  45. homeassistant/components/homeassistant_yellow/translations/ru.json +0 -1
  46. homeassistant/components/homeassistant_yellow/translations/sk.json +0 -1
  47. homeassistant/components/homeassistant_yellow/translations/sv.json +0 -1
  48. homeassistant/components/homeassistant_yellow/translations/tr.json +0 -1
  49. homeassistant/components/homeassistant_yellow/translations/zh-Hans.json +0 -1
  50. homeassistant/components/homeassistant_yellow/translations/zh-Hant.json +0 -1
  51. homeassistant/components/input_number/translations/sv.json +2 -2
  52. homeassistant/components/input_text/translations/sv.json +1 -1
  53. homeassistant/components/iron_os/manifest.json +1 -1
  54. homeassistant/components/lamarzocco/entity.py +19 -1
  55. homeassistant/components/lamarzocco/number.py +0 -4
  56. homeassistant/components/lamarzocco/sensor.py +2 -4
  57. homeassistant/components/minecraft_server/translations/sv.json +1 -1
  58. homeassistant/components/motioneye/translations/sv.json +1 -1
  59. homeassistant/components/mqtt/translations/cs.json +19 -0
  60. homeassistant/components/ntfy/translations/sv.json +1 -0
  61. homeassistant/components/number/translations/sv.json +2 -2
  62. homeassistant/components/nut/config_flow.py +4 -2
  63. homeassistant/components/ollama/__init__.py +6 -0
  64. homeassistant/components/ollama/translations/sv.json +1 -0
  65. homeassistant/components/openai_conversation/__init__.py +6 -0
  66. homeassistant/components/openai_conversation/translations/sv.json +4 -0
  67. homeassistant/components/playstation_network/diagnostics.py +55 -0
  68. homeassistant/components/playstation_network/quality_scale.yaml +1 -1
  69. homeassistant/components/playstation_network/translations/pl.json +73 -0
  70. homeassistant/components/plugwise/translations/sv.json +2 -2
  71. homeassistant/components/random/translations/sv.json +4 -4
  72. homeassistant/components/sonos/translations/cs.json +6 -0
  73. homeassistant/components/subaru/strings.json +2 -2
  74. homeassistant/components/subaru/translations/ca.json +0 -1
  75. homeassistant/components/subaru/translations/cs.json +0 -2
  76. homeassistant/components/subaru/translations/de.json +2 -2
  77. homeassistant/components/subaru/translations/el.json +0 -2
  78. homeassistant/components/subaru/translations/en-GB.json +0 -2
  79. homeassistant/components/subaru/translations/en.json +2 -2
  80. homeassistant/components/subaru/translations/es.json +0 -2
  81. homeassistant/components/subaru/translations/et.json +0 -2
  82. homeassistant/components/subaru/translations/fi.json +0 -1
  83. homeassistant/components/subaru/translations/hu.json +0 -2
  84. homeassistant/components/subaru/translations/it.json +0 -1
  85. homeassistant/components/subaru/translations/ja.json +0 -1
  86. homeassistant/components/subaru/translations/ko.json +0 -1
  87. homeassistant/components/subaru/translations/lt.json +0 -2
  88. homeassistant/components/subaru/translations/pt-BR.json +0 -1
  89. homeassistant/components/subaru/translations/pt.json +0 -2
  90. homeassistant/components/subaru/translations/ru.json +0 -2
  91. homeassistant/components/subaru/translations/sk.json +0 -2
  92. homeassistant/components/subaru/translations/sv.json +0 -2
  93. homeassistant/components/subaru/translations/tr.json +0 -2
  94. homeassistant/components/subaru/translations/zh-Hans.json +0 -2
  95. homeassistant/components/subaru/translations/zh-Hant.json +0 -2
  96. homeassistant/components/switchbot/translations/sv.json +2 -0
  97. homeassistant/components/telegram_bot/config_flow.py +17 -10
  98. homeassistant/components/telegram_bot/translations/cs.json +30 -0
  99. homeassistant/components/telegram_bot/translations/de.json +23 -1
  100. homeassistant/components/telegram_bot/translations/el.json +30 -0
  101. homeassistant/components/telegram_bot/translations/en-GB.json +3 -1
  102. homeassistant/components/telegram_bot/translations/es.json +30 -0
  103. homeassistant/components/telegram_bot/translations/et.json +24 -0
  104. homeassistant/components/telegram_bot/translations/sk.json +30 -0
  105. homeassistant/components/telegram_bot/translations/sv.json +23 -0
  106. homeassistant/components/telegram_bot/translations/zh-Hans.json +30 -0
  107. homeassistant/components/telegram_bot/translations/zh-Hant.json +30 -0
  108. homeassistant/components/text/translations/sv.json +1 -1
  109. homeassistant/components/vegehub/translations/sv.json +2 -1
  110. homeassistant/components/vicare/translations/sv.json +2 -2
  111. homeassistant/components/wyoming/translations/sv.json +2 -2
  112. homeassistant/components/zha/translations/sv.json +8 -0
  113. homeassistant/components/zwave_js/config_flow.py +3 -60
  114. homeassistant/components/zwave_js/strings.json +1 -5
  115. homeassistant/components/zwave_js/translations/bg.json +0 -3
  116. homeassistant/components/zwave_js/translations/cs.json +0 -5
  117. homeassistant/components/zwave_js/translations/de.json +1 -5
  118. homeassistant/components/zwave_js/translations/el.json +0 -5
  119. homeassistant/components/zwave_js/translations/en-GB.json +1 -5
  120. homeassistant/components/zwave_js/translations/en.json +1 -5
  121. homeassistant/components/zwave_js/translations/es.json +1 -5
  122. homeassistant/components/zwave_js/translations/et.json +0 -5
  123. homeassistant/components/zwave_js/translations/ga.json +0 -5
  124. homeassistant/components/zwave_js/translations/hu.json +0 -5
  125. homeassistant/components/zwave_js/translations/lt.json +0 -5
  126. homeassistant/components/zwave_js/translations/mk.json +0 -5
  127. homeassistant/components/zwave_js/translations/pt.json +0 -5
  128. homeassistant/components/zwave_js/translations/ru.json +0 -5
  129. homeassistant/components/zwave_js/translations/sk.json +0 -5
  130. homeassistant/components/zwave_js/translations/sv.json +0 -5
  131. homeassistant/components/zwave_js/translations/zh-Hans.json +0 -5
  132. homeassistant/components/zwave_js/translations/zh-Hant.json +1 -5
  133. homeassistant/const.py +1 -1
  134. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b2.dist-info}/METADATA +1 -1
  135. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b2.dist-info}/RECORD +140 -138
  136. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b2.dist-info}/WHEEL +0 -0
  137. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b2.dist-info}/entry_points.txt +0 -0
  138. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b2.dist-info}/licenses/LICENSE.md +0 -0
  139. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b2.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  140. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b2.dist-info}/top_level.txt +0 -0
@@ -2,6 +2,7 @@
2
2
  "common": {
3
3
  "data_code": "Jednor\u00e1zov\u00e9 heslo (OTP k\u00f3d)",
4
4
  "data_description_code": "Jednor\u00e1zov\u00e9 heslo pro p\u0159ihl\u00e1\u0161en\u00ed k va\u0161emu \u00fa\u010dtu. V sou\u010dasn\u00e9 dob\u011b jsou podporov\u00e1ny jen tokeny z aplikac\u00ed OTP.",
5
+ "data_description_country": "Zem\u011b, kde je v\u00e1\u0161 \u00fa\u010det Amazon registrov\u00e1n.",
5
6
  "data_description_password": "Heslo va\u0161eho \u00fa\u010dtu Amazon.",
6
7
  "data_description_username": "E-mailov\u00e1 adresa va\u0161eho \u00fa\u010dtu Amazon."
7
8
  },
@@ -21,12 +22,14 @@
21
22
  "step": {
22
23
  "user": {
23
24
  "data": {
25
+ "code": "Jednor\u00e1zov\u00e9 heslo (OTP k\u00f3d)",
26
+ "country": "Zem\u011b",
24
27
  "password": "Heslo",
25
28
  "username": "U\u017eivatelsk\u00e9 jm\u00e9no"
26
29
  },
27
30
  "data_description": {
28
31
  "code": "Jednor\u00e1zov\u00e9 heslo pro p\u0159ihl\u00e1\u0161en\u00ed k va\u0161emu \u00fa\u010dtu. V sou\u010dasn\u00e9 dob\u011b jsou podporov\u00e1ny jen tokeny z aplikac\u00ed OTP.",
29
- "country": "Zem\u011b va\u0161eho \u00fa\u010dtu Amazon.",
32
+ "country": "Zem\u011b, kde je v\u00e1\u0161 \u00fa\u010det Amazon registrov\u00e1n.",
30
33
  "password": "Heslo va\u0161eho \u00fa\u010dtu Amazon.",
31
34
  "username": "E-mailov\u00e1 adresa va\u0161eho \u00fa\u010dtu Amazon."
32
35
  }
@@ -67,5 +70,13 @@
67
70
  "name": "Neru\u0161it"
68
71
  }
69
72
  }
73
+ },
74
+ "exceptions": {
75
+ "cannot_connect": {
76
+ "message": "Chyba p\u0159i p\u0159ipojov\u00e1n\u00ed: {error}"
77
+ },
78
+ "cannot_retrieve_data": {
79
+ "message": "Chyba p\u0159i na\u010d\u00edt\u00e1n\u00ed dat: {error}"
80
+ }
70
81
  }
71
82
  }
@@ -70,5 +70,13 @@
70
70
  "name": "Bitte nicht st\u00f6ren"
71
71
  }
72
72
  }
73
+ },
74
+ "exceptions": {
75
+ "cannot_connect": {
76
+ "message": "Verbindungsfehler: {error}"
77
+ },
78
+ "cannot_retrieve_data": {
79
+ "message": "Fehler beim Datenabruf: {error}"
80
+ }
73
81
  }
74
82
  }
@@ -70,5 +70,13 @@
70
70
  "name": "\u039c\u03b7\u03bd \u03b5\u03bd\u03bf\u03c7\u03bb\u03b5\u03af\u03c4\u03b5"
71
71
  }
72
72
  }
73
+ },
74
+ "exceptions": {
75
+ "cannot_connect": {
76
+ "message": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2: {error}"
77
+ },
78
+ "cannot_retrieve_data": {
79
+ "message": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03bb\u03ae\u03c8\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd: {error}"
80
+ }
73
81
  }
74
82
  }
@@ -2,6 +2,7 @@
2
2
  "common": {
3
3
  "data_code": "Contrase\u00f1a de un solo uso (c\u00f3digo OTP)",
4
4
  "data_description_code": "La contrase\u00f1a de un solo uso para iniciar sesi\u00f3n en tu cuenta. Actualmente, solo se admiten tokens de aplicaciones OTP.",
5
+ "data_description_country": "El pa\u00eds donde est\u00e1 registrada tu cuenta de Amazon.",
5
6
  "data_description_password": "La contrase\u00f1a de tu cuenta de Amazon.",
6
7
  "data_description_username": "La direcci\u00f3n de correo electr\u00f3nico de tu cuenta de Amazon."
7
8
  },
@@ -21,12 +22,14 @@
21
22
  "step": {
22
23
  "user": {
23
24
  "data": {
25
+ "code": "Contrase\u00f1a de un solo uso (c\u00f3digo OTP)",
26
+ "country": "Pa\u00eds",
24
27
  "password": "Contrase\u00f1a",
25
28
  "username": "Nombre de usuario"
26
29
  },
27
30
  "data_description": {
28
31
  "code": "La contrase\u00f1a de un solo uso para iniciar sesi\u00f3n en tu cuenta. Actualmente, solo se admiten tokens de aplicaciones OTP.",
29
- "country": "El pa\u00eds de tu cuenta de Amazon.",
32
+ "country": "El pa\u00eds donde est\u00e1 registrada tu cuenta de Amazon.",
30
33
  "password": "La contrase\u00f1a de tu cuenta de Amazon.",
31
34
  "username": "La direcci\u00f3n de correo electr\u00f3nico de tu cuenta de Amazon."
32
35
  }
@@ -67,5 +70,13 @@
67
70
  "name": "No molestar"
68
71
  }
69
72
  }
73
+ },
74
+ "exceptions": {
75
+ "cannot_connect": {
76
+ "message": "Error de conexi\u00f3n: {error}"
77
+ },
78
+ "cannot_retrieve_data": {
79
+ "message": "Error al recuperar datos: {error}"
80
+ }
70
81
  }
71
82
  }
@@ -70,5 +70,13 @@
70
70
  "name": "\u00c4ra sega re\u017eiim"
71
71
  }
72
72
  }
73
+ },
74
+ "exceptions": {
75
+ "cannot_connect": {
76
+ "message": "T\u00f5rge \u00fchendamisel: {error}"
77
+ },
78
+ "cannot_retrieve_data": {
79
+ "message": "T\u00f5rge andmete toomisel: {error}"
80
+ }
73
81
  }
74
82
  }
@@ -70,5 +70,13 @@
70
70
  "name": "Neru\u0161i\u0165"
71
71
  }
72
72
  }
73
+ },
74
+ "exceptions": {
75
+ "cannot_connect": {
76
+ "message": "Chyba pri prip\u00e1jan\u00ed: {error}"
77
+ },
78
+ "cannot_retrieve_data": {
79
+ "message": "Chyba pri na\u010d\u00edtan\u00ed \u00fadajov: {error}"
80
+ }
73
81
  }
74
82
  }
@@ -2,6 +2,7 @@
2
2
  "common": {
3
3
  "data_code": "\u4e00\u6b21\u6027\u5bc6\u7801\uff08OTP \u4ee3\u7801\uff09",
4
4
  "data_description_code": "\u7528\u4e8e\u767b\u5f55\u60a8\u8d26\u6237\u7684\u4e00\u6b21\u6027\u5bc6\u7801\u3002\u76ee\u524d\u4ec5\u652f\u6301\u6765\u81ea OTP \u5e94\u7528\u7a0b\u5e8f\u7684\u4ee4\u724c\u3002",
5
+ "data_description_country": "\u60a8\u4e9a\u9a6c\u900a\u8d26\u6237\u6ce8\u518c\u7684\u56fd\u5bb6/\u5730\u533a\u3002",
5
6
  "data_description_password": "\u60a8\u7684\u4e9a\u9a6c\u900a\u8d26\u6237\u7684\u5bc6\u7801\u3002",
6
7
  "data_description_username": "\u60a8\u7684\u4e9a\u9a6c\u900a\u8d26\u6237\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u3002"
7
8
  },
@@ -21,12 +22,14 @@
21
22
  "step": {
22
23
  "user": {
23
24
  "data": {
25
+ "code": "\u4e00\u6b21\u6027\u5bc6\u7801\uff08OTP \u4ee3\u7801\uff09",
26
+ "country": "\u56fd\u5bb6\u6216\u5730\u533a",
24
27
  "password": "\u5bc6\u7801",
25
28
  "username": "\u7528\u6237\u540d"
26
29
  },
27
30
  "data_description": {
28
31
  "code": "\u7528\u4e8e\u767b\u5f55\u60a8\u8d26\u6237\u7684\u4e00\u6b21\u6027\u5bc6\u7801\u3002\u76ee\u524d\u4ec5\u652f\u6301\u6765\u81ea OTP \u5e94\u7528\u7a0b\u5e8f\u7684\u4ee4\u724c\u3002",
29
- "country": "\u60a8\u7684\u4e9a\u9a6c\u900a\u8d26\u6237\u6240\u5728\u7684\u56fd\u5bb6/\u5730\u533a\u3002",
32
+ "country": "\u60a8\u4e9a\u9a6c\u900a\u8d26\u6237\u6ce8\u518c\u7684\u56fd\u5bb6/\u5730\u533a\u3002",
30
33
  "password": "\u60a8\u7684\u4e9a\u9a6c\u900a\u8d26\u6237\u7684\u5bc6\u7801\u3002",
31
34
  "username": "\u60a8\u7684\u4e9a\u9a6c\u900a\u8d26\u6237\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u3002"
32
35
  }
@@ -67,5 +70,13 @@
67
70
  "name": "\u8bf7\u52ff\u6253\u6270"
68
71
  }
69
72
  }
73
+ },
74
+ "exceptions": {
75
+ "cannot_connect": {
76
+ "message": "\u8fde\u63a5\u9519\u8bef\uff1a{error}"
77
+ },
78
+ "cannot_retrieve_data": {
79
+ "message": "\u68c0\u7d22\u6570\u636e\u65f6\u51fa\u9519\uff1a{error}"
80
+ }
70
81
  }
71
82
  }
@@ -70,5 +70,13 @@
70
70
  "name": "\u52ff\u64fe"
71
71
  }
72
72
  }
73
+ },
74
+ "exceptions": {
75
+ "cannot_connect": {
76
+ "message": "\u9023\u7dda\u932f\u8aa4\uff1a{error}"
77
+ },
78
+ "cannot_retrieve_data": {
79
+ "message": "\u7372\u53d6\u8cc7\u6599\u6642\u767c\u751f\u932f\u8aa4\uff1a{error}"
80
+ }
73
81
  }
74
82
  }
@@ -123,6 +123,12 @@ async def async_migrate_integration(hass: HomeAssistant) -> None:
123
123
  device.id,
124
124
  remove_config_entry_id=entry.entry_id,
125
125
  )
126
+ else:
127
+ device_registry.async_update_device(
128
+ device.id,
129
+ remove_config_entry_id=entry.entry_id,
130
+ remove_config_subentry_id=None,
131
+ )
126
132
 
127
133
  if not use_existing:
128
134
  await hass.config_entries.async_remove(entry.entry_id)
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "issues": {
45
45
  "automatic_backup_agents_unavailable": {
46
- "description": "Der Backup-Speicherort `{agent_id}` ist nicht verf\u00fcgbar, aber dennoch f\u00fcr automatische Sicherungen konfiguriert. \n \nBitte besuche die [Seite zur Konfiguration automatischer Backups]({backup_settings}), um deine Backup-Speicherorte zu \u00fcberpr\u00fcfen und zu aktualisieren. An ausgew\u00e4hlte Speicherorte, die nicht verf\u00fcgbar sind, werden keine Backups hochgeladen.",
46
+ "description": "Der Backup-Speicherort `{agent_id}` ist nicht verf\u00fcgbar, aber dennoch f\u00fcr automatische Backups konfiguriert. \n \nBitte besuche die [Seite zur Konfiguration automatischer Backups]({backup_settings}), um deine Backup-Speicherorte zu \u00fcberpr\u00fcfen und zu aktualisieren. An ausgew\u00e4hlte Speicherorte, die nicht verf\u00fcgbar sind, werden keine Backups hochgeladen.",
47
47
  "title": "Der Backup-Speicherort {agent_id} ist nicht verf\u00fcgbar"
48
48
  },
49
49
  "automatic_backup_failed_addons": {
@@ -96,7 +96,7 @@
96
96
  "message": "Verbindungsfehler: {error}"
97
97
  },
98
98
  "cannot_retrieve_data": {
99
- "message": "Fehler beim Abrufen der Daten: {error}"
99
+ "message": "Fehler beim Datenabruf: {error}"
100
100
  },
101
101
  "humidity_while_off": {
102
102
  "message": "Die Luftfeuchtigkeit kann im ausgeschalteten Zustand nicht ge\u00e4ndert werden"
@@ -14,10 +14,10 @@
14
14
  "name": "Ursprungligt v\u00e4rde"
15
15
  },
16
16
  "maximum": {
17
- "name": "Maximalt"
17
+ "name": "H\u00f6gst"
18
18
  },
19
19
  "minimum": {
20
- "name": "Minimum"
20
+ "name": "L\u00e4gst"
21
21
  },
22
22
  "step": {
23
23
  "name": "Steg"
@@ -195,6 +195,9 @@
195
195
  "dc_voltage": {
196
196
  "name": "DC-sp\u00e4nning"
197
197
  },
198
+ "energy_produced": {
199
+ "name": "Energiproduktion sedan f\u00f6reg\u00e5ende rapport"
200
+ },
198
201
  "energy_today": {
199
202
  "name": "Elproduktion i dag"
200
203
  },
@@ -374,10 +374,10 @@
374
374
  "name": "DC-sp\u00e4nning"
375
375
  },
376
376
  "voltage_dc_maximum_cell": {
377
- "name": "Maximal cellsp\u00e4nning"
377
+ "name": "H\u00f6gsta cellsp\u00e4nning"
378
378
  },
379
379
  "voltage_dc_minimum_cell": {
380
- "name": "Minsta cellsp\u00e4nning"
380
+ "name": "L\u00e4gsta cellsp\u00e4nning"
381
381
  },
382
382
  "voltage_dc_mppt_no": {
383
383
  "name": "DC-sp\u00e4nning {mppt_no}"
@@ -284,6 +284,12 @@ async def async_migrate_integration(hass: HomeAssistant) -> None:
284
284
  device.id,
285
285
  remove_config_entry_id=entry.entry_id,
286
286
  )
287
+ else:
288
+ device_registry.async_update_device(
289
+ device.id,
290
+ remove_config_entry_id=entry.entry_id,
291
+ remove_config_subentry_id=None,
292
+ )
287
293
 
288
294
  if not use_existing:
289
295
  await hass.config_entries.async_remove(entry.entry_id)
@@ -60,6 +60,34 @@
60
60
  }
61
61
  }
62
62
  }
63
+ },
64
+ "tts": {
65
+ "abort": {
66
+ "entry_not_loaded": "Nelze p\u0159id\u00e1vat polo\u017eky, pokud je nastaven\u00ed zak\u00e1z\u00e1no.",
67
+ "reconfigure_successful": "P\u0159enastaven\u00ed bylo \u00fasp\u011b\u0161n\u00e9"
68
+ },
69
+ "entry_type": "P\u0159evod textu na \u0159e\u010d",
70
+ "initiate_flow": {
71
+ "reconfigure": "P\u0159enastavit slu\u017ebu p\u0159evodu textu na \u0159e\u010d",
72
+ "user": "P\u0159idat slu\u017ebu p\u0159evodu textu na \u0159e\u010d"
73
+ },
74
+ "step": {
75
+ "set_options": {
76
+ "data": {
77
+ "chat_model": "Model",
78
+ "dangerous_block_threshold": "Propaguje, usnad\u0148uje nebo podn\u011bcuje \u0161kodliv\u00e9 jedn\u00e1n\u00ed",
79
+ "harassment_block_threshold": "Negativn\u00ed nebo \u0161kodliv\u00e9 koment\u00e1\u0159e zam\u011b\u0159en\u00e9 na identitu nebo chr\u00e1n\u011bn\u00e9 atributy",
80
+ "hate_block_threshold": "Obsah, kter\u00fd je hrub\u00fd, neuctiv\u00fd nebo vulg\u00e1rn\u00ed",
81
+ "max_tokens": "Maxim\u00e1ln\u00ed po\u010det token\u016f, kter\u00e9 se maj\u00ed vr\u00e1tit jako odpov\u011b\u010f",
82
+ "name": "N\u00e1zev",
83
+ "recommended": "Doporu\u010den\u00e1 nastaven\u00ed modelu",
84
+ "sexual_block_threshold": "Obsahuje odkazy na sexu\u00e1ln\u00ed akty nebo jin\u00fd oplzl\u00fd obsah",
85
+ "temperature": "Teplota",
86
+ "top_k": "Top K",
87
+ "top_p": "Top P"
88
+ }
89
+ }
90
+ }
63
91
  }
64
92
  },
65
93
  "issues": {
@@ -25,6 +25,7 @@
25
25
  "config_subentries": {
26
26
  "conversation": {
27
27
  "abort": {
28
+ "entry_not_loaded": "Det g\u00e5r inte att l\u00e4gga till saker n\u00e4r konfigurationen \u00e4r inaktiverad.",
28
29
  "reconfigure_successful": "Omkonfigureringen lyckades"
29
30
  },
30
31
  "step": {
@@ -43,6 +44,7 @@
43
44
  },
44
45
  "tts": {
45
46
  "abort": {
47
+ "entry_not_loaded": "Det g\u00e5r inte att l\u00e4gga till saker n\u00e4r konfigurationen \u00e4r inaktiverad.",
46
48
  "reconfigure_successful": "Omkonfigureringen lyckades"
47
49
  },
48
50
  "entry_type": "Text-till-tal",
@@ -7,7 +7,10 @@ import asyncio
7
7
  import logging
8
8
  from typing import Any
9
9
 
10
- from ha_silabs_firmware_client import FirmwareUpdateClient
10
+ from aiohttp import ClientError
11
+ from ha_silabs_firmware_client import FirmwareUpdateClient, ManifestMissing
12
+ from universal_silabs_flasher.common import Version
13
+ from universal_silabs_flasher.firmware import NabuCasaMetadata
11
14
 
12
15
  from homeassistant.components.hassio import (
13
16
  AddonError,
@@ -149,15 +152,78 @@ class BaseFirmwareInstallFlow(ConfigEntryBaseFlow, ABC):
149
152
  assert self._device is not None
150
153
 
151
154
  if not self.firmware_install_task:
155
+ # We 100% need to install new firmware only if the wrong firmware is
156
+ # currently installed
157
+ firmware_install_required = self._probed_firmware_info is None or (
158
+ self._probed_firmware_info.firmware_type
159
+ != expected_installed_firmware_type
160
+ )
161
+
152
162
  session = async_get_clientsession(self.hass)
153
163
  client = FirmwareUpdateClient(fw_update_url, session)
154
- manifest = await client.async_update_data()
155
164
 
156
- fw_meta = next(
157
- fw for fw in manifest.firmwares if fw.filename.startswith(fw_type)
158
- )
165
+ try:
166
+ manifest = await client.async_update_data()
167
+ fw_manifest = next(
168
+ fw for fw in manifest.firmwares if fw.filename.startswith(fw_type)
169
+ )
170
+ except (StopIteration, TimeoutError, ClientError, ManifestMissing) as err:
171
+ _LOGGER.warning(
172
+ "Failed to fetch firmware update manifest", exc_info=True
173
+ )
174
+
175
+ # Not having internet access should not prevent setup
176
+ if not firmware_install_required:
177
+ _LOGGER.debug(
178
+ "Skipping firmware upgrade due to index download failure"
179
+ )
180
+ return self.async_show_progress_done(next_step_id=next_step_id)
181
+
182
+ raise AbortFlow(
183
+ "fw_download_failed",
184
+ description_placeholders={
185
+ **self._get_translation_placeholders(),
186
+ "firmware_name": firmware_name,
187
+ },
188
+ ) from err
189
+
190
+ if not firmware_install_required:
191
+ assert self._probed_firmware_info is not None
192
+
193
+ # Make sure we do not downgrade the firmware
194
+ fw_metadata = NabuCasaMetadata.from_json(fw_manifest.metadata)
195
+ fw_version = fw_metadata.get_public_version()
196
+ probed_fw_version = Version(self._probed_firmware_info.firmware_version)
197
+
198
+ if probed_fw_version >= fw_version:
199
+ _LOGGER.debug(
200
+ "Not downgrading firmware, installed %s is newer than available %s",
201
+ probed_fw_version,
202
+ fw_version,
203
+ )
204
+ return self.async_show_progress_done(next_step_id=next_step_id)
205
+
206
+ try:
207
+ fw_data = await client.async_fetch_firmware(fw_manifest)
208
+ except (TimeoutError, ClientError, ValueError) as err:
209
+ _LOGGER.warning("Failed to fetch firmware update", exc_info=True)
210
+
211
+ # If we cannot download new firmware, we shouldn't block setup
212
+ if not firmware_install_required:
213
+ _LOGGER.debug(
214
+ "Skipping firmware upgrade due to image download failure"
215
+ )
216
+ return self.async_show_progress_done(next_step_id=next_step_id)
217
+
218
+ # Otherwise, fail
219
+ raise AbortFlow(
220
+ "fw_download_failed",
221
+ description_placeholders={
222
+ **self._get_translation_placeholders(),
223
+ "firmware_name": firmware_name,
224
+ },
225
+ ) from err
159
226
 
160
- fw_data = await client.async_fetch_firmware(fw_meta)
161
227
  self.firmware_install_task = self.hass.async_create_task(
162
228
  async_flash_silabs_firmware(
163
229
  hass=self.hass,
@@ -215,6 +281,14 @@ class BaseFirmwareInstallFlow(ConfigEntryBaseFlow, ABC):
215
281
  },
216
282
  )
217
283
 
284
+ async def async_step_pre_confirm_zigbee(
285
+ self, user_input: dict[str, Any] | None = None
286
+ ) -> ConfigFlowResult:
287
+ """Pre-confirm Zigbee setup."""
288
+
289
+ # This step is necessary to prevent `user_input` from being passed through
290
+ return await self.async_step_confirm_zigbee()
291
+
218
292
  async def async_step_confirm_zigbee(
219
293
  self, user_input: dict[str, Any] | None = None
220
294
  ) -> ConfigFlowResult:
@@ -409,7 +483,15 @@ class BaseFirmwareInstallFlow(ConfigEntryBaseFlow, ABC):
409
483
  finally:
410
484
  self.addon_start_task = None
411
485
 
412
- return self.async_show_progress_done(next_step_id="confirm_otbr")
486
+ return self.async_show_progress_done(next_step_id="pre_confirm_otbr")
487
+
488
+ async def async_step_pre_confirm_otbr(
489
+ self, user_input: dict[str, Any] | None = None
490
+ ) -> ConfigFlowResult:
491
+ """Pre-confirm OTBR setup."""
492
+
493
+ # This step is necessary to prevent `user_input` from being passed through
494
+ return await self.async_step_confirm_otbr()
413
495
 
414
496
  async def async_step_confirm_otbr(
415
497
  self, user_input: dict[str, Any] | None = None
@@ -36,7 +36,8 @@
36
36
  "otbr_addon_already_running": "The OpenThread Border Router add-on is already running, it cannot be installed again.",
37
37
  "zha_still_using_stick": "This {model} is in use by the Zigbee Home Automation integration. Please migrate your Zigbee network to another adapter or delete the integration and try again.",
38
38
  "otbr_still_using_stick": "This {model} is in use by the OpenThread Border Router add-on. If you use the Thread network, make sure you have alternative border routers. Uninstall the add-on and try again.",
39
- "unsupported_firmware": "The radio firmware on your {model} could not be determined. Make sure that no other integration or add-on is currently trying to communicate with the device. If you are running Home Assistant OS in a virtual machine or in Docker, please make sure that permissions are set correctly for the device."
39
+ "unsupported_firmware": "The radio firmware on your {model} could not be determined. Make sure that no other integration or add-on is currently trying to communicate with the device. If you are running Home Assistant OS in a virtual machine or in Docker, please make sure that permissions are set correctly for the device.",
40
+ "fw_download_failed": "{firmware_name} firmware for your {model} failed to download. Make sure Home Assistant has internet access and try again."
40
41
  },
41
42
  "progress": {
42
43
  "install_firmware": "Please wait while {firmware_name} firmware is installed to your {model}, this will take a few minutes. Do not make any changes to your hardware or software until this finishes."
@@ -2,6 +2,7 @@
2
2
  "firmware_picker": {
3
3
  "options": {
4
4
  "abort": {
5
+ "fw_download_failed": "Download der {firmware_name}-Firmware f\u00fcr deinen {model} fehlgeschlagen. Stelle sicher, dass Home Assistant einen Internetzugang hat und versuche es erneut.",
5
6
  "not_hassio_thread": "Das OpenThread Border Router-Add-on kann nur mit Home Assistant OS installiert werden. Wenn du das {model} als Thread Border Router verwenden m\u00f6chtest, flashe die Firmware bitte manuell mit dem [Web Flasher]({docs_web_flasher_url}) und richte den OpenThread Border Router f\u00fcr die Kommunikation damit ein.",
6
7
  "otbr_addon_already_running": "Das OpenThread Border Router-Add-on wird bereits ausgef\u00fchrt und kann nicht erneut installiert werden.",
7
8
  "otbr_still_using_stick": "Dieses {model} wird vom OpenThread Border Router-Add-on verwendet. Wenn du das Thread-Netzwerk verwendest, stelle sicher, dass du alternative Border-Router hast. Deinstalliere das Add-on und versuche es erneut.",
@@ -2,6 +2,7 @@
2
2
  "firmware_picker": {
3
3
  "options": {
4
4
  "abort": {
5
+ "fw_download_failed": "{firmware_name} firmware for your {model} failed to download. Make sure Home Assistant has internet access and try again.",
5
6
  "not_hassio_thread": "The OpenThread Border Router add-on can only be installed with Home Assistant OS. If you would like to use the {model} as a Thread border router, please flash the firmware manually using the [web flasher]({docs_web_flasher_url}) and set up OpenThread Border Router to communicate with it.",
6
7
  "otbr_addon_already_running": "The OpenThread Border Router add-on is already running, it cannot be installed again.",
7
8
  "otbr_still_using_stick": "This {model} is in use by the OpenThread Border Router add-on. If you use the Thread network, make sure you have alternative border routers. Uninstall the add-on and try again.",
@@ -2,6 +2,7 @@
2
2
  "firmware_picker": {
3
3
  "options": {
4
4
  "abort": {
5
+ "fw_download_failed": "{firmware_name} firmware for your {model} failed to download. Make sure Home Assistant has internet access and try again.",
5
6
  "not_hassio_thread": "The OpenThread Border Router add-on can only be installed with Home Assistant OS. If you would like to use the {model} as a Thread border router, please flash the firmware manually using the [web flasher]({docs_web_flasher_url}) and set up OpenThread Border Router to communicate with it.",
6
7
  "otbr_addon_already_running": "The OpenThread Border Router add-on is already running, it cannot be installed again.",
7
8
  "otbr_still_using_stick": "This {model} is in use by the OpenThread Border Router add-on. If you use the Thread network, make sure you have alternative border routers. Uninstall the add-on and try again.",
@@ -93,7 +93,7 @@ class SkyConnectFirmwareMixin(ConfigEntryBaseFlow, FirmwareInstallFlowProtocol):
93
93
  firmware_name="Zigbee",
94
94
  expected_installed_firmware_type=ApplicationType.EZSP,
95
95
  step_id="install_zigbee_firmware",
96
- next_step_id="confirm_zigbee",
96
+ next_step_id="pre_confirm_zigbee",
97
97
  )
98
98
 
99
99
  async def async_step_install_thread_firmware(
@@ -92,7 +92,8 @@
92
92
  "otbr_addon_already_running": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_addon_already_running%]",
93
93
  "zha_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::zha_still_using_stick%]",
94
94
  "otbr_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_still_using_stick%]",
95
- "unsupported_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::unsupported_firmware%]"
95
+ "unsupported_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::unsupported_firmware%]",
96
+ "fw_download_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_download_failed%]"
96
97
  },
97
98
  "progress": {
98
99
  "install_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::install_addon%]",
@@ -145,7 +146,8 @@
145
146
  "otbr_addon_already_running": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_addon_already_running%]",
146
147
  "zha_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::zha_still_using_stick%]",
147
148
  "otbr_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_still_using_stick%]",
148
- "unsupported_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::unsupported_firmware%]"
149
+ "unsupported_firmware": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::unsupported_firmware%]",
150
+ "fw_download_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_download_failed%]"
149
151
  },
150
152
  "progress": {
151
153
  "install_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::install_addon%]",
@@ -6,6 +6,7 @@
6
6
  "addon_install_failed": "Die Installation des Add-ons {addon_name} ist fehlgeschlagen.",
7
7
  "addon_set_config_failed": "Die Konfiguration von {addon_name} konnte nicht gesetzt werden.",
8
8
  "addon_start_failed": "Das Add-on {addon_name} konnte nicht gestartet werden.",
9
+ "fw_download_failed": "Download der {firmware_name}-Firmware f\u00fcr deinen {model} fehlgeschlagen. Stelle sicher, dass Home Assistant einen Internetzugang hat und versuche es erneut.",
9
10
  "not_hassio": "Die Hardwareoptionen k\u00f6nnen nur auf Installationen mit Home Assistant OS konfiguriert werden.",
10
11
  "not_hassio_thread": "Das OpenThread Border Router-Add-on kann nur mit Home Assistant OS installiert werden. Wenn du das {model} als Thread Border Router verwenden m\u00f6chtest, flashe die Firmware bitte manuell mit dem [Web Flasher]({docs_web_flasher_url}) und richte den OpenThread Border Router f\u00fcr die Kommunikation damit ein.",
11
12
  "otbr_addon_already_running": "Das OpenThread Border Router-Add-on wird bereits ausgef\u00fchrt und kann nicht erneut installiert werden.",
@@ -64,6 +65,7 @@
64
65
  "addon_install_failed": "Die Installation des Add-ons {addon_name} ist fehlgeschlagen.",
65
66
  "addon_set_config_failed": "Die Konfiguration von {addon_name} konnte nicht gesetzt werden.",
66
67
  "addon_start_failed": "Das Add-on {addon_name} konnte nicht gestartet werden.",
68
+ "fw_download_failed": "Download der {firmware_name}-Firmware f\u00fcr deinen {model} fehlgeschlagen. Stelle sicher, dass Home Assistant einen Internetzugang hat und versuche es erneut.",
67
69
  "not_hassio": "Die Hardwareoptionen k\u00f6nnen nur auf Installationen mit Home Assistant OS konfiguriert werden.",
68
70
  "not_hassio_thread": "Das OpenThread Border Router-Add-on kann nur mit Home Assistant OS installiert werden. Wenn du das {model} als Thread Border Router verwenden m\u00f6chtest, flashe die Firmware bitte manuell mit dem [Web Flasher]({docs_web_flasher_url}) und richte den OpenThread Border Router f\u00fcr die Kommunikation damit ein.",
69
71
  "otbr_addon_already_running": "Das OpenThread Border Router-Add-on wird bereits ausgef\u00fchrt und kann nicht erneut installiert werden.",
@@ -6,6 +6,7 @@
6
6
  "addon_install_failed": "Failed to install the {addon_name} add-on.",
7
7
  "addon_set_config_failed": "Failed to set {addon_name} configuration.",
8
8
  "addon_start_failed": "Failed to start the {addon_name} add-on.",
9
+ "fw_download_failed": "{firmware_name} firmware for your {model} failed to download. Make sure Home Assistant has internet access and try again.",
9
10
  "not_hassio": "The hardware options can only be configured on Home Assistant OS installations.",
10
11
  "not_hassio_thread": "The OpenThread Border Router add-on can only be installed with Home Assistant OS. If you would like to use the {model} as a Thread border router, please flash the firmware manually using the [web flasher]({docs_web_flasher_url}) and set up OpenThread Border Router to communicate with it.",
11
12
  "otbr_addon_already_running": "The OpenThread Border Router add-on is already running, it cannot be installed again.",
@@ -63,6 +64,7 @@
63
64
  "addon_install_failed": "Failed to install the {addon_name} add-on.",
64
65
  "addon_set_config_failed": "Failed to set {addon_name} configuration.",
65
66
  "addon_start_failed": "Failed to start the {addon_name} add-on.",
67
+ "fw_download_failed": "{firmware_name} firmware for your {model} failed to download. Make sure Home Assistant has internet access and try again.",
66
68
  "not_hassio": "The hardware options can only be configured on Home Assistant OS installations.",
67
69
  "not_hassio_thread": "The OpenThread Border Router add-on can only be installed with Home Assistant OS. If you would like to use the {model} as a Thread border router, please flash the firmware manually using the [web flasher]({docs_web_flasher_url}) and set up OpenThread Border Router to communicate with it.",
68
70
  "otbr_addon_already_running": "The OpenThread Border Router add-on is already running, it cannot be installed again.",
@@ -6,6 +6,7 @@
6
6
  "addon_install_failed": "Failed to install the {addon_name} add-on.",
7
7
  "addon_set_config_failed": "Failed to set {addon_name} configuration.",
8
8
  "addon_start_failed": "Failed to start the {addon_name} add-on.",
9
+ "fw_download_failed": "{firmware_name} firmware for your {model} failed to download. Make sure Home Assistant has internet access and try again.",
9
10
  "not_hassio": "The hardware options can only be configured on Home Assistant OS installations.",
10
11
  "not_hassio_thread": "The OpenThread Border Router add-on can only be installed with Home Assistant OS. If you would like to use the {model} as a Thread border router, please flash the firmware manually using the [web flasher]({docs_web_flasher_url}) and set up OpenThread Border Router to communicate with it.",
11
12
  "otbr_addon_already_running": "The OpenThread Border Router add-on is already running, it cannot be installed again.",
@@ -64,6 +65,7 @@
64
65
  "addon_install_failed": "Failed to install the {addon_name} add-on.",
65
66
  "addon_set_config_failed": "Failed to set {addon_name} configuration.",
66
67
  "addon_start_failed": "Failed to start the {addon_name} add-on.",
68
+ "fw_download_failed": "{firmware_name} firmware for your {model} failed to download. Make sure Home Assistant has internet access and try again.",
67
69
  "not_hassio": "The hardware options can only be configured on Home Assistant OS installations.",
68
70
  "not_hassio_thread": "The OpenThread Border Router add-on can only be installed with Home Assistant OS. If you would like to use the {model} as a Thread border router, please flash the firmware manually using the [web flasher]({docs_web_flasher_url}) and set up OpenThread Border Router to communicate with it.",
69
71
  "otbr_addon_already_running": "The OpenThread Border Router add-on is already running, it cannot be installed again.",
@@ -117,7 +117,8 @@
117
117
  "otbr_addon_already_running": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_addon_already_running%]",
118
118
  "zha_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::zha_still_using_stick%]",
119
119
  "otbr_still_using_stick": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::otbr_still_using_stick%]",
120
- "unsupported_firmware": "The radio firmware on your {model} could not be determined. Make sure that no other integration or addon is currently trying to communicate with the device."
120
+ "unsupported_firmware": "The radio firmware on your {model} could not be determined. Make sure that no other integration or add-on is currently trying to communicate with the device.",
121
+ "fw_download_failed": "[%key:component::homeassistant_hardware::firmware_picker::options::abort::fw_download_failed%]"
121
122
  },
122
123
  "progress": {
123
124
  "install_addon": "[%key:component::homeassistant_hardware::silabs_multiprotocol_hardware::options::progress::install_addon%]",
@@ -15,7 +15,6 @@
15
15
  "addon_start_failed": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u043a\u0430\u0442\u0430 {addon_name} .",
16
16
  "not_hassio": "\u0425\u0430\u0440\u0434\u0443\u0435\u0440\u043d\u0438\u0442\u0435 \u043e\u043f\u0446\u0438\u0438 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0431\u044a\u0434\u0430\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0438 \u0441\u0430\u043c\u043e \u043f\u0440\u0438 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u0438 \u043d\u0430 HassOS.",
17
17
  "read_hw_settings_error": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0447\u0435\u0442\u0435\u043d\u0435 \u043d\u0430 \u0445\u0430\u0440\u0434\u0443\u0435\u0440\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",
18
- "unsupported_firmware": "\u0424\u044a\u0440\u043c\u0443\u0435\u0440\u044a\u0442 \u043d\u0430 \u0440\u0430\u0434\u0438\u043e\u0442\u043e \u043d\u0430 \u0432\u0430\u0448\u0438\u044f {model} \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d. \u0423\u0432\u0435\u0440\u0435\u0442\u0435 \u0441\u0435, \u0447\u0435 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u044f\u043c\u0430 \u0434\u0440\u0443\u0433\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043a\u0430, \u043a\u043e\u044f\u0442\u043e \u0441\u0435 \u043e\u043f\u0438\u0442\u0432\u0430 \u0434\u0430 \u043a\u043e\u043c\u0443\u043d\u0438\u043a\u0438\u0440\u0430 \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e.",
19
18
  "write_hw_settings_error": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0432\u0430\u043d\u0435 \u043d\u0430 \u0445\u0430\u0440\u0434\u0443\u0435\u0440\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",
20
19
  "zha_migration_failed": "\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 ZHA \u043d\u0435 \u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u0430."
21
20
  },
@@ -18,7 +18,6 @@
18
18
  "otbr_addon_already_running": "Dopln\u011bk OpenThread Border Router je ji\u017e spu\u0161t\u011bn, nelze jej znovu nainstalovat.",
19
19
  "otbr_still_using_stick": "Tento {model} je pou\u017e\u00edv\u00e1n dopl\u0148kem OpenThread Border Router. Pokud pou\u017e\u00edv\u00e1te s\u00ed\u0165 Thread, ujist\u011bte se, \u017ee m\u00e1te alternativn\u00ed hrani\u010dn\u00ed routery. Odinstalujte dopln\u011bk a zkuste to znovu.",
20
20
  "read_hw_settings_error": "Nepoda\u0159ilo se na\u010d\u00edst nastaven\u00ed hardwaru",
21
- "unsupported_firmware": "Firmware r\u00e1dia na va\u0161em {model} nelze ur\u010dit. Ujist\u011bte se, \u017ee se \u017e\u00e1dn\u00e1 jin\u00e1 integrace nebo dopln\u011bk aktu\u00e1ln\u011b nepokou\u0161\u00ed komunikovat se za\u0159\u00edzen\u00edm.",
22
21
  "write_hw_settings_error": "Nepoda\u0159ilo se zapsat nastaven\u00ed hardwaru",
23
22
  "zha_migration_failed": "Migrace ZHA se nezda\u0159ila.",
24
23
  "zha_still_using_stick": "Tento {model} je pou\u017e\u00edv\u00e1n integrac\u00ed Zigbee Home Automation. Prove\u010fte migraci s\u00edt\u011b Zigbee na jin\u00fd adapt\u00e9r nebo sma\u017ete integraci a zkuste to znovu."