homeassistant 2025.12.0b1__py3-none-any.whl → 2025.12.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 (39) hide show
  1. homeassistant/components/anglian_water/translations/et.json +27 -1
  2. homeassistant/components/anthropic/__init__.py +2 -9
  3. homeassistant/components/climate/translations/bg.json +14 -0
  4. homeassistant/components/climate/translations/cs.json +25 -3
  5. homeassistant/components/climate/translations/de.json +22 -0
  6. homeassistant/components/climate/translations/et.json +13 -1
  7. homeassistant/components/climate/translations/sk.json +22 -0
  8. homeassistant/components/climate/translations/zh-Hant.json +22 -0
  9. homeassistant/components/energyid/translations/bg.json +7 -0
  10. homeassistant/components/frontend/manifest.json +1 -1
  11. homeassistant/components/google_air_quality/translations/et.json +32 -1
  12. homeassistant/components/knx/translations/sk.json +3 -0
  13. homeassistant/components/mqtt/translations/cs.json +22 -22
  14. homeassistant/components/music_assistant/translations/bg.json +6 -1
  15. homeassistant/components/pooldose/translations/et.json +11 -0
  16. homeassistant/components/roborock/image.py +5 -2
  17. homeassistant/components/roborock/manifest.json +1 -1
  18. homeassistant/components/shelly/const.py +1 -0
  19. homeassistant/components/shelly/translations/sv.json +189 -9
  20. homeassistant/components/template/__init__.py +20 -1
  21. homeassistant/components/template/helpers.py +3 -0
  22. homeassistant/components/wled/config_flow.py +29 -1
  23. homeassistant/components/wled/coordinator.py +12 -0
  24. homeassistant/components/wled/strings.json +6 -1
  25. homeassistant/components/wled/translations/bg.json +2 -1
  26. homeassistant/components/wled/translations/de.json +6 -1
  27. homeassistant/components/wled/translations/en.json +6 -1
  28. homeassistant/components/wled/translations/et.json +6 -1
  29. homeassistant/components/wled/translations/sk.json +6 -1
  30. homeassistant/components/zha/translations/et.json +42 -0
  31. homeassistant/const.py +1 -1
  32. homeassistant/package_constraints.txt +1 -1
  33. {homeassistant-2025.12.0b1.dist-info → homeassistant-2025.12.0b2.dist-info}/METADATA +1 -1
  34. {homeassistant-2025.12.0b1.dist-info → homeassistant-2025.12.0b2.dist-info}/RECORD +39 -38
  35. {homeassistant-2025.12.0b1.dist-info → homeassistant-2025.12.0b2.dist-info}/WHEEL +0 -0
  36. {homeassistant-2025.12.0b1.dist-info → homeassistant-2025.12.0b2.dist-info}/entry_points.txt +0 -0
  37. {homeassistant-2025.12.0b1.dist-info → homeassistant-2025.12.0b2.dist-info}/licenses/LICENSE.md +0 -0
  38. {homeassistant-2025.12.0b1.dist-info → homeassistant-2025.12.0b2.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  39. {homeassistant-2025.12.0b1.dist-info → homeassistant-2025.12.0b2.dist-info}/top_level.txt +0 -0
@@ -5,7 +5,33 @@
5
5
  },
6
6
  "error": {
7
7
  "cannot_connect": "\u00dchendamine nurjus",
8
- "invalid_auth": "Tuvastamine nurjus"
8
+ "invalid_auth": "Tuvastamine nurjus",
9
+ "unknown": "Ootamatu t\u00f5rge"
10
+ },
11
+ "step": {
12
+ "user": {
13
+ "data": {
14
+ "account_number": "Arvelduskonto number",
15
+ "password": "Salas\u00f5na",
16
+ "username": "Kasutajanimi"
17
+ },
18
+ "data_description": {
19
+ "account_number": "Viimasel arvel olev kontonumber.",
20
+ "password": "Salas\u00f5na",
21
+ "username": "Kasutajanimi v\u00f5i e-posti aadress, mida kasutatakse Anglian Wateri veebisaidile sisselogimiseks."
22
+ },
23
+ "description": "Sisesta Anglian Wateri konto andmed, et luua \u00fchendus Home Assistantiga."
24
+ }
25
+ }
26
+ },
27
+ "entity": {
28
+ "sensor": {
29
+ "latest_reading": {
30
+ "name": "Viimane lugem"
31
+ },
32
+ "yesterday_consumption": {
33
+ "name": "Eilne kasutus"
34
+ }
9
35
  }
10
36
  }
11
37
  }
@@ -17,7 +17,7 @@ from homeassistant.helpers import (
17
17
  )
18
18
  from homeassistant.helpers.typing import ConfigType
19
19
 
20
- from .const import CONF_CHAT_MODEL, DEFAULT, DEFAULT_CONVERSATION_NAME, DOMAIN, LOGGER
20
+ from .const import DEFAULT_CONVERSATION_NAME, DOMAIN, LOGGER
21
21
 
22
22
  PLATFORMS = (Platform.AI_TASK, Platform.CONVERSATION)
23
23
  CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN)
@@ -37,14 +37,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: AnthropicConfigEntry) ->
37
37
  partial(anthropic.AsyncAnthropic, api_key=entry.data[CONF_API_KEY])
38
38
  )
39
39
  try:
40
- # Use model from first conversation subentry for validation
41
- subentries = list(entry.subentries.values())
42
- if subentries:
43
- model_id = subentries[0].data.get(CONF_CHAT_MODEL, DEFAULT[CONF_CHAT_MODEL])
44
- else:
45
- model_id = DEFAULT[CONF_CHAT_MODEL]
46
- model = await client.models.retrieve(model_id=model_id, timeout=10.0)
47
- LOGGER.debug("Anthropic model: %s", model.display_name)
40
+ await client.models.list(timeout=10.0)
48
41
  except anthropic.AuthenticationError as err:
49
42
  LOGGER.error("Invalid API key: %s", err)
50
43
  return False
@@ -228,6 +228,20 @@
228
228
  },
229
229
  "title": "\u041a\u043b\u0438\u043c\u0430\u0442",
230
230
  "triggers": {
231
+ "started_cooling": {
232
+ "fields": {
233
+ "behavior": {
234
+ "name": "\u041f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435"
235
+ }
236
+ }
237
+ },
238
+ "started_drying": {
239
+ "fields": {
240
+ "behavior": {
241
+ "name": "\u041f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435"
242
+ }
243
+ }
244
+ },
231
245
  "started_heating": {
232
246
  "fields": {
233
247
  "behavior": {
@@ -298,16 +298,38 @@
298
298
  },
299
299
  "title": "Klima",
300
300
  "triggers": {
301
+ "started_cooling": {
302
+ "description": "Spou\u0161t\u00ed se, kdy\u017e klimatizace za\u010dne chladit.",
303
+ "description_configured": "Spou\u0161t\u00ed se, kdy\u017e klimatizace za\u010dne chladit.",
304
+ "fields": {
305
+ "behavior": {
306
+ "description": "Chov\u00e1n\u00ed c\u00edlov\u00fdch klimatizac\u00ed, kter\u00e9 se maj\u00ed spustit.",
307
+ "name": "Chov\u00e1n\u00ed"
308
+ }
309
+ },
310
+ "name": "Kdy\u017e klimatizace za\u010dne chladit."
311
+ },
312
+ "started_drying": {
313
+ "description": "Spou\u0161t\u00ed se, kdy\u017e klimatizace za\u010dne vysou\u0161et.",
314
+ "description_configured": "Spou\u0161t\u00ed se, kdy\u017e klimatizace za\u010dne vysou\u0161et.",
315
+ "fields": {
316
+ "behavior": {
317
+ "description": "Chov\u00e1n\u00ed c\u00edlov\u00fdch klimatizac\u00ed, kter\u00e9 se maj\u00ed spustit.",
318
+ "name": "Chov\u00e1n\u00ed"
319
+ }
320
+ },
321
+ "name": "Kdy\u017e klimatizace za\u010dne vysou\u0161et"
322
+ },
301
323
  "started_heating": {
302
- "description": "Spou\u0161t\u00ed se, kdy\u017e se za\u010dne oteplovat.",
303
- "description_configured": "Spou\u0161t\u00ed se, kdy\u017e se za\u010dne oteplovat.",
324
+ "description": "Spou\u0161t\u00ed se, kdy\u017e klimatizace za\u010dne topit.",
325
+ "description_configured": "Spou\u0161t\u00ed se, kdy\u017e klimatizace za\u010dne topit.",
304
326
  "fields": {
305
327
  "behavior": {
306
328
  "description": "Chov\u00e1n\u00ed c\u00edlov\u00fdch klimatizac\u00ed, kter\u00e9 se maj\u00ed spustit.",
307
329
  "name": "Chov\u00e1n\u00ed"
308
330
  }
309
331
  },
310
- "name": "Kdy\u017e se za\u010dne oteplovat"
332
+ "name": "Kdy\u017e klimatizace za\u010dne topit"
311
333
  },
312
334
  "turned_off": {
313
335
  "description": "Spou\u0161t\u00ed se p\u0159i vypnut\u00ed klimatizace.",
@@ -298,6 +298,28 @@
298
298
  },
299
299
  "title": "Klima",
300
300
  "triggers": {
301
+ "started_cooling": {
302
+ "description": "Wird ausgel\u00f6st, sobald ein Klimager\u00e4t zu k\u00fchlen beginnt.",
303
+ "description_configured": "Wird ausgel\u00f6st, sobald ein Klimager\u00e4t zu k\u00fchlen beginnt.",
304
+ "fields": {
305
+ "behavior": {
306
+ "description": "Das Verhalten der ausgew\u00e4hlten Klimager\u00e4te, das als Ausl\u00f6ser dienen soll.",
307
+ "name": "Verhalten"
308
+ }
309
+ },
310
+ "name": "Sobald ein Klimager\u00e4t zu k\u00fchlen beginnt"
311
+ },
312
+ "started_drying": {
313
+ "description": "Wird ausgel\u00f6st, sobald ein Klimager\u00e4t zu entfeuchten beginnt.",
314
+ "description_configured": "Wird ausgel\u00f6st, sobald ein Klimager\u00e4t zu entfeuchten beginnt.",
315
+ "fields": {
316
+ "behavior": {
317
+ "description": "Das Verhalten der ausgew\u00e4hlten Klimager\u00e4te, das als Ausl\u00f6ser dienen soll.",
318
+ "name": "Verhalten"
319
+ }
320
+ },
321
+ "name": "Sobald ein Klimager\u00e4t zu entfeuchten beginnt"
322
+ },
301
323
  "started_heating": {
302
324
  "description": "Wird ausgel\u00f6st, sobald ein Klimager\u00e4t zu heizen beginnt.",
303
325
  "description_configured": "Wird ausgel\u00f6st, sobald ein Klimager\u00e4t zu heizen beginnt.",
@@ -285,5 +285,17 @@
285
285
  "name": "L\u00fclita sisse"
286
286
  }
287
287
  },
288
- "title": "Kliimaseade"
288
+ "title": "Kliimaseade",
289
+ "triggers": {
290
+ "started_cooling": {
291
+ "description": "K\u00e4ivitub kui kliimaseade hakkas jahutama.",
292
+ "description_configured": "K\u00e4ivitub kui kliimaseade hakkas jahutama.",
293
+ "name": "Kui kliimakliima hakkas jahutama"
294
+ },
295
+ "started_drying": {
296
+ "description": "K\u00e4ivitub kui kliimaseade hakkas kuivatama.",
297
+ "description_configured": "K\u00e4ivitub kui kliimaseade hakkas kuivatama.",
298
+ "name": "Kui kliimaseade hakkas kuivatama"
299
+ }
300
+ }
289
301
  }
@@ -298,6 +298,28 @@
298
298
  },
299
299
  "title": "Klimatiz\u00e1cia",
300
300
  "triggers": {
301
+ "started_cooling": {
302
+ "description": "Sp\u00fa\u0161\u0165a sa, ke\u010f sa za\u010dne ochladzova\u0165 podnebie.",
303
+ "description_configured": "Sp\u00fa\u0161\u0165a sa, ke\u010f sa za\u010dne ochladzova\u0165 podnebie.",
304
+ "fields": {
305
+ "behavior": {
306
+ "description": "Spr\u00e1vanie cie\u013eov\u00fdch klimatick\u00fdch oblast\u00ed, ktor\u00e9 sa maj\u00fa spusti\u0165.",
307
+ "name": "Spr\u00e1vanie"
308
+ }
309
+ },
310
+ "name": "Ke\u010f sa za\u010dala kl\u00edma ochladzova\u0165"
311
+ },
312
+ "started_drying": {
313
+ "description": "Sp\u00fa\u0161\u0165a sa, ke\u010f sa podnebie za\u010dne su\u0161i\u0165.",
314
+ "description_configured": "Sp\u00fa\u0161\u0165a sa, ke\u010f sa podnebie za\u010dne su\u0161i\u0165.",
315
+ "fields": {
316
+ "behavior": {
317
+ "description": "Spr\u00e1vanie cie\u013eov\u00fdch klimatick\u00fdch oblast\u00ed, ktor\u00e9 sa maj\u00fa spusti\u0165.",
318
+ "name": "Spr\u00e1vanie"
319
+ }
320
+ },
321
+ "name": "Ke\u010f sa za\u010dalo vysu\u0161ova\u0165 podnebie"
322
+ },
301
323
  "started_heating": {
302
324
  "description": "Sp\u00fa\u0161\u0165a sa, ke\u010f sa kl\u00edma za\u010dne otep\u013eova\u0165.",
303
325
  "description_configured": "Sp\u00fa\u0161\u0165a sa, ke\u010f sa kl\u00edma za\u010dne otep\u013eova\u0165.",
@@ -298,6 +298,28 @@
298
298
  },
299
299
  "title": "\u6eab\u63a7",
300
300
  "triggers": {
301
+ "started_cooling": {
302
+ "description": "\u7576\u6eab\u63a7\u5668\u958b\u59cb\u5236\u51b7\u6642\u89f8\u767c\u3002",
303
+ "description_configured": "\u7576\u6eab\u63a7\u5668\u958b\u59cb\u5236\u51b7\u6642\u89f8\u767c\u3002",
304
+ "fields": {
305
+ "behavior": {
306
+ "description": "\u8981\u89f8\u767c\u7684\u76ee\u6a19\u6eab\u63a7\u5668\u884c\u70ba\u3002",
307
+ "name": "\u884c\u70ba"
308
+ }
309
+ },
310
+ "name": "\u7576\u6eab\u63a7\u5668\u958b\u59cb\u5236\u51b7\u6642"
311
+ },
312
+ "started_drying": {
313
+ "description": "\u7576\u6eab\u63a7\u5668\u958b\u59cb\u9664\u6fd5\u6642\u89f8\u767c\u3002",
314
+ "description_configured": "\u7576\u6eab\u63a7\u5668\u958b\u59cb\u9664\u6fd5\u6642\u89f8\u767c\u3002",
315
+ "fields": {
316
+ "behavior": {
317
+ "description": "\u8981\u89f8\u767c\u7684\u76ee\u6a19\u6eab\u63a7\u5668\u884c\u70ba\u3002",
318
+ "name": "\u884c\u70ba"
319
+ }
320
+ },
321
+ "name": "\u7576\u6eab\u63a7\u5668\u958b\u59cb\u9664\u6fd5\u6642"
322
+ },
301
323
  "started_heating": {
302
324
  "description": "\u7576\u6eab\u63a7\u5668\u958b\u59cb\u5236\u71b1\u6642\u89f8\u767c\u3002",
303
325
  "description_configured": "\u7576\u6eab\u63a7\u5668\u958b\u59cb\u5236\u71b1\u6642\u89f8\u767c\u3002",
@@ -0,0 +1,7 @@
1
+ {
2
+ "config_subentries": {
3
+ "sensor_mapping": {
4
+ "entry_type": "\u0443\u0441\u043b\u0443\u0433\u0430"
5
+ }
6
+ }
7
+ }
@@ -23,5 +23,5 @@
23
23
  "winter_mode": {}
24
24
  },
25
25
  "quality_scale": "internal",
26
- "requirements": ["home-assistant-frontend==20251126.0"]
26
+ "requirements": ["home-assistant-frontend==20251127.0"]
27
27
  }
@@ -72,6 +72,21 @@
72
72
  "1a_very_good_air_quality": "1A - V\u00e4ga hea \u00f5hukvaliteet",
73
73
  "1b_good_air_quality": "1B - Hea \u00f5hukvaliteet",
74
74
  "2_cyan": "2 - Lilla",
75
+ "acutely_unhealthy": "\u00c4\u00e4rmiselt ebatervislik \u00f5hukvaliteet",
76
+ "alarm_level": "H\u00e4iretase",
77
+ "alert": "Hoiatuse k\u00fcnnis",
78
+ "alert_level": "Hoiatuse tase",
79
+ "average_air_pollution": "Keskmine \u00f5husaaste",
80
+ "average_air_quality": "Keskmine \u00f5hukvaliteet",
81
+ "bad_air_quality": "Halb \u00f5hukvaliteet",
82
+ "below_10": "V\u00e4hem kui 10% soovituslikust v\u00e4\u00e4rtusest",
83
+ "below_average_air_pollution": "Keskmisest madalam \u00f5husaaste",
84
+ "caution": "Hoiatus",
85
+ "clean": "Puhas",
86
+ "considerable_air_pollution": "M\u00e4rkimisv\u00e4\u00e4rne \u00f5husaaste",
87
+ "degraded_air_quality": "Halvenenud \u00f5hukvaliteet",
88
+ "desirable_air_quality": "Soovitav \u00f5hukvaliteet",
89
+ "emergency": "H\u00e4daolukord",
75
90
  "emergency_level": "H\u00e4daolukorra tase",
76
91
  "evident_air_pollution": "Ilmne \u00f5husaaste",
77
92
  "excellent": "Suurep\u00e4rane",
@@ -102,6 +117,21 @@
102
117
  "moderate_air_pollution": "M\u00f5\u00f5dukas \u00f5husaaste",
103
118
  "moderate_air_quality": "M\u00f5\u00f5dukas \u00f5hukvaliteet",
104
119
  "moderate_health_risk": "M\u00f5\u00f5dukas terviserisk",
120
+ "moderately_polluted": "M\u00f5\u00f5dukalt saastunud",
121
+ "n1_good_air_quality": "N1 - Hea \u00f5hukvaliteet",
122
+ "n2_moderate_air_quality": "N2 - M\u00f5\u00f5dukas \u00f5hukvaliteet",
123
+ "n3_bad_air_quality": "N3 - Halb \u00f5hukvaliteet",
124
+ "n4_very_bad_air_quality": "N4 - V\u00e4ga halb \u00f5hukvaliteet",
125
+ "n5_poor_air_quality": "N5 - Kehv \u00f5hukvaliteet",
126
+ "normal": "Tavaline",
127
+ "polluted": "Saastunud",
128
+ "poor_air_quality": "Kehv \u00f5hukvaliteet",
129
+ "precautionary_level": "Ettevaatusabin\u00f5u tase",
130
+ "reasonably_good_air_quality": "M\u00f5istlikult hea \u00f5hukvaliteet",
131
+ "regular_air_quality": "Tavaline \u00f5hukvaliteet",
132
+ "satisfactory_air_quality": "Rahuldav \u00f5hukvaliteet",
133
+ "serious_air_pollution": "T\u00f5sine \u00f5husaaste",
134
+ "seriously_polluted": "T\u00f5siselt saastunud",
105
135
  "very_poor_air_quality": "V\u00e4ga halb \u00f5hukvaliteet",
106
136
  "very_unfavorable_air_quality": "V\u00e4ga ebasoodne \u00f5hukvaliteet",
107
137
  "very_unhealthy": "V\u00e4ga ebatervislik \u00f5hukvaliteet",
@@ -138,7 +168,8 @@
138
168
  "excellent_air_quality": "Suurep\u00e4rane \u00f5hukvaliteet",
139
169
  "good_air_quality": "Hea \u00f5hukvaliteet",
140
170
  "low_air_quality": "Madal \u00f5hukvaliteet",
141
- "moderate_air_quality": "M\u00f5\u00f5dukas \u00f5hukvaliteet"
171
+ "moderate_air_quality": "M\u00f5\u00f5dukas \u00f5hukvaliteet",
172
+ "poor_air_quality": "Kehv \u00f5hukvaliteet"
142
173
  }
143
174
  },
144
175
  "uaqi_dominant_pollutant": {
@@ -674,6 +674,7 @@
674
674
  "name": "Odstr\u00e1nenie registr\u00e1cie udalosti"
675
675
  },
676
676
  "type": {
677
+ "description": "Ak je nastaven\u00e9, u\u017eito\u010dn\u00e9 za\u0165a\u017eenie bude dek\u00f3dovan\u00e9 ako dan\u00fd DPT v k\u013e\u00fa\u010di `hodnota` d\u00e1t udalosti. Platn\u00e9 hodnoty s\u00fa typy sn\u00edma\u010dov KNX (pozri {sensor_value_types_url}).",
677
678
  "name": "Typ hodnoty"
678
679
  }
679
680
  },
@@ -703,6 +704,7 @@
703
704
  "name": "Odstr\u00e1nenie expoz\u00edcie"
704
705
  },
705
706
  "type": {
707
+ "description": "Telegramy bud\u00fa k\u00f3dovan\u00e9 ako dan\u00e9 DPT. \"bin\u00e1rne\" a v\u0161etky typy sn\u00edma\u010dov KNX s\u00fa platn\u00e9 hodnoty (pozri {sensor_value_types_url}).",
706
708
  "name": "Typ hodnoty"
707
709
  }
708
710
  },
@@ -738,6 +740,7 @@
738
740
  "name": "Odosla\u0165 ako odpove\u010f"
739
741
  },
740
742
  "type": {
743
+ "description": "Ak je nastaven\u00e9, u\u017eito\u010dn\u00e9 za\u0165a\u017eenie sa nebude posiela\u0165 ako surov\u00e9 bajty, ale zak\u00f3dovan\u00e9 ako dan\u00fd DPT. Platn\u00e9 hodnoty s\u00fa typy sn\u00edma\u010dov KNX (pozri {sensor_value_types_url}).",
741
744
  "name": "Typ hodnoty"
742
745
  }
743
746
  },
@@ -254,16 +254,16 @@
254
254
  },
255
255
  "data_description": {
256
256
  "alarm_control_panel_code_mode": "Nastavuje, jak ovl\u00e1dac\u00ed panel alarmu ov\u011b\u0159uje k\u00f3d. M\u00edstn\u00ed k\u00f3d je nastaven s entitou a je ov\u011b\u0159en aplikac\u00ed Home Assistant. Vzd\u00e1len\u00fd k\u00f3d je odesl\u00e1n do za\u0159\u00edzen\u00ed a ov\u011b\u0159en na d\u00e1lku. [V\u00edce informac\u00ed]({url}#code)",
257
- "climate_feature_action": "Klima podporuje informov\u00e1n\u00ed o aktu\u00e1ln\u00edm d\u011bn\u00ed.",
258
- "climate_feature_current_humidity": "Klima podporuje hl\u00e1\u0161en\u00ed aktu\u00e1ln\u00ed vlhkosti.",
259
- "climate_feature_current_temperature": "Klima podporuje hl\u00e1\u0161en\u00ed aktu\u00e1ln\u00ed teploty.",
260
- "climate_feature_fan_modes": "Klima podporuje re\u017eimy ventil\u00e1toru.",
261
- "climate_feature_power": "Klima podporuje p\u0159\u00edkazy \"on\" a \"off\".",
262
- "climate_feature_preset_modes": "Klima podporuje re\u017eimy p\u0159edvoleb.",
263
- "climate_feature_swing_horizontal_modes": "Klima podporuje re\u017eimy horizont\u00e1ln\u00edho k\u00fdv\u00e1n\u00ed.",
264
- "climate_feature_swing_modes": "Klima podporuje re\u017eimy kmit\u00e1n\u00ed.",
265
- "climate_feature_target_humidity": "Klima podporuje nastaven\u00ed c\u00edlov\u00e9 vlhkosti.",
266
- "climate_feature_target_temperature": "Klima podporuje nastaven\u00ed c\u00edlov\u00e9 teploty.",
257
+ "climate_feature_action": "Klimatizace podporuje informov\u00e1n\u00ed o aktu\u00e1ln\u00edm d\u011bn\u00ed.",
258
+ "climate_feature_current_humidity": "Klimatizace podporuje hl\u00e1\u0161en\u00ed aktu\u00e1ln\u00ed vlhkosti.",
259
+ "climate_feature_current_temperature": "Klimatizace podporuje hl\u00e1\u0161en\u00ed aktu\u00e1ln\u00ed teploty.",
260
+ "climate_feature_fan_modes": "Klimatizace podporuje re\u017eimy ventil\u00e1toru.",
261
+ "climate_feature_power": "Klimatizace podporuje p\u0159\u00edkazy \"on\" a \"off\".",
262
+ "climate_feature_preset_modes": "Klimatizace podporuje re\u017eimy p\u0159edvoleb.",
263
+ "climate_feature_swing_horizontal_modes": "Klimatizacelima podporuje re\u017eimy horizont\u00e1ln\u00edho k\u00fdv\u00e1n\u00ed.",
264
+ "climate_feature_swing_modes": "Klimatizace podporuje re\u017eimy kmit\u00e1n\u00ed.",
265
+ "climate_feature_target_humidity": "Klimatizace podporuje nastaven\u00ed c\u00edlov\u00e9 vlhkosti.",
266
+ "climate_feature_target_temperature": "Klimatizace podporuje nastaven\u00ed c\u00edlov\u00e9 teploty.",
267
267
  "device_class": "T\u0159\u00edda za\u0159\u00edzen\u00ed entity {platform}. [Dal\u0161\u00ed informace.]({url}#device_class)",
268
268
  "entity_category": "Povol\u00ed ozna\u010den\u00ed entity jako nastaven\u00ed za\u0159\u00edzen\u00ed nebo diagnostika. Entita s kategori\u00ed nebude vystavena cloudov\u00fdm komponent\u00e1m, komponent\u00e1m Alexy ani Google Assistantovi, ani nebude zahrnuta do nep\u0159\u00edm\u00fdch vol\u00e1n\u00ed akc\u00ed pro za\u0159\u00edzen\u00ed nebo oblasti. Entit\u00e1m senzor\u016f nelze p\u0159i\u0159adit t\u0159\u00eddu nastaven\u00ed za\u0159\u00edzen\u00ed. [V\u00edce informac\u00ed]({registry_properties_url})",
269
269
  "fan_feature_direction": "Ventil\u00e1tor podporuje sm\u011br.",
@@ -485,7 +485,7 @@
485
485
  },
486
486
  "data_description": {
487
487
  "action_template": "[\u0160ablona]({value_templating_url}) pro vykreslen\u00ed hodnoty p\u0159ijat\u00e9 v t\u00e9matu akce.",
488
- "action_topic": "T\u00e9ma MQTT pro odb\u011br zm\u011bn aktu\u00e1ln\u00ed akce. Pokud je toto nastaveno, graf klimatu pou\u017eije p\u0159ijatou hodnotu jako zdroj dat. Hodnota \"\u017d\u00e1dn\u00e9\" resetuje aktu\u00e1ln\u00ed stav akce. Pr\u00e1zdn\u00e1 hodnota je ignorov\u00e1na. Platn\u00e9 hodnoty akc\u00ed jsou: \"off\", \"heating\", \"cooling\", \"drying\", \"idle\" a \"fan\". [V\u00edce informac\u00ed]({url}#action_topic)"
488
+ "action_topic": "T\u00e9ma MQTT pro odb\u011br zm\u011bn aktu\u00e1ln\u00ed akce. Pokud je toto nastaveno, graf klimatizace pou\u017eije p\u0159ijatou hodnotu jako zdroj dat. Hodnota \"\u017d\u00e1dn\u00e9\" resetuje aktu\u00e1ln\u00ed stav akce. Pr\u00e1zdn\u00e1 hodnota je ignorov\u00e1na. Platn\u00e9 hodnoty akc\u00ed jsou: \"off\", \"heating\", \"cooling\", \"drying\", \"idle\" a \"fan\". [V\u00edce informac\u00ed]({url}#action_topic)"
489
489
  },
490
490
  "name": "Aktu\u00e1ln\u00ed nastaven\u00ed akc\u00ed"
491
491
  },
@@ -501,7 +501,7 @@
501
501
  "fan_mode_command_template": "[\u0160ablona]({command_templating_url} pro sestaven\u00ed dat, kter\u00e1 maj\u00ed b\u00fdt publikov\u00e1na v t\u00e9matu p\u0159\u00edkazu re\u017eimu ventil\u00e1toru.",
502
502
  "fan_mode_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu re\u017eimu ventil\u00e1toru klimatizace. [V\u00edce informac\u00ed]({url}#fan_mode_command_topic)",
503
503
  "fan_mode_state_template": "Definuje [\u0161ablonu]({value_templating_url}) pro extrakci hodnoty re\u017eimu ventil\u00e1toru klimatizace.",
504
- "fan_mode_state_topic": "T\u00e9ma MQTT se p\u0159ihl\u00e1silo k odb\u011bru informac\u00ed o re\u017eimu ventil\u00e1toru klimatu. [V\u00edce informac\u00ed]({url}#fan_mode_state_topic)",
504
+ "fan_mode_state_topic": "T\u00e9ma MQTT se p\u0159ihl\u00e1silo k odb\u011bru informac\u00ed o re\u017eimu ventil\u00e1toru klimatizace. [V\u00edce informac\u00ed]({url}#fan_mode_state_topic)",
505
505
  "fan_modes": "Seznam re\u017eim\u016f ventil\u00e1toru, ve kter\u00fdch je tato klimatizace schopna b\u011b\u017eet. B\u011b\u017en\u00e9 re\u017eimy ventil\u00e1toru, kter\u00e9 nab\u00edzej\u00ed p\u0159evody, jsou \"off\", \"on\", \"auto\", \"low\", \"medium\", \"high\", \"middle\", \"focus\" a \"diffuse\"."
506
506
  },
507
507
  "name": "Nastaven\u00ed re\u017eimu ventil\u00e1toru"
@@ -517,7 +517,7 @@
517
517
  "payload_off": "Datov\u00e1 \u010d\u00e1st, kter\u00e1 p\u0159edstavuje stav \"off\".",
518
518
  "payload_on": "Datov\u00e1 \u010d\u00e1st, kter\u00e1 p\u0159edstavuje stav \"on\".",
519
519
  "power_command_template": "[\u0160ablona]({command_templating_url}) pro sestaven\u00ed datov\u00e9 \u010d\u00e1sti, kter\u00e1 m\u00e1 b\u00fdt publikov\u00e1na v t\u00e9matu p\u0159\u00edkazu power. Parametr \"value\" je datov\u00e1 \u010d\u00e1st nastaven\u00e1 pro datovou \u010d\u00e1st \"on\" nebo datovou \u010d\u00e1st \"off\".",
520
- "power_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f ke zm\u011bn\u011b stavu nap\u00e1jen\u00ed klimatu. Odes\u00edl\u00e1 datovou \u010d\u00e1st nastavenou s datovou \u010d\u00e1st\u00ed \"on\" nebo \"off\". [V\u00edce informac\u00ed]({url}#power_command_topic)"
520
+ "power_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f ke zm\u011bn\u011b stavu nap\u00e1jen\u00ed klimatizace. Odes\u00edl\u00e1 datovou \u010d\u00e1st nastavenou s datovou \u010d\u00e1st\u00ed \"on\" nebo \"off\". [V\u00edce informac\u00ed]({url}#power_command_topic)"
521
521
  },
522
522
  "name": "Nastaven\u00ed nap\u00e1jen\u00ed"
523
523
  },
@@ -531,7 +531,7 @@
531
531
  },
532
532
  "data_description": {
533
533
  "preset_mode_command_template": "[\u0160ablona]({command_templating_url}) pro sestaven\u00ed dat, kter\u00e1 maj\u00ed b\u00fdt publikov\u00e1na v t\u00e9matu p\u0159\u00edkazu p\u0159edvolby.",
534
- "preset_mode_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu p\u0159ednastaven\u00e9ho re\u017eimu klimatu. [V\u00edce informac\u00ed]({url}#preset_mode_command_topic)",
534
+ "preset_mode_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu p\u0159ednastaven\u00e9ho re\u017eimu klimatizace. [V\u00edce informac\u00ed]({url}#preset_mode_command_topic)",
535
535
  "preset_mode_state_topic": "T\u00e9ma MQTT se p\u0159ihl\u00e1silo k odb\u011bru p\u0159edvolby ventil\u00e1toru. [V\u00edce informac\u00ed]({url}#preset_mode_state_topic)",
536
536
  "preset_mode_value_template": "Definuje [\u0161ablonu]({value_templating_url}) pro extrakci hodnoty p\u0159edvolby ventil\u00e1toru.",
537
537
  "preset_modes": "Seznam re\u017eim\u016f p\u0159edvoleb, ve kter\u00fdch je tato klimatizace schopna b\u011b\u017eet. B\u011b\u017en\u00e9 re\u017eimy p\u0159edvoleb, kter\u00e9 nab\u00edzej\u00ed p\u0159evody, jsou \"none\", \"away\", \"eco\", \"boost\", \"comfort\", \"home\", \"sleep\" a \"activity\"."
@@ -548,10 +548,10 @@
548
548
  },
549
549
  "data_description": {
550
550
  "swing_horizontal_mode_command_template": "[\u0160ablona]({command_templating_url}) pro sestaven\u00ed dat, kter\u00e1 maj\u00ed b\u00fdt publikov\u00e1na v t\u00e9matu p\u0159\u00edkazu horizont\u00e1ln\u00edho re\u017eimu k\u00fdv\u00e1n\u00ed.",
551
- "swing_horizontal_mode_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu re\u017eimu horizont\u00e1ln\u00edho k\u00fdv\u00e1n\u00ed klimatu. [V\u00edce informac\u00ed]({url}#swing_horizontal_mode_command_topic)",
552
- "swing_horizontal_mode_state_template": "Definuje [\u0161ablonu]({value_templating_url}) pro extrakci hodnoty horizont\u00e1ln\u00edho re\u017eimu k\u00fdv\u00e1n\u00ed klimatu.",
553
- "swing_horizontal_mode_state_topic": "T\u00e9ma MQTT se p\u0159ihl\u00e1silo k odb\u011bru informac\u00ed o re\u017eimu horizont\u00e1ln\u00edho k\u00fdv\u00e1n\u00ed klimatu. [V\u00edce informac\u00ed]({url}#swing_horizontal_mode_state_topic)",
554
- "swing_horizontal_modes": "Seznam re\u017eim\u016f horizont\u00e1ln\u00edho k\u00fdv\u00e1n\u00ed, ve kter\u00fdch je toto klima schopno fungovat. B\u011b\u017en\u00e9 re\u017eimy horizont\u00e1ln\u00edho k\u00fdv\u00e1n\u00ed, kter\u00e9 nab\u00edzej\u00ed p\u0159evody, jsou \"off\" a \"on\"."
551
+ "swing_horizontal_mode_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu re\u017eimu horizont\u00e1ln\u00edho k\u00fdv\u00e1n\u00ed klimatizace. [V\u00edce informac\u00ed]({url}#swing_horizontal_mode_command_topic)",
552
+ "swing_horizontal_mode_state_template": "Definuje [\u0161ablonu]({value_templating_url}) pro extrakci hodnoty horizont\u00e1ln\u00edho re\u017eimu k\u00fdv\u00e1n\u00ed klimatizace.",
553
+ "swing_horizontal_mode_state_topic": "T\u00e9ma MQTT se p\u0159ihl\u00e1silo k odb\u011bru informac\u00ed o re\u017eimu horizont\u00e1ln\u00edho k\u00fdv\u00e1n\u00ed klimatizace. [V\u00edce informac\u00ed]({url}#swing_horizontal_mode_state_topic)",
554
+ "swing_horizontal_modes": "Seznam re\u017eim\u016f horizont\u00e1ln\u00edho k\u00fdv\u00e1n\u00ed, ve kter\u00fdch je tato klimatizace schopna fungovat. B\u011b\u017en\u00e9 re\u017eimy horizont\u00e1ln\u00edho k\u00fdv\u00e1n\u00ed, kter\u00e9 nab\u00edzej\u00ed p\u0159evody, jsou \"off\" a \"on\"."
555
555
  },
556
556
  "name": "Nastaven\u00ed re\u017eimu horizont\u00e1ln\u00edho k\u00fdv\u00e1n\u00ed"
557
557
  },
@@ -568,7 +568,7 @@
568
568
  "swing_mode_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu re\u017eimu k\u00fdv\u00e1n\u00ed klimy. [V\u00edce informac\u00ed]({url}#swing_mode_command_topic)",
569
569
  "swing_mode_state_template": "Definuje [\u0161ablonu]({value_templating_url}) pro extrakci hodnoty re\u017eimu k\u00fdv\u00e1n\u00ed klimy.",
570
570
  "swing_mode_state_topic": "T\u00e9ma MQTT se p\u0159ihl\u00e1silo k odb\u011bru informac\u00ed o re\u017eimu k\u00fdv\u00e1n\u00ed klimy. [V\u00edce informac\u00ed]({url}#swing_mode_state_topic)",
571
- "swing_modes": "Seznam re\u017eim\u016f k\u00fdv\u00e1n\u00ed, ve kter\u00fdch je tato klima schopna fungovat. B\u011b\u017en\u00e9 re\u017eimy k\u00fdv\u00e1n\u00ed, kter\u00e9 nab\u00edzej\u00ed p\u0159evody, jsou \"off\", \"on\", \"vertical\", \"horizontal\" a \"both\"."
571
+ "swing_modes": "Seznam re\u017eim\u016f k\u00fdv\u00e1n\u00ed, ve kter\u00fdch je tato klimatizace schopna fungovat. B\u011b\u017en\u00e9 re\u017eimy k\u00fdv\u00e1n\u00ed, kter\u00e9 nab\u00edzej\u00ed p\u0159evody, jsou \"off\", \"on\", \"vertical\", \"horizontal\" a \"both\"."
572
572
  },
573
573
  "name": "Nastaven\u00ed re\u017eimu k\u00fdv\u00e1n\u00ed"
574
574
  },
@@ -934,7 +934,7 @@
934
934
  "max_humidity": "Maxim\u00e1ln\u00ed c\u00edlov\u00e1 vlhkost, kterou lze nastavit.",
935
935
  "min_humidity": "Minim\u00e1ln\u00ed c\u00edlov\u00e1 vlhkost, kterou lze nastavit.",
936
936
  "target_humidity_command_template": "[\u0160ablona]({command_templating_url}) pro sestaven\u00ed dat, kter\u00e1 maj\u00ed b\u00fdt publikov\u00e1na v c\u00edlov\u00e9m t\u00e9matu p\u0159\u00edkazu pro vlhkost.",
937
- "target_humidity_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu c\u00edlov\u00e9 vlhkosti klimatu. [V\u00edce informac\u00ed]({url}#humidity_command_topic)",
937
+ "target_humidity_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu c\u00edlov\u00e9 vlhkosti klimatizace. [V\u00edce informac\u00ed]({url}#humidity_command_topic)",
938
938
  "target_humidity_state_template": "[\u0160ablona]({value_templating_url}) pro vykreslen\u00ed hodnoty p\u0159ijat\u00e9 na z\u00e1klad\u011b c\u00edlov\u00e9ho stavu vlhkosti.",
939
939
  "target_humidity_state_topic": "T\u00e9ma MQTT pro odb\u011br zm\u011bn c\u00edlov\u00e9 vlhkosti. [V\u00edce informac\u00ed]({url}#humidity_state_topic)"
940
940
  },
@@ -969,11 +969,11 @@
969
969
  "temperature_command_template": "[\u0160ablona]({command_templating_url}) pro sestaven\u00ed dat, kter\u00e1 maj\u00ed b\u00fdt publikov\u00e1na v t\u00e9matu p\u0159\u00edkazu teploty.",
970
970
  "temperature_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f ke zm\u011bn\u011b c\u00edlov\u00e9 teploty. [V\u00edce informac\u00ed]({url}#temperature_command_topic)",
971
971
  "temperature_high_command_template": "[\u0160ablona]({command_templating_url}) pro sestaven\u00ed dat, kter\u00e1 budou publikov\u00e1na v t\u00e9matu p\u0159\u00edkazu pro horn\u00ed teplotu.",
972
- "temperature_high_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu horn\u00ed c\u00edlov\u00e9 teploty klimatu. [V\u00edce informac\u00ed]({url}#temperature_high_command_topic)",
972
+ "temperature_high_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu horn\u00ed c\u00edlov\u00e9 teploty klimatizace. [V\u00edce informac\u00ed]({url}#temperature_high_command_topic)",
973
973
  "temperature_high_state_template": "[\u0160ablona]({value_templating_url}) pro vykreslen\u00ed hodnoty p\u0159ijat\u00e9 v t\u00e9matu horn\u00edho teplotn\u00edho stavu.",
974
974
  "temperature_high_state_topic": "T\u00e9ma MQTT pro odb\u011br zm\u011bn horn\u00ed c\u00edlov\u00e9 teploty. [V\u00edce informac\u00ed]({url}#temperature_high_state_topic)",
975
975
  "temperature_low_command_template": "[\u0160ablona]({command_templating_url}) pro sestaven\u00ed dat, kter\u00e1 maj\u00ed b\u00fdt publikov\u00e1na v t\u00e9matu p\u0159\u00edkazu pro spodn\u00ed teplotu.",
976
- "temperature_low_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu c\u00edlov\u00e9 spodn\u00ed teploty klimatu. [V\u00edce informac\u00ed]({url}#temperature_low_command_topic)",
976
+ "temperature_low_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu c\u00edlov\u00e9 spodn\u00ed teploty klimatizace. [V\u00edce informac\u00ed]({url}#temperature_low_command_topic)",
977
977
  "temperature_low_state_template": "[\u0160ablona]({value_templating_url}) pro vykreslen\u00ed hodnoty p\u0159ijat\u00e9 v t\u00e9matu stavu spodn\u00ed teploty.",
978
978
  "temperature_low_state_topic": "T\u00e9ma MQTT pro odb\u011br zm\u011bn spodn\u00ed c\u00edlov\u00e9 teploty. [V\u00edce informac\u00ed]({url}#temperature_low_state_topic)",
979
979
  "temperature_state_template": "[\u0160ablona]({value_templating_url}) pro vykreslen\u00ed hodnoty p\u0159ijat\u00e9 v t\u00e9matu spodn\u00ed teploty.",
@@ -1,13 +1,18 @@
1
1
  {
2
2
  "config": {
3
3
  "abort": {
4
- "already_configured": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u043e"
4
+ "already_configured": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u043e",
5
+ "reauth_successful": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u0442\u0430 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u0430",
6
+ "unknown": "\u041d\u0435\u043e\u0447\u0430\u043a\u0432\u0430\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430"
5
7
  },
6
8
  "error": {
7
9
  "cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",
8
10
  "unknown": "\u041d\u0435\u043e\u0447\u0430\u043a\u0432\u0430\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430"
9
11
  },
10
12
  "step": {
13
+ "hassio_confirm": {
14
+ "title": "\u041e\u0442\u043a\u0440\u0438\u0442\u0430 \u0434\u043e\u0431\u0430\u0432\u043a\u0430 Music Assistant"
15
+ },
11
16
  "user": {
12
17
  "data": {
13
18
  "url": "URL"
@@ -161,6 +161,17 @@
161
161
  "alcalyne": "pH+"
162
162
  }
163
163
  }
164
+ },
165
+ "switch": {
166
+ "frequency_input": {
167
+ "name": "Sagedussisend"
168
+ },
169
+ "pause_dosing": {
170
+ "name": "Peata doseerimine"
171
+ },
172
+ "pump_monitoring": {
173
+ "name": "Pumba j\u00e4lgimine"
174
+ }
164
175
  }
165
176
  }
166
177
  }
@@ -32,7 +32,6 @@ async def async_setup_entry(
32
32
  (
33
33
  RoborockMap(
34
34
  config_entry,
35
- f"{coord.duid_slug}_map_{map_info.name}",
36
35
  coord,
37
36
  coord.properties_api.home,
38
37
  map_info.map_flag,
@@ -55,13 +54,17 @@ class RoborockMap(RoborockCoordinatedEntityV1, ImageEntity):
55
54
  def __init__(
56
55
  self,
57
56
  config_entry: ConfigEntry,
58
- unique_id: str,
59
57
  coordinator: RoborockDataUpdateCoordinator,
60
58
  home_trait: HomeTrait,
61
59
  map_flag: int,
62
60
  map_name: str,
63
61
  ) -> None:
64
62
  """Initialize a Roborock map."""
63
+ map_name = map_name or f"Map {map_flag}"
64
+ # Note: Map names are not a valid unique id since they can be changed
65
+ # in the roborock app. This should be migrated to use map flag for
66
+ # the unique id.
67
+ unique_id = f"{coordinator.duid_slug}_map_{map_name}"
65
68
  RoborockCoordinatedEntityV1.__init__(self, unique_id, coordinator)
66
69
  ImageEntity.__init__(self, coordinator.hass)
67
70
  self.config_entry = config_entry
@@ -19,7 +19,7 @@
19
19
  "loggers": ["roborock"],
20
20
  "quality_scale": "silver",
21
21
  "requirements": [
22
- "python-roborock==3.7.1",
22
+ "python-roborock==3.8.1",
23
23
  "vacuum-map-parser-roborock==0.1.4"
24
24
  ]
25
25
  }
@@ -168,6 +168,7 @@ INPUTS_EVENTS_SUBTYPES: Final = {
168
168
  "button2": 2,
169
169
  "button3": 3,
170
170
  "button4": 4,
171
+ "button5": 5,
171
172
  }
172
173
 
173
174
  SHBTN_MODELS: Final = [MODEL_BUTTON1, MODEL_BUTTON1_V2]