homeassistant 2025.10.0b5__py3-none-any.whl → 2025.10.0b6__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.

Potentially problematic release.


This version of homeassistant might be problematic. Click here for more details.

Files changed (260) hide show
  1. homeassistant/brands/eltako.json +5 -0
  2. homeassistant/brands/konnected.json +5 -0
  3. homeassistant/brands/level.json +5 -0
  4. homeassistant/components/accuweather/translations/id.json +9 -0
  5. homeassistant/components/airos/translations/id.json +36 -0
  6. homeassistant/components/aladdin_connect/config_flow.py +11 -0
  7. homeassistant/components/aladdin_connect/strings.json +2 -1
  8. homeassistant/components/aladdin_connect/translations/cs.json +1 -0
  9. homeassistant/components/aladdin_connect/translations/de.json +1 -0
  10. homeassistant/components/aladdin_connect/translations/en-GB.json +1 -0
  11. homeassistant/components/aladdin_connect/translations/en.json +1 -0
  12. homeassistant/components/aladdin_connect/translations/es.json +1 -0
  13. homeassistant/components/aladdin_connect/translations/et.json +1 -0
  14. homeassistant/components/aladdin_connect/translations/id.json +28 -1
  15. homeassistant/components/aladdin_connect/translations/lt.json +1 -0
  16. homeassistant/components/aladdin_connect/translations/pt.json +1 -0
  17. homeassistant/components/alexa_devices/translations/id.json +12 -0
  18. homeassistant/components/analytics/analytics.py +23 -12
  19. homeassistant/components/androidtv_remote/translations/id.json +7 -1
  20. homeassistant/components/anthropic/translations/id.json +2 -1
  21. homeassistant/components/aosmith/translations/id.json +9 -0
  22. homeassistant/components/apcupsd/translations/id.json +6 -0
  23. homeassistant/components/august/translations/id.json +25 -1
  24. homeassistant/components/bayesian/binary_sensor.py +7 -0
  25. homeassistant/components/bayesian/translations/id.json +62 -0
  26. homeassistant/components/broadlink/translations/zh-Hant.json +1 -1
  27. homeassistant/components/brother/translations/id.json +21 -0
  28. homeassistant/components/bsblan/translations/id.json +17 -2
  29. homeassistant/components/coinbase/translations/id.json +5 -0
  30. homeassistant/components/compit/translations/id.json +25 -0
  31. homeassistant/components/cync/translations/id.json +20 -0
  32. homeassistant/components/datadog/translations/id.json +28 -0
  33. homeassistant/components/droplet/translations/id.json +17 -0
  34. homeassistant/components/ecobee/strings.json +2 -2
  35. homeassistant/components/ecobee/translations/cs.json +2 -2
  36. homeassistant/components/ecobee/translations/de.json +3 -3
  37. homeassistant/components/ecobee/translations/el.json +1 -2
  38. homeassistant/components/ecobee/translations/en-GB.json +2 -2
  39. homeassistant/components/ecobee/translations/en.json +2 -2
  40. homeassistant/components/ecobee/translations/es.json +2 -2
  41. homeassistant/components/ecobee/translations/et.json +2 -2
  42. homeassistant/components/ecobee/translations/ga.json +1 -5
  43. homeassistant/components/ecobee/translations/hu.json +1 -5
  44. homeassistant/components/ecobee/translations/it.json +1 -5
  45. homeassistant/components/ecobee/translations/ja.json +1 -5
  46. homeassistant/components/ecobee/translations/lt.json +2 -2
  47. homeassistant/components/ecobee/translations/pt.json +2 -2
  48. homeassistant/components/ecobee/translations/ru.json +1 -5
  49. homeassistant/components/ecobee/translations/sk.json +1 -5
  50. homeassistant/components/ecobee/translations/sv.json +1 -5
  51. homeassistant/components/ecobee/translations/tr.json +1 -5
  52. homeassistant/components/ecobee/translations/zh-Hans.json +1 -5
  53. homeassistant/components/ecobee/translations/zh-Hant.json +1 -5
  54. homeassistant/components/ecowitt/manifest.json +1 -1
  55. homeassistant/components/eheimdigital/translations/id.json +7 -1
  56. homeassistant/components/ekeybionyx/translations/id.json +24 -0
  57. homeassistant/components/ekeybionyx/translations/lt.json +1 -0
  58. homeassistant/components/elevenlabs/translations/id.json +2 -1
  59. homeassistant/components/elkm1/translations/id.json +6 -0
  60. homeassistant/components/emoncms/translations/id.json +9 -0
  61. homeassistant/components/enphase_envoy/translations/id.json +1 -0
  62. homeassistant/components/esphome/analytics.py +11 -0
  63. homeassistant/components/fan/translations/id.json +3 -0
  64. homeassistant/components/flick_electric/translations/zh-Hant.json +2 -2
  65. homeassistant/components/frontend/manifest.json +1 -1
  66. homeassistant/components/google_generative_ai_conversation/translations/id.json +29 -1
  67. homeassistant/components/hassio/translations/id.json +29 -0
  68. homeassistant/components/holiday/translations/zh-Hant.json +2 -2
  69. homeassistant/components/homeassistant/translations/id.json +8 -0
  70. homeassistant/components/homeassistant_connect_zbt2/config_flow.py +6 -0
  71. homeassistant/components/homeassistant_connect_zbt2/translations/fr.json +14 -0
  72. homeassistant/components/homeassistant_connect_zbt2/translations/id.json +238 -0
  73. homeassistant/components/homeassistant_connect_zbt2/translations/lt.json +24 -8
  74. homeassistant/components/homeassistant_connect_zbt2/translations/ru.json +22 -4
  75. homeassistant/components/homeassistant_connect_zbt2/update.py +2 -1
  76. homeassistant/components/homeassistant_hardware/firmware_config_flow.py +13 -67
  77. homeassistant/components/homeassistant_hardware/manifest.json +1 -1
  78. homeassistant/components/homeassistant_hardware/translations/fr.json +10 -0
  79. homeassistant/components/homeassistant_hardware/translations/id.json +58 -0
  80. homeassistant/components/homeassistant_hardware/translations/lt.json +17 -0
  81. homeassistant/components/homeassistant_hardware/translations/ru.json +17 -0
  82. homeassistant/components/homeassistant_hardware/update.py +8 -3
  83. homeassistant/components/homeassistant_hardware/util.py +22 -5
  84. homeassistant/components/homeassistant_sky_connect/translations/fr.json +14 -0
  85. homeassistant/components/homeassistant_sky_connect/translations/id.json +98 -14
  86. homeassistant/components/homeassistant_sky_connect/translations/lt.json +24 -8
  87. homeassistant/components/homeassistant_sky_connect/translations/ru.json +24 -8
  88. homeassistant/components/homeassistant_sky_connect/update.py +2 -1
  89. homeassistant/components/homeassistant_yellow/config_flow.py +7 -1
  90. homeassistant/components/homeassistant_yellow/translations/fr.json +7 -0
  91. homeassistant/components/homeassistant_yellow/translations/id.json +50 -7
  92. homeassistant/components/homeassistant_yellow/translations/lt.json +12 -4
  93. homeassistant/components/homeassistant_yellow/translations/ru.json +6 -4
  94. homeassistant/components/homeassistant_yellow/update.py +2 -1
  95. homeassistant/components/homee/translations/id.json +14 -0
  96. homeassistant/components/husqvarna_automower/translations/id.json +18 -0
  97. homeassistant/components/husqvarna_automower_ble/translations/id.json +4 -0
  98. homeassistant/components/icloud/translations/id.json +3 -0
  99. homeassistant/components/imeon_inverter/translations/id.json +10 -0
  100. homeassistant/components/irm_kmi/translations/id.json +28 -0
  101. homeassistant/components/keenetic_ndms2/translations/id.json +2 -1
  102. homeassistant/components/knx/translations/id.json +3 -0
  103. homeassistant/components/konnected/translations/lt.json +6 -0
  104. homeassistant/components/konnected_esphome/__init__.py +1 -0
  105. homeassistant/components/konnected_esphome/manifest.json +6 -0
  106. homeassistant/components/letpot/number.py +2 -1
  107. homeassistant/components/letpot/strings.json +1 -2
  108. homeassistant/components/letpot/translations/bg.json +0 -5
  109. homeassistant/components/letpot/translations/cs.json +1 -2
  110. homeassistant/components/letpot/translations/de.json +1 -2
  111. homeassistant/components/letpot/translations/en-GB.json +1 -2
  112. homeassistant/components/letpot/translations/en.json +1 -2
  113. homeassistant/components/letpot/translations/es.json +1 -2
  114. homeassistant/components/letpot/translations/et.json +1 -2
  115. homeassistant/components/letpot/translations/fr.json +1 -2
  116. homeassistant/components/letpot/translations/ga.json +1 -2
  117. homeassistant/components/letpot/translations/id.json +10 -0
  118. homeassistant/components/letpot/translations/lt.json +1 -2
  119. homeassistant/components/letpot/translations/nl.json +0 -5
  120. homeassistant/components/letpot/translations/pt.json +1 -2
  121. homeassistant/components/letpot/translations/sk.json +1 -2
  122. homeassistant/components/letpot/translations/zh-Hans.json +1 -2
  123. homeassistant/components/letpot/translations/zh-Hant.json +1 -2
  124. homeassistant/components/lg_thinq/translations/id.json +5 -2
  125. homeassistant/components/libre_hardware_monitor/translations/id.json +19 -0
  126. homeassistant/components/lifx/translations/zh-Hant.json +1 -1
  127. homeassistant/components/light/translations/id.json +2 -1
  128. homeassistant/components/litterrobot/translations/id.json +15 -0
  129. homeassistant/components/mcp/translations/fr.json +20 -1
  130. homeassistant/components/mcp/translations/id.json +8 -1
  131. homeassistant/components/media_extractor/manifest.json +1 -1
  132. homeassistant/components/mqtt/translations/fr.json +2 -0
  133. homeassistant/components/mqtt/translations/id.json +6 -0
  134. homeassistant/components/mqtt/translations/lt.json +2 -0
  135. homeassistant/components/mqtt/translations/nl.json +9 -0
  136. homeassistant/components/mqtt/translations/ru.json +2 -0
  137. homeassistant/components/nasweb/translations/id.json +10 -0
  138. homeassistant/components/nederlandse_spoorwegen/translations/id.json +28 -0
  139. homeassistant/components/nightscout/translations/zh-Hant.json +1 -1
  140. homeassistant/components/niko_home_control/translations/id.json +7 -1
  141. homeassistant/components/ntfy/translations/id.json +11 -0
  142. homeassistant/components/ntfy/translations/zh-Hant.json +1 -1
  143. homeassistant/components/number/translations/fr.json +3 -0
  144. homeassistant/components/number/translations/lt.json +3 -0
  145. homeassistant/components/number/translations/ru.json +3 -0
  146. homeassistant/components/ollama/translations/id.json +18 -1
  147. homeassistant/components/open_router/translations/id.json +40 -0
  148. homeassistant/components/openai_conversation/translations/id.json +26 -1
  149. homeassistant/components/opower/translations/id.json +6 -0
  150. homeassistant/components/overkiz/translations/id.json +1 -0
  151. homeassistant/components/peco/translations/zh-Hant.json +1 -1
  152. homeassistant/components/pi_hole/__init__.py +9 -3
  153. homeassistant/components/playstation_network/translations/id.json +8 -0
  154. homeassistant/components/plex/translations/zh-Hant.json +1 -1
  155. homeassistant/components/pooldose/translations/id.json +49 -0
  156. homeassistant/components/portainer/__init__.py +5 -0
  157. homeassistant/components/portainer/translations/id.json +22 -0
  158. homeassistant/components/portainer/translations/ru.json +15 -0
  159. homeassistant/components/pyload/translations/id.json +6 -0
  160. homeassistant/components/qbittorrent/translations/cs.json +4 -4
  161. homeassistant/components/random/translations/fr.json +1 -0
  162. homeassistant/components/random/translations/lt.json +1 -0
  163. homeassistant/components/random/translations/ru.json +1 -0
  164. homeassistant/components/remote/translations/id.json +3 -0
  165. homeassistant/components/remote_calendar/translations/id.json +2 -1
  166. homeassistant/components/reolink/translations/es.json +4 -4
  167. homeassistant/components/roomba/translations/bg.json +1 -2
  168. homeassistant/components/roomba/translations/ca.json +2 -4
  169. homeassistant/components/roomba/translations/el.json +2 -4
  170. homeassistant/components/roomba/translations/en-GB.json +2 -2
  171. homeassistant/components/roomba/translations/en.json +2 -2
  172. homeassistant/components/roomba/translations/fi.json +2 -4
  173. homeassistant/components/roomba/translations/fr.json +2 -4
  174. homeassistant/components/roomba/translations/ga.json +2 -4
  175. homeassistant/components/roomba/translations/he.json +1 -5
  176. homeassistant/components/roomba/translations/hu.json +2 -4
  177. homeassistant/components/roomba/translations/id.json +2 -4
  178. homeassistant/components/roomba/translations/it.json +2 -4
  179. homeassistant/components/roomba/translations/ja.json +2 -4
  180. homeassistant/components/roomba/translations/ko.json +2 -4
  181. homeassistant/components/roomba/translations/lb.json +1 -5
  182. homeassistant/components/roomba/translations/lt.json +2 -2
  183. homeassistant/components/roomba/translations/nb.json +1 -5
  184. homeassistant/components/roomba/translations/nl.json +2 -4
  185. homeassistant/components/roomba/translations/pl.json +1 -5
  186. homeassistant/components/roomba/translations/pt-BR.json +1 -5
  187. homeassistant/components/roomba/translations/pt.json +2 -2
  188. homeassistant/components/roomba/translations/ro.json +1 -5
  189. homeassistant/components/roomba/translations/ru.json +2 -4
  190. homeassistant/components/roomba/translations/sk.json +2 -4
  191. homeassistant/components/roomba/translations/sv.json +2 -4
  192. homeassistant/components/roomba/translations/tr.json +2 -4
  193. homeassistant/components/roomba/translations/uk.json +1 -5
  194. homeassistant/components/roomba/translations/zh-Hans.json +2 -4
  195. homeassistant/components/roomba/translations/zh-Hant.json +2 -4
  196. homeassistant/components/route_b_smart_meter/translations/id.json +24 -0
  197. homeassistant/components/satel_integra/translations/id.json +85 -0
  198. homeassistant/components/scrape/translations/fr.json +2 -0
  199. homeassistant/components/scrape/translations/lt.json +2 -0
  200. homeassistant/components/scrape/translations/ru.json +2 -0
  201. homeassistant/components/sensor/translations/fr.json +3 -0
  202. homeassistant/components/sensor/translations/lt.json +3 -0
  203. homeassistant/components/sensor/translations/nl.json +3 -0
  204. homeassistant/components/sensor/translations/pl.json +3 -0
  205. homeassistant/components/sensor/translations/ru.json +3 -0
  206. homeassistant/components/sftp_storage/translations/id.json +14 -0
  207. homeassistant/components/shelly/translations/id.json +19 -0
  208. homeassistant/components/sleep_as_android/translations/id.json +31 -0
  209. homeassistant/components/sleepiq/translations/id.json +5 -0
  210. homeassistant/components/smartthings/translations/id.json +7 -0
  211. homeassistant/components/sonos/select.py +9 -13
  212. homeassistant/components/sonos/speaker.py +23 -0
  213. homeassistant/components/sonos/translations/id.json +10 -0
  214. homeassistant/components/sql/translations/fr.json +1 -0
  215. homeassistant/components/sql/translations/lt.json +1 -0
  216. homeassistant/components/sql/translations/ru.json +1 -0
  217. homeassistant/components/sql/translations/zh-Hant.json +4 -4
  218. homeassistant/components/switch/translations/id.json +3 -0
  219. homeassistant/components/switchbot/translations/id.json +12 -0
  220. homeassistant/components/switchbot_cloud/cover.py +3 -5
  221. homeassistant/components/switchbot_cloud/entity.py +1 -1
  222. homeassistant/components/switchbot_cloud/translations/id.json +27 -0
  223. homeassistant/components/telegram_bot/translations/id.json +5 -0
  224. homeassistant/components/template/translations/fr.json +1 -0
  225. homeassistant/components/template/translations/id.json +81 -0
  226. homeassistant/components/template/translations/lt.json +1 -0
  227. homeassistant/components/template/translations/ru.json +1 -0
  228. homeassistant/components/teslemetry/translations/id.json +33 -0
  229. homeassistant/components/togrill/translations/id.json +16 -0
  230. homeassistant/components/tolo/translations/id.json +2 -1
  231. homeassistant/components/traccar_server/translations/id.json +9 -1
  232. homeassistant/components/trafikverket_train/translations/zh-Hant.json +1 -1
  233. homeassistant/components/tuya/translations/id.json +32 -0
  234. homeassistant/components/unifiprotect/translations/id.json +3 -0
  235. homeassistant/components/update/translations/id.json +3 -0
  236. homeassistant/components/uptime_kuma/translations/id.json +40 -0
  237. homeassistant/components/uptimerobot/translations/id.json +6 -0
  238. homeassistant/components/vegehub/translations/id.json +4 -0
  239. homeassistant/components/victron_remote_monitoring/translations/id.json +25 -0
  240. homeassistant/components/volvo/translations/id.json +58 -0
  241. homeassistant/components/whirlpool/translations/id.json +1 -0
  242. homeassistant/components/wled/analytics.py +11 -0
  243. homeassistant/components/xiaomi_aqara/translations/zh-Hant.json +2 -2
  244. homeassistant/components/yolink/translations/id.json +9 -0
  245. homeassistant/components/zha/config_flow.py +3 -1
  246. homeassistant/components/zha/strings.json +16 -16
  247. homeassistant/components/zha/translations/lt.json +18 -1
  248. homeassistant/components/zha/translations/nl.json +6 -0
  249. homeassistant/components/zha/translations/pl.json +24 -5
  250. homeassistant/components/zha/translations/ru.json +3 -0
  251. homeassistant/const.py +1 -1
  252. homeassistant/generated/integrations.json +27 -4
  253. homeassistant/package_constraints.txt +1 -1
  254. {homeassistant-2025.10.0b5.dist-info → homeassistant-2025.10.0b6.dist-info}/METADATA +1 -1
  255. {homeassistant-2025.10.0b5.dist-info → homeassistant-2025.10.0b6.dist-info}/RECORD +260 -232
  256. {homeassistant-2025.10.0b5.dist-info → homeassistant-2025.10.0b6.dist-info}/WHEEL +0 -0
  257. {homeassistant-2025.10.0b5.dist-info → homeassistant-2025.10.0b6.dist-info}/entry_points.txt +0 -0
  258. {homeassistant-2025.10.0b5.dist-info → homeassistant-2025.10.0b6.dist-info}/licenses/LICENSE.md +0 -0
  259. {homeassistant-2025.10.0b5.dist-info → homeassistant-2025.10.0b6.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  260. {homeassistant-2025.10.0b5.dist-info → homeassistant-2025.10.0b6.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,85 @@
1
+ {
2
+ "config": {
3
+ "error": {
4
+ "cannot_connect": "Gagal terhubung"
5
+ },
6
+ "step": {
7
+ "user": {
8
+ "data": {
9
+ "host": "Host",
10
+ "port": "Port"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "config_subentries": {
16
+ "output": {
17
+ "error": {
18
+ "already_configured": "Perangkat sudah dikonfigurasi"
19
+ },
20
+ "step": {
21
+ "reconfigure": {
22
+ "data": {
23
+ "name": "Nama"
24
+ }
25
+ },
26
+ "user": {
27
+ "data": {
28
+ "name": "Nama"
29
+ }
30
+ }
31
+ }
32
+ },
33
+ "partition": {
34
+ "error": {
35
+ "already_configured": "Perangkat sudah dikonfigurasi"
36
+ },
37
+ "step": {
38
+ "reconfigure": {
39
+ "data": {
40
+ "name": "Nama"
41
+ }
42
+ },
43
+ "user": {
44
+ "data": {
45
+ "name": "Nama"
46
+ }
47
+ }
48
+ }
49
+ },
50
+ "switchable_output": {
51
+ "error": {
52
+ "already_configured": "Perangkat sudah dikonfigurasi"
53
+ },
54
+ "step": {
55
+ "reconfigure": {
56
+ "data": {
57
+ "name": "Nama"
58
+ }
59
+ },
60
+ "user": {
61
+ "data": {
62
+ "name": "Nama"
63
+ }
64
+ }
65
+ }
66
+ },
67
+ "zone": {
68
+ "error": {
69
+ "already_configured": "Perangkat sudah dikonfigurasi"
70
+ },
71
+ "step": {
72
+ "reconfigure": {
73
+ "data": {
74
+ "name": "Nama"
75
+ }
76
+ },
77
+ "user": {
78
+ "data": {
79
+ "name": "Nama"
80
+ }
81
+ }
82
+ }
83
+ }
84
+ }
85
+ }
@@ -155,11 +155,13 @@
155
155
  "pm1": "PM1",
156
156
  "pm10": "PM10",
157
157
  "pm25": "PM2.5",
158
+ "pm4": "PM4",
158
159
  "power": "Puissance",
159
160
  "power_factor": "Facteur de puissance",
160
161
  "precipitation": "Pr\u00e9cipitation",
161
162
  "precipitation_intensity": "Intensit\u00e9 des pr\u00e9cipitations",
162
163
  "pressure": "Pression",
164
+ "reactive_energy": "\u00c9nergie r\u00e9active",
163
165
  "reactive_power": "Puissance r\u00e9active",
164
166
  "signal_strength": "Force du signal",
165
167
  "sound_pressure": "Pression acoustique",
@@ -173,11 +173,13 @@
173
173
  "pm1": "PM1",
174
174
  "pm10": "PM10",
175
175
  "pm25": "PM2.5",
176
+ "pm4": "PM4",
176
177
  "power": "Galia",
177
178
  "power_factor": "Galios koeficientas",
178
179
  "precipitation": "Krituliai",
179
180
  "precipitation_intensity": "Krituli\u0173 intensyvumas",
180
181
  "pressure": "Sl\u0117gis",
182
+ "reactive_energy": "Reaktyvioji energija",
181
183
  "reactive_power": "Reaktyvioji galia",
182
184
  "signal_strength": "Signalo stiprumas",
183
185
  "sound_pressure": "Garso sl\u0117gis",
@@ -173,11 +173,13 @@
173
173
  "pm1": "PM1",
174
174
  "pm10": "PM10",
175
175
  "pm25": "PM2.5",
176
+ "pm4": "PM4",
176
177
  "power": "\u041c\u043e\u0449\u043d\u043e\u0441\u0442\u044c",
177
178
  "power_factor": "\u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438",
178
179
  "precipitation": "\u041e\u0441\u0430\u0434\u043a\u0438",
179
180
  "precipitation_intensity": "\u0418\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043e\u0441\u0430\u0434\u043a\u043e\u0432",
180
181
  "pressure": "\u0414\u0430\u0432\u043b\u0435\u043d\u0438\u0435",
182
+ "reactive_energy": "\u0420\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u044d\u043d\u0435\u0440\u0433\u0438\u044f",
181
183
  "reactive_power": "\u0420\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044c",
182
184
  "signal_strength": "\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u0430",
183
185
  "sound_pressure": "\u0417\u0432\u0443\u043a\u043e\u0432\u043e\u0435 \u0432\u043e\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435",
@@ -250,6 +250,9 @@
250
250
  "pm25": {
251
251
  "name": "PM2.5"
252
252
  },
253
+ "pm4": {
254
+ "name": "PM4"
255
+ },
253
256
  "power": {
254
257
  "name": "Puissance"
255
258
  },
@@ -250,6 +250,9 @@
250
250
  "pm25": {
251
251
  "name": "PM2.5"
252
252
  },
253
+ "pm4": {
254
+ "name": "PM4"
255
+ },
253
256
  "power": {
254
257
  "name": "Galia"
255
258
  },
@@ -245,6 +245,9 @@
245
245
  "pm25": {
246
246
  "name": "PM2.5"
247
247
  },
248
+ "pm4": {
249
+ "name": "PM4"
250
+ },
248
251
  "power": {
249
252
  "name": "Vermogen"
250
253
  },
@@ -219,6 +219,9 @@
219
219
  "pm25": {
220
220
  "name": "PM2.5"
221
221
  },
222
+ "pm4": {
223
+ "name": "PM4"
224
+ },
222
225
  "power": {
223
226
  "name": "Moc"
224
227
  },
@@ -250,6 +250,9 @@
250
250
  "pm25": {
251
251
  "name": "PM2.5"
252
252
  },
253
+ "pm4": {
254
+ "name": "PM4"
255
+ },
253
256
  "power": {
254
257
  "name": "\u041c\u043e\u0449\u043d\u043e\u0441\u0442\u044c"
255
258
  },
@@ -0,0 +1,14 @@
1
+ {
2
+ "config": {
3
+ "step": {
4
+ "user": {
5
+ "data": {
6
+ "host": "Host",
7
+ "password": "Kata Sandi",
8
+ "port": "Port",
9
+ "username": "Nama Pengguna"
10
+ }
11
+ }
12
+ }
13
+ }
14
+ }
@@ -98,6 +98,11 @@
98
98
  }
99
99
  },
100
100
  "sensor": {
101
+ "charger_state": {
102
+ "state": {
103
+ "charger_charging": "Mengisi daya"
104
+ }
105
+ },
101
106
  "operation": {
102
107
  "state": {
103
108
  "fault": "Macet",
@@ -129,6 +134,13 @@
129
134
  "description": "Perangkat Shelly {device_name} dengan alamat IP {ip_address} memerlukan kalibrasi. Untuk mengkalibrasi perangkat, perangkat harus di-boot ulang setelah pemasangan yang benar pada katup. Anda dapat mem-boot ulang perangkat di panel webnya, buka 'Settings' > 'Device Reboot'.",
130
135
  "title": "Perangkat Shelly {device_name} tidak dikalibrasi"
131
136
  },
137
+ "outbound_websocket_incorrectly_enabled": {
138
+ "fix_flow": {
139
+ "abort": {
140
+ "cannot_connect": "Gagal terhubung"
141
+ }
142
+ }
143
+ },
132
144
  "push_update_failure": {
133
145
  "description": "Home Assistant tidak menerima pembaruan push dari perangkat Shelly {device_name} dengan alamat IP {ip_address}. Periksa konfigurasi CoIoT di panel web perangkat dan konfigurasi jaringan Anda.",
134
146
  "title": "Kegagalan pembaruan push perangkat Shelly {device_name}"
@@ -136,6 +148,13 @@
136
148
  "unsupported_firmware": {
137
149
  "description": "Perangkat Shelly Anda {device_name} dengan alamat IP {ip_address} menjalankan firmware yang tidak didukung. Harap perbarui firmware.\n\nJika perangkat tidak menawarkan pembaruan, periksa konektivitas internet (gateway, DNS, waktu) dan mulai ulang perangkat.",
138
150
  "title": "Firmware tidak didukung untuk perangkat {device_name}"
151
+ },
152
+ "wall_display_firmware_unsupported": {
153
+ "fix_flow": {
154
+ "abort": {
155
+ "cannot_connect": "Gagal terhubung"
156
+ }
157
+ }
139
158
  }
140
159
  },
141
160
  "options": {
@@ -0,0 +1,31 @@
1
+ {
2
+ "config": {
3
+ "abort": {
4
+ "cloud_not_connected": "Tidak terhubung ke Home Assistant Cloud.",
5
+ "webhook_not_internet_accessible": "Instans Home Assistant Anda harus dapat diakses dari internet untuk menerima pesan webhook."
6
+ }
7
+ },
8
+ "entity": {
9
+ "event": {
10
+ "lullaby": {
11
+ "state_attributes": {
12
+ "event_type": {
13
+ "state": {
14
+ "stop": "Dihentikan"
15
+ }
16
+ }
17
+ }
18
+ },
19
+ "sleep_tracking": {
20
+ "state_attributes": {
21
+ "event_type": {
22
+ "state": {
23
+ "paused": "Dijeda",
24
+ "stopped": "Dihentikan"
25
+ }
26
+ }
27
+ }
28
+ }
29
+ }
30
+ }
31
+ }
@@ -26,6 +26,11 @@
26
26
  },
27
27
  "entity": {
28
28
  "select": {
29
+ "core_temps": {
30
+ "state": {
31
+ "off": "Mati"
32
+ }
33
+ },
29
34
  "foot_warmer_temp": {
30
35
  "state": {
31
36
  "high": "Tinggi",
@@ -53,6 +53,8 @@
53
53
  },
54
54
  "lamp": {
55
55
  "state": {
56
+ "high": "Tinggi",
57
+ "low": "Rendah",
56
58
  "off": "Mati",
57
59
  "on": "Nyala"
58
60
  }
@@ -63,6 +65,11 @@
63
65
  "stop": "Dihentikan"
64
66
  }
65
67
  },
68
+ "soil_level": {
69
+ "state": {
70
+ "normal": "Normal"
71
+ }
72
+ },
66
73
  "spin_level": {
67
74
  "state": {
68
75
  "high": "Tinggi",
@@ -59,17 +59,12 @@ async def async_setup_entry(
59
59
  for select_data in SELECT_TYPES:
60
60
  if select_data.speaker_model == speaker.model_name.upper():
61
61
  if (
62
- state := getattr(speaker.soco, select_data.soco_attribute, None)
63
- ) is not None:
64
- try:
65
- setattr(speaker, select_data.speaker_attribute, int(state))
66
- features.append(select_data)
67
- except ValueError:
68
- _LOGGER.error(
69
- "Invalid value for %s %s",
70
- select_data.speaker_attribute,
71
- state,
72
- )
62
+ speaker.update_soco_int_attribute(
63
+ select_data.soco_attribute, select_data.speaker_attribute
64
+ )
65
+ is not None
66
+ ):
67
+ features.append(select_data)
73
68
  return features
74
69
 
75
70
  async def _async_create_entities(speaker: SonosSpeaker) -> None:
@@ -112,8 +107,9 @@ class SonosSelectEntity(SonosEntity, SelectEntity):
112
107
  @soco_error()
113
108
  def poll_state(self) -> None:
114
109
  """Poll the device for the current state."""
115
- state = getattr(self.soco, self.soco_attribute)
116
- setattr(self.speaker, self.speaker_attribute, state)
110
+ self.speaker.update_soco_int_attribute(
111
+ self.soco_attribute, self.speaker_attribute
112
+ )
117
113
 
118
114
  @property
119
115
  def current_option(self) -> str | None:
@@ -275,6 +275,29 @@ class SonosSpeaker:
275
275
  """Write states for associated SonosEntity instances."""
276
276
  async_dispatcher_send(self.hass, f"{SONOS_STATE_UPDATED}-{self.soco.uid}")
277
277
 
278
+ def update_soco_int_attribute(
279
+ self, soco_attribute: str, speaker_attribute: str
280
+ ) -> int | None:
281
+ """Update an integer attribute from SoCo and set it on the speaker.
282
+
283
+ Returns the integer value if successful, otherwise None. Do not call from
284
+ async context as it is a blocking function.
285
+ """
286
+ value: int | None = None
287
+ if (state := getattr(self.soco, soco_attribute, None)) is None:
288
+ _LOGGER.error("Missing value for %s", speaker_attribute)
289
+ else:
290
+ try:
291
+ value = int(state)
292
+ except (TypeError, ValueError):
293
+ _LOGGER.error(
294
+ "Invalid value for %s %s",
295
+ speaker_attribute,
296
+ state,
297
+ )
298
+ setattr(self, speaker_attribute, value)
299
+ return value
300
+
278
301
  #
279
302
  # Properties
280
303
  #
@@ -12,6 +12,16 @@
12
12
  }
13
13
  },
14
14
  "entity": {
15
+ "select": {
16
+ "speech_dialog_level": {
17
+ "state": {
18
+ "high": "Tinggi",
19
+ "low": "Rendah",
20
+ "medium": "Sedang",
21
+ "off": "Mati"
22
+ }
23
+ }
24
+ },
15
25
  "switch": {
16
26
  "surround_enabled": {
17
27
  "name": "Surround diaktifkan"
@@ -133,6 +133,7 @@
133
133
  "pm1": "PM1",
134
134
  "pm10": "PM10",
135
135
  "pm25": "PM2.5",
136
+ "pm4": "PM4",
136
137
  "power": "Puissance",
137
138
  "power_factor": "Facteur de puissance",
138
139
  "precipitation": "Pr\u00e9cipitation",
@@ -133,6 +133,7 @@
133
133
  "pm1": "PM1",
134
134
  "pm10": "PM10",
135
135
  "pm25": "PM2.5",
136
+ "pm4": "PM4",
136
137
  "power": "Galia",
137
138
  "power_factor": "Galios koeficientas",
138
139
  "precipitation": "Krituliai",
@@ -132,6 +132,7 @@
132
132
  "pm1": "PM1",
133
133
  "pm10": "PM10",
134
134
  "pm25": "PM2.5",
135
+ "pm4": "PM4",
135
136
  "power": "\u041c\u043e\u0449\u043d\u043e\u0441\u0442\u044c",
136
137
  "power_factor": "\u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438",
137
138
  "precipitation": "\u041e\u0441\u0430\u0434\u043a\u0438",
@@ -31,8 +31,8 @@
31
31
  "data_description": {
32
32
  "device_class": "\u65bc Frontend \u4e2d\u8a2d\u5b9a\u4e4b\u611f\u6e2c\u5668\u985e\u578b/\u985e\u5225\u5716\u793a",
33
33
  "state_class": "\u611f\u6e2c\u5668\u72c0\u614b\u985e\u5225",
34
- "unit_of_measurement": "\u611f\u6e2c\u5668\u6e2c\u91cf\u55ae\u4f4d\uff08\u9078\u9805\uff09",
35
- "value_template": "\u5f9e\u6709\u6548\u8ca0\u8f09 Payload \u4e2d\u63d0\u53d6\u6578\u503c\u6a21\u677f\uff08\u9078\u9805\uff09"
34
+ "unit_of_measurement": "\u611f\u6e2c\u5668\u6e2c\u91cf\u55ae\u4f4d\uff08\u9078\u586b\uff09",
35
+ "value_template": "\u5f9e\u6709\u6548\u8ca0\u8f09 Payload \u4e2d\u63d0\u53d6\u6578\u503c\u6a21\u677f\uff08\u9078\u586b\uff09"
36
36
  },
37
37
  "description": "\u70ba\u611f\u6e2c\u5668\u63d0\u4f9b\u9644\u52a0\u8a2d\u5b9a",
38
38
  "name": "\u9032\u968e\u9078\u9805"
@@ -86,8 +86,8 @@
86
86
  "data_description": {
87
87
  "device_class": "\u65bc Frontend \u4e2d\u8a2d\u5b9a\u4e4b\u611f\u6e2c\u5668\u985e\u578b/\u985e\u5225\u5716\u793a",
88
88
  "state_class": "\u611f\u6e2c\u5668\u72c0\u614b\u985e\u5225",
89
- "unit_of_measurement": "\u611f\u6e2c\u5668\u6e2c\u91cf\u55ae\u4f4d\uff08\u9078\u9805\uff09",
90
- "value_template": "\u5f9e\u6709\u6548\u8ca0\u8f09 Payload \u4e2d\u63d0\u53d6\u6578\u503c\u6a21\u677f\uff08\u9078\u9805\uff09"
89
+ "unit_of_measurement": "\u611f\u6e2c\u5668\u6e2c\u91cf\u55ae\u4f4d\uff08\u9078\u586b\uff09",
90
+ "value_template": "\u5f9e\u6709\u6548\u8ca0\u8f09 Payload \u4e2d\u63d0\u53d6\u6578\u503c\u6a21\u677f\uff08\u9078\u586b\uff09"
91
91
  },
92
92
  "description": "\u9032\u968e\u9078\u9805",
93
93
  "name": "\u9032\u968e\u9078\u9805"
@@ -9,6 +9,9 @@
9
9
  "is_off": "{entity_name} mati",
10
10
  "is_on": "{entity_name} nyala"
11
11
  },
12
+ "extra_fields": {
13
+ "for": "Durasi"
14
+ },
12
15
  "trigger_type": {
13
16
  "changed_states": "{entity_name} dinyalakan atau dimatikan",
14
17
  "turned_off": "{entity_name} dimatikan",
@@ -10,6 +10,12 @@
10
10
  },
11
11
  "flow_title": "{name} ({address})",
12
12
  "step": {
13
+ "cloud_login": {
14
+ "data": {
15
+ "password": "Kata Sandi",
16
+ "username": "Nama Pengguna"
17
+ }
18
+ },
13
19
  "confirm": {
14
20
  "description": "Ingin menyiapkan {name}?"
15
21
  },
@@ -79,6 +85,11 @@
79
85
  "false": "Bermasalah",
80
86
  "true": "Oke"
81
87
  }
88
+ },
89
+ "preset_mode": {
90
+ "state": {
91
+ "normal": "Normal"
92
+ }
82
93
  }
83
94
  }
84
95
  }
@@ -128,6 +139,7 @@
128
139
  },
129
140
  "water_level": {
130
141
  "state": {
142
+ "empty": "Kosong",
131
143
  "high": "Tinggi",
132
144
  "low": "Rendah",
133
145
  "medium": "Sedang"
@@ -109,15 +109,13 @@ class SwitchBotCloudCoverRollerShade(SwitchBotCloudCover):
109
109
 
110
110
  async def async_open_cover(self, **kwargs: Any) -> None:
111
111
  """Open the cover."""
112
- await self.send_api_command(RollerShadeCommands.SET_POSITION, parameters=str(0))
112
+ await self.send_api_command(RollerShadeCommands.SET_POSITION, parameters=0)
113
113
  await asyncio.sleep(COVER_ENTITY_AFTER_COMMAND_REFRESH)
114
114
  await self.coordinator.async_request_refresh()
115
115
 
116
116
  async def async_close_cover(self, **kwargs: Any) -> None:
117
117
  """Close the cover."""
118
- await self.send_api_command(
119
- RollerShadeCommands.SET_POSITION, parameters=str(100)
120
- )
118
+ await self.send_api_command(RollerShadeCommands.SET_POSITION, parameters=100)
121
119
  await asyncio.sleep(COVER_ENTITY_AFTER_COMMAND_REFRESH)
122
120
  await self.coordinator.async_request_refresh()
123
121
 
@@ -126,7 +124,7 @@ class SwitchBotCloudCoverRollerShade(SwitchBotCloudCover):
126
124
  position: int | None = kwargs.get("position")
127
125
  if position is not None:
128
126
  await self.send_api_command(
129
- RollerShadeCommands.SET_POSITION, parameters=str(100 - position)
127
+ RollerShadeCommands.SET_POSITION, parameters=(100 - position)
130
128
  )
131
129
  await asyncio.sleep(COVER_ENTITY_AFTER_COMMAND_REFRESH)
132
130
  await self.coordinator.async_request_refresh()
@@ -44,7 +44,7 @@ class SwitchBotCloudEntity(CoordinatorEntity[SwitchBotCoordinator]):
44
44
  self,
45
45
  command: Commands,
46
46
  command_type: str = "command",
47
- parameters: dict | str = "default",
47
+ parameters: dict | str | int = "default",
48
48
  ) -> None:
49
49
  """Send command to device."""
50
50
  await self._api.send_command(
@@ -16,5 +16,32 @@
16
16
  }
17
17
  }
18
18
  }
19
+ },
20
+ "entity": {
21
+ "fan": {
22
+ "air_purifier": {
23
+ "state_attributes": {
24
+ "preset_mode": {
25
+ "state": {
26
+ "auto": "Otomatis",
27
+ "normal": "Normal"
28
+ }
29
+ }
30
+ }
31
+ }
32
+ },
33
+ "humidifier": {
34
+ "evaporative_humidifier": {
35
+ "state_attributes": {
36
+ "mode": {
37
+ "state": {
38
+ "high": "Tinggi",
39
+ "low": "Rendah",
40
+ "medium": "Sedang"
41
+ }
42
+ }
43
+ }
44
+ }
45
+ }
19
46
  }
20
47
  }
@@ -14,6 +14,11 @@
14
14
  "api_key": "Kunci API"
15
15
  }
16
16
  },
17
+ "user": {
18
+ "data": {
19
+ "api_key": "Token API"
20
+ }
21
+ },
17
22
  "webhooks": {
18
23
  "data": {
19
24
  "url": "URL"
@@ -1088,6 +1088,7 @@
1088
1088
  "pm1": "PM1",
1089
1089
  "pm10": "PM10",
1090
1090
  "pm25": "PM2.5",
1091
+ "pm4": "PM4",
1091
1092
  "power": "Puissance",
1092
1093
  "power_factor": "Facteur de puissance",
1093
1094
  "precipitation": "Pr\u00e9cipitation",