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
@@ -0,0 +1,73 @@
1
+ {
2
+ "config": {
3
+ "abort": {
4
+ "already_configured": "Konto jest ju\u017c skonfigurowane",
5
+ "reauth_successful": "Ponowne uwierzytelnienie si\u0119 powiod\u0142o",
6
+ "unique_id_mismatch": "Podany token NPSSO odpowiada kontu {wrong_account}. Prosz\u0119 ponownie uwierzytelni\u0107 si\u0119 za pomoc\u0105 konta **{name}**"
7
+ },
8
+ "error": {
9
+ "cannot_connect": "Nie mo\u017cna nawi\u0105za\u0107 po\u0142\u0105czenia",
10
+ "invalid_account": "Niepoprawny token dost\u0119pu",
11
+ "invalid_auth": "Niepoprawne uwierzytelnienie",
12
+ "unknown": "Nieoczekiwany b\u0142\u0105d"
13
+ },
14
+ "step": {
15
+ "reauth_confirm": {
16
+ "data": {
17
+ "npsso": "Token NPSSO"
18
+ },
19
+ "data_description": {
20
+ "npsso": "Token NPSSO jest generowany po pomy\u015blnym zalogowaniu si\u0119 na konto PlayStation Network i s\u0142u\u017cy do uwierzytelniania \u017c\u0105da\u0144 w aplikacji Home Assistant."
21
+ },
22
+ "description": "Token NPSSO dla **{name}** wygas\u0142. Aby uzyska\u0107 nowy, zaloguj si\u0119 najpierw na swoje [konto PlayStation]({psn_link}). Nast\u0119pnie [kliknij tutaj]({npsso_link}), aby pozyska\u0107 token.",
23
+ "title": "Ponowne uwierzytelnienie {name} w PlayStation Network"
24
+ },
25
+ "user": {
26
+ "data": {
27
+ "npsso": "Token NPSSO"
28
+ },
29
+ "data_description": {
30
+ "npsso": "Token NPSSO jest generowany po pomy\u015blnym zalogowaniu si\u0119 na konto PlayStation Network i s\u0142u\u017cy do uwierzytelniania \u017c\u0105da\u0144 w aplikacji Home Assistant."
31
+ },
32
+ "description": "Aby uzyska\u0107 token NPSSO, zaloguj si\u0119 najpierw na swoje [konto PlayStation]({psn_link}). Nast\u0119pnie [kliknij tutaj]({npsso_link}), aby pobra\u0107 token."
33
+ }
34
+ }
35
+ },
36
+ "entity": {
37
+ "sensor": {
38
+ "earned_trophies_bronze": {
39
+ "name": "Br\u0105z",
40
+ "unit_of_measurement": "trofea"
41
+ },
42
+ "earned_trophies_gold": {
43
+ "name": "Z\u0142oto",
44
+ "unit_of_measurement": "trofea"
45
+ },
46
+ "earned_trophies_platinum": {
47
+ "name": "Platyna",
48
+ "unit_of_measurement": "trofea"
49
+ },
50
+ "earned_trophies_silver": {
51
+ "name": "Srebro",
52
+ "unit_of_measurement": "trofea"
53
+ },
54
+ "online_id": {
55
+ "name": "Identyfikator online"
56
+ },
57
+ "trophy_level": {
58
+ "name": "Poziom trofe\u00f3w"
59
+ },
60
+ "trophy_level_progress": {
61
+ "name": "Nast\u0119pny poziom"
62
+ }
63
+ }
64
+ },
65
+ "exceptions": {
66
+ "not_ready": {
67
+ "message": "Uwierzytelnianie w PlayStation Network nie powiod\u0142o si\u0119."
68
+ },
69
+ "update_failed": {
70
+ "message": "Pobieranie danych nie powiod\u0142o si\u0119 podczas pr\u00f3by uzyskania dost\u0119pu do PlayStation Network."
71
+ }
72
+ }
73
+ }
@@ -99,10 +99,10 @@
99
99
  },
100
100
  "number": {
101
101
  "max_dhw_temperature": {
102
- "name": "B\u00f6rv\u00e4rde f\u00f6r tappvarmvatten"
102
+ "name": "B\u00f6rv\u00e4rde f\u00f6r varmvatten"
103
103
  },
104
104
  "maximum_boiler_temperature": {
105
- "name": "B\u00f6rv\u00e4rde f\u00f6r maximal panntemperatur"
105
+ "name": "H\u00f6gsta b\u00f6rv\u00e4rde f\u00f6r panntemperatur"
106
106
  },
107
107
  "temperature_offset": {
108
108
  "name": "Temperaturf\u00f6rskjutning"
@@ -11,8 +11,8 @@
11
11
  "sensor": {
12
12
  "data": {
13
13
  "device_class": "Enhetsklass",
14
- "maximum": "Maximum",
15
- "minimum": "Minimum",
14
+ "maximum": "H\u00f6gst",
15
+ "minimum": "L\u00e4gst",
16
16
  "name": "Namn",
17
17
  "unit_of_measurement": "M\u00e5ttenhet"
18
18
  },
@@ -37,8 +37,8 @@
37
37
  "sensor": {
38
38
  "data": {
39
39
  "device_class": "Enhetsklass",
40
- "maximum": "Maximum",
41
- "minimum": "Minimum",
40
+ "maximum": "H\u00f6gst",
41
+ "minimum": "L\u00e4gst",
42
42
  "unit_of_measurement": "M\u00e5ttenhet"
43
43
  },
44
44
  "title": "Slumpm\u00e4ssig sensor"
@@ -83,6 +83,9 @@
83
83
  "announce_media_error": {
84
84
  "message": "Oznamov\u00e1n\u00ed klipu {media_id} se nezda\u0159ilo: {response}"
85
85
  },
86
+ "entity_not_found": {
87
+ "message": "Entita {entity_id} nebyla nalezena."
88
+ },
86
89
  "invalid_content_type": {
87
90
  "message": "Sonos nepodporuje typ medi\u00e1ln\u00edho obsahu: {media_type}"
88
91
  },
@@ -95,6 +98,9 @@
95
98
  "invalid_sonos_playlist": {
96
99
  "message": "Nelze naj\u00edt seznam skladeb Sonos: {name}"
97
100
  },
101
+ "speaker_not_found": {
102
+ "message": "{entity_id} nen\u00ed zn\u00e1m\u00fd reproduktor Sonos."
103
+ },
98
104
  "timeout_join": {
99
105
  "message": "\u010casov\u00fd limit p\u0159i \u010dek\u00e1n\u00ed na p\u0159ipojen\u00ed hr\u00e1\u010de Sonos ke skupin\u011b {group_description}"
100
106
  }
@@ -102,11 +102,11 @@
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
104
  "name": "Unlock specific door",
105
- "description": "Unlocks specific door(s).",
105
+ "description": "Unlocks the driver door, all doors, or the tailgate.",
106
106
  "fields": {
107
107
  "door": {
108
108
  "name": "Door",
109
- "description": "Which door(s) to open."
109
+ "description": "The specific door(s) to unlock."
110
110
  }
111
111
  }
112
112
  }
@@ -68,7 +68,6 @@
68
68
  },
69
69
  "services": {
70
70
  "unlock_specific_door": {
71
- "description": "Desbloqueja una o m\u00e9s portes espec\u00edfiques.",
72
71
  "fields": {
73
72
  "door": {
74
73
  "name": "Porta"
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Odemkne konkr\u00e9tn\u00ed dve\u0159e.",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Kter\u00e9 dve\u0159e otev\u0159\u00edt.",
108
106
  "name": "Dve\u0159e"
109
107
  }
110
108
  },
@@ -101,10 +101,10 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Entriegelt bestimmte T\u00fcren.",
104
+ "description": "Entriegelt die Fahrert\u00fcr, alle T\u00fcren oder die Heckklappe.",
105
105
  "fields": {
106
106
  "door": {
107
- "description": "Welche T\u00fcr(en) ge\u00f6ffnet werden soll(en).",
107
+ "description": "Die zu entriegelnde(n) T\u00fcr(en).",
108
108
  "name": "T\u00fcr"
109
109
  }
110
110
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "\u039e\u03b5\u03ba\u03bb\u03b5\u03b9\u03b4\u03ce\u03bd\u03b5\u03b9 \u03c3\u03c5\u03b3\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03b5\u03c2 \u03c0\u03cc\u03c1\u03c4\u03b5\u03c2.",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "\u03a0\u03bf\u03b9\u03b5\u03c2 \u03c0\u03cc\u03c1\u03c4\u03b5\u03c2 \u03bd\u03b1 \u03b1\u03bd\u03bf\u03af\u03be\u03bf\u03c5\u03bd.",
108
106
  "name": "\u03a0\u03cc\u03c1\u03c4\u03b1"
109
107
  }
110
108
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Unlocks specific door(s).",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Which door(s) to open.",
108
106
  "name": "Door"
109
107
  }
110
108
  },
@@ -101,10 +101,10 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Unlocks specific door(s).",
104
+ "description": "Unlocks the driver door, all doors, or the tailgate.",
105
105
  "fields": {
106
106
  "door": {
107
- "description": "Which door(s) to open.",
107
+ "description": "The specific door(s) to unlock.",
108
108
  "name": "Door"
109
109
  }
110
110
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Desbloquea puerta(s) espec\u00edfica(s).",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "\u00bfQu\u00e9 puerta(s) abrir?",
108
106
  "name": "Puerta"
109
107
  }
110
108
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Avab teatud uks(ed).",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Milliseid uksi avada.",
108
106
  "name": "Uks"
109
107
  }
110
108
  },
@@ -97,7 +97,6 @@
97
97
  },
98
98
  "services": {
99
99
  "unlock_specific_door": {
100
- "description": "Avaa tietyt ovet.",
101
100
  "fields": {
102
101
  "door": {
103
102
  "name": "Ovi"
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Kinyitja a meghat\u00e1rozott ajt\u00f3(ka)t.",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Melyik ajt\u00f3(ka)t kell kinyitni",
108
106
  "name": "Ajt\u00f3"
109
107
  }
110
108
  },
@@ -97,7 +97,6 @@
97
97
  },
98
98
  "services": {
99
99
  "unlock_specific_door": {
100
- "description": "Sblocca portiere specifiche.",
101
100
  "fields": {
102
101
  "door": {
103
102
  "name": "Portiera"
@@ -98,7 +98,6 @@
98
98
  },
99
99
  "services": {
100
100
  "unlock_specific_door": {
101
- "description": "\u7279\u5b9a\u306e\u30c9\u30a2\u306e\u30ed\u30c3\u30af\u3092\u89e3\u9664\u3057\u307e\u3059\u3002",
102
101
  "fields": {
103
102
  "door": {
104
103
  "name": "\u30c9\u30a2"
@@ -97,7 +97,6 @@
97
97
  },
98
98
  "services": {
99
99
  "unlock_specific_door": {
100
- "description": "\ud2b9\uc815 \ubb38 \uc7a0\uae08 \ud574\uc81c",
101
100
  "fields": {
102
101
  "door": {
103
102
  "name": "\ubb38"
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Atrakina konkre\u010dias duris.",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Kurias duris (-es) atidaryti.",
108
106
  "name": "Durys"
109
107
  }
110
108
  },
@@ -98,7 +98,6 @@
98
98
  },
99
99
  "services": {
100
100
  "unlock_specific_door": {
101
- "description": "Desbloqueia portas espec\u00edficas.",
102
101
  "fields": {
103
102
  "door": {
104
103
  "name": "Porta"
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Desbloqueia porta(s) espec\u00edfica(s).",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Que porta(s) abrir.",
108
106
  "name": "Porta"
109
107
  }
110
108
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "\u0420\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0432\u0435\u0440\u0438.",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "\u041a\u0430\u043a\u0438\u0435 \u0434\u0432\u0435\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c.",
108
106
  "name": "\u0414\u0432\u0435\u0440\u044c"
109
107
  }
110
108
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Odomkne \u0161pecifick\u00e9 dvere.",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Ktor\u00e9 dvere otvori\u0165.",
108
106
  "name": "Dvere"
109
107
  }
110
108
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "L\u00e5ser upp specifik(a) d\u00f6rr(ar).",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Vilken/vilka d\u00f6rrar som ska \u00f6ppnas.",
108
106
  "name": "D\u00f6rr"
109
107
  }
110
108
  },
@@ -100,10 +100,8 @@
100
100
  },
101
101
  "services": {
102
102
  "unlock_specific_door": {
103
- "description": "Belirli kap\u0131(lar)\u0131n kilidini a\u00e7ar.",
104
103
  "fields": {
105
104
  "door": {
106
- "description": "Hangi kap\u0131(lar)\u0131n a\u00e7\u0131laca\u011f\u0131.",
107
105
  "name": "Kap\u0131"
108
106
  }
109
107
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "\u89e3\u9501\u7279\u5b9a\u7684\u95e8\u3002",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "\u6253\u5f00\u54ea\u6247\u95e8\u3002",
108
106
  "name": "\u95e8"
109
107
  }
110
108
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "\u89e3\u9396\u6307\u5b9a\u9580\u3002",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "\u958b\u555f\u54ea\u6247\u9580\u3002",
108
106
  "name": "\u8eca\u9580"
109
107
  }
110
108
  },
@@ -168,6 +168,7 @@
168
168
  "effect": {
169
169
  "state": {
170
170
  "autumn": "H\u00f6st",
171
+ "breathing": "Andning",
171
172
  "christmas": "Jul",
172
173
  "colorful": "F\u00e4rgstark",
173
174
  "cool": "Sval",
@@ -180,6 +181,7 @@
180
181
  "modern": "Modern",
181
182
  "ocean": "Hav",
182
183
  "relax": "Koppla av",
184
+ "rose": "Ros",
183
185
  "smooth": "Mjukt",
184
186
  "strobe": "Stroboskop",
185
187
  "sunset": "Solnedg\u00e5ng",
@@ -412,12 +412,20 @@ class TelgramBotConfigFlow(ConfigFlow, domain=DOMAIN):
412
412
  """Handle config flow for webhook Telegram bot."""
413
413
 
414
414
  if not user_input:
415
+ default_trusted_networks = ",".join(
416
+ [str(network) for network in DEFAULT_TRUSTED_NETWORKS]
417
+ )
418
+
415
419
  if self.source == SOURCE_RECONFIGURE:
420
+ suggested_values = dict(self._get_reconfigure_entry().data)
421
+ if CONF_TRUSTED_NETWORKS not in self._get_reconfigure_entry().data:
422
+ suggested_values[CONF_TRUSTED_NETWORKS] = default_trusted_networks
423
+
416
424
  return self.async_show_form(
417
425
  step_id="webhooks",
418
426
  data_schema=self.add_suggested_values_to_schema(
419
427
  STEP_WEBHOOKS_DATA_SCHEMA,
420
- self._get_reconfigure_entry().data,
428
+ suggested_values,
421
429
  ),
422
430
  )
423
431
 
@@ -426,9 +434,7 @@ class TelgramBotConfigFlow(ConfigFlow, domain=DOMAIN):
426
434
  data_schema=self.add_suggested_values_to_schema(
427
435
  STEP_WEBHOOKS_DATA_SCHEMA,
428
436
  {
429
- CONF_TRUSTED_NETWORKS: ",".join(
430
- [str(network) for network in DEFAULT_TRUSTED_NETWORKS]
431
- ),
437
+ CONF_TRUSTED_NETWORKS: default_trusted_networks,
432
438
  },
433
439
  ),
434
440
  )
@@ -479,12 +485,8 @@ class TelgramBotConfigFlow(ConfigFlow, domain=DOMAIN):
479
485
  description_placeholders: dict[str, str],
480
486
  ) -> None:
481
487
  # validate URL
482
- if CONF_URL in user_input and not user_input[CONF_URL].startswith("https"):
483
- errors["base"] = "invalid_url"
484
- description_placeholders[ERROR_FIELD] = "URL"
485
- description_placeholders[ERROR_MESSAGE] = "URL must start with https"
486
- return
487
- if CONF_URL not in user_input:
488
+ url: str | None = user_input.get(CONF_URL)
489
+ if url is None:
488
490
  try:
489
491
  get_url(self.hass, require_ssl=True, allow_internal=False)
490
492
  except NoURLAvailableError:
@@ -494,6 +496,11 @@ class TelgramBotConfigFlow(ConfigFlow, domain=DOMAIN):
494
496
  "URL is required since you have not configured an external URL in Home Assistant"
495
497
  )
496
498
  return
499
+ elif not url.startswith("https"):
500
+ errors["base"] = "invalid_url"
501
+ description_placeholders[ERROR_FIELD] = "URL"
502
+ description_placeholders[ERROR_MESSAGE] = "URL must start with https"
503
+ return
497
504
 
498
505
  # validate trusted networks
499
506
  csv_trusted_networks: list[str] = []
@@ -30,15 +30,39 @@
30
30
  "platform": "Implementace bota Telegram"
31
31
  },
32
32
  "description": "P\u0159enastavit bota Telegram",
33
+ "sections": {
34
+ "advanced_settings": {
35
+ "data": {
36
+ "proxy_url": "Adresa URL proxy serveru"
37
+ },
38
+ "data_description": {
39
+ "proxy_url": "Adresa URL proxy serveru, pokud za n\u00edm pracuje, voliteln\u011b v\u010detn\u011b u\u017eivatelsk\u00e9ho jm\u00e9na a hesla. (socks5://username:password@proxy_ip:proxy_port)"
40
+ },
41
+ "name": "Pokro\u010dil\u00e1 nastaven\u00ed"
42
+ }
43
+ },
33
44
  "title": "Nastavit bota Telegram"
34
45
  },
35
46
  "user": {
36
47
  "data": {
48
+ "api_key": "Token API",
37
49
  "platform": "Platforma"
38
50
  },
39
51
  "data_description": {
40
52
  "api_key": "Token API va\u0161eho bota.",
41
53
  "platform": "Implementace bota Telegram"
54
+ },
55
+ "description": "Chcete-li vytvo\u0159it Telegram bota, postupujte takto:\n \n1. Otev\u0159ete Telegram a zahajte chat s [{botfather_username}]({botfather_url}).\n2. Ode\u0161lete p\u0159\u00edkaz \"/newbot\".\n3. Postupujte podle pokyn\u016f k vytvo\u0159en\u00ed bota a z\u00edsk\u00e1n\u00ed API tokenu.",
56
+ "sections": {
57
+ "advanced_settings": {
58
+ "data": {
59
+ "proxy_url": "Adresa URL proxy serveru"
60
+ },
61
+ "data_description": {
62
+ "proxy_url": "Adresa URL proxy serveru, pokud za n\u00edm pracuje, voliteln\u011b v\u010detn\u011b u\u017eivatelsk\u00e9ho jm\u00e9na a hesla. (socks5://username:password@proxy_ip:proxy_port)"
63
+ },
64
+ "name": "Pokro\u010dil\u00e1 nastaven\u00ed"
65
+ }
42
66
  }
43
67
  },
44
68
  "webhooks": {
@@ -82,12 +106,18 @@
82
106
  "allowlist_external_dirs_error": {
83
107
  "message": "Cesta k souboru nebyla nastavena v allowlist_external_dirs."
84
108
  },
109
+ "failed_chat_ids": {
110
+ "message": "Ne\u00fasp\u011b\u0161n\u00e9 c\u00edle: {chat_ids}. Ov\u011b\u0159te, zda byla nastavena ID chat\u016f pro {bot_name}."
111
+ },
85
112
  "failed_to_load_file": {
86
113
  "message": "Nepoda\u0159ilo se na\u010d\u00edst soubor: {error}"
87
114
  },
88
115
  "failed_to_load_url": {
89
116
  "message": "Nepoda\u0159ilo se na\u010d\u00edst URL: {error}"
90
117
  },
118
+ "invalid_chat_ids": {
119
+ "message": "Neplatn\u00e1 ID chatu: {chat_ids}. Nastavte ID chat\u016f pro {bot_name}."
120
+ },
91
121
  "missing_allowed_chat_ids": {
92
122
  "message": "Nebyla nalezena \u017e\u00e1dn\u00e1 povolen\u00e1 ID chatu. P\u0159idejte povolen\u00e9 ID chatu pro {bot_name}."
93
123
  },
@@ -30,6 +30,17 @@
30
30
  "platform": "Implementierung des Telegram-Bots"
31
31
  },
32
32
  "description": "Telegram-Bot neu konfigurieren",
33
+ "sections": {
34
+ "advanced_settings": {
35
+ "data": {
36
+ "proxy_url": "Proxy-URL"
37
+ },
38
+ "data_description": {
39
+ "proxy_url": "URL des Proxy, wenn hinter einem gearbeitet wird, optional einschlie\u00dflich Benutzername und Passwort.\n(socks5://benutzername:passwort@proxy_ip:proxy_port)"
40
+ },
41
+ "name": "Erweiterte Einstellungen"
42
+ }
43
+ },
33
44
  "title": "Einrichtung des Telegram-Bots"
34
45
  },
35
46
  "user": {
@@ -41,7 +52,18 @@
41
52
  "api_key": "Das API-Token deines Bots.",
42
53
  "platform": "Implementierung des Telegram-Bots"
43
54
  },
44
- "description": "So erstellst du einen Telegram-Bot:\n\n1. \u00d6ffne Telegram und beginne einen Chat mit [{botfather_username}]({botfather_url}).\n1. Sende den Befehl `/newbot`.\n1. Folge den Anweisungen, um deinen Bot zu erstellen und dein API-Token zu erhalten."
55
+ "description": "So erstellst du einen Telegram-Bot:\n\n1. \u00d6ffne Telegram und beginne einen Chat mit [{botfather_username}]({botfather_url}).\n1. Sende den Befehl `/newbot`.\n1. Folge den Anweisungen, um deinen Bot zu erstellen und dein API-Token zu erhalten.",
56
+ "sections": {
57
+ "advanced_settings": {
58
+ "data": {
59
+ "proxy_url": "Proxy-URL"
60
+ },
61
+ "data_description": {
62
+ "proxy_url": "URL des Proxy, wenn hinter einem gearbeitet wird, optional einschlie\u00dflich Benutzername und Passwort.\n(socks5://benutzername:passwort@proxy_ip:proxy_port)"
63
+ },
64
+ "name": "Erweiterte Einstellungen"
65
+ }
66
+ }
45
67
  },
46
68
  "webhooks": {
47
69
  "data": {
@@ -30,15 +30,39 @@
30
30
  "platform": "\u0395\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae Telegram bot"
31
31
  },
32
32
  "description": "\u0395\u03c0\u03b1\u03bd\u03b1\u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7 Telegram bot",
33
+ "sections": {
34
+ "advanced_settings": {
35
+ "data": {
36
+ "proxy_url": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae \u03bc\u03b5\u03c3\u03bf\u03bb\u03ac\u03b2\u03b7\u03c3\u03b7\u03c2 (proxy)"
37
+ },
38
+ "data_description": {
39
+ "proxy_url": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae \u03bc\u03b5\u03c3\u03bf\u03bb\u03ac\u03b2\u03b7\u03c3\u03b7\u03c2 (proxy) \u03b1\u03bd \u03b2\u03c1\u03af\u03c3\u03ba\u03b5\u03c4\u03b1\u03b9 \u03c0\u03af\u03c3\u03c9 \u03b1\u03c0\u03cc \u03ad\u03bd\u03b1\u03bd, \u03c0\u03b5\u03c1\u03b9\u03bb\u03b1\u03bc\u03b2\u03ac\u03bd\u03bf\u03bd\u03c4\u03b1\u03c2 \u03c0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03ac \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ba\u03b1\u03b9 \u03c4\u03bf\u03bd \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2.\n(socks5://username:password@proxy_ip:proxy_port)"
40
+ },
41
+ "name": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03c0\u03c1\u03bf\u03c7\u03c9\u03c1\u03b7\u03bc\u03ad\u03bd\u03bf\u03c5\u03c2"
42
+ }
43
+ },
33
44
  "title": "\u03a1\u03cd\u03b8\u03bc\u03b9\u03c3\u03b7 Telegram bot"
34
45
  },
35
46
  "user": {
36
47
  "data": {
48
+ "api_key": "API token",
37
49
  "platform": "\u03a0\u03bb\u03b1\u03c4\u03c6\u03cc\u03c1\u03bc\u03b1"
38
50
  },
39
51
  "data_description": {
40
52
  "api_key": "\u03a4\u03bf API token \u03c4\u03bf\u03c5 bot \u03c3\u03b1\u03c2.",
41
53
  "platform": "\u0395\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae Telegram bot"
54
+ },
55
+ "description": "\u0393\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03c3\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 Telegram bot, \u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b1 \u03b5\u03be\u03ae\u03c2 \u03b2\u03ae\u03bc\u03b1\u03c4\u03b1:\n\n1. \u0391\u03bd\u03bf\u03af\u03be\u03c4\u03b5 \u03c4\u03bf Telegram \u03ba\u03b1\u03b9 \u03be\u03b5\u03ba\u03b9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b9\u03b1 \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1 \u03bc\u03b5 \u03c4\u03bf [{botfather_username}]({botfather_url}).\n1. \u03a3\u03c4\u03b5\u03af\u03bb\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03bd\u03c4\u03bf\u03bb\u03ae `/newbot`.\n1. \u0391\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03bf\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf bot \u03c3\u03b1\u03c2 \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03bb\u03ac\u03b2\u03b5\u03c4\u03b5 \u03c4\u03bf API token \u03c3\u03b1\u03c2.",
56
+ "sections": {
57
+ "advanced_settings": {
58
+ "data": {
59
+ "proxy_url": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae \u03bc\u03b5\u03c3\u03bf\u03bb\u03ac\u03b2\u03b7\u03c3\u03b7\u03c2 (proxy)"
60
+ },
61
+ "data_description": {
62
+ "proxy_url": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae \u03bc\u03b5\u03c3\u03bf\u03bb\u03ac\u03b2\u03b7\u03c3\u03b7\u03c2 (proxy) \u03b1\u03bd \u03b2\u03c1\u03af\u03c3\u03ba\u03b5\u03c4\u03b1\u03b9 \u03c0\u03af\u03c3\u03c9 \u03b1\u03c0\u03cc \u03ad\u03bd\u03b1\u03bd, \u03c0\u03b5\u03c1\u03b9\u03bb\u03b1\u03bc\u03b2\u03ac\u03bd\u03bf\u03bd\u03c4\u03b1\u03c2 \u03c0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03ac \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ba\u03b1\u03b9 \u03c4\u03bf\u03bd \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2.\n(socks5://username:password@proxy_ip:proxy_port)"
63
+ },
64
+ "name": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03c0\u03c1\u03bf\u03c7\u03c9\u03c1\u03b7\u03bc\u03ad\u03bd\u03bf\u03c5\u03c2"
65
+ }
42
66
  }
43
67
  },
44
68
  "webhooks": {
@@ -82,12 +106,18 @@
82
106
  "allowlist_external_dirs_error": {
83
107
  "message": "\u0397 \u03b4\u03b9\u03b1\u03b4\u03c1\u03bf\u03bc\u03ae \u03c4\u03bf\u03c5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03b4\u03b5\u03bd \u03ad\u03c7\u03b5\u03b9 \u03c1\u03c5\u03b8\u03bc\u03b9\u03c3\u03c4\u03b5\u03af \u03c3\u03c4\u03b7\u03bd allowlist_external_dirs."
84
108
  },
109
+ "failed_chat_ids": {
110
+ "message": "\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03b7\u03bc\u03ad\u03bd\u03bf\u03b9 \u03c3\u03c4\u03cc\u03c7\u03bf\u03b9: {chat_ids}. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b2\u03b5\u03b2\u03b1\u03b9\u03c9\u03b8\u03b5\u03af\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03c4\u03b1 ID \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 \u03b3\u03b9\u03b1 {bot_name} \u03ad\u03c7\u03bf\u03c5\u03bd \u03b4\u03b9\u03b1\u03bc\u03bf\u03c1\u03c6\u03c9\u03b8\u03b5\u03af."
111
+ },
85
112
  "failed_to_load_file": {
86
113
  "message": "\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5: {error}"
87
114
  },
88
115
  "failed_to_load_url": {
89
116
  "message": "\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7\u03c2 URL: {error}"
90
117
  },
118
+ "invalid_chat_ids": {
119
+ "message": "\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b1 ID \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2: {chat_ids}. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b4\u03b9\u03b1\u03bc\u03bf\u03c1\u03c6\u03ce\u03c3\u03c4\u03b5 \u03c4\u03b1 ID \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03bf {bot_name}."
120
+ },
91
121
  "missing_allowed_chat_ids": {
92
122
  "message": "\u0394\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03b5\u03c0\u03cc\u03bc\u03b5\u03bd\u03b1 ID \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03c4\u03b5 \u03c4\u03b1 \u03b5\u03c0\u03b9\u03c4\u03c1\u03b5\u03c0\u03cc\u03bc\u03b5\u03bd\u03b1 ID \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03bf {bot_name}."
93
123
  },