homeassistant-stubs 2024.2.4__py3-none-any.whl → 2024.3.0__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 (302) hide show
  1. homeassistant-stubs/bootstrap.pyi +20 -5
  2. homeassistant-stubs/components/aftership/const.pyi +0 -1
  3. homeassistant-stubs/components/aftership/sensor.pyi +2 -2
  4. homeassistant-stubs/components/airthings_ble/config_flow.pyi +1 -0
  5. homeassistant-stubs/components/airzone_cloud/sensor.pyi +1 -1
  6. homeassistant-stubs/components/alexa/config.pyi +2 -0
  7. homeassistant-stubs/components/amberelectric/sensor.pyi +0 -1
  8. homeassistant-stubs/components/androidtv/entity.pyi +30 -0
  9. homeassistant-stubs/components/androidtv/media_player.pyi +5 -23
  10. homeassistant-stubs/components/anthemav/media_player.pyi +0 -1
  11. homeassistant-stubs/components/api/__init__.pyi +0 -1
  12. homeassistant-stubs/components/apple_tv/__init__.pyi +68 -0
  13. homeassistant-stubs/components/apple_tv/browse_media.pyi +5 -0
  14. homeassistant-stubs/components/apple_tv/config_flow.pyi +63 -0
  15. homeassistant-stubs/components/apple_tv/const.pyi +4 -0
  16. homeassistant-stubs/components/apple_tv/media_player.pyi +93 -0
  17. homeassistant-stubs/components/apple_tv/remote.pyi +23 -0
  18. homeassistant-stubs/components/assist_pipeline/__init__.pyi +1 -1
  19. homeassistant-stubs/components/assist_pipeline/const.pyi +1 -1
  20. homeassistant-stubs/components/assist_pipeline/error.pyi +4 -0
  21. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +5 -5
  22. homeassistant-stubs/components/asterisk_mbox/__init__.pyi +1 -0
  23. homeassistant-stubs/components/asuswrt/router.pyi +1 -1
  24. homeassistant-stubs/components/auth/__init__.pyi +2 -2
  25. homeassistant-stubs/components/automation/__init__.pyi +2 -1
  26. homeassistant-stubs/components/axis/binary_sensor.pyi +4 -0
  27. homeassistant-stubs/components/backup/manager.pyi +5 -3
  28. homeassistant-stubs/components/backup/websocket.pyi +4 -2
  29. homeassistant-stubs/components/blue_current/__init__.pyi +4 -3
  30. homeassistant-stubs/components/blue_current/entity.pyi +5 -2
  31. homeassistant-stubs/components/bluetooth/manager.pyi +2 -2
  32. homeassistant-stubs/components/bluetooth/match.pyi +3 -0
  33. homeassistant-stubs/components/bmw_connected_drive/device_tracker.pyi +1 -0
  34. homeassistant-stubs/components/braviatv/coordinator.pyi +2 -0
  35. homeassistant-stubs/components/braviatv/media_player.pyi +5 -0
  36. homeassistant-stubs/components/brother/sensor.pyi +3 -3
  37. homeassistant-stubs/components/bthome/config_flow.pyi +4 -4
  38. homeassistant-stubs/components/calendar/trigger.pyi +2 -1
  39. homeassistant-stubs/components/camera/media_source.pyi +1 -0
  40. homeassistant-stubs/components/camera/prefs.pyi +2 -0
  41. homeassistant-stubs/components/cert_expiry/sensor.pyi +0 -1
  42. homeassistant-stubs/components/climate/__init__.pyi +3 -1
  43. homeassistant-stubs/components/cloud/const.pyi +2 -0
  44. homeassistant-stubs/components/cloud/google_config.pyi +7 -5
  45. homeassistant-stubs/components/cloud/http_api.pyi +1 -1
  46. homeassistant-stubs/components/cloud/prefs.pyi +6 -2
  47. homeassistant-stubs/components/cloud/tts.pyi +3 -2
  48. homeassistant-stubs/components/config/area_registry.pyi +1 -1
  49. homeassistant-stubs/components/config/auth.pyi +2 -2
  50. homeassistant-stubs/components/config/auth_provider_homeassistant.pyi +2 -2
  51. homeassistant-stubs/components/config/automation.pyi +2 -2
  52. homeassistant-stubs/components/config/config_entries.pyi +5 -4
  53. homeassistant-stubs/components/config/core.pyi +2 -2
  54. homeassistant-stubs/components/config/device_registry.pyi +1 -1
  55. homeassistant-stubs/components/config/entity_registry.pyi +1 -1
  56. homeassistant-stubs/components/config/floor_registry.pyi +12 -0
  57. homeassistant-stubs/components/config/label_registry.pyi +12 -0
  58. homeassistant-stubs/components/config/scene.pyi +2 -2
  59. homeassistant-stubs/components/config/script.pyi +2 -2
  60. homeassistant-stubs/components/cpuspeed/sensor.pyi +0 -1
  61. homeassistant-stubs/components/crownstone/light.pyi +1 -1
  62. homeassistant-stubs/components/deconz/light.pyi +1 -1
  63. homeassistant-stubs/components/demo/fan.pyi +1 -0
  64. homeassistant-stubs/components/dhcp/__init__.pyi +24 -32
  65. homeassistant-stubs/components/dlna_dmr/media_player.pyi +8 -3
  66. homeassistant-stubs/components/dnsip/sensor.pyi +1 -1
  67. homeassistant-stubs/components/dunehd/media_player.pyi +5 -2
  68. homeassistant-stubs/components/ecovacs/binary_sensor.pyi +3 -3
  69. homeassistant-stubs/components/ecovacs/button.pyi +5 -5
  70. homeassistant-stubs/components/ecovacs/controller.pyi +6 -3
  71. homeassistant-stubs/components/ecovacs/entity.pyi +11 -9
  72. homeassistant-stubs/components/ecovacs/image.pyi +2 -2
  73. homeassistant-stubs/components/ecovacs/lawn_mower.pyi +28 -0
  74. homeassistant-stubs/components/ecovacs/number.pyi +3 -3
  75. homeassistant-stubs/components/ecovacs/select.pyi +3 -3
  76. homeassistant-stubs/components/ecovacs/sensor.pyi +6 -6
  77. homeassistant-stubs/components/ecovacs/switch.pyi +4 -4
  78. homeassistant-stubs/components/ecovacs/vacuum.pyi +3 -3
  79. homeassistant-stubs/components/emulated_hue/config.pyi +1 -1
  80. homeassistant-stubs/components/enphase_envoy/sensor.pyi +39 -4
  81. homeassistant-stubs/components/esphome/bluetooth.pyi +1 -1
  82. homeassistant-stubs/components/esphome/camera.pyi +2 -2
  83. homeassistant-stubs/components/esphome/entry_data.pyi +3 -5
  84. homeassistant-stubs/components/esphome/manager.pyi +6 -7
  85. homeassistant-stubs/components/esphome/sensor.pyi +4 -2
  86. homeassistant-stubs/components/esphome/update.pyi +0 -1
  87. homeassistant-stubs/components/esphome/voice_assistant.pyi +1 -1
  88. homeassistant-stubs/components/fastdotcom/sensor.pyi +0 -1
  89. homeassistant-stubs/components/filesize/sensor.pyi +0 -1
  90. homeassistant-stubs/components/flexit_bacnet/climate.pyi +4 -2
  91. homeassistant-stubs/components/flexit_bacnet/number.pyi +31 -0
  92. homeassistant-stubs/components/flux_led/__init__.pyi +2 -2
  93. homeassistant-stubs/components/fritz/common.pyi +2 -1
  94. homeassistant-stubs/components/fully_kiosk/media_player.pyi +2 -1
  95. homeassistant-stubs/components/generic_thermostat/climate.pyi +1 -1
  96. homeassistant-stubs/components/goalzero/__init__.pyi +1 -0
  97. homeassistant-stubs/components/gpsd/sensor.pyi +15 -9
  98. homeassistant-stubs/components/group/__init__.pyi +1 -1
  99. homeassistant-stubs/components/group/light.pyi +3 -3
  100. homeassistant-stubs/components/hardkernel/__init__.pyi +1 -1
  101. homeassistant-stubs/components/hardware/hardware.pyi +2 -2
  102. homeassistant-stubs/components/hardware/websocket_api.pyi +1 -1
  103. homeassistant-stubs/components/homeassistant_green/__init__.pyi +1 -1
  104. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +2 -1
  105. homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +3 -2
  106. homeassistant-stubs/components/homekit/__init__.pyi +1 -1
  107. homeassistant-stubs/components/homekit/accessories.pyi +1 -1
  108. homeassistant-stubs/components/homekit/config_flow.pyi +13 -4
  109. homeassistant-stubs/components/homekit/type_cameras.pyi +1 -1
  110. homeassistant-stubs/components/homekit/type_covers.pyi +1 -1
  111. homeassistant-stubs/components/homekit/type_humidifiers.pyi +1 -1
  112. homeassistant-stubs/components/homekit/type_triggers.pyi +3 -1
  113. homeassistant-stubs/components/homekit_controller/__init__.pyi +1 -0
  114. homeassistant-stubs/components/homekit_controller/alarm_control_panel.pyi +0 -1
  115. homeassistant-stubs/components/homekit_controller/button.pyi +8 -4
  116. homeassistant-stubs/components/homekit_controller/utils.pyi +4 -0
  117. homeassistant-stubs/components/http/__init__.pyi +3 -3
  118. homeassistant-stubs/components/http/auth.pyi +1 -1
  119. homeassistant-stubs/components/http/ban.pyi +0 -1
  120. homeassistant-stubs/components/http/const.pyi +1 -1
  121. homeassistant-stubs/components/http/request_context.pyi +1 -2
  122. homeassistant-stubs/components/http/view.pyi +1 -29
  123. homeassistant-stubs/components/huawei_lte/binary_sensor.pyi +0 -6
  124. homeassistant-stubs/components/huawei_lte/switch.pyi +0 -4
  125. homeassistant-stubs/components/idasen_desk/sensor.pyi +2 -1
  126. homeassistant-stubs/components/image/__init__.pyi +13 -3
  127. homeassistant-stubs/components/image/media_source.pyi +18 -0
  128. homeassistant-stubs/components/imap/coordinator.pyi +8 -0
  129. homeassistant-stubs/components/imap/diagnostics.pyi +13 -0
  130. homeassistant-stubs/components/intent/__init__.pyi +7 -2
  131. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +1 -1
  132. homeassistant-stubs/components/knx/config_flow.pyi +1 -1
  133. homeassistant-stubs/components/knx/schema.pyi +3 -18
  134. homeassistant-stubs/components/knx/validation.pyi +19 -0
  135. homeassistant-stubs/components/lamarzocco/calendar.pyi +21 -0
  136. homeassistant-stubs/components/lamarzocco/entity.pyi +7 -4
  137. homeassistant-stubs/components/lamarzocco/number.pyi +26 -1
  138. homeassistant-stubs/components/light/__init__.pyi +3 -0
  139. homeassistant-stubs/components/local_todo/todo.pyi +3 -1
  140. homeassistant-stubs/components/logbook/__init__.pyi +1 -1
  141. homeassistant-stubs/components/logbook/helpers.pyi +2 -2
  142. homeassistant-stubs/components/logbook/models.pyi +2 -2
  143. homeassistant-stubs/components/mailbox/__init__.pyi +1 -0
  144. homeassistant-stubs/components/matter/light.pyi +6 -5
  145. homeassistant-stubs/components/media_player/intent.pyi +11 -0
  146. homeassistant-stubs/components/minecraft_server/__init__.pyi +1 -1
  147. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  148. homeassistant-stubs/components/modbus/climate.pyi +1 -0
  149. homeassistant-stubs/components/modbus/validators.pyi +4 -4
  150. homeassistant-stubs/components/mqtt/__init__.pyi +3 -3
  151. homeassistant-stubs/components/mqtt/climate.pyi +1 -8
  152. homeassistant-stubs/components/mqtt/const.pyi +2 -0
  153. homeassistant-stubs/components/mqtt/event.pyi +1 -1
  154. homeassistant-stubs/components/mqtt/image.pyi +1 -1
  155. homeassistant-stubs/components/mqtt/mixins.pyi +2 -2
  156. homeassistant-stubs/components/mqtt/models.pyi +10 -0
  157. homeassistant-stubs/components/mqtt/tag.pyi +1 -1
  158. homeassistant-stubs/components/myuplink/__init__.pyi +2 -1
  159. homeassistant-stubs/components/myuplink/binary_sensor.pyi +24 -0
  160. homeassistant-stubs/components/myuplink/config_flow.pyi +7 -0
  161. homeassistant-stubs/components/myuplink/coordinator.pyi +1 -2
  162. homeassistant-stubs/components/myuplink/diagnostics.pyi +11 -0
  163. homeassistant-stubs/components/myuplink/helpers.pyi +6 -0
  164. homeassistant-stubs/components/myuplink/number.pyi +30 -0
  165. homeassistant-stubs/components/myuplink/sensor.pyi +20 -3
  166. homeassistant-stubs/components/myuplink/switch.pyi +29 -0
  167. homeassistant-stubs/components/myuplink/update.pyi +20 -0
  168. homeassistant-stubs/components/notion/__init__.pyi +10 -6
  169. homeassistant-stubs/components/notion/config_flow.pyi +11 -3
  170. homeassistant-stubs/components/notion/const.pyi +2 -0
  171. homeassistant-stubs/components/notion/diagnostics.pyi +2 -2
  172. homeassistant-stubs/components/notion/model.pyi +1 -1
  173. homeassistant-stubs/components/notion/util.pyi +7 -0
  174. homeassistant-stubs/components/overkiz/climate.pyi +1 -1
  175. homeassistant-stubs/components/overkiz/climate_entities/__init__.pyi +8 -0
  176. homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_heating_zone.pyi +1 -1
  177. homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_zone_control.pyi +5 -1
  178. homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_zone_control_zone.pyi +33 -0
  179. homeassistant-stubs/components/overkiz/climate_entities/hitachi_air_to_air_heat_pump_ovp.pyi +61 -0
  180. homeassistant-stubs/components/overkiz/number.pyi +7 -1
  181. homeassistant-stubs/components/proximity/config_flow.pyi +1 -1
  182. homeassistant-stubs/components/rainmachine/util.pyi +1 -1
  183. homeassistant-stubs/components/raspberry_pi/__init__.pyi +1 -1
  184. homeassistant-stubs/components/recorder/__init__.pyi +1 -1
  185. homeassistant-stubs/components/recorder/core.pyi +1 -0
  186. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -5
  187. homeassistant-stubs/components/repairs/issue_handler.pyi +1 -1
  188. homeassistant-stubs/components/rfxtrx/__init__.pyi +3 -1
  189. homeassistant-stubs/components/samsungtv/__init__.pyi +1 -1
  190. homeassistant-stubs/components/samsungtv/config_flow.pyi +1 -0
  191. homeassistant-stubs/components/sensor/recorder.pyi +0 -2
  192. homeassistant-stubs/components/shelly/binary_sensor.pyi +1 -1
  193. homeassistant-stubs/components/shelly/button.pyi +1 -1
  194. homeassistant-stubs/components/shelly/climate.pyi +1 -3
  195. homeassistant-stubs/components/shelly/entity.pyi +1 -2
  196. homeassistant-stubs/components/shelly/number.pyi +1 -1
  197. homeassistant-stubs/components/shelly/sensor.pyi +2 -2
  198. homeassistant-stubs/components/shelly/switch.pyi +4 -5
  199. homeassistant-stubs/components/shelly/utils.pyi +2 -0
  200. homeassistant-stubs/components/shelly/valve.pyi +1 -1
  201. homeassistant-stubs/components/ssdp/__init__.pyi +1 -0
  202. homeassistant-stubs/components/statistics/sensor.pyi +4 -1
  203. homeassistant-stubs/components/steamist/__init__.pyi +1 -1
  204. homeassistant-stubs/components/system_health/__init__.pyi +1 -1
  205. homeassistant-stubs/components/systemmonitor/__init__.pyi +3 -0
  206. homeassistant-stubs/components/systemmonitor/binary_sensor.pyi +48 -0
  207. homeassistant-stubs/components/systemmonitor/config_flow.pyi +2 -0
  208. homeassistant-stubs/components/systemmonitor/const.pyi +1 -0
  209. homeassistant-stubs/components/systemmonitor/coordinator.pyi +14 -10
  210. homeassistant-stubs/components/systemmonitor/diagnostics.pyi +7 -0
  211. homeassistant-stubs/components/systemmonitor/repairs.pyi +15 -0
  212. homeassistant-stubs/components/systemmonitor/sensor.pyi +5 -4
  213. homeassistant-stubs/components/systemmonitor/util.pyi +6 -5
  214. homeassistant-stubs/components/technove/helpers.pyi +9 -0
  215. homeassistant-stubs/components/technove/switch.pyi +33 -0
  216. homeassistant-stubs/components/tedee/config_flow.pyi +1 -0
  217. homeassistant-stubs/components/tedee/sensor.pyi +1 -1
  218. homeassistant-stubs/components/tibber/sensor.pyi +7 -4
  219. homeassistant-stubs/components/tplink/__init__.pyi +1 -1
  220. homeassistant-stubs/components/tplink/config_flow.pyi +2 -2
  221. homeassistant-stubs/components/tplink/light.pyi +1 -0
  222. homeassistant-stubs/components/tplink_omada/binary_sensor.pyi +2 -2
  223. homeassistant-stubs/components/tplink_omada/config_flow.pyi +1 -1
  224. homeassistant-stubs/components/tplink_omada/controller.pyi +1 -1
  225. homeassistant-stubs/components/tplink_omada/coordinator.pyi +1 -1
  226. homeassistant-stubs/components/tplink_omada/update.pyi +1 -1
  227. homeassistant-stubs/components/tractive/device_tracker.pyi +0 -1
  228. homeassistant-stubs/components/unifi/__init__.pyi +1 -1
  229. homeassistant-stubs/components/unifi/button.pyi +1 -1
  230. homeassistant-stubs/components/unifi/config_flow.pyi +2 -2
  231. homeassistant-stubs/components/unifi/device_tracker.pyi +6 -6
  232. homeassistant-stubs/components/unifi/diagnostics.pyi +1 -1
  233. homeassistant-stubs/components/unifi/entity.pyi +13 -13
  234. homeassistant-stubs/components/unifi/hub/__init__.pyi +2 -0
  235. homeassistant-stubs/components/unifi/hub/api.pyi +10 -0
  236. homeassistant-stubs/components/unifi/{controller.pyi → hub/hub.pyi} +9 -19
  237. homeassistant-stubs/components/unifi/hub/websocket.pyi +25 -0
  238. homeassistant-stubs/components/unifi/image.pyi +4 -4
  239. homeassistant-stubs/components/unifi/sensor.pyi +14 -14
  240. homeassistant-stubs/components/unifi/switch.pyi +14 -14
  241. homeassistant-stubs/components/unifi/update.pyi +1 -1
  242. homeassistant-stubs/components/unifiprotect/__init__.pyi +4 -2
  243. homeassistant-stubs/components/unifiprotect/const.pyi +1 -0
  244. homeassistant-stubs/components/unifiprotect/data.pyi +3 -2
  245. homeassistant-stubs/components/unifiprotect/media_source.pyi +6 -3
  246. homeassistant-stubs/components/unifiprotect/migrate.pyi +3 -5
  247. homeassistant-stubs/components/unifiprotect/repairs.pyi +8 -2
  248. homeassistant-stubs/components/usb/__init__.pyi +1 -1
  249. homeassistant-stubs/components/vacuum/intent.pyi +8 -0
  250. homeassistant-stubs/components/vallox/__init__.pyi +5 -23
  251. homeassistant-stubs/components/vallox/fan.pyi +1 -1
  252. homeassistant-stubs/components/wake_word/models.pyi +4 -2
  253. homeassistant-stubs/components/water_heater/__init__.pyi +2 -0
  254. homeassistant-stubs/components/websocket_api/connection.pyi +1 -1
  255. homeassistant-stubs/components/websocket_api/http.pyi +1 -0
  256. homeassistant-stubs/components/wiz/light.pyi +3 -2
  257. homeassistant-stubs/components/xiaomi_ble/const.pyi +9 -0
  258. homeassistant-stubs/components/xiaomi_ble/device_trigger.pyi +1 -1
  259. homeassistant-stubs/components/xiaomi_ble/event.pyi +1 -1
  260. homeassistant-stubs/components/yalexs_ble/__init__.pyi +1 -1
  261. homeassistant-stubs/components/yalexs_ble/config_flow.pyi +1 -1
  262. homeassistant-stubs/components/zwave_js/climate.pyi +4 -0
  263. homeassistant-stubs/components/zwave_js/sensor.pyi +0 -1
  264. homeassistant-stubs/config.pyi +4 -2
  265. homeassistant-stubs/config_entries.pyi +40 -26
  266. homeassistant-stubs/const.pyi +1 -0
  267. homeassistant-stubs/core.pyi +11 -7
  268. homeassistant-stubs/data_entry_flow.pyi +1 -0
  269. homeassistant-stubs/helpers/area_registry.pyi +9 -4
  270. homeassistant-stubs/helpers/collection.pyi +19 -0
  271. homeassistant-stubs/helpers/config_validation.pyi +5 -0
  272. homeassistant-stubs/helpers/data_entry_flow.pyi +2 -1
  273. homeassistant-stubs/helpers/debounce.pyi +3 -1
  274. homeassistant-stubs/helpers/device_registry.pyi +13 -6
  275. homeassistant-stubs/helpers/entity.pyi +4 -2
  276. homeassistant-stubs/helpers/entity_component.pyi +1 -1
  277. homeassistant-stubs/helpers/entity_platform.pyi +7 -3
  278. homeassistant-stubs/helpers/entity_registry.pyi +10 -4
  279. homeassistant-stubs/helpers/event.pyi +28 -2
  280. homeassistant-stubs/helpers/floor_registry.pyi +59 -0
  281. homeassistant-stubs/helpers/frame.pyi +3 -1
  282. homeassistant-stubs/helpers/http.pyi +32 -0
  283. homeassistant-stubs/helpers/icon.pyi +1 -1
  284. homeassistant-stubs/helpers/integration_platform.pyi +12 -8
  285. homeassistant-stubs/helpers/intent.pyi +20 -6
  286. homeassistant-stubs/helpers/json.pyi +1 -0
  287. homeassistant-stubs/helpers/label_registry.pyi +59 -0
  288. homeassistant-stubs/helpers/redact.pyi +13 -0
  289. homeassistant-stubs/helpers/service.pyi +1 -0
  290. homeassistant-stubs/helpers/storage.pyi +7 -3
  291. homeassistant-stubs/helpers/template.pyi +7 -0
  292. homeassistant-stubs/helpers/translation.pyi +18 -4
  293. homeassistant-stubs/helpers/update_coordinator.pyi +1 -0
  294. homeassistant-stubs/loader.pyi +35 -13
  295. homeassistant-stubs/setup.pyi +9 -3
  296. homeassistant-stubs/util/async_.pyi +3 -3
  297. homeassistant-stubs/util/file.pyi +2 -2
  298. homeassistant-stubs/util/yaml/loader.pyi +3 -0
  299. {homeassistant_stubs-2024.2.4.dist-info → homeassistant_stubs-2024.3.0.dist-info}/METADATA +2 -2
  300. {homeassistant_stubs-2024.2.4.dist-info → homeassistant_stubs-2024.3.0.dist-info}/RECORD +302 -264
  301. {homeassistant_stubs-2024.2.4.dist-info → homeassistant_stubs-2024.3.0.dist-info}/LICENSE +0 -0
  302. {homeassistant_stubs-2024.2.4.dist-info → homeassistant_stubs-2024.3.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,11 @@
1
+ from . import ATTR_MEDIA_VOLUME_LEVEL as ATTR_MEDIA_VOLUME_LEVEL, DOMAIN as DOMAIN
2
+ from homeassistant.const import SERVICE_MEDIA_NEXT_TRACK as SERVICE_MEDIA_NEXT_TRACK, SERVICE_MEDIA_PAUSE as SERVICE_MEDIA_PAUSE, SERVICE_MEDIA_PLAY as SERVICE_MEDIA_PLAY, SERVICE_VOLUME_SET as SERVICE_VOLUME_SET
3
+ from homeassistant.core import HomeAssistant as HomeAssistant
4
+ from homeassistant.helpers import intent as intent
5
+
6
+ INTENT_MEDIA_PAUSE: str
7
+ INTENT_MEDIA_UNPAUSE: str
8
+ INTENT_MEDIA_NEXT: str
9
+ INTENT_SET_VOLUME: str
10
+
11
+ async def async_setup_intents(hass: HomeAssistant) -> None: ...
@@ -6,7 +6,7 @@ from _typeshed import Incomplete
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.const import CONF_ADDRESS as CONF_ADDRESS, CONF_HOST as CONF_HOST, CONF_NAME as CONF_NAME, CONF_PORT as CONF_PORT, CONF_TYPE as CONF_TYPE, Platform as Platform
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
- from homeassistant.exceptions import ConfigEntryError as ConfigEntryError
9
+ from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
10
10
  from typing import Any
11
11
 
12
12
  PLATFORMS: Incomplete
@@ -1,6 +1,6 @@
1
1
  from .const import CALL_TYPE_COIL as CALL_TYPE_COIL, CALL_TYPE_DISCRETE as CALL_TYPE_DISCRETE, CALL_TYPE_REGISTER_HOLDING as CALL_TYPE_REGISTER_HOLDING, CALL_TYPE_REGISTER_INPUT as CALL_TYPE_REGISTER_INPUT, CALL_TYPE_X_COILS as CALL_TYPE_X_COILS, CALL_TYPE_X_REGISTER_HOLDINGS as CALL_TYPE_X_REGISTER_HOLDINGS, CONF_BAUDRATE as CONF_BAUDRATE, CONF_BYTESIZE as CONF_BYTESIZE, CONF_CLIMATES as CONF_CLIMATES, CONF_CLOSE_COMM_ON_ERROR as CONF_CLOSE_COMM_ON_ERROR, CONF_DATA_TYPE as CONF_DATA_TYPE, CONF_DEVICE_ADDRESS as CONF_DEVICE_ADDRESS, CONF_FANS as CONF_FANS, CONF_FAN_MODE_AUTO as CONF_FAN_MODE_AUTO, CONF_FAN_MODE_DIFFUSE as CONF_FAN_MODE_DIFFUSE, CONF_FAN_MODE_FOCUS as CONF_FAN_MODE_FOCUS, CONF_FAN_MODE_HIGH as CONF_FAN_MODE_HIGH, CONF_FAN_MODE_LOW as CONF_FAN_MODE_LOW, CONF_FAN_MODE_MEDIUM as CONF_FAN_MODE_MEDIUM, CONF_FAN_MODE_MIDDLE as CONF_FAN_MODE_MIDDLE, CONF_FAN_MODE_OFF as CONF_FAN_MODE_OFF, CONF_FAN_MODE_ON as CONF_FAN_MODE_ON, CONF_FAN_MODE_REGISTER as CONF_FAN_MODE_REGISTER, CONF_FAN_MODE_TOP as CONF_FAN_MODE_TOP, CONF_FAN_MODE_VALUES as CONF_FAN_MODE_VALUES, CONF_HVAC_MODE_AUTO as CONF_HVAC_MODE_AUTO, CONF_HVAC_MODE_COOL as CONF_HVAC_MODE_COOL, CONF_HVAC_MODE_DRY as CONF_HVAC_MODE_DRY, CONF_HVAC_MODE_FAN_ONLY as CONF_HVAC_MODE_FAN_ONLY, CONF_HVAC_MODE_HEAT as CONF_HVAC_MODE_HEAT, CONF_HVAC_MODE_HEAT_COOL as CONF_HVAC_MODE_HEAT_COOL, CONF_HVAC_MODE_OFF as CONF_HVAC_MODE_OFF, CONF_HVAC_MODE_REGISTER as CONF_HVAC_MODE_REGISTER, CONF_HVAC_MODE_VALUES as CONF_HVAC_MODE_VALUES, CONF_HVAC_ONOFF_REGISTER as CONF_HVAC_ONOFF_REGISTER, CONF_INPUT_TYPE as CONF_INPUT_TYPE, CONF_LAZY_ERROR as CONF_LAZY_ERROR, CONF_MAX_TEMP as CONF_MAX_TEMP, CONF_MAX_VALUE as CONF_MAX_VALUE, CONF_MIN_TEMP as CONF_MIN_TEMP, CONF_MIN_VALUE as CONF_MIN_VALUE, CONF_MSG_WAIT as CONF_MSG_WAIT, CONF_NAN_VALUE as CONF_NAN_VALUE, CONF_PARITY as CONF_PARITY, CONF_PRECISION as CONF_PRECISION, CONF_RETRIES as CONF_RETRIES, CONF_RETRY_ON_EMPTY as CONF_RETRY_ON_EMPTY, CONF_SCALE as CONF_SCALE, CONF_SLAVE_COUNT as CONF_SLAVE_COUNT, CONF_STATE_CLOSED as CONF_STATE_CLOSED, CONF_STATE_CLOSING as CONF_STATE_CLOSING, CONF_STATE_OFF as CONF_STATE_OFF, CONF_STATE_ON as CONF_STATE_ON, CONF_STATE_OPEN as CONF_STATE_OPEN, CONF_STATE_OPENING as CONF_STATE_OPENING, CONF_STATUS_REGISTER as CONF_STATUS_REGISTER, CONF_STATUS_REGISTER_TYPE as CONF_STATUS_REGISTER_TYPE, CONF_STEP as CONF_STEP, CONF_STOPBITS as CONF_STOPBITS, CONF_SWAP as CONF_SWAP, CONF_SWAP_BYTE as CONF_SWAP_BYTE, CONF_SWAP_WORD as CONF_SWAP_WORD, CONF_SWAP_WORD_BYTE as CONF_SWAP_WORD_BYTE, CONF_TARGET_TEMP as CONF_TARGET_TEMP, CONF_TARGET_TEMP_WRITE_REGISTERS as CONF_TARGET_TEMP_WRITE_REGISTERS, CONF_VERIFY as CONF_VERIFY, CONF_VIRTUAL_COUNT as CONF_VIRTUAL_COUNT, CONF_WRITE_REGISTERS as CONF_WRITE_REGISTERS, CONF_WRITE_TYPE as CONF_WRITE_TYPE, CONF_ZERO_SUPPRESS as CONF_ZERO_SUPPRESS, DEFAULT_HUB as DEFAULT_HUB, DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL, DEFAULT_TEMP_UNIT as DEFAULT_TEMP_UNIT, DataType as DataType, RTUOVERTCP as RTUOVERTCP, SERIAL as SERIAL, TCP as TCP, UDP as UDP
2
2
  from .modbus import ModbusHub as ModbusHub, async_modbus_setup as async_modbus_setup
3
- from .validators import check_config as check_config, duplicate_fan_mode_validator as duplicate_fan_mode_validator, nan_validator as nan_validator, register_int_list_validator as register_int_list_validator, struct_validator as struct_validator
3
+ from .validators import check_config as check_config, check_hvac_target_temp_registers as check_hvac_target_temp_registers, duplicate_fan_mode_validator as duplicate_fan_mode_validator, hvac_fixedsize_reglist_validator as hvac_fixedsize_reglist_validator, nan_validator as nan_validator, register_int_list_validator as register_int_list_validator, struct_validator as struct_validator
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.sensor import CONF_STATE_CLASS as CONF_STATE_CLASS
6
6
  from homeassistant.const import CONF_ADDRESS as CONF_ADDRESS, CONF_BINARY_SENSORS as CONF_BINARY_SENSORS, CONF_COMMAND_OFF as CONF_COMMAND_OFF, CONF_COMMAND_ON as CONF_COMMAND_ON, CONF_COUNT as CONF_COUNT, CONF_COVERS as CONF_COVERS, CONF_DELAY as CONF_DELAY, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_HOST as CONF_HOST, CONF_LIGHTS as CONF_LIGHTS, CONF_METHOD as CONF_METHOD, CONF_NAME as CONF_NAME, CONF_OFFSET as CONF_OFFSET, CONF_PORT as CONF_PORT, CONF_SCAN_INTERVAL as CONF_SCAN_INTERVAL, CONF_SENSORS as CONF_SENSORS, CONF_SLAVE as CONF_SLAVE, CONF_STRUCTURE as CONF_STRUCTURE, CONF_SWITCHES as CONF_SWITCHES, CONF_TEMPERATURE_UNIT as CONF_TEMPERATURE_UNIT, CONF_TIMEOUT as CONF_TIMEOUT, CONF_TYPE as CONF_TYPE, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT
@@ -13,6 +13,7 @@ from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfo
13
13
  from typing import Any
14
14
 
15
15
  PARALLEL_UPDATES: int
16
+ HVACMODE_TO_TARG_TEMP_REG_INDEX_ARRAY: Incomplete
16
17
 
17
18
  async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None) -> None: ...
18
19
 
@@ -1,5 +1,6 @@
1
- from .const import CONF_DATA_TYPE as CONF_DATA_TYPE, CONF_DEVICE_ADDRESS as CONF_DEVICE_ADDRESS, CONF_FAN_MODE_REGISTER as CONF_FAN_MODE_REGISTER, CONF_FAN_MODE_VALUES as CONF_FAN_MODE_VALUES, CONF_HVAC_MODE_REGISTER as CONF_HVAC_MODE_REGISTER, CONF_INPUT_TYPE as CONF_INPUT_TYPE, CONF_SLAVE_COUNT as CONF_SLAVE_COUNT, CONF_SWAP as CONF_SWAP, CONF_SWAP_BYTE as CONF_SWAP_BYTE, CONF_SWAP_WORD as CONF_SWAP_WORD, CONF_SWAP_WORD_BYTE as CONF_SWAP_WORD_BYTE, CONF_TARGET_TEMP as CONF_TARGET_TEMP, CONF_VIRTUAL_COUNT as CONF_VIRTUAL_COUNT, CONF_WRITE_TYPE as CONF_WRITE_TYPE, DEFAULT_HUB as DEFAULT_HUB, DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL, DataType as DataType, PLATFORMS as PLATFORMS, SERIAL as SERIAL
1
+ from .const import CONF_DATA_TYPE as CONF_DATA_TYPE, CONF_DEVICE_ADDRESS as CONF_DEVICE_ADDRESS, CONF_FAN_MODE_REGISTER as CONF_FAN_MODE_REGISTER, CONF_FAN_MODE_VALUES as CONF_FAN_MODE_VALUES, CONF_HVAC_MODE_REGISTER as CONF_HVAC_MODE_REGISTER, CONF_HVAC_ONOFF_REGISTER as CONF_HVAC_ONOFF_REGISTER, CONF_INPUT_TYPE as CONF_INPUT_TYPE, CONF_SLAVE_COUNT as CONF_SLAVE_COUNT, CONF_SWAP as CONF_SWAP, CONF_SWAP_BYTE as CONF_SWAP_BYTE, CONF_SWAP_WORD as CONF_SWAP_WORD, CONF_SWAP_WORD_BYTE as CONF_SWAP_WORD_BYTE, CONF_TARGET_TEMP as CONF_TARGET_TEMP, CONF_VIRTUAL_COUNT as CONF_VIRTUAL_COUNT, CONF_WRITE_TYPE as CONF_WRITE_TYPE, DEFAULT_HUB as DEFAULT_HUB, DEFAULT_SCAN_INTERVAL as DEFAULT_SCAN_INTERVAL, DataType as DataType, PLATFORMS as PLATFORMS, SERIAL as SERIAL
2
2
  from _typeshed import Incomplete
3
+ from homeassistant.components.climate import HVACMode as HVACMode
3
4
  from homeassistant.const import CONF_ADDRESS as CONF_ADDRESS, CONF_COMMAND_OFF as CONF_COMMAND_OFF, CONF_COMMAND_ON as CONF_COMMAND_ON, CONF_COUNT as CONF_COUNT, CONF_HOST as CONF_HOST, CONF_NAME as CONF_NAME, CONF_PORT as CONF_PORT, CONF_SCAN_INTERVAL as CONF_SCAN_INTERVAL, CONF_SLAVE as CONF_SLAVE, CONF_STRUCTURE as CONF_STRUCTURE, CONF_TIMEOUT as CONF_TIMEOUT, CONF_TYPE as CONF_TYPE
4
5
  from typing import Any, NamedTuple
5
6
 
@@ -24,10 +25,9 @@ class PARM_IS_LEGAL(NamedTuple):
24
25
  DEFAULT_STRUCT_FORMAT: Incomplete
25
26
 
26
27
  def struct_validator(config: dict[str, Any]) -> dict[str, Any]: ...
28
+ def hvac_fixedsize_reglist_validator(value: Any) -> list: ...
27
29
  def nan_validator(value: Any) -> int: ...
28
30
  def duplicate_fan_mode_validator(config: dict[str, Any]) -> dict: ...
29
- def scan_interval_validator(config: dict) -> dict: ...
30
- def duplicate_entity_validator(config: dict) -> dict: ...
31
- def duplicate_modbus_validator(config: dict) -> dict: ...
31
+ def check_hvac_target_temp_registers(config: dict) -> dict: ...
32
32
  def register_int_list_validator(value: Any) -> Any: ...
33
33
  def check_config(config: dict) -> dict: ...
@@ -2,8 +2,8 @@ from . import debug_info as debug_info, discovery as discovery
2
2
  from .client import MQTT as MQTT, async_publish as async_publish, async_subscribe as async_subscribe, publish as publish, subscribe as subscribe
3
3
  from .config import MQTT_BASE_SCHEMA as MQTT_BASE_SCHEMA, MQTT_RO_SCHEMA as MQTT_RO_SCHEMA, MQTT_RW_SCHEMA as MQTT_RW_SCHEMA
4
4
  from .config_integration import CONFIG_SCHEMA_BASE as CONFIG_SCHEMA_BASE
5
- from .const import ATTR_PAYLOAD as ATTR_PAYLOAD, ATTR_QOS as ATTR_QOS, ATTR_RETAIN as ATTR_RETAIN, ATTR_TOPIC as ATTR_TOPIC, CONF_BIRTH_MESSAGE as CONF_BIRTH_MESSAGE, CONF_BROKER as CONF_BROKER, CONF_CERTIFICATE as CONF_CERTIFICATE, CONF_CLIENT_CERT as CONF_CLIENT_CERT, CONF_CLIENT_KEY as CONF_CLIENT_KEY, CONF_COMMAND_TOPIC as CONF_COMMAND_TOPIC, CONF_DISCOVERY_PREFIX as CONF_DISCOVERY_PREFIX, CONF_KEEPALIVE as CONF_KEEPALIVE, CONF_QOS as CONF_QOS, CONF_STATE_TOPIC as CONF_STATE_TOPIC, CONF_TLS_INSECURE as CONF_TLS_INSECURE, CONF_TOPIC as CONF_TOPIC, CONF_TRANSPORT as CONF_TRANSPORT, CONF_WILL_MESSAGE as CONF_WILL_MESSAGE, CONF_WS_HEADERS as CONF_WS_HEADERS, CONF_WS_PATH as CONF_WS_PATH, DATA_MQTT as DATA_MQTT, DATA_MQTT_AVAILABLE as DATA_MQTT_AVAILABLE, DEFAULT_DISCOVERY as DEFAULT_DISCOVERY, DEFAULT_ENCODING as DEFAULT_ENCODING, DEFAULT_PREFIX as DEFAULT_PREFIX, DEFAULT_QOS as DEFAULT_QOS, DEFAULT_RETAIN as DEFAULT_RETAIN, DOMAIN as DOMAIN, MQTT_CONNECTED as MQTT_CONNECTED, MQTT_DISCONNECTED as MQTT_DISCONNECTED, PLATFORMS as PLATFORMS, RELOADABLE_PLATFORMS as RELOADABLE_PLATFORMS
6
- from .models import MqttCommandTemplate as MqttCommandTemplate, MqttData as MqttData, MqttValueTemplate as MqttValueTemplate, PublishPayloadType as PublishPayloadType, ReceiveMessage as ReceiveMessage, ReceivePayloadType as ReceivePayloadType
5
+ from .const import ATTR_PAYLOAD as ATTR_PAYLOAD, ATTR_QOS as ATTR_QOS, ATTR_RETAIN as ATTR_RETAIN, ATTR_TOPIC as ATTR_TOPIC, CONF_BIRTH_MESSAGE as CONF_BIRTH_MESSAGE, CONF_BROKER as CONF_BROKER, CONF_CERTIFICATE as CONF_CERTIFICATE, CONF_CLIENT_CERT as CONF_CLIENT_CERT, CONF_CLIENT_KEY as CONF_CLIENT_KEY, CONF_COMMAND_TOPIC as CONF_COMMAND_TOPIC, CONF_DISCOVERY_PREFIX as CONF_DISCOVERY_PREFIX, CONF_KEEPALIVE as CONF_KEEPALIVE, CONF_QOS as CONF_QOS, CONF_STATE_TOPIC as CONF_STATE_TOPIC, CONF_TLS_INSECURE as CONF_TLS_INSECURE, CONF_TOPIC as CONF_TOPIC, CONF_TRANSPORT as CONF_TRANSPORT, CONF_WILL_MESSAGE as CONF_WILL_MESSAGE, CONF_WS_HEADERS as CONF_WS_HEADERS, CONF_WS_PATH as CONF_WS_PATH, DATA_MQTT as DATA_MQTT, DATA_MQTT_AVAILABLE as DATA_MQTT_AVAILABLE, DEFAULT_DISCOVERY as DEFAULT_DISCOVERY, DEFAULT_ENCODING as DEFAULT_ENCODING, DEFAULT_PREFIX as DEFAULT_PREFIX, DEFAULT_QOS as DEFAULT_QOS, DEFAULT_RETAIN as DEFAULT_RETAIN, DOMAIN as DOMAIN, MQTT_CONNECTED as MQTT_CONNECTED, MQTT_DISCONNECTED as MQTT_DISCONNECTED, PLATFORMS as PLATFORMS, RELOADABLE_PLATFORMS as RELOADABLE_PLATFORMS, TEMPLATE_ERRORS as TEMPLATE_ERRORS
6
+ from .models import MqttCommandTemplate as MqttCommandTemplate, MqttData as MqttData, MqttValueTemplate as MqttValueTemplate, PayloadSentinel as PayloadSentinel, PublishPayloadType as PublishPayloadType, ReceiveMessage as ReceiveMessage, ReceivePayloadType as ReceivePayloadType
7
7
  from .util import async_create_certificate_temp_files as async_create_certificate_temp_files, async_wait_for_mqtt_client as async_wait_for_mqtt_client, get_mqtt_data as get_mqtt_data, mqtt_config_entry_enabled as mqtt_config_entry_enabled, valid_publish_topic as valid_publish_topic, valid_qos_schema as valid_qos_schema, valid_subscribe_topic as valid_subscribe_topic
8
8
  from _typeshed import Incomplete
9
9
  from collections.abc import Callable
@@ -11,7 +11,7 @@ from homeassistant.components import websocket_api as websocket_api
11
11
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
12
12
  from homeassistant.const import CONF_CLIENT_ID as CONF_CLIENT_ID, CONF_DISCOVERY as CONF_DISCOVERY, CONF_PASSWORD as CONF_PASSWORD, CONF_PAYLOAD as CONF_PAYLOAD, CONF_PORT as CONF_PORT, CONF_PROTOCOL as CONF_PROTOCOL, CONF_USERNAME as CONF_USERNAME, SERVICE_RELOAD as SERVICE_RELOAD
13
13
  from homeassistant.core import HassJob as HassJob, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
14
- from homeassistant.exceptions import ConfigValidationError as ConfigValidationError, ServiceValidationError as ServiceValidationError, TemplateError as TemplateError, Unauthorized as Unauthorized
14
+ from homeassistant.exceptions import ConfigValidationError as ConfigValidationError, ServiceValidationError as ServiceValidationError, Unauthorized as Unauthorized
15
15
  from homeassistant.helpers import template as template
16
16
  from homeassistant.helpers.device_registry import DeviceEntry as DeviceEntry
17
17
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
@@ -2,7 +2,7 @@ import abc
2
2
  import voluptuous as vol
3
3
  from . import subscription as subscription
4
4
  from .config import DEFAULT_RETAIN as DEFAULT_RETAIN, MQTT_BASE_SCHEMA as MQTT_BASE_SCHEMA
5
- from .const import CONF_ACTION_TEMPLATE as CONF_ACTION_TEMPLATE, CONF_ACTION_TOPIC as CONF_ACTION_TOPIC, CONF_CURRENT_HUMIDITY_TEMPLATE as CONF_CURRENT_HUMIDITY_TEMPLATE, CONF_CURRENT_HUMIDITY_TOPIC as CONF_CURRENT_HUMIDITY_TOPIC, CONF_CURRENT_TEMP_TEMPLATE as CONF_CURRENT_TEMP_TEMPLATE, CONF_CURRENT_TEMP_TOPIC as CONF_CURRENT_TEMP_TOPIC, CONF_ENCODING as CONF_ENCODING, CONF_MODE_COMMAND_TEMPLATE as CONF_MODE_COMMAND_TEMPLATE, CONF_MODE_COMMAND_TOPIC as CONF_MODE_COMMAND_TOPIC, CONF_MODE_LIST as CONF_MODE_LIST, CONF_MODE_STATE_TEMPLATE as CONF_MODE_STATE_TEMPLATE, CONF_MODE_STATE_TOPIC as CONF_MODE_STATE_TOPIC, CONF_POWER_COMMAND_TEMPLATE as CONF_POWER_COMMAND_TEMPLATE, CONF_POWER_COMMAND_TOPIC as CONF_POWER_COMMAND_TOPIC, CONF_PRECISION as CONF_PRECISION, CONF_QOS as CONF_QOS, CONF_RETAIN as CONF_RETAIN, CONF_TEMP_COMMAND_TEMPLATE as CONF_TEMP_COMMAND_TEMPLATE, CONF_TEMP_COMMAND_TOPIC as CONF_TEMP_COMMAND_TOPIC, CONF_TEMP_INITIAL as CONF_TEMP_INITIAL, CONF_TEMP_MAX as CONF_TEMP_MAX, CONF_TEMP_MIN as CONF_TEMP_MIN, CONF_TEMP_STATE_TEMPLATE as CONF_TEMP_STATE_TEMPLATE, CONF_TEMP_STATE_TOPIC as CONF_TEMP_STATE_TOPIC, DEFAULT_OPTIMISTIC as DEFAULT_OPTIMISTIC, DOMAIN as DOMAIN, PAYLOAD_NONE as PAYLOAD_NONE
5
+ from .const import CONF_ACTION_TEMPLATE as CONF_ACTION_TEMPLATE, CONF_ACTION_TOPIC as CONF_ACTION_TOPIC, CONF_CURRENT_HUMIDITY_TEMPLATE as CONF_CURRENT_HUMIDITY_TEMPLATE, CONF_CURRENT_HUMIDITY_TOPIC as CONF_CURRENT_HUMIDITY_TOPIC, CONF_CURRENT_TEMP_TEMPLATE as CONF_CURRENT_TEMP_TEMPLATE, CONF_CURRENT_TEMP_TOPIC as CONF_CURRENT_TEMP_TOPIC, CONF_ENCODING as CONF_ENCODING, CONF_MODE_COMMAND_TEMPLATE as CONF_MODE_COMMAND_TEMPLATE, CONF_MODE_COMMAND_TOPIC as CONF_MODE_COMMAND_TOPIC, CONF_MODE_LIST as CONF_MODE_LIST, CONF_MODE_STATE_TEMPLATE as CONF_MODE_STATE_TEMPLATE, CONF_MODE_STATE_TOPIC as CONF_MODE_STATE_TOPIC, CONF_POWER_COMMAND_TEMPLATE as CONF_POWER_COMMAND_TEMPLATE, CONF_POWER_COMMAND_TOPIC as CONF_POWER_COMMAND_TOPIC, CONF_PRECISION as CONF_PRECISION, CONF_QOS as CONF_QOS, CONF_RETAIN as CONF_RETAIN, CONF_TEMP_COMMAND_TEMPLATE as CONF_TEMP_COMMAND_TEMPLATE, CONF_TEMP_COMMAND_TOPIC as CONF_TEMP_COMMAND_TOPIC, CONF_TEMP_INITIAL as CONF_TEMP_INITIAL, CONF_TEMP_MAX as CONF_TEMP_MAX, CONF_TEMP_MIN as CONF_TEMP_MIN, CONF_TEMP_STATE_TEMPLATE as CONF_TEMP_STATE_TEMPLATE, CONF_TEMP_STATE_TOPIC as CONF_TEMP_STATE_TOPIC, DEFAULT_OPTIMISTIC as DEFAULT_OPTIMISTIC, PAYLOAD_NONE as PAYLOAD_NONE
6
6
  from .debug_info import log_messages as log_messages
7
7
  from .mixins import MQTT_ENTITY_COMMON_SCHEMA as MQTT_ENTITY_COMMON_SCHEMA, MqttEntity as MqttEntity, async_setup_entity_entry_helper as async_setup_entity_entry_helper, write_state_on_attr_change as write_state_on_attr_change
8
8
  from .models import MqttCommandTemplate as MqttCommandTemplate, MqttValueTemplate as MqttValueTemplate, PublishPayloadType as PublishPayloadType, ReceiveMessage as ReceiveMessage, ReceivePayloadType as ReceivePayloadType
@@ -16,14 +16,12 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
16
16
  from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, CONF_NAME as CONF_NAME, CONF_OPTIMISTIC as CONF_OPTIMISTIC, CONF_PAYLOAD_OFF as CONF_PAYLOAD_OFF, CONF_PAYLOAD_ON as CONF_PAYLOAD_ON, CONF_TEMPERATURE_UNIT as CONF_TEMPERATURE_UNIT, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, PRECISION_HALVES as PRECISION_HALVES, PRECISION_TENTHS as PRECISION_TENTHS, PRECISION_WHOLE as PRECISION_WHOLE, UnitOfTemperature as UnitOfTemperature
17
17
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
18
18
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
19
- from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
20
19
  from homeassistant.helpers.template import Template as Template
21
20
  from homeassistant.helpers.typing import ConfigType as ConfigType
22
21
  from homeassistant.util.unit_conversion import TemperatureConverter as TemperatureConverter
23
22
  from typing import Any
24
23
 
25
24
  _LOGGER: Incomplete
26
- MQTT_CLIMATE_AUX_DOCS: str
27
25
  DEFAULT_NAME: str
28
26
  CONF_AUX_COMMAND_TOPIC: str
29
27
  CONF_AUX_STATE_TEMPLATE: str
@@ -99,7 +97,6 @@ class MqttTemperatureControlEntity(MqttEntity, ABC, metaclass=abc.ABCMeta):
99
97
  class MqttClimate(MqttTemperatureControlEntity, ClimateEntity):
100
98
  _attr_fan_mode: str | None
101
99
  _attr_hvac_mode: HVACMode | None
102
- _attr_is_aux_heat: bool | None
103
100
  _attr_swing_mode: str | None
104
101
  _default_name = DEFAULT_NAME
105
102
  _entity_id_format: Incomplete
@@ -130,7 +127,6 @@ class MqttClimate(MqttTemperatureControlEntity, ClimateEntity):
130
127
  _command_templates: Incomplete
131
128
  _attr_supported_features: Incomplete
132
129
  def _setup_from_config(self, config: ConfigType) -> None: ...
133
- async def mqtt_async_added_to_hass(self) -> None: ...
134
130
  _attr_hvac_action: Incomplete
135
131
  def _prepare_subscribe_topics(self) -> None: ...
136
132
  async def async_set_temperature(self, **kwargs: Any) -> None: ...
@@ -139,8 +135,5 @@ class MqttClimate(MqttTemperatureControlEntity, ClimateEntity):
139
135
  async def async_set_fan_mode(self, fan_mode: str) -> None: ...
140
136
  async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: ...
141
137
  async def async_set_preset_mode(self, preset_mode: str) -> None: ...
142
- async def _set_aux_heat(self, state: bool) -> None: ...
143
- async def async_turn_aux_heat_on(self) -> None: ...
144
- async def async_turn_aux_heat_off(self) -> None: ...
145
138
  async def async_turn_on(self) -> None: ...
146
139
  async def async_turn_off(self) -> None: ...
@@ -1,5 +1,6 @@
1
1
  from _typeshed import Incomplete
2
2
  from homeassistant.const import CONF_PAYLOAD as CONF_PAYLOAD, Platform as Platform
3
+ from homeassistant.exceptions import TemplateError as TemplateError
3
4
 
4
5
  ATTR_DISCOVERY_HASH: str
5
6
  ATTR_DISCOVERY_PAYLOAD: str
@@ -112,3 +113,4 @@ PAYLOAD_EMPTY_JSON: str
112
113
  PAYLOAD_NONE: str
113
114
  PLATFORMS: Incomplete
114
115
  RELOADABLE_PLATFORMS: Incomplete
116
+ TEMPLATE_ERRORS: Incomplete
@@ -1,7 +1,7 @@
1
1
  import voluptuous as vol
2
2
  from . import subscription as subscription
3
3
  from .config import MQTT_RO_SCHEMA as MQTT_RO_SCHEMA
4
- from .const import CONF_ENCODING as CONF_ENCODING, CONF_QOS as CONF_QOS, CONF_STATE_TOPIC as CONF_STATE_TOPIC, PAYLOAD_EMPTY_JSON as PAYLOAD_EMPTY_JSON, PAYLOAD_NONE as PAYLOAD_NONE
4
+ from .const import CONF_ENCODING as CONF_ENCODING, CONF_QOS as CONF_QOS, CONF_STATE_TOPIC as CONF_STATE_TOPIC, PAYLOAD_EMPTY_JSON as PAYLOAD_EMPTY_JSON, PAYLOAD_NONE as PAYLOAD_NONE, TEMPLATE_ERRORS as TEMPLATE_ERRORS
5
5
  from .debug_info import log_messages as log_messages
6
6
  from .mixins import MQTT_ENTITY_COMMON_SCHEMA as MQTT_ENTITY_COMMON_SCHEMA, MqttEntity as MqttEntity, async_setup_entity_entry_helper as async_setup_entity_entry_helper
7
7
  from .models import MqttValueTemplate as MqttValueTemplate, PayloadSentinel as PayloadSentinel, ReceiveMessage as ReceiveMessage, ReceivePayloadType as ReceivePayloadType
@@ -2,7 +2,7 @@ import httpx
2
2
  import voluptuous as vol
3
3
  from . import subscription as subscription
4
4
  from .config import MQTT_BASE_SCHEMA as MQTT_BASE_SCHEMA
5
- from .const import CONF_ENCODING as CONF_ENCODING, CONF_QOS as CONF_QOS
5
+ from .const import CONF_ENCODING as CONF_ENCODING, CONF_QOS as CONF_QOS, TEMPLATE_ERRORS as TEMPLATE_ERRORS
6
6
  from .debug_info import log_messages as log_messages
7
7
  from .mixins import MQTT_ENTITY_COMMON_SCHEMA as MQTT_ENTITY_COMMON_SCHEMA, MqttEntity as MqttEntity, async_setup_entity_entry_helper as async_setup_entity_entry_helper
8
8
  from .models import MessageCallbackType as MessageCallbackType, MqttValueTemplate as MqttValueTemplate, ReceiveMessage as ReceiveMessage
@@ -2,10 +2,10 @@ import abc
2
2
  import voluptuous as vol
3
3
  from . import debug_info as debug_info, subscription as subscription
4
4
  from .client import async_publish as async_publish
5
- from .const import ATTR_DISCOVERY_HASH as ATTR_DISCOVERY_HASH, ATTR_DISCOVERY_PAYLOAD as ATTR_DISCOVERY_PAYLOAD, ATTR_DISCOVERY_TOPIC as ATTR_DISCOVERY_TOPIC, CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_CONFIGURATION_URL as CONF_CONFIGURATION_URL, CONF_CONNECTIONS as CONF_CONNECTIONS, CONF_DEPRECATED_VIA_HUB as CONF_DEPRECATED_VIA_HUB, CONF_ENCODING as CONF_ENCODING, CONF_HW_VERSION as CONF_HW_VERSION, CONF_IDENTIFIERS as CONF_IDENTIFIERS, CONF_MANUFACTURER as CONF_MANUFACTURER, CONF_OBJECT_ID as CONF_OBJECT_ID, CONF_ORIGIN as CONF_ORIGIN, CONF_QOS as CONF_QOS, CONF_SCHEMA as CONF_SCHEMA, CONF_SERIAL_NUMBER as CONF_SERIAL_NUMBER, CONF_SUGGESTED_AREA as CONF_SUGGESTED_AREA, CONF_SW_VERSION as CONF_SW_VERSION, CONF_TOPIC as CONF_TOPIC, CONF_VIA_DEVICE as CONF_VIA_DEVICE, DEFAULT_ENCODING as DEFAULT_ENCODING, DEFAULT_PAYLOAD_AVAILABLE as DEFAULT_PAYLOAD_AVAILABLE, DEFAULT_PAYLOAD_NOT_AVAILABLE as DEFAULT_PAYLOAD_NOT_AVAILABLE, DOMAIN as DOMAIN, MQTT_CONNECTED as MQTT_CONNECTED, MQTT_DISCONNECTED as MQTT_DISCONNECTED
5
+ from .const import ATTR_DISCOVERY_HASH as ATTR_DISCOVERY_HASH, ATTR_DISCOVERY_PAYLOAD as ATTR_DISCOVERY_PAYLOAD, ATTR_DISCOVERY_TOPIC as ATTR_DISCOVERY_TOPIC, CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_CONFIGURATION_URL as CONF_CONFIGURATION_URL, CONF_CONNECTIONS as CONF_CONNECTIONS, CONF_DEPRECATED_VIA_HUB as CONF_DEPRECATED_VIA_HUB, CONF_ENCODING as CONF_ENCODING, CONF_HW_VERSION as CONF_HW_VERSION, CONF_IDENTIFIERS as CONF_IDENTIFIERS, CONF_MANUFACTURER as CONF_MANUFACTURER, CONF_OBJECT_ID as CONF_OBJECT_ID, CONF_ORIGIN as CONF_ORIGIN, CONF_QOS as CONF_QOS, CONF_SCHEMA as CONF_SCHEMA, CONF_SERIAL_NUMBER as CONF_SERIAL_NUMBER, CONF_SUGGESTED_AREA as CONF_SUGGESTED_AREA, CONF_SW_VERSION as CONF_SW_VERSION, CONF_TOPIC as CONF_TOPIC, CONF_VIA_DEVICE as CONF_VIA_DEVICE, DEFAULT_ENCODING as DEFAULT_ENCODING, DEFAULT_PAYLOAD_AVAILABLE as DEFAULT_PAYLOAD_AVAILABLE, DEFAULT_PAYLOAD_NOT_AVAILABLE as DEFAULT_PAYLOAD_NOT_AVAILABLE, DOMAIN as DOMAIN, MQTT_CONNECTED as MQTT_CONNECTED, MQTT_DISCONNECTED as MQTT_DISCONNECTED, TEMPLATE_ERRORS as TEMPLATE_ERRORS
6
6
  from .debug_info import log_message as log_message, log_messages as log_messages
7
7
  from .discovery import MQTTDiscoveryPayload as MQTTDiscoveryPayload, MQTT_DISCOVERY_DONE as MQTT_DISCOVERY_DONE, MQTT_DISCOVERY_NEW as MQTT_DISCOVERY_NEW, MQTT_DISCOVERY_UPDATED as MQTT_DISCOVERY_UPDATED, MQTT_ORIGIN_INFO_SCHEMA as MQTT_ORIGIN_INFO_SCHEMA, clear_discovery_hash as clear_discovery_hash, set_discovery_hash as set_discovery_hash
8
- from .models import MessageCallbackType as MessageCallbackType, MqttValueTemplate as MqttValueTemplate, PublishPayloadType as PublishPayloadType, ReceiveMessage as ReceiveMessage, ReceivePayloadType as ReceivePayloadType
8
+ from .models import MessageCallbackType as MessageCallbackType, MqttValueTemplate as MqttValueTemplate, PublishPayloadType as PublishPayloadType, ReceiveMessage as ReceiveMessage
9
9
  from .subscription import EntitySubscription as EntitySubscription, async_prepare_subscribe_topics as async_prepare_subscribe_topics, async_subscribe_topics as async_subscribe_topics, async_unsubscribe_topics as async_unsubscribe_topics
10
10
  from .util import get_mqtt_data as get_mqtt_data, mqtt_config_entry_enabled as mqtt_config_entry_enabled, valid_subscribe_topic as valid_subscribe_topic
11
11
  from _typeshed import Incomplete
@@ -2,6 +2,7 @@ import asyncio
2
2
  import datetime as dt
3
3
  import voluptuous as vol
4
4
  from .client import MQTT as MQTT, Subscription as Subscription
5
+ from .const import DOMAIN as DOMAIN, TEMPLATE_ERRORS as TEMPLATE_ERRORS
5
6
  from .debug_info import TimestampedPublishMessage as TimestampedPublishMessage
6
7
  from .device_trigger import Trigger as Trigger
7
8
  from .discovery import MQTTDiscoveryPayload as MQTTDiscoveryPayload
@@ -13,6 +14,7 @@ from dataclasses import dataclass
13
14
  from enum import StrEnum
14
15
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_NAME as ATTR_NAME
15
16
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, callback as callback
17
+ from homeassistant.exceptions import ServiceValidationError as ServiceValidationError, TemplateError as TemplateError
16
18
  from homeassistant.helpers import template as template
17
19
  from homeassistant.helpers.entity import Entity as Entity
18
20
  from homeassistant.helpers.service_info.mqtt import ReceivePayloadType as ReceivePayloadType
@@ -72,6 +74,14 @@ class MqttOriginInfo(TypedDict, total=False):
72
74
  hw_version: str
73
75
  support_url: str
74
76
 
77
+ class MqttCommandTemplateException(ServiceValidationError):
78
+ translation_domain: Incomplete
79
+ translation_key: str
80
+ translation_placeholders: Incomplete
81
+ _message: Incomplete
82
+ def __init__(self, *args: object, base_exception: Exception, command_template: str, value: PublishPayloadType, entity_id: str | None = None) -> None: ...
83
+ def __str__(self) -> str: ...
84
+
75
85
  class MqttCommandTemplate:
76
86
  _template_state: Incomplete
77
87
  _command_template: Incomplete
@@ -1,6 +1,6 @@
1
1
  from . import subscription as subscription
2
2
  from .config import MQTT_BASE_SCHEMA as MQTT_BASE_SCHEMA
3
- from .const import ATTR_DISCOVERY_HASH as ATTR_DISCOVERY_HASH, CONF_QOS as CONF_QOS, CONF_TOPIC as CONF_TOPIC
3
+ from .const import ATTR_DISCOVERY_HASH as ATTR_DISCOVERY_HASH, CONF_QOS as CONF_QOS, CONF_TOPIC as CONF_TOPIC, TEMPLATE_ERRORS as TEMPLATE_ERRORS
4
4
  from .discovery import MQTTDiscoveryPayload as MQTTDiscoveryPayload
5
5
  from .mixins import MQTT_ENTITY_DEVICE_INFO_SCHEMA as MQTT_ENTITY_DEVICE_INFO_SCHEMA, MqttDiscoveryDeviceUpdate as MqttDiscoveryDeviceUpdate, async_handle_schema_error as async_handle_schema_error, async_setup_non_entity_entry_helper as async_setup_non_entity_entry_helper, send_discovery_done as send_discovery_done, update_device as update_device
6
6
  from .models import MqttValueTemplate as MqttValueTemplate, ReceiveMessage as ReceiveMessage, ReceivePayloadType as ReceivePayloadType
@@ -1,9 +1,10 @@
1
1
  from .api import AsyncConfigEntryAuth as AsyncConfigEntryAuth
2
- from .const import DOMAIN as DOMAIN
2
+ from .const import DOMAIN as DOMAIN, OAUTH2_SCOPES as OAUTH2_SCOPES
3
3
  from .coordinator import MyUplinkDataCoordinator as MyUplinkDataCoordinator
4
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
5
  from homeassistant.const import Platform as Platform
6
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
7
+ from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
7
8
  from homeassistant.helpers import aiohttp_client as aiohttp_client, config_entry_oauth2_flow as config_entry_oauth2_flow
8
9
 
9
10
  PLATFORMS: list[Platform]
@@ -0,0 +1,24 @@
1
+ from . import MyUplinkDataCoordinator as MyUplinkDataCoordinator
2
+ from .const import DOMAIN as DOMAIN
3
+ from .entity import MyUplinkEntity as MyUplinkEntity
4
+ from .helpers import find_matching_platform as find_matching_platform
5
+ from _typeshed import Incomplete
6
+ from homeassistant.components.binary_sensor import BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.const import Platform as Platform
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
+ from myuplink import DevicePoint as DevicePoint
12
+
13
+ CATEGORY_BASED_DESCRIPTIONS: dict[str, dict[str, BinarySensorEntityDescription]]
14
+
15
+ def get_description(device_point: DevicePoint) -> BinarySensorEntityDescription | None: ...
16
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
17
+
18
+ class MyUplinkDevicePointBinarySensor(MyUplinkEntity, BinarySensorEntity):
19
+ point_id: Incomplete
20
+ _attr_name: Incomplete
21
+ entity_description: Incomplete
22
+ def __init__(self, coordinator: MyUplinkDataCoordinator, device_id: str, device_point: DevicePoint, entity_description: BinarySensorEntityDescription | None, unique_id_suffix: str) -> None: ...
23
+ @property
24
+ def is_on(self) -> bool: ...
@@ -1,11 +1,18 @@
1
1
  import logging
2
2
  from .const import DOMAIN as DOMAIN, OAUTH2_SCOPES as OAUTH2_SCOPES
3
+ from collections.abc import Mapping
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
+ from homeassistant.data_entry_flow import FlowResult as FlowResult
3
6
  from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
4
7
  from typing import Any
5
8
 
6
9
  class OAuth2FlowHandler(config_entry_oauth2_flow.AbstractOAuth2FlowHandler, domain=DOMAIN):
7
10
  DOMAIN = DOMAIN
11
+ config_entry_reauth: ConfigEntry | None
8
12
  @property
9
13
  def logger(self) -> logging.Logger: ...
10
14
  @property
11
15
  def extra_authorize_data(self) -> dict[str, Any]: ...
16
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult: ...
17
+ async def async_step_reauth_confirm(self, user_input: Mapping[str, Any] | None = None) -> FlowResult: ...
18
+ async def async_oauth_create_entry(self, data: dict) -> FlowResult: ...
@@ -3,8 +3,7 @@ from dataclasses import dataclass
3
3
  from datetime import datetime
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant
5
5
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
6
- from myuplink.api import MyUplinkAPI as MyUplinkAPI
7
- from myuplink.models import Device as Device, DevicePoint as DevicePoint, System as System
6
+ from myuplink import Device as Device, DevicePoint as DevicePoint, MyUplinkAPI as MyUplinkAPI, System as System
8
7
 
9
8
  _LOGGER: Incomplete
10
9
 
@@ -0,0 +1,11 @@
1
+ from .const import DOMAIN as DOMAIN
2
+ from _typeshed import Incomplete
3
+ from homeassistant.components.diagnostics import async_redact_data as async_redact_data
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
+ from homeassistant.core import HomeAssistant as HomeAssistant
6
+ from myuplink import MyUplinkAPI as MyUplinkAPI
7
+ from typing import Any
8
+
9
+ TO_REDACT: Incomplete
10
+
11
+ async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: ConfigEntry) -> dict[str, Any]: ...
@@ -0,0 +1,6 @@
1
+ from homeassistant.components.number import NumberEntityDescription as NumberEntityDescription
2
+ from homeassistant.components.sensor import SensorEntityDescription as SensorEntityDescription
3
+ from homeassistant.const import Platform as Platform
4
+ from myuplink import DevicePoint as DevicePoint
5
+
6
+ def find_matching_platform(device_point: DevicePoint, description: SensorEntityDescription | NumberEntityDescription | None = None) -> Platform: ...
@@ -0,0 +1,30 @@
1
+ from . import MyUplinkDataCoordinator as MyUplinkDataCoordinator
2
+ from .const import DOMAIN as DOMAIN
3
+ from .entity import MyUplinkEntity as MyUplinkEntity
4
+ from .helpers import find_matching_platform as find_matching_platform
5
+ from _typeshed import Incomplete
6
+ from homeassistant.components.number import NumberEntity as NumberEntity, NumberEntityDescription as NumberEntityDescription
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.const import Platform as Platform
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
+ from myuplink import DevicePoint as DevicePoint
13
+
14
+ DEVICE_POINT_UNIT_DESCRIPTIONS: dict[str, NumberEntityDescription]
15
+ CATEGORY_BASED_DESCRIPTIONS: dict[str, dict[str, NumberEntityDescription]]
16
+
17
+ def get_description(device_point: DevicePoint) -> NumberEntityDescription | None: ...
18
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
19
+
20
+ class MyUplinkNumber(MyUplinkEntity, NumberEntity):
21
+ point_id: Incomplete
22
+ _attr_name: Incomplete
23
+ _attr_native_min_value: Incomplete
24
+ _attr_native_max_value: Incomplete
25
+ _attr_step_value: Incomplete
26
+ entity_description: Incomplete
27
+ def __init__(self, coordinator: MyUplinkDataCoordinator, device_id: str, device_point: DevicePoint, entity_description: NumberEntityDescription | None, unique_id_suffix: str) -> None: ...
28
+ @property
29
+ def native_value(self) -> float: ...
30
+ async def async_set_native_value(self, value: float) -> None: ...
@@ -1,17 +1,21 @@
1
1
  from . import MyUplinkDataCoordinator as MyUplinkDataCoordinator
2
2
  from .const import DOMAIN as DOMAIN
3
3
  from .entity import MyUplinkEntity as MyUplinkEntity
4
+ from .helpers import find_matching_platform as find_matching_platform
4
5
  from _typeshed import Incomplete
5
6
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
6
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
- from homeassistant.const import UnitOfTemperature as UnitOfTemperature
8
+ from homeassistant.const import Platform as Platform, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfEnergy as UnitOfEnergy, UnitOfFrequency as UnitOfFrequency, UnitOfPower as UnitOfPower, UnitOfPressure as UnitOfPressure, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolumeFlowRate as UnitOfVolumeFlowRate
8
9
  from homeassistant.core import HomeAssistant as HomeAssistant
9
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
11
  from homeassistant.helpers.typing import StateType as StateType
11
- from myuplink.models import DevicePoint as DevicePoint
12
+ from myuplink import DevicePoint as DevicePoint
12
13
 
13
- DEVICE_POINT_DESCRIPTIONS: Incomplete
14
+ DEVICE_POINT_UNIT_DESCRIPTIONS: dict[str, SensorEntityDescription]
15
+ MARKER_FOR_UNKNOWN_VALUE: int
16
+ CATEGORY_BASED_DESCRIPTIONS: dict[str, dict[str, SensorEntityDescription]]
14
17
 
18
+ def get_description(device_point: DevicePoint) -> SensorEntityDescription | None: ...
15
19
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
16
20
 
17
21
  class MyUplinkDevicePointSensor(MyUplinkEntity, SensorEntity):
@@ -22,3 +26,16 @@ class MyUplinkDevicePointSensor(MyUplinkEntity, SensorEntity):
22
26
  def __init__(self, coordinator: MyUplinkDataCoordinator, device_id: str, device_point: DevicePoint, entity_description: SensorEntityDescription | None, unique_id_suffix: str) -> None: ...
23
27
  @property
24
28
  def native_value(self) -> StateType: ...
29
+
30
+ class MyUplinkEnumSensor(MyUplinkDevicePointSensor):
31
+ _attr_options: Incomplete
32
+ options_map: Incomplete
33
+ def __init__(self, coordinator: MyUplinkDataCoordinator, device_id: str, device_point: DevicePoint, entity_description: SensorEntityDescription | None, unique_id_suffix: str) -> None: ...
34
+ @property
35
+ def native_value(self) -> str: ...
36
+
37
+ class MyUplinkEnumRawSensor(MyUplinkDevicePointSensor):
38
+ _attr_entity_registry_enabled_default: bool
39
+ _attr_device_class: Incomplete
40
+ _attr_name: Incomplete
41
+ def __init__(self, coordinator: MyUplinkDataCoordinator, device_id: str, device_point: DevicePoint, entity_description: SensorEntityDescription | None, unique_id_suffix: str) -> None: ...
@@ -0,0 +1,29 @@
1
+ from . import MyUplinkDataCoordinator as MyUplinkDataCoordinator
2
+ from .const import DOMAIN as DOMAIN
3
+ from .entity import MyUplinkEntity as MyUplinkEntity
4
+ from .helpers import find_matching_platform as find_matching_platform
5
+ from _typeshed import Incomplete
6
+ from homeassistant.components.switch import SwitchEntity as SwitchEntity, SwitchEntityDescription as SwitchEntityDescription
7
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.const import Platform as Platform
9
+ from homeassistant.core import HomeAssistant as HomeAssistant
10
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
11
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
+ from myuplink import DevicePoint as DevicePoint
13
+ from typing import Any
14
+
15
+ CATEGORY_BASED_DESCRIPTIONS: dict[str, dict[str, SwitchEntityDescription]]
16
+
17
+ def get_description(device_point: DevicePoint) -> SwitchEntityDescription | None: ...
18
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
19
+
20
+ class MyUplinkDevicePointSwitch(MyUplinkEntity, SwitchEntity):
21
+ point_id: Incomplete
22
+ _attr_name: Incomplete
23
+ entity_description: Incomplete
24
+ def __init__(self, coordinator: MyUplinkDataCoordinator, device_id: str, device_point: DevicePoint, entity_description: SwitchEntityDescription | None, unique_id_suffix: str) -> None: ...
25
+ @property
26
+ def is_on(self) -> bool: ...
27
+ async def async_turn_on(self, **kwargs: Any) -> None: ...
28
+ async def async_turn_off(self, **kwargs: Any) -> None: ...
29
+ async def _async_turn_switch(self, mode: int) -> None: ...
@@ -0,0 +1,20 @@
1
+ from . import MyUplinkDataCoordinator as MyUplinkDataCoordinator
2
+ from .const import DOMAIN as DOMAIN
3
+ from .entity import MyUplinkEntity as MyUplinkEntity
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.update import UpdateDeviceClass as UpdateDeviceClass, UpdateEntity as UpdateEntity, UpdateEntityDescription as UpdateEntityDescription
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
+ from homeassistant.core import HomeAssistant as HomeAssistant
8
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
9
+
10
+ UPDATE_DESCRIPTION: Incomplete
11
+
12
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
13
+
14
+ class MyUplinkDeviceUpdate(MyUplinkEntity, UpdateEntity):
15
+ entity_description: Incomplete
16
+ def __init__(self, coordinator: MyUplinkDataCoordinator, device_id: str, entity_description: UpdateEntityDescription, unique_id_suffix: str) -> None: ...
17
+ @property
18
+ def installed_version(self) -> str | None: ...
19
+ @property
20
+ def latest_version(self) -> str | None: ...
@@ -1,14 +1,15 @@
1
- from .const import DOMAIN as DOMAIN, LOGGER as LOGGER, SENSOR_BATTERY as SENSOR_BATTERY, SENSOR_DOOR as SENSOR_DOOR, SENSOR_GARAGE_DOOR as SENSOR_GARAGE_DOOR, SENSOR_LEAK as SENSOR_LEAK, SENSOR_MISSING as SENSOR_MISSING, SENSOR_SAFE as SENSOR_SAFE, SENSOR_SLIDING as SENSOR_SLIDING, SENSOR_SMOKE_CO as SENSOR_SMOKE_CO, SENSOR_TEMPERATURE as SENSOR_TEMPERATURE, SENSOR_WINDOW_HINGED as SENSOR_WINDOW_HINGED
1
+ from .const import CONF_REFRESH_TOKEN as CONF_REFRESH_TOKEN, CONF_USER_UUID as CONF_USER_UUID, DOMAIN as DOMAIN, LOGGER as LOGGER, SENSOR_BATTERY as SENSOR_BATTERY, SENSOR_DOOR as SENSOR_DOOR, SENSOR_GARAGE_DOOR as SENSOR_GARAGE_DOOR, SENSOR_LEAK as SENSOR_LEAK, SENSOR_MISSING as SENSOR_MISSING, SENSOR_SAFE as SENSOR_SAFE, SENSOR_SLIDING as SENSOR_SLIDING, SENSOR_SMOKE_CO as SENSOR_SMOKE_CO, SENSOR_TEMPERATURE as SENSOR_TEMPERATURE, SENSOR_WINDOW_HINGED as SENSOR_WINDOW_HINGED
2
+ from .util import async_get_client_with_credentials as async_get_client_with_credentials, async_get_client_with_refresh_token as async_get_client_with_refresh_token
2
3
  from _typeshed import Incomplete
3
- from aionotion.bridge.models import Bridge as Bridge, BridgeAllResponse
4
- from aionotion.sensor.models import Listener as Listener, ListenerAllResponse, ListenerKind, Sensor as Sensor, SensorAllResponse
5
- from aionotion.user.models import UserPreferences as UserPreferences, UserPreferencesResponse
4
+ from aionotion.bridge.models import Bridge as Bridge
5
+ from aionotion.listener.models import Listener as Listener, ListenerKind
6
+ from aionotion.sensor.models import Sensor as Sensor
7
+ from aionotion.user.models import UserPreferences as UserPreferences
6
8
  from dataclasses import dataclass
7
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
10
  from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME, Platform as Platform
9
11
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
12
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
11
- from homeassistant.helpers import aiohttp_client as aiohttp_client
12
13
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
13
14
  from homeassistant.helpers.entity import EntityDescription as EntityDescription
14
15
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity, DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
@@ -35,7 +36,10 @@ class NotionData:
35
36
  listeners: dict[str, Listener] = ...
36
37
  sensors: dict[str, Sensor] = ...
37
38
  user_preferences: UserPreferences | None = ...
38
- def update_data_from_response(self, response: BridgeAllResponse | ListenerAllResponse | SensorAllResponse | UserPreferencesResponse) -> None: ...
39
+ def update_bridges(self, bridges: list[Bridge]) -> None: ...
40
+ def update_listeners(self, listeners: list[Listener]) -> None: ...
41
+ def update_sensors(self, sensors: list[Sensor]) -> None: ...
42
+ def update_user_preferences(self, user_preferences: UserPreferences) -> None: ...
39
43
  def asdict(self) -> dict[str, Any]: ...
40
44
  def __init__(self, hass, entry, bridges, listeners, sensors, user_preferences) -> None: ...
41
45
 
@@ -1,18 +1,26 @@
1
- from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
1
+ from .const import CONF_REFRESH_TOKEN as CONF_REFRESH_TOKEN, CONF_USER_UUID as CONF_USER_UUID, DOMAIN as DOMAIN, LOGGER as LOGGER
2
+ from .util import async_get_client_with_credentials as async_get_client_with_credentials
2
3
  from _typeshed import Incomplete
3
4
  from collections.abc import Mapping
5
+ from dataclasses import dataclass
4
6
  from homeassistant import config_entries as config_entries
5
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
8
  from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_USERNAME as CONF_USERNAME
7
9
  from homeassistant.core import HomeAssistant as HomeAssistant
8
10
  from homeassistant.data_entry_flow import FlowResult as FlowResult
9
- from homeassistant.helpers import aiohttp_client as aiohttp_client
10
11
  from typing import Any
11
12
 
12
13
  AUTH_SCHEMA: Incomplete
13
14
  REAUTH_SCHEMA: Incomplete
14
15
 
15
- async def async_validate_credentials(hass: HomeAssistant, username: str, password: str) -> dict[str, Any]: ...
16
+ @dataclass(frozen=True, kw_only=True)
17
+ class CredentialsValidationResult:
18
+ user_uuid: str | None = ...
19
+ refresh_token: str | None = ...
20
+ errors: dict[str, Any] = ...
21
+ def __init__(self, *, user_uuid, refresh_token, errors) -> None: ...
22
+
23
+ async def async_validate_credentials(hass: HomeAssistant, username: str, password: str) -> CredentialsValidationResult: ...
16
24
 
17
25
  class NotionFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
18
26
  VERSION: int
@@ -2,6 +2,8 @@ from _typeshed import Incomplete
2
2
 
3
3
  DOMAIN: str
4
4
  LOGGER: Incomplete
5
+ CONF_REFRESH_TOKEN: str
6
+ CONF_USER_UUID: str
5
7
  SENSOR_BATTERY: str
6
8
  SENSOR_DOOR: str
7
9
  SENSOR_GARAGE_DOOR: str
@@ -1,9 +1,9 @@
1
1
  from . import NotionData as NotionData
2
- from .const import DOMAIN as DOMAIN
2
+ from .const import CONF_REFRESH_TOKEN as CONF_REFRESH_TOKEN, CONF_USER_UUID as CONF_USER_UUID, DOMAIN as DOMAIN
3
3
  from _typeshed import Incomplete
4
4
  from homeassistant.components.diagnostics import async_redact_data as async_redact_data
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
- from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_PASSWORD as CONF_PASSWORD, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_USERNAME as CONF_USERNAME
6
+ from homeassistant.const import CONF_EMAIL as CONF_EMAIL, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_USERNAME as CONF_USERNAME
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
9
9
  from typing import Any
@@ -1,4 +1,4 @@
1
- from aionotion.sensor.models import ListenerKind as ListenerKind
1
+ from aionotion.listener.models import ListenerKind as ListenerKind
2
2
  from dataclasses import dataclass
3
3
 
4
4
  @dataclass(frozen=True, kw_only=True)
@@ -0,0 +1,7 @@
1
+ from aionotion.client import Client as Client
2
+ from homeassistant.core import HomeAssistant as HomeAssistant
3
+ from homeassistant.helpers import aiohttp_client as aiohttp_client
4
+ from homeassistant.helpers.instance_id import async_get as async_get
5
+
6
+ async def async_get_client_with_credentials(hass: HomeAssistant, email: str, password: str) -> Client: ...
7
+ async def async_get_client_with_refresh_token(hass: HomeAssistant, user_uuid: str, refresh_token: str) -> Client: ...
@@ -1,5 +1,5 @@
1
1
  from . import HomeAssistantOverkizData as HomeAssistantOverkizData
2
- from .climate_entities import WIDGET_AND_PROTOCOL_TO_CLIMATE_ENTITY as WIDGET_AND_PROTOCOL_TO_CLIMATE_ENTITY, WIDGET_TO_CLIMATE_ENTITY as WIDGET_TO_CLIMATE_ENTITY
2
+ from .climate_entities import Controllable as Controllable, WIDGET_AND_CONTROLLABLE_TO_CLIMATE_ENTITY as WIDGET_AND_CONTROLLABLE_TO_CLIMATE_ENTITY, WIDGET_AND_PROTOCOL_TO_CLIMATE_ENTITY as WIDGET_AND_PROTOCOL_TO_CLIMATE_ENTITY, WIDGET_TO_CLIMATE_ENTITY as WIDGET_TO_CLIMATE_ENTITY
3
3
  from .const import DOMAIN as DOMAIN
4
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
5
  from homeassistant.const import Platform as Platform
@@ -4,11 +4,19 @@ from .atlantic_electrical_towel_dryer import AtlanticElectricalTowelDryer as Atl
4
4
  from .atlantic_heat_recovery_ventilation import AtlanticHeatRecoveryVentilation as AtlanticHeatRecoveryVentilation
5
5
  from .atlantic_pass_apc_heating_zone import AtlanticPassAPCHeatingZone as AtlanticPassAPCHeatingZone
6
6
  from .atlantic_pass_apc_zone_control import AtlanticPassAPCZoneControl as AtlanticPassAPCZoneControl
7
+ from .atlantic_pass_apc_zone_control_zone import AtlanticPassAPCZoneControlZone as AtlanticPassAPCZoneControlZone
7
8
  from .hitachi_air_to_air_heat_pump_hlrrwifi import HitachiAirToAirHeatPumpHLRRWIFI as HitachiAirToAirHeatPumpHLRRWIFI
9
+ from .hitachi_air_to_air_heat_pump_ovp import HitachiAirToAirHeatPumpOVP as HitachiAirToAirHeatPumpOVP
8
10
  from .somfy_heating_temperature_interface import SomfyHeatingTemperatureInterface as SomfyHeatingTemperatureInterface
9
11
  from .somfy_thermostat import SomfyThermostat as SomfyThermostat
10
12
  from .valve_heating_temperature_interface import ValveHeatingTemperatureInterface as ValveHeatingTemperatureInterface
11
13
  from _typeshed import Incomplete
14
+ from enum import StrEnum
15
+
16
+ class Controllable(StrEnum):
17
+ IO_ATLANTIC_PASS_APC_HEATING_AND_COOLING_ZONE: str
18
+ IO_ATLANTIC_PASS_APC_ZONE_CONTROL_ZONE: str
12
19
 
13
20
  WIDGET_TO_CLIMATE_ENTITY: Incomplete
21
+ WIDGET_AND_CONTROLLABLE_TO_CLIMATE_ENTITY: Incomplete
14
22
  WIDGET_AND_PROTOCOL_TO_CLIMATE_ENTITY: Incomplete
@@ -11,7 +11,7 @@ HVAC_MODE_TO_OVERKIZ: Incomplete
11
11
  PRESET_EXTERNAL: str
12
12
  PRESET_FROST_PROTECTION: str
13
13
  OVERKIZ_TO_PRESET_MODES: dict[str, str]
14
- PRESET_MODES_TO_OVERKIZ: Incomplete
14
+ PRESET_MODES_TO_OVERKIZ: dict[str, str]
15
15
  OVERKIZ_TO_PROFILE_MODES: dict[str, str]
16
16
  OVERKIZ_TEMPERATURE_STATE_BY_PROFILE: dict[str, str]
17
17