homeassistant-stubs 2023.3.6__py3-none-any.whl → 2023.4.0b1__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 (333) hide show
  1. homeassistant-stubs/auth/__init__.pyi +1 -1
  2. homeassistant-stubs/auth/jwt_wrapper.pyi +14 -0
  3. homeassistant-stubs/auth/permissions/models.pyi +3 -3
  4. homeassistant-stubs/bootstrap.pyi +1 -1
  5. homeassistant-stubs/components/aladdin_connect/config_flow.pyi +0 -2
  6. homeassistant-stubs/components/aladdin_connect/cover.pyi +5 -7
  7. homeassistant-stubs/components/alarm_control_panel/device_action.pyi +0 -1
  8. homeassistant-stubs/components/alarm_control_panel/device_condition.pyi +1 -1
  9. homeassistant-stubs/components/alarm_control_panel/device_trigger.pyi +0 -1
  10. homeassistant-stubs/components/amazon_polly/tts.pyi +2 -2
  11. homeassistant-stubs/components/amcrest/camera.pyi +0 -1
  12. homeassistant-stubs/components/awair/sensor.pyi +2 -1
  13. homeassistant-stubs/components/backup/manager.pyi +2 -1
  14. homeassistant-stubs/components/bayesian/issues.pyi +0 -1
  15. homeassistant-stubs/components/bluetooth/wrappers.pyi +1 -0
  16. homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi +3 -0
  17. homeassistant-stubs/components/bmw_connected_drive/coordinator.pyi +1 -0
  18. homeassistant-stubs/components/braviatv/media_player.pyi +2 -2
  19. homeassistant-stubs/components/button/device_action.pyi +0 -1
  20. homeassistant-stubs/components/button/device_trigger.pyi +0 -1
  21. homeassistant-stubs/components/calendar/__init__.pyi +8 -4
  22. homeassistant-stubs/components/calendar/const.pyi +2 -2
  23. homeassistant-stubs/components/calendar/trigger.pyi +25 -8
  24. homeassistant-stubs/components/camera/__init__.pyi +1 -1
  25. homeassistant-stubs/components/cover/device_action.pyi +0 -1
  26. homeassistant-stubs/components/cover/device_condition.pyi +1 -1
  27. homeassistant-stubs/components/cover/device_trigger.pyi +0 -1
  28. homeassistant-stubs/components/demo/sensor.pyi +2 -1
  29. homeassistant-stubs/components/demo/stt.pyi +2 -2
  30. homeassistant-stubs/components/device_automation/condition.pyi +2 -4
  31. homeassistant-stubs/components/device_tracker/device_condition.pyi +1 -1
  32. homeassistant-stubs/components/device_tracker/device_trigger.pyi +0 -1
  33. homeassistant-stubs/components/devolo_home_network/device_tracker.pyi +0 -1
  34. homeassistant-stubs/components/devolo_home_network/entity.pyi +1 -0
  35. homeassistant-stubs/components/dlna_dmr/config_flow.pyi +0 -1
  36. homeassistant-stubs/components/dlna_dmr/media_player.pyi +1 -2
  37. homeassistant-stubs/components/dormakaba_dkey/__init__.pyi +1 -1
  38. homeassistant-stubs/components/dormakaba_dkey/config_flow.pyi +5 -1
  39. homeassistant-stubs/components/efergy/sensor.pyi +2 -2
  40. homeassistant-stubs/components/emulated_hue/hue_api.pyi +1 -0
  41. homeassistant-stubs/components/energy/types.pyi +2 -2
  42. homeassistant-stubs/components/energy/websocket_api.pyi +1 -0
  43. homeassistant-stubs/components/esphome/bluetooth/client.pyi +3 -1
  44. homeassistant-stubs/components/esphome/entry_data.pyi +1 -0
  45. homeassistant-stubs/components/esphome/media_player.pyi +1 -1
  46. homeassistant-stubs/components/fan/device_condition.pyi +1 -1
  47. homeassistant-stubs/components/filesize/__init__.pyi +1 -2
  48. homeassistant-stubs/components/fitbit/sensor.pyi +1 -1
  49. homeassistant-stubs/components/fritz/binary_sensor.pyi +7 -11
  50. homeassistant-stubs/components/fritz/common.pyi +25 -3
  51. homeassistant-stubs/components/fritz/sensor.pyi +6 -15
  52. homeassistant-stubs/components/fritzbox/sensor.pyi +0 -1
  53. homeassistant-stubs/components/fronius/coordinator.pyi +2 -3
  54. homeassistant-stubs/components/fronius/sensor.pyi +13 -8
  55. homeassistant-stubs/components/fully_kiosk/media_player.pyi +3 -3
  56. homeassistant-stubs/components/fully_kiosk/sensor.pyi +3 -3
  57. homeassistant-stubs/components/gios/__init__.pyi +3 -3
  58. homeassistant-stubs/components/gios/const.pyi +0 -2
  59. homeassistant-stubs/components/gios/sensor.pyi +10 -13
  60. homeassistant-stubs/components/google/__init__.pyi +1 -1
  61. homeassistant-stubs/components/google/calendar.pyi +1 -1
  62. homeassistant-stubs/components/google/const.pyi +1 -0
  63. homeassistant-stubs/components/group/media_player.pyi +4 -3
  64. homeassistant-stubs/components/group/notify.pyi +1 -1
  65. homeassistant-stubs/components/group/sensor.pyi +2 -0
  66. homeassistant-stubs/components/guardian/util.pyi +0 -1
  67. homeassistant-stubs/components/history/websocket_api.pyi +2 -1
  68. homeassistant-stubs/components/homeassistant_alerts/__init__.pyi +4 -2
  69. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +7 -2
  70. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +2 -8
  71. homeassistant-stubs/components/homeassistant_yellow/__init__.pyi +3 -7
  72. homeassistant-stubs/components/homekit/__init__.pyi +6 -6
  73. homeassistant-stubs/components/homekit/config_flow.pyi +2 -2
  74. homeassistant-stubs/components/homekit/type_triggers.pyi +0 -1
  75. homeassistant-stubs/components/http/__init__.pyi +18 -1
  76. homeassistant-stubs/components/http/auth.pyi +1 -0
  77. homeassistant-stubs/components/http/security_filter.pyi +1 -0
  78. homeassistant-stubs/components/huawei_lte/__init__.pyi +1 -1
  79. homeassistant-stubs/components/huawei_lte/device_tracker.pyi +0 -1
  80. homeassistant-stubs/components/isy994/lock.pyi +8 -3
  81. homeassistant-stubs/components/isy994/services.pyi +6 -0
  82. homeassistant-stubs/components/jellyfin/coordinator.pyi +4 -2
  83. homeassistant-stubs/components/jellyfin/media_player.pyi +3 -3
  84. homeassistant-stubs/components/knx/__init__.pyi +3 -2
  85. homeassistant-stubs/components/knx/device.pyi +18 -0
  86. homeassistant-stubs/components/knx/light.pyi +2 -2
  87. homeassistant-stubs/components/knx/sensor.pyi +33 -2
  88. homeassistant-stubs/components/kraken/sensor.pyi +0 -1
  89. homeassistant-stubs/components/lametric/__init__.pyi +1 -2
  90. homeassistant-stubs/components/lidarr/const.pyi +0 -2
  91. homeassistant-stubs/components/lifx/__init__.pyi +2 -2
  92. homeassistant-stubs/components/light/intent.pyi +1 -1
  93. homeassistant-stubs/components/litejet/__init__.pyi +14 -0
  94. homeassistant-stubs/components/litejet/config_flow.pyi +18 -0
  95. homeassistant-stubs/components/litejet/const.pyi +8 -0
  96. homeassistant-stubs/components/litejet/diagnostics.pyi +7 -0
  97. homeassistant-stubs/components/litejet/light.pyi +39 -0
  98. homeassistant-stubs/components/litejet/scene.pyi +32 -0
  99. homeassistant-stubs/components/litejet/switch.pyi +37 -0
  100. homeassistant-stubs/components/litejet/trigger.pyi +16 -0
  101. homeassistant-stubs/components/litterrobot/select.pyi +11 -6
  102. homeassistant-stubs/components/lock/device_action.pyi +0 -1
  103. homeassistant-stubs/components/lock/device_condition.pyi +1 -1
  104. homeassistant-stubs/components/lock/device_trigger.pyi +0 -1
  105. homeassistant-stubs/components/logbook/__init__.pyi +3 -3
  106. homeassistant-stubs/components/logbook/const.pyi +0 -2
  107. homeassistant-stubs/components/logbook/helpers.pyi +1 -1
  108. homeassistant-stubs/components/logbook/models.pyi +25 -7
  109. homeassistant-stubs/components/logbook/processor.pyi +8 -7
  110. homeassistant-stubs/components/logbook/queries/__init__.pyi +3 -1
  111. homeassistant-stubs/components/logbook/queries/all.pyi +4 -4
  112. homeassistant-stubs/components/logbook/queries/common.pyi +2 -2
  113. homeassistant-stubs/components/logbook/queries/devices.pyi +1 -1
  114. homeassistant-stubs/components/logbook/queries/entities.pyi +6 -6
  115. homeassistant-stubs/components/logbook/queries/entities_and_devices.pyi +5 -5
  116. homeassistant-stubs/components/logbook/websocket_api.pyi +2 -2
  117. homeassistant-stubs/components/logger/helpers.pyi +1 -1
  118. homeassistant-stubs/components/logger/websocket_api.pyi +1 -1
  119. homeassistant-stubs/components/matter/binary_sensor.pyi +5 -1
  120. homeassistant-stubs/components/matter/entity.pyi +5 -1
  121. homeassistant-stubs/components/matter/lock.pyi +44 -0
  122. homeassistant-stubs/components/matter/models.pyi +2 -9
  123. homeassistant-stubs/components/matter/sensor.pyi +5 -1
  124. homeassistant-stubs/components/media_player/__init__.pyi +2 -2
  125. homeassistant-stubs/components/media_player/device_condition.pyi +1 -1
  126. homeassistant-stubs/components/media_player/device_trigger.pyi +0 -1
  127. homeassistant-stubs/components/metoffice/__init__.pyi +0 -2
  128. homeassistant-stubs/components/metoffice/sensor.pyi +2 -1
  129. homeassistant-stubs/components/mikrotik/const.pyi +2 -0
  130. homeassistant-stubs/components/mikrotik/device_tracker.pyi +0 -1
  131. homeassistant-stubs/components/mikrotik/hub.pyi +2 -1
  132. homeassistant-stubs/components/modbus/__init__.pyi +1 -1
  133. homeassistant-stubs/components/modbus/climate.pyi +3 -1
  134. homeassistant-stubs/components/modbus/const.pyi +1 -0
  135. homeassistant-stubs/components/modbus/modbus.pyi +1 -1
  136. homeassistant-stubs/components/modem_callerid/button.pyi +2 -2
  137. homeassistant-stubs/components/modem_callerid/sensor.pyi +2 -2
  138. homeassistant-stubs/components/moon/config_flow.pyi +0 -2
  139. homeassistant-stubs/components/moon/sensor.pyi +2 -7
  140. homeassistant-stubs/components/mqtt/__init__.pyi +5 -7
  141. homeassistant-stubs/components/mqtt/client.pyi +24 -2
  142. homeassistant-stubs/components/mqtt/config_integration.pyi +1 -1
  143. homeassistant-stubs/components/mqtt/const.pyi +0 -1
  144. homeassistant-stubs/components/mqtt/models.pyi +2 -1
  145. homeassistant-stubs/components/mysensors/__init__.pyi +4 -9
  146. homeassistant-stubs/components/mysensors/const.pyi +1 -3
  147. homeassistant-stubs/components/mysensors/device.pyi +1 -1
  148. homeassistant-stubs/components/mysensors/light.pyi +1 -1
  149. homeassistant-stubs/components/mysensors/switch.pyi +6 -20
  150. homeassistant-stubs/components/nam/__init__.pyi +0 -2
  151. homeassistant-stubs/components/nam/sensor.pyi +0 -1
  152. homeassistant-stubs/components/netatmo/device_trigger.pyi +0 -1
  153. homeassistant-stubs/components/nissan_leaf/sensor.pyi +2 -3
  154. homeassistant-stubs/components/notify/legacy.pyi +2 -2
  155. homeassistant-stubs/components/number/const.pyi +2 -0
  156. homeassistant-stubs/components/number/device_action.pyi +0 -1
  157. homeassistant-stubs/components/otbr/__init__.pyi +3 -0
  158. homeassistant-stubs/components/otbr/config_flow.pyi +3 -2
  159. homeassistant-stubs/components/otbr/util.pyi +6 -0
  160. homeassistant-stubs/components/otbr/websocket_api.pyi +7 -3
  161. homeassistant-stubs/components/overkiz/climate_entities/__init__.pyi +1 -0
  162. homeassistant-stubs/components/overkiz/climate_entities/atlantic_electrical_heater.pyi +2 -0
  163. homeassistant-stubs/components/overkiz/climate_entities/atlantic_electrical_heater_with_adjustable_temperature_setpoint.pyi +2 -0
  164. homeassistant-stubs/components/overkiz/climate_entities/atlantic_electrical_towel_dryer.pyi +2 -0
  165. homeassistant-stubs/components/overkiz/climate_entities/atlantic_heat_recovery_ventilation.pyi +2 -0
  166. homeassistant-stubs/components/overkiz/climate_entities/atlantic_pass_apc_heating_zone.pyi +2 -0
  167. homeassistant-stubs/components/overkiz/climate_entities/somfy_thermostat.pyi +2 -2
  168. homeassistant-stubs/components/overkiz/climate_entities/valve_heating_temperature_interface.pyi +37 -0
  169. homeassistant-stubs/components/overkiz/const.pyi +2 -1
  170. homeassistant-stubs/components/overkiz/sensor.pyi +3 -1
  171. homeassistant-stubs/components/overkiz/switch.pyi +2 -2
  172. homeassistant-stubs/components/pi_hole/sensor.pyi +2 -2
  173. homeassistant-stubs/components/rainmachine/util.pyi +0 -1
  174. homeassistant-stubs/components/recorder/__init__.pyi +3 -3
  175. homeassistant-stubs/components/recorder/auto_repairs/__init__.pyi +0 -0
  176. homeassistant-stubs/components/recorder/auto_repairs/events/__init__.pyi +0 -0
  177. homeassistant-stubs/components/recorder/auto_repairs/events/schema.pyi +6 -0
  178. homeassistant-stubs/components/recorder/auto_repairs/schema.pyi +23 -0
  179. homeassistant-stubs/components/recorder/auto_repairs/states/schema.pyi +9 -0
  180. homeassistant-stubs/components/recorder/auto_repairs/statistics/__init__.pyi +0 -0
  181. homeassistant-stubs/components/recorder/auto_repairs/statistics/duplicates.pyi +19 -0
  182. homeassistant-stubs/components/recorder/auto_repairs/statistics/schema.pyi +9 -0
  183. homeassistant-stubs/components/recorder/const.pyi +10 -0
  184. homeassistant-stubs/components/recorder/core.pyi +33 -29
  185. homeassistant-stubs/components/recorder/db_schema.pyi +36 -6
  186. homeassistant-stubs/components/recorder/entity_registry.pyi +10 -0
  187. homeassistant-stubs/components/recorder/filters.pyi +13 -11
  188. homeassistant-stubs/components/recorder/history/__init__.pyi +13 -0
  189. homeassistant-stubs/components/recorder/history/common.pyi +4 -0
  190. homeassistant-stubs/components/recorder/history/const.pyi +9 -0
  191. homeassistant-stubs/components/recorder/{history.pyi → history/legacy.pyi} +9 -14
  192. homeassistant-stubs/components/recorder/history/modern.pyi +41 -0
  193. homeassistant-stubs/components/recorder/migration.pyi +34 -6
  194. homeassistant-stubs/components/recorder/models/__init__.pyi +5 -0
  195. homeassistant-stubs/components/recorder/models/context.pyi +6 -0
  196. homeassistant-stubs/components/recorder/models/database.pyi +14 -0
  197. homeassistant-stubs/components/recorder/models/legacy.pyi +39 -0
  198. homeassistant-stubs/components/recorder/models/state.pyi +43 -0
  199. homeassistant-stubs/components/recorder/models/state_attributes.pyi +9 -0
  200. homeassistant-stubs/components/recorder/models/statistics.pyi +50 -0
  201. homeassistant-stubs/components/recorder/models/time.pyi +20 -0
  202. homeassistant-stubs/components/recorder/purge.pyi +9 -12
  203. homeassistant-stubs/components/recorder/queries.pyi +19 -3
  204. homeassistant-stubs/components/recorder/services.pyi +1 -1
  205. homeassistant-stubs/components/recorder/statistics.pyi +40 -42
  206. homeassistant-stubs/components/recorder/table_managers/__init__.pyi +20 -0
  207. homeassistant-stubs/components/recorder/table_managers/event_data.pyi +26 -0
  208. homeassistant-stubs/components/recorder/table_managers/event_types.pyi +20 -0
  209. homeassistant-stubs/components/recorder/{run_history.pyi → table_managers/recorder_runs.pyi} +3 -3
  210. homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi +29 -0
  211. homeassistant-stubs/components/recorder/table_managers/states.pyi +14 -0
  212. homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +23 -0
  213. homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +35 -0
  214. homeassistant-stubs/components/recorder/tasks.pyi +39 -4
  215. homeassistant-stubs/components/recorder/util.pyi +2 -1
  216. homeassistant-stubs/components/recorder/websocket_api.pyi +2 -2
  217. homeassistant-stubs/components/renault/renault_vehicle.pyi +1 -0
  218. homeassistant-stubs/components/rest/__init__.pyi +1 -1
  219. homeassistant-stubs/components/rest/const.pyi +2 -0
  220. homeassistant-stubs/components/rest/data.pyi +3 -2
  221. homeassistant-stubs/components/rest/schema.pyi +1 -1
  222. homeassistant-stubs/components/ridwell/calendar.pyi +22 -0
  223. homeassistant-stubs/components/ridwell/coordinator.pyi +2 -2
  224. homeassistant-stubs/components/ridwell/entity.pyi +2 -4
  225. homeassistant-stubs/components/ridwell/sensor.pyi +2 -1
  226. homeassistant-stubs/components/ridwell/switch.pyi +4 -0
  227. homeassistant-stubs/components/roku/media_player.pyi +4 -4
  228. homeassistant-stubs/components/samsungtv/device_trigger.pyi +19 -0
  229. homeassistant-stubs/components/samsungtv/helpers.pyi +8 -0
  230. homeassistant-stubs/components/samsungtv/media_player.pyi +7 -2
  231. homeassistant-stubs/components/samsungtv/trigger.pyi +12 -0
  232. homeassistant-stubs/components/samsungtv/triggers/__init__.pyi +0 -0
  233. homeassistant-stubs/components/samsungtv/triggers/turn_on.pyi +14 -0
  234. homeassistant-stubs/components/scrape/config_flow.pyi +1 -1
  235. homeassistant-stubs/components/scrape/const.pyi +2 -0
  236. homeassistant-stubs/components/scrape/sensor.pyi +3 -6
  237. homeassistant-stubs/components/select/device_action.pyi +0 -1
  238. homeassistant-stubs/components/select/device_condition.pyi +1 -1
  239. homeassistant-stubs/components/select/device_trigger.pyi +0 -1
  240. homeassistant-stubs/components/sensor/const.pyi +2 -0
  241. homeassistant-stubs/components/sensor/recorder.pyi +3 -1
  242. homeassistant-stubs/components/sfr_box/__init__.pyi +1 -1
  243. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +3 -1
  244. homeassistant-stubs/components/sfr_box/models.pyi +4 -2
  245. homeassistant-stubs/components/sfr_box/sensor.pyi +2 -1
  246. homeassistant-stubs/components/sleepiq/entity.pyi +0 -1
  247. homeassistant-stubs/components/statistics/sensor.pyi +2 -2
  248. homeassistant-stubs/components/sun/__init__.pyi +1 -1
  249. homeassistant-stubs/components/sun/sensor.pyi +36 -0
  250. homeassistant-stubs/components/switcher_kis/__init__.pyi +1 -1
  251. homeassistant-stubs/components/switcher_kis/button.pyi +0 -1
  252. homeassistant-stubs/components/switcher_kis/climate.pyi +0 -1
  253. homeassistant-stubs/components/switcher_kis/cover.pyi +0 -1
  254. homeassistant-stubs/components/switcher_kis/sensor.pyi +0 -1
  255. homeassistant-stubs/components/switcher_kis/switch.pyi +1 -1
  256. homeassistant-stubs/components/synology_dsm/sensor.pyi +5 -4
  257. homeassistant-stubs/components/threshold/__init__.pyi +7 -0
  258. homeassistant-stubs/components/threshold/binary_sensor.pyi +55 -0
  259. homeassistant-stubs/components/threshold/config_flow.pyi +19 -0
  260. homeassistant-stubs/components/threshold/const.pyi +5 -0
  261. homeassistant-stubs/components/tibber/config_flow.pyi +3 -0
  262. homeassistant-stubs/components/tibber/sensor.pyi +2 -1
  263. homeassistant-stubs/components/tplink/light.pyi +1 -1
  264. homeassistant-stubs/components/tplink_omada/__init__.pyi +1 -0
  265. homeassistant-stubs/components/tplink_omada/controller.pyi +21 -0
  266. homeassistant-stubs/components/tplink_omada/coordinator.pyi +3 -4
  267. homeassistant-stubs/components/tplink_omada/entity.pyi +6 -4
  268. homeassistant-stubs/components/tplink_omada/switch.pyi +4 -6
  269. homeassistant-stubs/components/tplink_omada/update.pyi +43 -0
  270. homeassistant-stubs/components/tradfri/sensor.pyi +0 -1
  271. homeassistant-stubs/components/tts/__init__.pyi +2 -1
  272. homeassistant-stubs/components/unifi/__init__.pyi +33 -0
  273. homeassistant-stubs/components/unifi/config_flow.pyi +46 -0
  274. homeassistant-stubs/components/unifi/const.pyi +30 -0
  275. homeassistant-stubs/components/unifi/controller.pyi +77 -0
  276. homeassistant-stubs/components/unifi/device_tracker.pyi +70 -0
  277. homeassistant-stubs/components/unifi/diagnostics.pyi +19 -0
  278. homeassistant-stubs/components/unifi/entity.pyi +58 -0
  279. homeassistant-stubs/components/unifi/errors.pyi +8 -0
  280. homeassistant-stubs/components/unifi/sensor.pyi +37 -0
  281. homeassistant-stubs/components/unifi/services.pyi +17 -0
  282. homeassistant-stubs/components/unifi/switch.pyi +55 -0
  283. homeassistant-stubs/components/unifi/update.pyi +1 -1
  284. homeassistant-stubs/components/unifiprotect/select.pyi +2 -2
  285. homeassistant-stubs/components/vacuum/device_action.pyi +0 -1
  286. homeassistant-stubs/components/vacuum/device_condition.pyi +1 -1
  287. homeassistant-stubs/components/vacuum/device_trigger.pyi +0 -1
  288. homeassistant-stubs/components/velbus/__init__.pyi +0 -2
  289. homeassistant-stubs/components/velbus/light.pyi +1 -1
  290. homeassistant-stubs/components/velbus/select.pyi +21 -0
  291. homeassistant-stubs/components/water_heater/device_action.pyi +0 -1
  292. homeassistant-stubs/components/weather/__init__.pyi +2 -23
  293. homeassistant-stubs/components/weather/const.pyi +25 -0
  294. homeassistant-stubs/components/weather/websocket_api.pyi +7 -0
  295. homeassistant-stubs/components/webostv/trigger.pyi +3 -3
  296. homeassistant-stubs/components/webostv/triggers/__init__.pyi +0 -5
  297. homeassistant-stubs/components/websocket_api/commands.pyi +2 -2
  298. homeassistant-stubs/components/websocket_api/connection.pyi +7 -1
  299. homeassistant-stubs/components/zwave_js/__init__.pyi +4 -4
  300. homeassistant-stubs/components/zwave_js/api.pyi +0 -1
  301. homeassistant-stubs/components/zwave_js/device_action.pyi +0 -1
  302. homeassistant-stubs/components/zwave_js/device_trigger.pyi +0 -1
  303. homeassistant-stubs/components/zwave_js/diagnostics.pyi +2 -1
  304. homeassistant-stubs/components/zwave_js/discovery.pyi +1 -1
  305. homeassistant-stubs/components/zwave_js/update.pyi +18 -8
  306. homeassistant-stubs/config_entries.pyi +4 -1
  307. homeassistant-stubs/core.pyi +4 -3
  308. homeassistant-stubs/helpers/condition.pyi +11 -3
  309. homeassistant-stubs/helpers/config_validation.pyi +1 -1
  310. homeassistant-stubs/helpers/debounce.pyi +1 -0
  311. homeassistant-stubs/helpers/device_registry.pyi +1 -1
  312. homeassistant-stubs/helpers/entity.pyi +1 -0
  313. homeassistant-stubs/helpers/entity_platform.pyi +2 -1
  314. homeassistant-stubs/helpers/entity_registry.pyi +9 -1
  315. homeassistant-stubs/helpers/event.pyi +3 -1
  316. homeassistant-stubs/helpers/httpx_client.pyi +1 -0
  317. homeassistant-stubs/helpers/integration_platform.pyi +3 -3
  318. homeassistant-stubs/helpers/script.pyi +5 -3
  319. homeassistant-stubs/helpers/selector.pyi +29 -12
  320. homeassistant-stubs/helpers/service.pyi +11 -0
  321. homeassistant-stubs/helpers/template.pyi +24 -3
  322. homeassistant-stubs/scripts/check_config.pyi +0 -1
  323. homeassistant-stubs/util/ssl.pyi +8 -0
  324. homeassistant-stubs/util/ulid.pyi +2 -1
  325. homeassistant-stubs/util/yaml/dumper.pyi +1 -1
  326. homeassistant-stubs/util/yaml/loader.pyi +4 -5
  327. homeassistant-stubs/util/yaml/objects.pyi +1 -0
  328. {homeassistant_stubs-2023.3.6.dist-info → homeassistant_stubs-2023.4.0b1.dist-info}/METADATA +2 -2
  329. {homeassistant_stubs-2023.3.6.dist-info → homeassistant_stubs-2023.4.0b1.dist-info}/RECORD +331 -265
  330. homeassistant-stubs/components/mysensors/notify.pyi +0 -23
  331. homeassistant-stubs/components/recorder/models.pyi +0 -148
  332. {homeassistant_stubs-2023.3.6.dist-info → homeassistant_stubs-2023.4.0b1.dist-info}/LICENSE +0 -0
  333. {homeassistant_stubs-2023.3.6.dist-info → homeassistant_stubs-2023.4.0b1.dist-info}/WHEEL +0 -0
@@ -13,6 +13,7 @@ from homeassistant.components.media_player import ATTR_MEDIA_VOLUME_LEVEL as ATT
13
13
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_SUPPORTED_FEATURES as ATTR_SUPPORTED_FEATURES, ATTR_TEMPERATURE as ATTR_TEMPERATURE, SERVICE_CLOSE_COVER as SERVICE_CLOSE_COVER, SERVICE_OPEN_COVER as SERVICE_OPEN_COVER, SERVICE_SET_COVER_POSITION as SERVICE_SET_COVER_POSITION, SERVICE_TURN_OFF as SERVICE_TURN_OFF, SERVICE_TURN_ON as SERVICE_TURN_ON, SERVICE_VOLUME_SET as SERVICE_VOLUME_SET, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON, STATE_UNAVAILABLE as STATE_UNAVAILABLE
14
14
  from homeassistant.core import State as State
15
15
  from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
16
+ from homeassistant.util.json import json_loads as json_loads
16
17
  from homeassistant.util.network import is_local as is_local
17
18
  from typing import Any
18
19
 
@@ -1,12 +1,12 @@
1
1
  from _typeshed import Incomplete
2
2
  from homeassistant.core import HomeAssistant as HomeAssistant
3
- from typing import TypedDict
3
+ from typing import Protocol, TypedDict
4
4
 
5
5
  class SolarForecastType(TypedDict):
6
6
  wh_hours: dict[str, Union[float, int]]
7
7
 
8
8
  GetSolarForecastType: Incomplete
9
9
 
10
- class EnergyPlatform:
10
+ class EnergyPlatform(Protocol):
11
11
  @staticmethod
12
12
  async def async_get_solar_forecast(hass: HomeAssistant, config_entry_id: str) -> Union[SolarForecastType, None]: ...
@@ -4,6 +4,7 @@ from .types import EnergyPlatform as EnergyPlatform, GetSolarForecastType as Get
4
4
  from .validate import async_validate as async_validate
5
5
  from _typeshed import Incomplete
6
6
  from homeassistant.components import recorder as recorder, websocket_api as websocket_api
7
+ from homeassistant.components.recorder.statistics import StatisticsRow as StatisticsRow
7
8
  from homeassistant.const import UnitOfEnergy as UnitOfEnergy
8
9
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
10
  from homeassistant.helpers.integration_platform import async_process_integration_platforms as async_process_integration_platforms
@@ -23,6 +23,8 @@ CCCD_UUID: str
23
23
  CCCD_NOTIFY_BYTES: bytes
24
24
  CCCD_INDICATE_BYTES: bytes
25
25
  MIN_BLUETOOTH_PROXY_VERSION_HAS_CACHE: int
26
+ MIN_BLUETOOTH_PROXY_HAS_PAIRING: int
27
+ MIN_BLUETOOTH_PROXY_HAS_CLEAR_CACHE: int
26
28
  DEFAULT_MAX_WRITE_WITHOUT_RESPONSE: Incomplete
27
29
  _LOGGER: Incomplete
28
30
  _WrapFuncType = TypeVar('_WrapFuncType', bound=Callable[..., Any])
@@ -67,7 +69,7 @@ class ESPHomeClient(BaseBleakClient):
67
69
  async def unpair(self) -> bool: ...
68
70
  async def get_services(self, dangerous_use_bleak_cache: bool = ..., **kwargs: Any) -> BleakGATTServiceCollection: ...
69
71
  def _resolve_characteristic(self, char_specifier: Union[BleakGATTCharacteristic, int, str, uuid.UUID]) -> BleakGATTCharacteristic: ...
70
- async def clear_cache(self) -> None: ...
72
+ async def clear_cache(self) -> bool: ...
71
73
  async def read_gatt_char(self, char_specifier: Union[BleakGATTCharacteristic, int, str, uuid.UUID], **kwargs: Any) -> bytearray: ...
72
74
  async def read_gatt_descriptor(self, handle: int, **kwargs: Any) -> bytearray: ...
73
75
  async def write_gatt_char(self, char_specifier: Union[BleakGATTCharacteristic, int, str, uuid.UUID], data: Union[bytes, bytearray, memoryview], response: bool = ...) -> None: ...
@@ -10,6 +10,7 @@ from homeassistant.helpers.dispatcher import async_dispatcher_send as async_disp
10
10
  from homeassistant.helpers.storage import Store as Store
11
11
  from typing import Any
12
12
 
13
+ _SENTINEL: Incomplete
13
14
  SAVE_DELAY: int
14
15
  _LOGGER: Incomplete
15
16
  INFO_TYPE_TO_PLATFORM: dict[type[EntityInfo], Platform]
@@ -23,7 +23,7 @@ class EsphomeMediaPlayer(EsphomeEntity[MediaPlayerInfo, MediaPlayerEntityState],
23
23
  @property
24
24
  def supported_features(self) -> MediaPlayerEntityFeature: ...
25
25
  async def async_play_media(self, media_type: Union[MediaType, str], media_id: str, **kwargs: Any) -> None: ...
26
- async def async_browse_media(self, media_content_type: Union[str, None] = ..., media_content_id: Union[str, None] = ...) -> BrowseMedia: ...
26
+ async def async_browse_media(self, media_content_type: Union[MediaType, str, None] = ..., media_content_id: Union[str, None] = ...) -> BrowseMedia: ...
27
27
  async def async_set_volume_level(self, volume: float) -> None: ...
28
28
  async def async_media_pause(self) -> None: ...
29
29
  async def async_media_play(self) -> None: ...
@@ -2,7 +2,7 @@ from . import DOMAIN as DOMAIN
2
2
  from _typeshed import Incomplete
3
3
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, CONF_CONDITION as CONF_CONDITION, CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_DOMAIN as CONF_DOMAIN, CONF_ENTITY_ID as CONF_ENTITY_ID, CONF_TYPE as CONF_TYPE, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON
4
4
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
5
- from homeassistant.helpers import condition as condition, entity_registry as entity_registry
5
+ from homeassistant.helpers import condition as condition
6
6
  from homeassistant.helpers.config_validation import DEVICE_CONDITION_BASE_SCHEMA as DEVICE_CONDITION_BASE_SCHEMA
7
7
  from homeassistant.helpers.typing import ConfigType as ConfigType, TemplateVarsType as TemplateVarsType
8
8
 
@@ -1,10 +1,9 @@
1
- import pathlib
2
1
  from .const import PLATFORMS as PLATFORMS
3
2
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
3
  from homeassistant.const import CONF_FILE_PATH as CONF_FILE_PATH
5
4
  from homeassistant.core import HomeAssistant as HomeAssistant
6
5
  from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
7
6
 
8
- def check_path(path: pathlib.Path) -> bool: ...
7
+ def _check_path(hass: HomeAssistant, path: str) -> None: ...
9
8
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
10
9
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -13,7 +13,7 @@ from homeassistant.helpers.icon import icon_for_battery_level as icon_for_batter
13
13
  from homeassistant.helpers.json import save_json as save_json
14
14
  from homeassistant.helpers.network import NoURLAvailableError as NoURLAvailableError, get_url as get_url
15
15
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
16
- from homeassistant.util.json import load_json as load_json
16
+ from homeassistant.util.json import load_json_object as load_json_object
17
17
  from homeassistant.util.unit_system import METRIC_SYSTEM as METRIC_SYSTEM
18
18
  from typing import Any, Final
19
19
 
@@ -1,4 +1,4 @@
1
- from .common import AvmWrapper as AvmWrapper, ConnectionInfo as ConnectionInfo, FritzBoxBaseEntity as FritzBoxBaseEntity
1
+ from .common import AvmWrapper as AvmWrapper, ConnectionInfo as ConnectionInfo, FritzBoxBaseCoordinatorEntity as FritzBoxBaseCoordinatorEntity, FritzEntityDescription as FritzEntityDescription
2
2
  from .const import DOMAIN as DOMAIN
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable
@@ -10,19 +10,15 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEnti
10
10
 
11
11
  _LOGGER: Incomplete
12
12
 
13
- class FritzBinarySensorEntityDescription(BinarySensorEntityDescription):
13
+ class FritzBinarySensorEntityDescription(BinarySensorEntityDescription, FritzEntityDescription):
14
14
  is_suitable: Callable[[ConnectionInfo], bool]
15
- def __init__(self, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, is_suitable) -> None: ...
15
+ def __init__(self, value_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, is_suitable) -> None: ...
16
16
 
17
17
  SENSOR_TYPES: tuple[FritzBinarySensorEntityDescription, ...]
18
18
 
19
19
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
20
20
 
21
- class FritzBoxBinarySensor(FritzBoxBaseEntity, BinarySensorEntity):
22
- entity_description: Incomplete
23
- _attr_name: Incomplete
24
- _attr_unique_id: Incomplete
25
- def __init__(self, avm_wrapper: AvmWrapper, device_friendly_name: str, description: BinarySensorEntityDescription) -> None: ...
26
- _attr_is_on: Incomplete
27
- _attr_extra_state_attributes: Incomplete
28
- def update(self) -> None: ...
21
+ class FritzBoxBinarySensor(FritzBoxBaseCoordinatorEntity, BinarySensorEntity):
22
+ entity_description: FritzBinarySensorEntityDescription
23
+ @property
24
+ def is_on(self) -> Union[bool, None]: ...
@@ -2,13 +2,15 @@ from .const import CONF_OLD_DISCOVERY as CONF_OLD_DISCOVERY, DEFAULT_CONF_OLD_DI
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Callable, ValuesView
4
4
  from datetime import datetime
5
+ from fritzconnection.lib.fritzstatus import FritzStatus
5
6
  from homeassistant.components.device_tracker import CONF_CONSIDER_HOME as CONF_CONSIDER_HOME, DEFAULT_CONSIDER_HOME as DEFAULT_CONSIDER_HOME
6
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
8
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
8
9
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
10
  from homeassistant.helpers import entity_registry as er, update_coordinator as update_coordinator
10
11
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
11
- from homeassistant.helpers.entity import DeviceInfo as DeviceInfo
12
+ from homeassistant.helpers.entity import DeviceInfo as DeviceInfo, EntityDescription as EntityDescription
13
+ from homeassistant.helpers.typing import StateType as StateType
12
14
  from types import MappingProxyType
13
15
  from typing import Any, TypedDict
14
16
 
@@ -45,7 +47,7 @@ class HostInfo(TypedDict):
45
47
  ip: str
46
48
  status: bool
47
49
 
48
- class FritzBoxTools(update_coordinator.DataUpdateCoordinator[None]):
50
+ class FritzBoxTools(update_coordinator.DataUpdateCoordinator[dict[str, bool | StateType]]):
49
51
  _devices: Incomplete
50
52
  _options: Incomplete
51
53
  _unique_id: Incomplete
@@ -66,10 +68,12 @@ class FritzBoxTools(update_coordinator.DataUpdateCoordinator[None]):
66
68
  _latest_firmware: Incomplete
67
69
  _update_available: bool
68
70
  _release_url: Incomplete
71
+ _entity_update_functions: Incomplete
69
72
  def __init__(self, hass: HomeAssistant, password: str, username: str = ..., host: str = ..., port: int = ...) -> None: ...
70
73
  async def async_setup(self, options: Union[MappingProxyType[str, Any], None] = ...) -> None: ...
71
74
  def setup(self) -> None: ...
72
- async def _async_update_data(self) -> None: ...
75
+ def register_entity_updates(self, key: str, update_fn: Callable[[FritzStatus, StateType], Any]) -> Callable[[], None]: ...
76
+ async def _async_update_data(self) -> dict[str, Union[bool, StateType]]: ...
73
77
  @property
74
78
  def unique_id(self) -> str: ...
75
79
  @property
@@ -190,6 +194,24 @@ class FritzBoxBaseEntity:
190
194
  @property
191
195
  def device_info(self) -> DeviceInfo: ...
192
196
 
197
+ class FritzRequireKeysMixin:
198
+ value_fn: Callable[[FritzStatus, Any], Any]
199
+ def __init__(self, value_fn) -> None: ...
200
+
201
+ class FritzEntityDescription(EntityDescription, FritzRequireKeysMixin):
202
+ def __init__(self, value_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement) -> None: ...
203
+
204
+ class FritzBoxBaseCoordinatorEntity(update_coordinator.CoordinatorEntity):
205
+ coordinator: AvmWrapper
206
+ entity_description: FritzEntityDescription
207
+ _attr_has_entity_name: bool
208
+ _device_name: Incomplete
209
+ _attr_name: Incomplete
210
+ _attr_unique_id: Incomplete
211
+ def __init__(self, avm_wrapper: AvmWrapper, device_name: str, description: FritzEntityDescription) -> None: ...
212
+ @property
213
+ def device_info(self) -> DeviceInfo: ...
214
+
193
215
  class ConnectionInfo:
194
216
  connection: str
195
217
  mesh_role: MeshRoles
@@ -1,4 +1,4 @@
1
- from .common import AvmWrapper as AvmWrapper, ConnectionInfo as ConnectionInfo, FritzBoxBaseEntity as FritzBoxBaseEntity
1
+ from .common import AvmWrapper as AvmWrapper, ConnectionInfo as ConnectionInfo, FritzBoxBaseCoordinatorEntity as FritzBoxBaseCoordinatorEntity, FritzEntityDescription as FritzEntityDescription
2
2
  from .const import DOMAIN as DOMAIN, DSL_CONNECTION as DSL_CONNECTION, UPTIME_DEVIATION as UPTIME_DEVIATION
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable
@@ -9,8 +9,8 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
9
  from homeassistant.const import EntityCategory as EntityCategory, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, UnitOfDataRate as UnitOfDataRate, UnitOfInformation as UnitOfInformation
10
10
  from homeassistant.core import HomeAssistant as HomeAssistant
11
11
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
+ from homeassistant.helpers.typing import StateType as StateType
12
13
  from homeassistant.util.dt import utcnow as utcnow
13
- from typing import Any
14
14
 
15
15
  _LOGGER: Incomplete
16
16
 
@@ -32,11 +32,7 @@ def _retrieve_link_noise_margin_received_state(status: FritzStatus, last_value:
32
32
  def _retrieve_link_attenuation_sent_state(status: FritzStatus, last_value: str) -> float: ...
33
33
  def _retrieve_link_attenuation_received_state(status: FritzStatus, last_value: str) -> float: ...
34
34
 
35
- class FritzRequireKeysMixin:
36
- value_fn: Callable[[FritzStatus, Any], Any]
37
- def __init__(self, value_fn) -> None: ...
38
-
39
- class FritzSensorEntityDescription(SensorEntityDescription, FritzRequireKeysMixin):
35
+ class FritzSensorEntityDescription(SensorEntityDescription, FritzEntityDescription):
40
36
  is_suitable: Callable[[ConnectionInfo], bool]
41
37
  def __init__(self, value_fn, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, is_suitable) -> None: ...
42
38
 
@@ -44,12 +40,7 @@ SENSOR_TYPES: tuple[FritzSensorEntityDescription, ...]
44
40
 
45
41
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
46
42
 
47
- class FritzBoxSensor(FritzBoxBaseEntity, SensorEntity):
43
+ class FritzBoxSensor(FritzBoxBaseCoordinatorEntity, SensorEntity):
48
44
  entity_description: FritzSensorEntityDescription
49
- _last_device_value: Incomplete
50
- _attr_available: bool
51
- _attr_name: Incomplete
52
- _attr_unique_id: Incomplete
53
- def __init__(self, avm_wrapper: AvmWrapper, device_friendly_name: str, description: FritzSensorEntityDescription) -> None: ...
54
- _attr_native_value: Incomplete
55
- def update(self) -> None: ...
45
+ @property
46
+ def native_value(self) -> StateType: ...
@@ -26,7 +26,6 @@ def suitable_comfort_temperature(device: FritzhomeDevice) -> bool: ...
26
26
  def suitable_nextchange_temperature(device: FritzhomeDevice) -> bool: ...
27
27
  def suitable_nextchange_time(device: FritzhomeDevice) -> bool: ...
28
28
  def suitable_temperature(device: FritzhomeDevice) -> bool: ...
29
- def value_electric_current(device: FritzhomeDevice) -> float: ...
30
29
  def value_nextchange_preset(device: FritzhomeDevice) -> str: ...
31
30
  def value_scheduled_preset(device: FritzhomeDevice) -> str: ...
32
31
 
@@ -1,11 +1,10 @@
1
1
  import abc
2
2
  from . import FroniusSolarNet as FroniusSolarNet
3
3
  from .const import FroniusDeviceInfo as FroniusDeviceInfo, SOLAR_NET_ID_POWER_FLOW as SOLAR_NET_ID_POWER_FLOW, SOLAR_NET_ID_SYSTEM as SOLAR_NET_ID_SYSTEM, SolarNetId as SolarNetId
4
- from .sensor import INVERTER_ENTITY_DESCRIPTIONS as INVERTER_ENTITY_DESCRIPTIONS, LOGGER_ENTITY_DESCRIPTIONS as LOGGER_ENTITY_DESCRIPTIONS, METER_ENTITY_DESCRIPTIONS as METER_ENTITY_DESCRIPTIONS, OHMPILOT_ENTITY_DESCRIPTIONS as OHMPILOT_ENTITY_DESCRIPTIONS, POWER_FLOW_ENTITY_DESCRIPTIONS as POWER_FLOW_ENTITY_DESCRIPTIONS, STORAGE_ENTITY_DESCRIPTIONS as STORAGE_ENTITY_DESCRIPTIONS, _FroniusSensorEntity as _FroniusSensorEntity
4
+ from .sensor import FroniusSensorEntityDescription as FroniusSensorEntityDescription, INVERTER_ENTITY_DESCRIPTIONS as INVERTER_ENTITY_DESCRIPTIONS, LOGGER_ENTITY_DESCRIPTIONS as LOGGER_ENTITY_DESCRIPTIONS, METER_ENTITY_DESCRIPTIONS as METER_ENTITY_DESCRIPTIONS, OHMPILOT_ENTITY_DESCRIPTIONS as OHMPILOT_ENTITY_DESCRIPTIONS, POWER_FLOW_ENTITY_DESCRIPTIONS as POWER_FLOW_ENTITY_DESCRIPTIONS, STORAGE_ENTITY_DESCRIPTIONS as STORAGE_ENTITY_DESCRIPTIONS, _FroniusSensorEntity as _FroniusSensorEntity
5
5
  from _typeshed import Incomplete
6
6
  from abc import ABC, abstractmethod
7
7
  from datetime import timedelta
8
- from homeassistant.components.sensor import SensorEntityDescription as SensorEntityDescription
9
8
  from homeassistant.core import callback as callback
10
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
10
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
@@ -16,7 +15,7 @@ _FroniusEntityT = TypeVar('_FroniusEntityT', bound=_FroniusSensorEntity)
16
15
  class FroniusCoordinatorBase(ABC, DataUpdateCoordinator[dict[SolarNetId, dict[str, Any]]], metaclass=abc.ABCMeta):
17
16
  default_interval: timedelta
18
17
  error_interval: timedelta
19
- valid_descriptions: list[SensorEntityDescription]
18
+ valid_descriptions: list[FroniusSensorEntityDescription]
20
19
  MAX_FAILED_UPDATES: int
21
20
  _failed_update_count: int
22
21
  solar_net: Incomplete
@@ -8,6 +8,7 @@ from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.helpers.entity import DeviceInfo as DeviceInfo
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
+ from homeassistant.helpers.typing import StateType as StateType
11
12
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
12
13
  from typing import Any, Final
13
14
 
@@ -15,17 +16,21 @@ ENERGY_VOLT_AMPERE_REACTIVE_HOUR: Final[str]
15
16
 
16
17
  async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
17
18
 
18
- INVERTER_ENTITY_DESCRIPTIONS: list[SensorEntityDescription]
19
- LOGGER_ENTITY_DESCRIPTIONS: list[SensorEntityDescription]
20
- METER_ENTITY_DESCRIPTIONS: list[SensorEntityDescription]
21
- OHMPILOT_ENTITY_DESCRIPTIONS: list[SensorEntityDescription]
22
- POWER_FLOW_ENTITY_DESCRIPTIONS: list[SensorEntityDescription]
23
- STORAGE_ENTITY_DESCRIPTIONS: list[SensorEntityDescription]
19
+ class FroniusSensorEntityDescription(SensorEntityDescription):
20
+ default_value: Union[StateType, None]
21
+ def __init__(self, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, default_value) -> None: ...
22
+
23
+ INVERTER_ENTITY_DESCRIPTIONS: list[FroniusSensorEntityDescription]
24
+ LOGGER_ENTITY_DESCRIPTIONS: list[FroniusSensorEntityDescription]
25
+ METER_ENTITY_DESCRIPTIONS: list[FroniusSensorEntityDescription]
26
+ OHMPILOT_ENTITY_DESCRIPTIONS: list[FroniusSensorEntityDescription]
27
+ POWER_FLOW_ENTITY_DESCRIPTIONS: list[FroniusSensorEntityDescription]
28
+ STORAGE_ENTITY_DESCRIPTIONS: list[FroniusSensorEntityDescription]
24
29
 
25
30
  class _FroniusSensorEntity(CoordinatorEntity['FroniusCoordinatorBase'], SensorEntity):
26
- entity_descriptions: list[SensorEntityDescription]
31
+ entity_description: FroniusSensorEntityDescription
32
+ entity_descriptions: list[FroniusSensorEntityDescription]
27
33
  _attr_has_entity_name: bool
28
- entity_description: Incomplete
29
34
  solar_net_id: Incomplete
30
35
  _attr_native_value: Incomplete
31
36
  def __init__(self, coordinator: FroniusCoordinatorBase, key: str, solar_net_id: str) -> None: ...
@@ -3,7 +3,7 @@ from .coordinator import FullyKioskDataUpdateCoordinator as FullyKioskDataUpdate
3
3
  from .entity import FullyKioskEntity as FullyKioskEntity
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components import media_source as media_source
6
- from homeassistant.components.media_player import BrowseMedia as BrowseMedia, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerState as MediaPlayerState, async_process_play_media_url as async_process_play_media_url
6
+ from homeassistant.components.media_player import BrowseMedia as BrowseMedia, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerState as MediaPlayerState, MediaType as MediaType, async_process_play_media_url as async_process_play_media_url
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
@@ -17,8 +17,8 @@ class FullyMediaPlayer(FullyKioskEntity, MediaPlayerEntity):
17
17
  _attr_unique_id: Incomplete
18
18
  _attr_state: Incomplete
19
19
  def __init__(self, coordinator: FullyKioskDataUpdateCoordinator) -> None: ...
20
- async def async_play_media(self, media_type: str, media_id: str, **kwargs: Any) -> None: ...
20
+ async def async_play_media(self, media_type: Union[MediaType, str], media_id: str, **kwargs: Any) -> None: ...
21
21
  async def async_media_stop(self) -> None: ...
22
22
  _attr_volume_level: Incomplete
23
23
  async def async_set_volume_level(self, volume: float) -> None: ...
24
- async def async_browse_media(self, media_content_type: Union[str, None] = ..., media_content_id: Union[str, None] = ...) -> BrowseMedia: ...
24
+ async def async_browse_media(self, media_content_type: Union[MediaType, str, None] = ..., media_content_id: Union[str, None] = ...) -> BrowseMedia: ...
@@ -8,12 +8,12 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.const import EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfInformation as UnitOfInformation
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
- from typing import Any
11
+ from homeassistant.helpers.typing import StateType as StateType
12
12
 
13
13
  def round_storage(value: int) -> float: ...
14
14
 
15
15
  class FullySensorEntityDescription(SensorEntityDescription):
16
- state_fn: Union[Callable, None]
16
+ state_fn: Union[Callable[[int], float], None]
17
17
  def __init__(self, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, state_fn) -> None: ...
18
18
 
19
19
  SENSORS: tuple[FullySensorEntityDescription, ...]
@@ -25,4 +25,4 @@ class FullySensor(FullyKioskEntity, SensorEntity):
25
25
  _attr_unique_id: Incomplete
26
26
  def __init__(self, coordinator: FullyKioskDataUpdateCoordinator, sensor: FullySensorEntityDescription) -> None: ...
27
27
  @property
28
- def native_value(self) -> Any: ...
28
+ def native_value(self) -> StateType: ...
@@ -1,12 +1,12 @@
1
1
  from .const import API_TIMEOUT as API_TIMEOUT, CONF_STATION_ID as CONF_STATION_ID, DOMAIN as DOMAIN, SCAN_INTERVAL as SCAN_INTERVAL
2
2
  from _typeshed import Incomplete
3
3
  from aiohttp import ClientSession as ClientSession
4
+ from gios.model import GiosSensors
4
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
5
6
  from homeassistant.const import Platform as Platform
6
7
  from homeassistant.core import HomeAssistant as HomeAssistant
7
8
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
8
9
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
9
- from typing import Any
10
10
 
11
11
  _LOGGER: Incomplete
12
12
  PLATFORMS: Incomplete
@@ -14,7 +14,7 @@ PLATFORMS: Incomplete
14
14
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
15
15
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
16
16
 
17
- class GiosDataUpdateCoordinator(DataUpdateCoordinator):
17
+ class GiosDataUpdateCoordinator(DataUpdateCoordinator[GiosSensors]):
18
18
  gios: Incomplete
19
19
  def __init__(self, hass: HomeAssistant, session: ClientSession, station_id: int) -> None: ...
20
- async def _async_update_data(self) -> dict[str, Any]: ...
20
+ async def _async_update_data(self) -> GiosSensors: ...
@@ -8,8 +8,6 @@ DOMAIN: Final[str]
8
8
  MANUFACTURER: Final[str]
9
9
  URL: str
10
10
  API_TIMEOUT: Final[int]
11
- ATTR_INDEX: Final[str]
12
- ATTR_STATION: Final[str]
13
11
  ATTR_C6H6: Final[str]
14
12
  ATTR_CO: Final[str]
15
13
  ATTR_NO2: Final[str]
@@ -1,23 +1,27 @@
1
1
  from . import GiosDataUpdateCoordinator as GiosDataUpdateCoordinator
2
- from .const import ATTRIBUTION as ATTRIBUTION, ATTR_AQI as ATTR_AQI, ATTR_C6H6 as ATTR_C6H6, ATTR_CO as ATTR_CO, ATTR_INDEX as ATTR_INDEX, ATTR_NO2 as ATTR_NO2, ATTR_O3 as ATTR_O3, ATTR_PM10 as ATTR_PM10, ATTR_PM25 as ATTR_PM25, ATTR_SO2 as ATTR_SO2, ATTR_STATION as ATTR_STATION, DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER, URL as URL
2
+ from .const import ATTRIBUTION as ATTRIBUTION, ATTR_AQI as ATTR_AQI, ATTR_C6H6 as ATTR_C6H6, ATTR_CO as ATTR_CO, ATTR_NO2 as ATTR_NO2, ATTR_O3 as ATTR_O3, ATTR_PM10 as ATTR_PM10, ATTR_PM25 as ATTR_PM25, ATTR_SO2 as ATTR_SO2, DOMAIN as DOMAIN, MANUFACTURER as MANUFACTURER, URL as URL
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable
5
+ from gios.model import GiosSensors as GiosSensors
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 ATTR_NAME as ATTR_NAME, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONF_NAME as CONF_NAME
8
+ from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONF_NAME as CONF_NAME
8
9
  from homeassistant.core import HomeAssistant as HomeAssistant
9
10
  from homeassistant.helpers.device_registry import DeviceEntryType as DeviceEntryType
10
11
  from homeassistant.helpers.entity import DeviceInfo as DeviceInfo
11
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
13
  from homeassistant.helpers.typing import StateType as StateType
13
14
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
14
- from typing import Any
15
15
 
16
16
  _LOGGER: Incomplete
17
17
 
18
- class GiosSensorEntityDescription(SensorEntityDescription):
19
- value: Union[Callable, None]
20
- def __init__(self, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, value) -> None: ...
18
+ class GiosSensorRequiredKeysMixin:
19
+ value: Callable[[GiosSensors], StateType]
20
+ def __init__(self, value) -> None: ...
21
+
22
+ class GiosSensorEntityDescription(SensorEntityDescription, GiosSensorRequiredKeysMixin):
23
+ subkey: Union[str, None]
24
+ def __init__(self, value, key, device_class, entity_category, entity_registry_enabled_default, entity_registry_visible_default, force_update, icon, has_entity_name, name, translation_key, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, subkey) -> None: ...
21
25
 
22
26
  SENSOR_TYPES: tuple[GiosSensorEntityDescription, ...]
23
27
 
@@ -29,14 +33,7 @@ class GiosSensor(CoordinatorEntity[GiosDataUpdateCoordinator], SensorEntity):
29
33
  entity_description: GiosSensorEntityDescription
30
34
  _attr_device_info: Incomplete
31
35
  _attr_unique_id: Incomplete
32
- _attrs: Incomplete
33
36
  def __init__(self, name: str, coordinator: GiosDataUpdateCoordinator, description: GiosSensorEntityDescription) -> None: ...
34
- @property
35
- def extra_state_attributes(self) -> dict[str, Any]: ...
36
- @property
37
- def native_value(self) -> StateType: ...
38
-
39
- class GiosAqiSensor(GiosSensor):
40
37
  @property
41
38
  def native_value(self) -> StateType: ...
42
39
  @property
@@ -1,5 +1,5 @@
1
1
  from .api import ApiAuthImpl as ApiAuthImpl, get_feature_access as get_feature_access
2
- from .const import DATA_SERVICE as DATA_SERVICE, DATA_STORE as DATA_STORE, DOMAIN as DOMAIN, EVENT_DESCRIPTION as EVENT_DESCRIPTION, EVENT_END_DATE as EVENT_END_DATE, EVENT_END_DATETIME as EVENT_END_DATETIME, EVENT_IN as EVENT_IN, EVENT_IN_DAYS as EVENT_IN_DAYS, EVENT_IN_WEEKS as EVENT_IN_WEEKS, EVENT_START_DATE as EVENT_START_DATE, EVENT_START_DATETIME as EVENT_START_DATETIME, EVENT_SUMMARY as EVENT_SUMMARY, EVENT_TYPES_CONF as EVENT_TYPES_CONF, FeatureAccess as FeatureAccess
2
+ from .const import DATA_SERVICE as DATA_SERVICE, DATA_STORE as DATA_STORE, DOMAIN as DOMAIN, EVENT_DESCRIPTION as EVENT_DESCRIPTION, EVENT_END_DATE as EVENT_END_DATE, EVENT_END_DATETIME as EVENT_END_DATETIME, EVENT_IN as EVENT_IN, EVENT_IN_DAYS as EVENT_IN_DAYS, EVENT_IN_WEEKS as EVENT_IN_WEEKS, EVENT_LOCATION as EVENT_LOCATION, EVENT_START_DATE as EVENT_START_DATE, EVENT_START_DATETIME as EVENT_START_DATETIME, EVENT_SUMMARY as EVENT_SUMMARY, EVENT_TYPES_CONF as EVENT_TYPES_CONF, FeatureAccess as FeatureAccess
3
3
  from .store import LocalCalendarStore as LocalCalendarStore
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Mapping
@@ -8,7 +8,7 @@ from gcal_sync.api import GoogleCalendarService as GoogleCalendarService
8
8
  from gcal_sync.model import Event
9
9
  from gcal_sync.sync import CalendarEventSyncManager
10
10
  from gcal_sync.timeline import Timeline
11
- from homeassistant.components.calendar import CREATE_EVENT_SCHEMA as CREATE_EVENT_SCHEMA, CalendarEntity as CalendarEntity, CalendarEntityFeature as CalendarEntityFeature, CalendarEvent as CalendarEvent, ENTITY_ID_FORMAT as ENTITY_ID_FORMAT, EVENT_DESCRIPTION as EVENT_DESCRIPTION, EVENT_END as EVENT_END, EVENT_RRULE as EVENT_RRULE, EVENT_START as EVENT_START, EVENT_SUMMARY as EVENT_SUMMARY, extract_offset as extract_offset, is_offset_reached as is_offset_reached
11
+ from homeassistant.components.calendar import CREATE_EVENT_SCHEMA as CREATE_EVENT_SCHEMA, CalendarEntity as CalendarEntity, CalendarEntityFeature as CalendarEntityFeature, CalendarEvent as CalendarEvent, ENTITY_ID_FORMAT as ENTITY_ID_FORMAT, EVENT_DESCRIPTION as EVENT_DESCRIPTION, EVENT_END as EVENT_END, EVENT_LOCATION as EVENT_LOCATION, EVENT_RRULE as EVENT_RRULE, EVENT_START as EVENT_START, EVENT_SUMMARY as EVENT_SUMMARY, extract_offset as extract_offset, is_offset_reached as is_offset_reached
12
12
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
13
13
  from homeassistant.const import CONF_DEVICE_ID as CONF_DEVICE_ID, CONF_ENTITIES as CONF_ENTITIES, CONF_NAME as CONF_NAME, CONF_OFFSET as CONF_OFFSET
14
14
  from homeassistant.core import HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
@@ -24,6 +24,7 @@ EVENT_END_DATETIME: str
24
24
  EVENT_IN: str
25
25
  EVENT_IN_DAYS: str
26
26
  EVENT_IN_WEEKS: str
27
+ EVENT_LOCATION: str
27
28
  EVENT_START_DATE: str
28
29
  EVENT_START_DATETIME: str
29
30
  EVENT_SUMMARY: str
@@ -1,5 +1,6 @@
1
1
  from _typeshed import Incomplete
2
- from homeassistant.components.media_player import ATTR_MEDIA_CONTENT_ID as ATTR_MEDIA_CONTENT_ID, ATTR_MEDIA_CONTENT_TYPE as ATTR_MEDIA_CONTENT_TYPE, ATTR_MEDIA_SEEK_POSITION as ATTR_MEDIA_SEEK_POSITION, ATTR_MEDIA_SHUFFLE as ATTR_MEDIA_SHUFFLE, ATTR_MEDIA_VOLUME_LEVEL as ATTR_MEDIA_VOLUME_LEVEL, ATTR_MEDIA_VOLUME_MUTED as ATTR_MEDIA_VOLUME_MUTED, DOMAIN as DOMAIN, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, PLATFORM_SCHEMA as PLATFORM_SCHEMA, SERVICE_CLEAR_PLAYLIST as SERVICE_CLEAR_PLAYLIST, SERVICE_PLAY_MEDIA as SERVICE_PLAY_MEDIA
2
+ from collections.abc import Mapping
3
+ from homeassistant.components.media_player import ATTR_MEDIA_CONTENT_ID as ATTR_MEDIA_CONTENT_ID, ATTR_MEDIA_CONTENT_TYPE as ATTR_MEDIA_CONTENT_TYPE, ATTR_MEDIA_SEEK_POSITION as ATTR_MEDIA_SEEK_POSITION, ATTR_MEDIA_SHUFFLE as ATTR_MEDIA_SHUFFLE, ATTR_MEDIA_VOLUME_LEVEL as ATTR_MEDIA_VOLUME_LEVEL, ATTR_MEDIA_VOLUME_MUTED as ATTR_MEDIA_VOLUME_MUTED, DOMAIN as DOMAIN, MediaPlayerEntity as MediaPlayerEntity, MediaPlayerEntityFeature as MediaPlayerEntityFeature, MediaPlayerState as MediaPlayerState, MediaType as MediaType, PLATFORM_SCHEMA as PLATFORM_SCHEMA, SERVICE_CLEAR_PLAYLIST as SERVICE_CLEAR_PLAYLIST, SERVICE_PLAY_MEDIA as SERVICE_PLAY_MEDIA
3
4
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
4
5
  from homeassistant.const import ATTR_ENTITY_ID as ATTR_ENTITY_ID, ATTR_SUPPORTED_FEATURES as ATTR_SUPPORTED_FEATURES, CONF_ENTITIES as CONF_ENTITIES, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, SERVICE_MEDIA_NEXT_TRACK as SERVICE_MEDIA_NEXT_TRACK, SERVICE_MEDIA_PAUSE as SERVICE_MEDIA_PAUSE, SERVICE_MEDIA_PLAY as SERVICE_MEDIA_PLAY, SERVICE_MEDIA_PREVIOUS_TRACK as SERVICE_MEDIA_PREVIOUS_TRACK, SERVICE_MEDIA_SEEK as SERVICE_MEDIA_SEEK, SERVICE_MEDIA_STOP as SERVICE_MEDIA_STOP, SERVICE_SHUFFLE_SET as SERVICE_SHUFFLE_SET, SERVICE_TURN_OFF as SERVICE_TURN_OFF, SERVICE_TURN_ON as SERVICE_TURN_ON, SERVICE_VOLUME_MUTE as SERVICE_VOLUME_MUTE, SERVICE_VOLUME_SET as SERVICE_VOLUME_SET, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN
5
6
  from homeassistant.core import HomeAssistant as HomeAssistant, State as State, callback as callback
@@ -35,7 +36,7 @@ class MediaPlayerGroup(MediaPlayerEntity):
35
36
  @property
36
37
  def name(self) -> str: ...
37
38
  @property
38
- def extra_state_attributes(self) -> dict: ...
39
+ def extra_state_attributes(self) -> Mapping[str, Any]: ...
39
40
  async def async_clear_playlist(self) -> None: ...
40
41
  async def async_media_next_track(self) -> None: ...
41
42
  async def async_media_pause(self) -> None: ...
@@ -44,7 +45,7 @@ class MediaPlayerGroup(MediaPlayerEntity):
44
45
  async def async_media_seek(self, position: float) -> None: ...
45
46
  async def async_media_stop(self) -> None: ...
46
47
  async def async_mute_volume(self, mute: bool) -> None: ...
47
- async def async_play_media(self, media_type: str, media_id: str, **kwargs: Any) -> None: ...
48
+ async def async_play_media(self, media_type: Union[MediaType, str], media_id: str, **kwargs: Any) -> None: ...
48
49
  async def async_set_shuffle(self, shuffle: bool) -> None: ...
49
50
  async def async_turn_on(self) -> None: ...
50
51
  async def async_set_volume_level(self, volume: float) -> None: ...
@@ -7,7 +7,7 @@ from typing import Any
7
7
 
8
8
  CONF_SERVICES: str
9
9
 
10
- def update(input_dict: dict[str, Any], update_source: dict[str, Any]) -> dict[str, Any]: ...
10
+ def add_defaults(input_data: dict[str, Any], default_data: dict[str, Any]) -> dict[str, Any]: ...
11
11
  async def async_get_service(hass: HomeAssistant, config: ConfigType, discovery_info: Union[DiscoveryInfoType, None] = ...) -> GroupNotifyPlatform: ...
12
12
 
13
13
  class GroupNotifyPlatform(BaseNotificationService):
@@ -22,6 +22,7 @@ ATTR_LAST: str
22
22
  ATTR_LAST_ENTITY_ID: str
23
23
  ATTR_RANGE: str
24
24
  ATTR_SUM: str
25
+ ATTR_PRODUCT: str
25
26
  SENSOR_TYPES: Incomplete
26
27
  SENSOR_TYPE_TO_ATTR: Incomplete
27
28
  PARALLEL_UPDATES: int
@@ -37,6 +38,7 @@ def calc_median(sensor_values: list[tuple[str, float, State]]) -> tuple[dict[str
37
38
  def calc_last(sensor_values: list[tuple[str, float, State]]) -> tuple[dict[str, Union[str, None]], Union[float, None]]: ...
38
39
  def calc_range(sensor_values: list[tuple[str, float, State]]) -> tuple[dict[str, Union[str, None]], float]: ...
39
40
  def calc_sum(sensor_values: list[tuple[str, float, State]]) -> tuple[dict[str, Union[str, None]], float]: ...
41
+ def calc_product(sensor_values: list[tuple[str, float, State]]) -> tuple[dict[str, Union[str, None]], float]: ...
40
42
 
41
43
  CALC_TYPES: dict[str, Callable[[list[tuple[str, float, State]]], tuple[dict[str, Union[str, None]], Union[float, None]]]]
42
44
 
@@ -5,7 +5,6 @@ from aioguardian import Client as Client
5
5
  from collections.abc import Awaitable, Callable as Callable, Iterable
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
- from homeassistant.helpers import entity_registry as entity_registry
9
8
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
10
9
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
11
10
  from typing import Any
@@ -32,7 +32,8 @@ def _ws_get_significant_states(hass: HomeAssistant, msg_id: int, start_time: dt,
32
32
  async def ws_get_history_during_period(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]) -> None: ...
33
33
  def _generate_stream_message(states: MutableMapping[str, list[dict[str, Any]]], start_day: dt, end_day: dt) -> dict[str, Any]: ...
34
34
  def _async_send_empty_response(connection: ActiveConnection, msg_id: int, start_time: dt, end_time: Union[dt, None]) -> None: ...
35
- def _async_send_response(connection: ActiveConnection, msg_id: int, start_time: dt, end_time: dt, states: MutableMapping[str, list[dict[str, Any]]]) -> None: ...
35
+ def _generate_websocket_response(msg_id: int, start_time: dt, end_time: dt, states: MutableMapping[str, list[dict[str, Any]]]) -> str: ...
36
+ def _generate_historical_response(hass: HomeAssistant, msg_id: int, start_time: dt, end_time: dt, entity_ids: Union[list[str], None], filters: Union[Filters, None], include_start_time_state: bool, significant_changes_only: bool, minimal_response: bool, no_attributes: bool, send_empty: bool) -> tuple[float, Union[dt, None], Union[str, None]]: ...
36
37
  async def _async_send_historical_states(hass: HomeAssistant, connection: ActiveConnection, msg_id: int, start_time: dt, end_time: dt, entity_ids: Union[list[str], None], filters: Union[Filters, None], include_start_time_state: bool, significant_changes_only: bool, minimal_response: bool, no_attributes: bool, send_empty: bool) -> Union[dt, None]: ...
37
38
  def _history_compressed_state(state: State, no_attributes: bool) -> dict[str, Any]: ...
38
39
  def _events_to_compressed_states(events: Iterable[Event], no_attributes: bool) -> MutableMapping[str, list[dict[str, Any]]]: ...
@@ -1,13 +1,15 @@
1
1
  from _typeshed import Incomplete
2
2
  from homeassistant.components.hassio import get_supervisor_info as get_supervisor_info, is_hassio as is_hassio
3
- from homeassistant.const import __version__ as __version__
4
- from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
3
+ from homeassistant.const import EVENT_COMPONENT_LOADED as EVENT_COMPONENT_LOADED, __version__ as __version__
4
+ from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
5
5
  from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
6
+ from homeassistant.helpers.debounce import Debouncer as Debouncer
6
7
  from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue, async_delete_issue as async_delete_issue
7
8
  from homeassistant.helpers.start import async_at_start as async_at_start
8
9
  from homeassistant.helpers.typing import ConfigType as ConfigType
9
10
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator
10
11
 
12
+ COMPONENT_LOADED_COOLDOWN: int
11
13
  DOMAIN: str
12
14
  UPDATE_INTERVAL: Incomplete
13
15
  _LOGGER: Incomplete
@@ -3,10 +3,11 @@ from .const import LOGGER as LOGGER, SILABS_MULTIPROTOCOL_ADDON_SLUG as SILABS_M
3
3
  from _typeshed import Incomplete
4
4
  from abc import ABC, abstractmethod
5
5
  from homeassistant import config_entries as config_entries
6
- from homeassistant.components.hassio import AddonError as AddonError, AddonInfo as AddonInfo, AddonManager as AddonManager, AddonState as AddonState, is_hassio as is_hassio
6
+ from homeassistant.components.hassio import AddonError as AddonError, AddonInfo as AddonInfo, AddonManager as AddonManager, AddonState as AddonState, hostname_from_addon_slug as hostname_from_addon_slug, is_hassio as is_hassio
7
7
  from homeassistant.components.zha.radio_manager import ZhaMultiPANMigrationHelper as ZhaMultiPANMigrationHelper
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.data_entry_flow import AbortFlow as AbortFlow, FlowHandler as FlowHandler, FlowManager as FlowManager, FlowResult as FlowResult
10
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
10
11
  from homeassistant.helpers.singleton import singleton as singleton
11
12
  from typing import Any
12
13
 
@@ -26,7 +27,8 @@ class SerialPortSettings:
26
27
  flow_control: bool
27
28
  def __init__(self, device, baudrate, flow_control) -> None: ...
28
29
 
29
- def get_zigbee_socket(hass: HomeAssistant, addon_info: AddonInfo) -> str: ...
30
+ def get_zigbee_socket() -> str: ...
31
+ def is_multiprotocol_url(url: str) -> bool: ...
30
32
 
31
33
  class BaseMultiPanFlow(FlowHandler, ABC, metaclass=abc.ABCMeta):
32
34
  install_task: Incomplete
@@ -73,3 +75,6 @@ class OptionsFlowHandler(BaseMultiPanFlow, config_entries.OptionsFlow, metaclass
73
75
  async def async_step_addon_installed(self, user_input: Union[dict[str, Any], None] = ...) -> FlowResult: ...
74
76
  async def async_step_show_revert_guide(self, user_input: Union[dict[str, Any], None] = ...) -> FlowResult: ...
75
77
  async def async_step_addon_installed_other_device(self, user_input: Union[dict[str, Any], None] = ...) -> FlowResult: ...
78
+
79
+ async def check_multi_pan_addon(hass: HomeAssistant) -> None: ...
80
+ async def multi_pan_addon_using_device(hass: HomeAssistant, device_path: str) -> bool: ...