homeassistant-stubs 2023.7.2__py3-none-any.whl → 2023.8.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 (368) hide show
  1. homeassistant-stubs/backports/enum.pyi +1 -9
  2. homeassistant-stubs/backports/functools.pyi +6 -8
  3. homeassistant-stubs/components/accuweather/sensor.pyi +3 -4
  4. homeassistant-stubs/components/accuweather/weather.pyi +3 -1
  5. homeassistant-stubs/components/airzone_cloud/binary_sensor.pyi +8 -1
  6. homeassistant-stubs/components/alarm_control_panel/const.pyi +1 -2
  7. homeassistant-stubs/components/alert/__init__.pyi +4 -4
  8. homeassistant-stubs/components/apcupsd/__init__.pyi +3 -4
  9. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +0 -1
  10. homeassistant-stubs/components/apcupsd/sensor.pyi +0 -1
  11. homeassistant-stubs/components/aseko_pool_live/__init__.pyi +1 -7
  12. homeassistant-stubs/components/aseko_pool_live/binary_sensor.pyi +1 -1
  13. homeassistant-stubs/components/aseko_pool_live/coordinator.pyi +11 -0
  14. homeassistant-stubs/components/aseko_pool_live/entity.pyi +1 -1
  15. homeassistant-stubs/components/aseko_pool_live/sensor.pyi +2 -2
  16. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +1 -1
  17. homeassistant-stubs/components/assist_pipeline/vad.pyi +1 -1
  18. homeassistant-stubs/components/asuswrt/bridge.pyi +78 -0
  19. homeassistant-stubs/components/asuswrt/config_flow.pyi +2 -4
  20. homeassistant-stubs/components/asuswrt/const.pyi +3 -0
  21. homeassistant-stubs/components/asuswrt/router.pyi +8 -30
  22. homeassistant-stubs/components/asuswrt/sensor.pyi +5 -4
  23. homeassistant-stubs/components/bayesian/binary_sensor.pyi +3 -3
  24. homeassistant-stubs/components/binary_sensor/__init__.pyi +1 -1
  25. homeassistant-stubs/components/bluetooth/advertisement_tracker.pyi +1 -0
  26. homeassistant-stubs/components/bluetooth/manager.pyi +1 -0
  27. homeassistant-stubs/components/bluetooth/wrappers.pyi +2 -1
  28. homeassistant-stubs/components/braviatv/const.pyi +1 -1
  29. homeassistant-stubs/components/button/__init__.pyi +1 -1
  30. homeassistant-stubs/components/camera/const.pyi +1 -1
  31. homeassistant-stubs/components/cover/__init__.pyi +1 -2
  32. homeassistant-stubs/components/crownstone/devices.pyi +1 -0
  33. homeassistant-stubs/components/crownstone/light.pyi +1 -1
  34. homeassistant-stubs/components/demo/button.pyi +2 -2
  35. homeassistant-stubs/components/demo/climate.pyi +1 -0
  36. homeassistant-stubs/components/demo/event.pyi +22 -0
  37. homeassistant-stubs/components/demo/sensor.pyi +2 -3
  38. homeassistant-stubs/components/demo/water_heater.pyi +2 -0
  39. homeassistant-stubs/components/demo/weather.pyi +13 -5
  40. homeassistant-stubs/components/derivative/sensor.pyi +3 -3
  41. homeassistant-stubs/components/device_tracker/const.pyi +1 -1
  42. homeassistant-stubs/components/dhcp/__init__.pyi +4 -4
  43. homeassistant-stubs/components/diagnostics/const.pyi +1 -1
  44. homeassistant-stubs/components/dlna_dmr/media_player.pyi +1 -1
  45. homeassistant-stubs/components/dsmr/sensor.pyi +1 -1
  46. homeassistant-stubs/components/dunehd/media_player.pyi +2 -2
  47. homeassistant-stubs/components/electric_kiwi/__init__.pyi +13 -0
  48. homeassistant-stubs/components/electric_kiwi/api.pyi +10 -0
  49. homeassistant-stubs/components/electric_kiwi/application_credentials.pyi +9 -0
  50. homeassistant-stubs/components/electric_kiwi/config_flow.pyi +20 -0
  51. homeassistant-stubs/components/electric_kiwi/const.pyi +7 -0
  52. homeassistant-stubs/components/electric_kiwi/coordinator.pyi +17 -0
  53. homeassistant-stubs/components/electric_kiwi/oauth2.pyi +15 -0
  54. homeassistant-stubs/components/electric_kiwi/sensor.pyi +37 -0
  55. homeassistant-stubs/components/emulated_hue/config.pyi +4 -4
  56. homeassistant-stubs/components/emulated_hue/hue_api.pyi +3 -1
  57. homeassistant-stubs/components/esphome/__init__.pyi +5 -39
  58. homeassistant-stubs/components/esphome/bluetooth/__init__.pyi +5 -4
  59. homeassistant-stubs/components/esphome/bluetooth/cache.pyi +15 -0
  60. homeassistant-stubs/components/esphome/bluetooth/client.pyi +27 -9
  61. homeassistant-stubs/components/esphome/bluetooth/device.pyi +15 -0
  62. homeassistant-stubs/components/esphome/camera.pyi +6 -3
  63. homeassistant-stubs/components/esphome/climate.pyi +1 -0
  64. homeassistant-stubs/components/esphome/config_flow.pyi +2 -2
  65. homeassistant-stubs/components/esphome/const.pyi +8 -0
  66. homeassistant-stubs/components/esphome/domain_data.pyi +4 -14
  67. homeassistant-stubs/components/esphome/entity.pyi +4 -2
  68. homeassistant-stubs/components/esphome/entry_data.pyi +4 -6
  69. homeassistant-stubs/components/esphome/manager.pyi +69 -0
  70. homeassistant-stubs/components/esphome/update.pyi +3 -0
  71. homeassistant-stubs/components/event/__init__.pyi +50 -0
  72. homeassistant-stubs/components/event/const.pyi +3 -0
  73. homeassistant-stubs/components/event/recorder.pyi +4 -0
  74. homeassistant-stubs/components/evil_genius_labs/__init__.pyi +1 -0
  75. homeassistant-stubs/components/evil_genius_labs/light.pyi +1 -2
  76. homeassistant-stubs/components/fastdotcom/sensor.pyi +2 -1
  77. homeassistant-stubs/components/filter/sensor.pyi +4 -4
  78. homeassistant-stubs/components/fitbit/const.pyi +1 -11
  79. homeassistant-stubs/components/fitbit/sensor.pyi +11 -3
  80. homeassistant-stubs/components/fritz/common.pyi +2 -7
  81. homeassistant-stubs/components/fritz/const.pyi +1 -1
  82. homeassistant-stubs/components/fritzbox_callmonitor/config_flow.pyi +1 -1
  83. homeassistant-stubs/components/fritzbox_callmonitor/const.pyi +1 -1
  84. homeassistant-stubs/components/fritzbox_callmonitor/sensor.pyi +1 -1
  85. homeassistant-stubs/components/fronius/__init__.pyi +6 -2
  86. homeassistant-stubs/components/fronius/const.pyi +2 -0
  87. homeassistant-stubs/components/fronius/sensor.pyi +2 -1
  88. homeassistant-stubs/components/frontend/__init__.pyi +4 -2
  89. homeassistant-stubs/components/geo_location/trigger.pyi +3 -3
  90. homeassistant-stubs/components/group/__init__.pyi +5 -4
  91. homeassistant-stubs/components/group/binary_sensor.pyi +3 -3
  92. homeassistant-stubs/components/group/cover.pyi +4 -4
  93. homeassistant-stubs/components/group/fan.pyi +4 -4
  94. homeassistant-stubs/components/group/light.pyi +3 -3
  95. homeassistant-stubs/components/group/lock.pyi +3 -3
  96. homeassistant-stubs/components/group/media_player.pyi +4 -2
  97. homeassistant-stubs/components/group/sensor.pyi +3 -3
  98. homeassistant-stubs/components/group/switch.pyi +3 -3
  99. homeassistant-stubs/components/guardian/__init__.pyi +0 -2
  100. homeassistant-stubs/components/history/websocket_api.pyi +2 -1
  101. homeassistant-stubs/components/homeassistant_hardware/silabs_multiprotocol_addon.pyi +3 -0
  102. homeassistant-stubs/components/homekit/accessories.pyi +6 -5
  103. homeassistant-stubs/components/homekit/util.pyi +4 -2
  104. homeassistant-stubs/components/http/__init__.pyi +7 -0
  105. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +1 -1
  106. homeassistant-stubs/components/hydrawise/coordinator.pyi +2 -2
  107. homeassistant-stubs/components/hydrawise/sensor.pyi +1 -1
  108. homeassistant-stubs/components/hydrawise/switch.pyi +1 -1
  109. homeassistant-stubs/components/image/__init__.pyi +2 -0
  110. homeassistant-stubs/components/image_processing/__init__.pyi +1 -1
  111. homeassistant-stubs/components/imap/__init__.pyi +1 -1
  112. homeassistant-stubs/components/imap/config_flow.pyi +1 -1
  113. homeassistant-stubs/components/imap/const.pyi +1 -0
  114. homeassistant-stubs/components/imap/coordinator.pyi +5 -1
  115. homeassistant-stubs/components/input_button/__init__.pyi +1 -1
  116. homeassistant-stubs/components/input_select/__init__.pyi +1 -2
  117. homeassistant-stubs/components/integration/sensor.pyi +4 -5
  118. homeassistant-stubs/components/isy994/climate.pyi +1 -0
  119. homeassistant-stubs/components/jellyfin/__init__.pyi +2 -0
  120. homeassistant-stubs/components/jellyfin/coordinator.pyi +2 -0
  121. homeassistant-stubs/components/jellyfin/media_source.pyi +1 -1
  122. homeassistant-stubs/components/kaleidescape/entity.pyi +2 -2
  123. homeassistant-stubs/components/kaleidescape/media_player.pyi +1 -0
  124. homeassistant-stubs/components/kaleidescape/remote.pyi +1 -0
  125. homeassistant-stubs/components/kaleidescape/sensor.pyi +0 -1
  126. homeassistant-stubs/components/knx/__init__.pyi +1 -1
  127. homeassistant-stubs/components/knx/date.pyi +29 -0
  128. homeassistant-stubs/components/knx/datetime.pyi +26 -0
  129. homeassistant-stubs/components/knx/expose.pyi +4 -4
  130. homeassistant-stubs/components/knx/knx_entity.pyi +0 -1
  131. homeassistant-stubs/components/knx/schema.pyi +10 -0
  132. homeassistant-stubs/components/knx/sensor.pyi +0 -1
  133. homeassistant-stubs/components/knx/telegrams.pyi +10 -3
  134. homeassistant-stubs/components/kraken/const.pyi +0 -12
  135. homeassistant-stubs/components/kraken/sensor.pyi +12 -2
  136. homeassistant-stubs/components/lacrosse_view/sensor.pyi +1 -0
  137. homeassistant-stubs/components/laundrify/binary_sensor.pyi +2 -2
  138. homeassistant-stubs/components/ld2410_ble/binary_sensor.pyi +1 -0
  139. homeassistant-stubs/components/ld2410_ble/sensor.pyi +1 -0
  140. homeassistant-stubs/components/lifx/binary_sensor.pyi +0 -1
  141. homeassistant-stubs/components/lifx/button.pyi +0 -1
  142. homeassistant-stubs/components/lifx/entity.pyi +1 -0
  143. homeassistant-stubs/components/lifx/light.pyi +1 -1
  144. homeassistant-stubs/components/lifx/select.pyi +0 -2
  145. homeassistant-stubs/components/lifx/sensor.pyi +0 -1
  146. homeassistant-stubs/components/light/__init__.pyi +2 -4
  147. homeassistant-stubs/components/logbook/helpers.pyi +2 -1
  148. homeassistant-stubs/components/logger/helpers.pyi +1 -1
  149. homeassistant-stubs/components/matter/binary_sensor.pyi +1 -1
  150. homeassistant-stubs/components/matter/entity.pyi +1 -1
  151. homeassistant-stubs/components/matter/event.pyi +27 -0
  152. homeassistant-stubs/components/matter/sensor.pyi +1 -1
  153. homeassistant-stubs/components/media_player/__init__.pyi +2 -3
  154. homeassistant-stubs/components/media_player/const.pyi +3 -2
  155. homeassistant-stubs/components/min_max/sensor.pyi +3 -3
  156. homeassistant-stubs/components/mqtt/__init__.pyi +5 -3
  157. homeassistant-stubs/components/mqtt/alarm_control_panel.pyi +1 -0
  158. homeassistant-stubs/components/mqtt/binary_sensor.pyi +1 -0
  159. homeassistant-stubs/components/mqtt/button.pyi +1 -0
  160. homeassistant-stubs/components/mqtt/camera.pyi +1 -0
  161. homeassistant-stubs/components/mqtt/client.pyi +4 -1
  162. homeassistant-stubs/components/mqtt/climate.pyi +2 -3
  163. homeassistant-stubs/components/mqtt/config_integration.pyi +1 -1
  164. homeassistant-stubs/components/mqtt/const.pyi +2 -0
  165. homeassistant-stubs/components/mqtt/cover.pyi +1 -0
  166. homeassistant-stubs/components/mqtt/device_tracker.pyi +1 -0
  167. homeassistant-stubs/components/mqtt/event.pyi +46 -0
  168. homeassistant-stubs/components/mqtt/fan.pyi +1 -0
  169. homeassistant-stubs/components/mqtt/humidifier.pyi +1 -0
  170. homeassistant-stubs/components/mqtt/image.pyi +1 -0
  171. homeassistant-stubs/components/mqtt/light/schema_basic.pyi +1 -0
  172. homeassistant-stubs/components/mqtt/light/schema_json.pyi +1 -0
  173. homeassistant-stubs/components/mqtt/light/schema_template.pyi +1 -0
  174. homeassistant-stubs/components/mqtt/lock.pyi +1 -0
  175. homeassistant-stubs/components/mqtt/mixins.pyi +15 -10
  176. homeassistant-stubs/components/mqtt/models.pyi +4 -4
  177. homeassistant-stubs/components/mqtt/number.pyi +1 -0
  178. homeassistant-stubs/components/mqtt/scene.pyi +4 -4
  179. homeassistant-stubs/components/mqtt/select.pyi +1 -0
  180. homeassistant-stubs/components/mqtt/sensor.pyi +1 -0
  181. homeassistant-stubs/components/mqtt/siren.pyi +3 -2
  182. homeassistant-stubs/components/mqtt/switch.pyi +1 -0
  183. homeassistant-stubs/components/mqtt/tag.pyi +1 -1
  184. homeassistant-stubs/components/mqtt/text.pyi +1 -0
  185. homeassistant-stubs/components/mqtt/update.pyi +1 -0
  186. homeassistant-stubs/components/mqtt/vacuum/__init__.pyi +6 -0
  187. homeassistant-stubs/components/mqtt/vacuum/schema_legacy.pyi +1 -0
  188. homeassistant-stubs/components/mqtt/vacuum/schema_state.pyi +1 -0
  189. homeassistant-stubs/components/mqtt/water_heater.pyi +4 -1
  190. homeassistant-stubs/components/nanoleaf/button.pyi +3 -4
  191. homeassistant-stubs/components/nanoleaf/entity.pyi +1 -0
  192. homeassistant-stubs/components/nanoleaf/light.pyi +1 -1
  193. homeassistant-stubs/components/nest/__init__.pyi +2 -3
  194. homeassistant-stubs/components/nest/camera.pyi +53 -3
  195. homeassistant-stubs/components/nest/climate.pyi +76 -3
  196. homeassistant-stubs/components/nest/config_flow.pyi +0 -23
  197. homeassistant-stubs/components/nest/sensor.pyi +35 -3
  198. homeassistant-stubs/components/notion/const.pyi +1 -0
  199. homeassistant-stubs/components/notion/sensor.pyi +1 -1
  200. homeassistant-stubs/components/number/__init__.pyi +1 -2
  201. homeassistant-stubs/components/number/const.pyi +4 -2
  202. homeassistant-stubs/components/nut/diagnostics.pyi +1 -1
  203. homeassistant-stubs/components/opensky/__init__.pyi +7 -0
  204. homeassistant-stubs/components/opensky/config_flow.pyi +11 -0
  205. homeassistant-stubs/components/opensky/const.pyi +17 -0
  206. homeassistant-stubs/components/opensky/sensor.pyi +7 -17
  207. homeassistant-stubs/components/otbr/websocket_api.pyi +2 -0
  208. homeassistant-stubs/components/persistent_notification/__init__.pyi +1 -1
  209. homeassistant-stubs/components/pi_hole/binary_sensor.pyi +1 -1
  210. homeassistant-stubs/components/pure_energie/sensor.pyi +1 -0
  211. homeassistant-stubs/components/purpleair/__init__.pyi +6 -2
  212. homeassistant-stubs/components/purpleair/config_flow.pyi +7 -3
  213. homeassistant-stubs/components/purpleair/const.pyi +1 -0
  214. homeassistant-stubs/components/qnap_qsw/entity.pyi +1 -1
  215. homeassistant-stubs/components/rainmachine/util.pyi +1 -1
  216. homeassistant-stubs/components/recorder/const.pyi +1 -1
  217. homeassistant-stubs/components/recorder/db_schema.pyi +1 -2
  218. homeassistant-stubs/components/scrape/__init__.pyi +1 -1
  219. homeassistant-stubs/components/scrape/sensor.pyi +10 -6
  220. homeassistant-stubs/components/sensibo/entity.pyi +1 -2
  221. homeassistant-stubs/components/sensor/__init__.pyi +1 -2
  222. homeassistant-stubs/components/sensor/const.pyi +3 -2
  223. homeassistant-stubs/components/sensor/device_condition.pyi +1 -0
  224. homeassistant-stubs/components/sensor/device_trigger.pyi +1 -0
  225. homeassistant-stubs/components/sensor/recorder.pyi +1 -1
  226. homeassistant-stubs/components/senz/climate.pyi +2 -1
  227. homeassistant-stubs/components/sfr_box/binary_sensor.pyi +1 -0
  228. homeassistant-stubs/components/sfr_box/button.pyi +1 -0
  229. homeassistant-stubs/components/sfr_box/sensor.pyi +1 -0
  230. homeassistant-stubs/components/shelly/__init__.pyi +1 -1
  231. homeassistant-stubs/components/shelly/climate.pyi +1 -1
  232. homeassistant-stubs/components/shelly/const.pyi +5 -1
  233. homeassistant-stubs/components/shelly/coordinator.pyi +2 -1
  234. homeassistant-stubs/components/shelly/entity.pyi +0 -4
  235. homeassistant-stubs/components/shelly/logbook.pyi +2 -3
  236. homeassistant-stubs/components/shelly/sensor.pyi +1 -1
  237. homeassistant-stubs/components/shelly/utils.pyi +1 -2
  238. homeassistant-stubs/components/simplisafe/alarm_control_panel.pyi +1 -0
  239. homeassistant-stubs/components/simplisafe/binary_sensor.pyi +0 -1
  240. homeassistant-stubs/components/skybell/light.pyi +1 -0
  241. homeassistant-stubs/components/sql/__init__.pyi +2 -1
  242. homeassistant-stubs/components/sql/config_flow.pyi +3 -1
  243. homeassistant-stubs/components/sql/sensor.pyi +12 -10
  244. homeassistant-stubs/components/ssdp/__init__.pyi +3 -3
  245. homeassistant-stubs/components/statistics/sensor.pyi +3 -3
  246. homeassistant-stubs/components/stookalert/binary_sensor.pyi +1 -0
  247. homeassistant-stubs/components/stream/worker.pyi +1 -2
  248. homeassistant-stubs/components/switch/__init__.pyi +1 -1
  249. homeassistant-stubs/components/switch/light.pyi +3 -3
  250. homeassistant-stubs/components/text/__init__.pyi +1 -1
  251. homeassistant-stubs/components/threshold/binary_sensor.pyi +3 -3
  252. homeassistant-stubs/components/tolo/__init__.pyi +1 -0
  253. homeassistant-stubs/components/tolo/binary_sensor.pyi +2 -2
  254. homeassistant-stubs/components/tolo/button.pyi +1 -1
  255. homeassistant-stubs/components/tolo/climate.pyi +1 -1
  256. homeassistant-stubs/components/tolo/fan.pyi +1 -1
  257. homeassistant-stubs/components/tolo/light.pyi +1 -1
  258. homeassistant-stubs/components/tolo/select.pyi +0 -1
  259. homeassistant-stubs/components/tplink/entity.pyi +1 -1
  260. homeassistant-stubs/components/tplink/light.pyi +1 -0
  261. homeassistant-stubs/components/tplink/sensor.pyi +0 -2
  262. homeassistant-stubs/components/tplink/switch.pyi +10 -1
  263. homeassistant-stubs/components/tractive/__init__.pyi +2 -1
  264. homeassistant-stubs/components/tractive/binary_sensor.pyi +0 -3
  265. homeassistant-stubs/components/tractive/const.pyi +6 -1
  266. homeassistant-stubs/components/tractive/device_tracker.pyi +0 -1
  267. homeassistant-stubs/components/tractive/entity.pyi +1 -0
  268. homeassistant-stubs/components/tractive/sensor.pyi +6 -4
  269. homeassistant-stubs/components/tractive/switch.pyi +0 -1
  270. homeassistant-stubs/components/tradfri/base_class.pyi +1 -1
  271. homeassistant-stubs/components/tradfri/cover.pyi +1 -0
  272. homeassistant-stubs/components/tradfri/fan.pyi +1 -0
  273. homeassistant-stubs/components/tradfri/light.pyi +1 -0
  274. homeassistant-stubs/components/tradfri/sensor.pyi +0 -2
  275. homeassistant-stubs/components/tradfri/switch.pyi +1 -0
  276. homeassistant-stubs/components/trafikverket_train/__init__.pyi +1 -0
  277. homeassistant-stubs/components/trafikverket_train/coordinator.pyi +39 -0
  278. homeassistant-stubs/components/trafikverket_train/sensor.pyi +12 -20
  279. homeassistant-stubs/components/twentemilieu/sensor.pyi +1 -1
  280. homeassistant-stubs/components/unifi/device_tracker.pyi +1 -1
  281. homeassistant-stubs/components/unifi/entity.pyi +8 -5
  282. homeassistant-stubs/components/unifi/image.pyi +37 -0
  283. homeassistant-stubs/components/unifi/sensor.pyi +4 -2
  284. homeassistant-stubs/components/unifi/switch.pyi +3 -2
  285. homeassistant-stubs/components/unifi/update.pyi +1 -1
  286. homeassistant-stubs/components/unifiprotect/entity.pyi +0 -1
  287. homeassistant-stubs/components/unifiprotect/models.pyi +7 -4
  288. homeassistant-stubs/components/unifiprotect/sensor.pyi +0 -3
  289. homeassistant-stubs/components/unifiprotect/utils.pyi +1 -1
  290. homeassistant-stubs/components/update/__init__.pyi +1 -1
  291. homeassistant-stubs/components/uptimerobot/entity.pyi +2 -0
  292. homeassistant-stubs/components/vacuum/__init__.pyi +4 -6
  293. homeassistant-stubs/components/vallox/__init__.pyi +1 -0
  294. homeassistant-stubs/components/vallox/binary_sensor.pyi +0 -1
  295. homeassistant-stubs/components/vallox/fan.pyi +1 -1
  296. homeassistant-stubs/components/vallox/number.pyi +0 -1
  297. homeassistant-stubs/components/vallox/sensor.pyi +0 -1
  298. homeassistant-stubs/components/vallox/switch.pyi +0 -1
  299. homeassistant-stubs/components/vlc_telnet/media_player.pyi +2 -3
  300. homeassistant-stubs/components/wallbox/const.pyi +1 -1
  301. homeassistant-stubs/components/water_heater/__init__.pyi +5 -0
  302. homeassistant-stubs/components/weather/__init__.pyi +18 -4
  303. homeassistant-stubs/components/weather/const.pyi +7 -0
  304. homeassistant-stubs/components/weather/websocket_api.pyi +6 -1
  305. homeassistant-stubs/components/websocket_api/auth.pyi +1 -1
  306. homeassistant-stubs/components/websocket_api/commands.pyi +6 -1
  307. homeassistant-stubs/components/websocket_api/connection.pyi +2 -1
  308. homeassistant-stubs/components/websocket_api/http.pyi +2 -1
  309. homeassistant-stubs/components/wemo/__init__.pyi +10 -4
  310. homeassistant-stubs/components/wemo/binary_sensor.pyi +2 -2
  311. homeassistant-stubs/components/wemo/fan.pyi +2 -2
  312. homeassistant-stubs/components/wemo/light.pyi +1 -1
  313. homeassistant-stubs/components/wemo/models.pyi +21 -0
  314. homeassistant-stubs/components/wemo/sensor.pyi +2 -2
  315. homeassistant-stubs/components/wemo/switch.pyi +2 -2
  316. homeassistant-stubs/components/wemo/wemo_device.pyi +5 -0
  317. homeassistant-stubs/components/wiz/binary_sensor.pyi +0 -1
  318. homeassistant-stubs/components/yalexs_ble/binary_sensor.pyi +0 -1
  319. homeassistant-stubs/components/yalexs_ble/entity.pyi +1 -0
  320. homeassistant-stubs/components/yalexs_ble/lock.pyi +0 -1
  321. homeassistant-stubs/components/zodiac/__init__.pyi +4 -1
  322. homeassistant-stubs/components/zodiac/config_flow.pyi +9 -0
  323. homeassistant-stubs/components/zodiac/const.pyi +1 -0
  324. homeassistant-stubs/components/zodiac/sensor.pyi +9 -4
  325. homeassistant-stubs/components/zone/__init__.pyi +4 -5
  326. homeassistant-stubs/components/zone/trigger.pyi +3 -3
  327. homeassistant-stubs/components/zwave_js/climate.pyi +3 -1
  328. homeassistant-stubs/components/zwave_js/device_action.pyi +3 -1
  329. homeassistant-stubs/components/zwave_js/discovery.pyi +1 -1
  330. homeassistant-stubs/config_entries.pyi +3 -5
  331. homeassistant-stubs/const.pyi +3 -1
  332. homeassistant-stubs/core.pyi +10 -12
  333. homeassistant-stubs/data_entry_flow.pyi +2 -3
  334. homeassistant-stubs/exceptions.pyi +0 -4
  335. homeassistant-stubs/helpers/check_config.pyi +1 -2
  336. homeassistant-stubs/helpers/config_validation.pyi +11 -2
  337. homeassistant-stubs/helpers/device_registry.pyi +32 -8
  338. homeassistant-stubs/helpers/entity.pyi +9 -7
  339. homeassistant-stubs/helpers/entity_platform.pyi +2 -3
  340. homeassistant-stubs/helpers/entity_registry.pyi +15 -2
  341. homeassistant-stubs/helpers/event.pyi +39 -33
  342. homeassistant-stubs/helpers/httpx_client.pyi +4 -2
  343. homeassistant-stubs/helpers/issue_registry.pyi +1 -1
  344. homeassistant-stubs/helpers/restore_state.pyi +1 -2
  345. homeassistant-stubs/helpers/selector.pyi +14 -6
  346. homeassistant-stubs/helpers/service.pyi +1 -1
  347. homeassistant-stubs/helpers/state.pyi +0 -12
  348. homeassistant-stubs/helpers/storage.pyi +1 -0
  349. homeassistant-stubs/helpers/system_info.pyi +8 -1
  350. homeassistant-stubs/helpers/template_entity.pyi +7 -7
  351. homeassistant-stubs/helpers/trace.pyi +1 -0
  352. homeassistant-stubs/helpers/typing.pyi +5 -2
  353. homeassistant-stubs/util/ssl.pyi +1 -1
  354. homeassistant-stubs/util/timeout.pyi +1 -2
  355. {homeassistant_stubs-2023.7.2.dist-info → homeassistant_stubs-2023.8.0.dist-info}/METADATA +3 -4
  356. {homeassistant_stubs-2023.7.2.dist-info → homeassistant_stubs-2023.8.0.dist-info}/RECORD +358 -341
  357. homeassistant-stubs/components/nest/camera_sdm.pyi +0 -58
  358. homeassistant-stubs/components/nest/climate_sdm.pyi +0 -81
  359. homeassistant-stubs/components/nest/legacy/__init__.pyi +0 -62
  360. homeassistant-stubs/components/nest/legacy/binary_sensor.pyi +0 -38
  361. homeassistant-stubs/components/nest/legacy/camera.pyi +0 -45
  362. homeassistant-stubs/components/nest/legacy/climate.pyi +0 -89
  363. homeassistant-stubs/components/nest/legacy/const.pyi +0 -4
  364. homeassistant-stubs/components/nest/legacy/local_auth.pyi +0 -7
  365. homeassistant-stubs/components/nest/legacy/sensor.pyi +0 -54
  366. homeassistant-stubs/components/nest/sensor_sdm.pyi +0 -42
  367. {homeassistant_stubs-2023.7.2.dist-info → homeassistant_stubs-2023.8.0.dist-info}/LICENSE +0 -0
  368. {homeassistant_stubs-2023.7.2.dist-info → homeassistant_stubs-2023.8.0.dist-info}/WHEEL +0 -0
@@ -1,8 +1,81 @@
1
- from .climate_sdm import async_setup_sdm_entry as async_setup_sdm_entry
2
- from .const import DATA_SDM as DATA_SDM
3
- from .legacy.climate import async_setup_legacy_entry as async_setup_legacy_entry
1
+ from .const import DATA_DEVICE_MANAGER as DATA_DEVICE_MANAGER, DOMAIN as DOMAIN
2
+ from .device_info import NestDeviceInfo as NestDeviceInfo
3
+ from _typeshed import Incomplete
4
+ from google_nest_sdm.device import Device as Device
5
+ from google_nest_sdm.device_manager import DeviceManager as DeviceManager
6
+ from google_nest_sdm.thermostat_traits import ThermostatHeatCoolTrait as ThermostatHeatCoolTrait
7
+ from homeassistant.components.climate import ATTR_HVAC_MODE as ATTR_HVAC_MODE, ATTR_TARGET_TEMP_HIGH as ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW as ATTR_TARGET_TEMP_LOW, ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, FAN_OFF as FAN_OFF, FAN_ON as FAN_ON, HVACAction as HVACAction, HVACMode as HVACMode, PRESET_ECO as PRESET_ECO, PRESET_NONE as PRESET_NONE
4
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
+ from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, UnitOfTemperature as UnitOfTemperature
5
10
  from homeassistant.core import HomeAssistant as HomeAssistant
11
+ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
12
+ from homeassistant.helpers.entity import DeviceInfo as DeviceInfo
6
13
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
14
+ from typing import Any
15
+
16
+ THERMOSTAT_MODE_MAP: dict[str, HVACMode]
17
+ THERMOSTAT_INV_MODE_MAP: Incomplete
18
+ THERMOSTAT_ECO_MODE: str
19
+ THERMOSTAT_HVAC_STATUS_MAP: Incomplete
20
+ THERMOSTAT_RANGE_MODES: Incomplete
21
+ PRESET_MODE_MAP: Incomplete
22
+ PRESET_INV_MODE_MAP: Incomplete
23
+ FAN_MODE_MAP: Incomplete
24
+ FAN_INV_MODE_MAP: Incomplete
25
+ FAN_INV_MODES: Incomplete
26
+ MAX_FAN_DURATION: int
27
+ MIN_TEMP: int
28
+ MAX_TEMP: int
7
29
 
8
30
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
31
+
32
+ class ThermostatEntity(ClimateEntity):
33
+ _attr_min_temp = MIN_TEMP
34
+ _attr_max_temp = MAX_TEMP
35
+ _attr_has_entity_name: bool
36
+ _attr_should_poll: bool
37
+ _attr_name: Incomplete
38
+ _device: Incomplete
39
+ _device_info: Incomplete
40
+ def __init__(self, device: Device) -> None: ...
41
+ @property
42
+ def unique_id(self) -> str | None: ...
43
+ @property
44
+ def device_info(self) -> DeviceInfo: ...
45
+ @property
46
+ def available(self) -> bool: ...
47
+ _attr_supported_features: Incomplete
48
+ async def async_added_to_hass(self) -> None: ...
49
+ @property
50
+ def temperature_unit(self) -> str: ...
51
+ @property
52
+ def current_temperature(self) -> float | None: ...
53
+ @property
54
+ def target_temperature(self) -> float | None: ...
55
+ @property
56
+ def target_temperature_high(self) -> float | None: ...
57
+ @property
58
+ def target_temperature_low(self) -> float | None: ...
59
+ @property
60
+ def _target_temperature_trait(self) -> ThermostatHeatCoolTrait | None: ...
61
+ @property
62
+ def hvac_mode(self) -> HVACMode: ...
63
+ @property
64
+ def hvac_modes(self) -> list[HVACMode]: ...
65
+ @property
66
+ def _get_device_hvac_modes(self) -> set[str]: ...
67
+ @property
68
+ def hvac_action(self) -> HVACAction | None: ...
69
+ @property
70
+ def preset_mode(self) -> str: ...
71
+ @property
72
+ def preset_modes(self) -> list[str]: ...
73
+ @property
74
+ def fan_mode(self) -> str: ...
75
+ @property
76
+ def fan_modes(self) -> list[str]: ...
77
+ def _get_supported_features(self) -> ClimateEntityFeature: ...
78
+ async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: ...
79
+ async def async_set_temperature(self, **kwargs: Any) -> None: ...
80
+ async def async_set_preset_mode(self, preset_mode: str) -> None: ...
81
+ async def async_set_fan_mode(self, fan_mode: str) -> None: ...
@@ -3,15 +3,11 @@ from . import api as api
3
3
  from .const import CONF_CLOUD_PROJECT_ID as CONF_CLOUD_PROJECT_ID, CONF_PROJECT_ID as CONF_PROJECT_ID, CONF_SUBSCRIBER_ID as CONF_SUBSCRIBER_ID, DATA_NEST_CONFIG as DATA_NEST_CONFIG, DATA_SDM as DATA_SDM, DOMAIN as DOMAIN, OAUTH2_AUTHORIZE as OAUTH2_AUTHORIZE, SDM_SCOPES as SDM_SCOPES
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Iterable, Mapping
6
- from enum import Enum
7
6
  from google_nest_sdm.structure import Structure as Structure
8
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, SOURCE_REAUTH as SOURCE_REAUTH
9
- from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
8
  from homeassistant.data_entry_flow import FlowResult as FlowResult
11
- from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
12
9
  from homeassistant.helpers import config_entry_oauth2_flow as config_entry_oauth2_flow
13
10
  from homeassistant.util import get_random_string as get_random_string
14
- from homeassistant.util.json import JsonObjectType as JsonObjectType, load_json_object as load_json_object
15
11
  from typing import Any
16
12
 
17
13
  DATA_FLOW_IMPL: str
@@ -25,19 +21,7 @@ DEVICE_ACCESS_CONSOLE_URL: str
25
21
  DEVICE_ACCESS_CONSOLE_EDIT_URL: str
26
22
  _LOGGER: Incomplete
27
23
 
28
- class ConfigMode(Enum):
29
- SDM: int
30
- LEGACY: int
31
- SDM_APPLICATION_CREDENTIALS: int
32
-
33
- def get_config_mode(hass: HomeAssistant) -> ConfigMode: ...
34
24
  def _generate_subscription_id(cloud_project_id: str) -> str: ...
35
- def register_flow_implementation(hass: HomeAssistant, domain: str, name: str, gen_authorize_url: str, convert_code: str) -> None: ...
36
-
37
- class NestAuthError(HomeAssistantError): ...
38
- class CodeInvalid(NestAuthError): ...
39
- class UnexpectedStateError(HomeAssistantError): ...
40
-
41
25
  def generate_config_title(structures: Iterable[Structure]) -> str | None: ...
42
26
 
43
27
  class NestFlowHandler(config_entry_oauth2_flow.AbstractOAuth2FlowHandler, domain=DOMAIN):
@@ -46,8 +30,6 @@ class NestFlowHandler(config_entry_oauth2_flow.AbstractOAuth2FlowHandler, domain
46
30
  _data: Incomplete
47
31
  _structure_config_title: Incomplete
48
32
  def __init__(self) -> None: ...
49
- @property
50
- def config_mode(self) -> ConfigMode: ...
51
33
  def _async_reauth_entry(self) -> ConfigEntry | None: ...
52
34
  @property
53
35
  def logger(self) -> logging.Logger: ...
@@ -63,8 +45,3 @@ class NestFlowHandler(config_entry_oauth2_flow.AbstractOAuth2FlowHandler, domain
63
45
  async def async_step_device_project(self, user_input: dict | None = ...) -> FlowResult: ...
64
46
  async def async_step_pubsub(self, user_input: dict[str, Any] | None = ...) -> FlowResult: ...
65
47
  async def async_step_finish(self, data: dict[str, Any] | None = ...) -> FlowResult: ...
66
- flow_impl: Incomplete
67
- async def async_step_init(self, user_input: dict[str, Any] | None = ...) -> FlowResult: ...
68
- async def async_step_link(self, user_input: dict[str, Any] | None = ...) -> FlowResult: ...
69
- async def async_step_import(self, info: dict[str, Any]) -> FlowResult: ...
70
- def _entry_from_tokens(self, title: str, flow: dict[str, Any], tokens: JsonObjectType) -> FlowResult: ...
@@ -1,8 +1,40 @@
1
- from .const import DATA_SDM as DATA_SDM
2
- from .legacy.sensor import async_setup_legacy_entry as async_setup_legacy_entry
3
- from .sensor_sdm import async_setup_sdm_entry as async_setup_sdm_entry
1
+ from .const import DATA_DEVICE_MANAGER as DATA_DEVICE_MANAGER, DOMAIN as DOMAIN
2
+ from .device_info import NestDeviceInfo as NestDeviceInfo
3
+ from _typeshed import Incomplete
4
+ from google_nest_sdm.device import Device as Device
5
+ from google_nest_sdm.device_manager import DeviceManager as DeviceManager
6
+ from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorStateClass as SensorStateClass
4
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
+ from homeassistant.const import PERCENTAGE as PERCENTAGE, UnitOfTemperature as UnitOfTemperature
5
9
  from homeassistant.core import HomeAssistant as HomeAssistant
6
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
7
11
 
12
+ _LOGGER: Incomplete
13
+ DEVICE_TYPE_MAP: Incomplete
14
+
8
15
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
16
+
17
+ class SensorBase(SensorEntity):
18
+ _attr_should_poll: bool
19
+ _attr_state_class: Incomplete
20
+ _attr_has_entity_name: bool
21
+ _device: Incomplete
22
+ _device_info: Incomplete
23
+ _attr_unique_id: Incomplete
24
+ _attr_device_info: Incomplete
25
+ def __init__(self, device: Device) -> None: ...
26
+ @property
27
+ def available(self) -> bool: ...
28
+ async def async_added_to_hass(self) -> None: ...
29
+
30
+ class TemperatureSensor(SensorBase):
31
+ _attr_device_class: Incomplete
32
+ _attr_native_unit_of_measurement: Incomplete
33
+ @property
34
+ def native_value(self) -> float: ...
35
+
36
+ class HumiditySensor(SensorBase):
37
+ _attr_device_class: Incomplete
38
+ _attr_native_unit_of_measurement = PERCENTAGE
39
+ @property
40
+ def native_value(self) -> int: ...
@@ -7,6 +7,7 @@ SENSOR_DOOR: str
7
7
  SENSOR_GARAGE_DOOR: str
8
8
  SENSOR_LEAK: str
9
9
  SENSOR_MISSING: str
10
+ SENSOR_MOLD: str
10
11
  SENSOR_SAFE: str
11
12
  SENSOR_SLIDING: str
12
13
  SENSOR_SMOKE_CO: str
@@ -1,5 +1,5 @@
1
1
  from . import NotionEntity as NotionEntity
2
- from .const import DOMAIN as DOMAIN, SENSOR_TEMPERATURE as SENSOR_TEMPERATURE
2
+ from .const import DOMAIN as DOMAIN, SENSOR_MOLD as SENSOR_MOLD, SENSOR_TEMPERATURE as SENSOR_TEMPERATURE
3
3
  from .model import NotionEntityDescriptionMixin as NotionEntityDescriptionMixin
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
@@ -3,8 +3,7 @@ from collections.abc import Callable
3
3
  from homeassistant.helpers.config_validation import PLATFORM_SCHEMA as PLATFORM_SCHEMA, PLATFORM_SCHEMA_BASE as PLATFORM_SCHEMA_BASE
4
4
  from homeassistant.helpers.entity import Entity, EntityDescription
5
5
  from homeassistant.helpers.restore_state import ExtraStoredData, RestoreEntity
6
- from typing import Any
7
- from typing_extensions import Self
6
+ from typing import Any, Self
8
7
 
9
8
  class NumberEntityDescription(EntityDescription):
10
9
  device_class: NumberDeviceClass | None
@@ -1,6 +1,6 @@
1
1
  from _typeshed import Incomplete
2
- from homeassistant.backports.enum import StrEnum as StrEnum
3
- from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, POWER_VOLT_AMPERE_REACTIVE as POWER_VOLT_AMPERE_REACTIVE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfFrequency as UnitOfFrequency, UnitOfInformation as UnitOfInformation, UnitOfIrradiance as UnitOfIrradiance, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfVolume as UnitOfVolume, UnitOfVolumetricFlux as UnitOfVolumetricFlux
2
+ from enum import StrEnum
3
+ from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, POWER_VOLT_AMPERE_REACTIVE as POWER_VOLT_AMPERE_REACTIVE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfFrequency as UnitOfFrequency, UnitOfInformation as UnitOfInformation, UnitOfIrradiance as UnitOfIrradiance, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumetricFlux as UnitOfVolumetricFlux
4
4
  from homeassistant.util.unit_conversion import BaseUnitConverter as BaseUnitConverter, TemperatureConverter as TemperatureConverter
5
5
  from typing import Final
6
6
 
@@ -28,6 +28,7 @@ class NumberDeviceClass(StrEnum):
28
28
  DATA_RATE: str
29
29
  DATA_SIZE: str
30
30
  DISTANCE: str
31
+ DURATION: str
31
32
  ENERGY: str
32
33
  ENERGY_STORAGE: str
33
34
  FREQUENCY: str
@@ -41,6 +42,7 @@ class NumberDeviceClass(StrEnum):
41
42
  NITROGEN_MONOXIDE: str
42
43
  NITROUS_OXIDE: str
43
44
  OZONE: str
45
+ PH: str
44
46
  PM1: str
45
47
  PM10: str
46
48
  PM25: str
@@ -1,5 +1,5 @@
1
1
  from . import PyNUTData as PyNUTData
2
- from .const import DOMAIN as DOMAIN, PYNUT_DATA as PYNUT_DATA, PYNUT_UNIQUE_ID as PYNUT_UNIQUE_ID
2
+ from .const import DOMAIN as DOMAIN, PYNUT_DATA as PYNUT_DATA, PYNUT_UNIQUE_ID as PYNUT_UNIQUE_ID, USER_AVAILABLE_COMMANDS as USER_AVAILABLE_COMMANDS
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
@@ -0,0 +1,7 @@
1
+ from .const import CLIENT as CLIENT, DOMAIN as DOMAIN, PLATFORMS as PLATFORMS
2
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
3
+ from homeassistant.core import HomeAssistant as HomeAssistant
4
+ from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
5
+
6
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
7
+ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
@@ -0,0 +1,11 @@
1
+ from .const import DEFAULT_NAME as DEFAULT_NAME, DOMAIN as DOMAIN
2
+ from .sensor import CONF_ALTITUDE as CONF_ALTITUDE, DEFAULT_ALTITUDE as DEFAULT_ALTITUDE
3
+ from homeassistant.config_entries import ConfigFlow as ConfigFlow
4
+ from homeassistant.const import CONF_LATITUDE as CONF_LATITUDE, CONF_LONGITUDE as CONF_LONGITUDE, CONF_NAME as CONF_NAME, CONF_RADIUS as CONF_RADIUS
5
+ from homeassistant.data_entry_flow import FlowResult as FlowResult
6
+ from homeassistant.helpers.typing import ConfigType as ConfigType
7
+ from typing import Any
8
+
9
+ class OpenSkyConfigFlowHandler(ConfigFlow, domain=DOMAIN):
10
+ async def async_step_user(self, user_input: dict[str, Any] | None = ...) -> FlowResult: ...
11
+ async def async_step_import(self, import_config: ConfigType) -> FlowResult: ...
@@ -0,0 +1,17 @@
1
+ from _typeshed import Incomplete
2
+ from homeassistant.const import Platform as Platform
3
+
4
+ PLATFORMS: Incomplete
5
+ DEFAULT_NAME: str
6
+ DOMAIN: str
7
+ CLIENT: str
8
+ CONF_ALTITUDE: str
9
+ ATTR_ICAO24: str
10
+ ATTR_CALLSIGN: str
11
+ ATTR_ALTITUDE: str
12
+ ATTR_ON_GROUND: str
13
+ ATTR_SENSOR: str
14
+ ATTR_STATES: str
15
+ DEFAULT_ALTITUDE: int
16
+ EVENT_OPENSKY_ENTRY: Incomplete
17
+ EVENT_OPENSKY_EXIT: Incomplete
@@ -1,39 +1,29 @@
1
+ from .const import ATTR_ALTITUDE as ATTR_ALTITUDE, ATTR_CALLSIGN as ATTR_CALLSIGN, ATTR_ICAO24 as ATTR_ICAO24, ATTR_SENSOR as ATTR_SENSOR, CLIENT as CLIENT, CONF_ALTITUDE as CONF_ALTITUDE, DEFAULT_ALTITUDE as DEFAULT_ALTITUDE, DOMAIN as DOMAIN, EVENT_OPENSKY_ENTRY as EVENT_OPENSKY_ENTRY, EVENT_OPENSKY_EXIT as EVENT_OPENSKY_EXIT
1
2
  from _typeshed import Incomplete
2
3
  from homeassistant.components.sensor import PLATFORM_SCHEMA as PLATFORM_SCHEMA, SensorEntity as SensorEntity
4
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry, SOURCE_IMPORT as SOURCE_IMPORT
3
5
  from homeassistant.const import ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, CONF_LATITUDE as CONF_LATITUDE, CONF_LONGITUDE as CONF_LONGITUDE, CONF_NAME as CONF_NAME, CONF_RADIUS as CONF_RADIUS
4
6
  from homeassistant.core import HomeAssistant as HomeAssistant
5
- from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
6
7
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
8
+ from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue
7
9
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
8
10
  from python_opensky import BoundingBox as BoundingBox, OpenSky, StateVector as StateVector
9
11
 
10
- CONF_ALTITUDE: str
11
- ATTR_ICAO24: str
12
- ATTR_CALLSIGN: str
13
- ATTR_ALTITUDE: str
14
- ATTR_ON_GROUND: str
15
- ATTR_SENSOR: str
16
- ATTR_STATES: str
17
- DOMAIN: str
18
- DEFAULT_ALTITUDE: int
19
- EVENT_OPENSKY_ENTRY: Incomplete
20
- EVENT_OPENSKY_EXIT: Incomplete
21
12
  SCAN_INTERVAL: Incomplete
22
- OPENSKY_API_URL: str
23
- OPENSKY_API_FIELDS: Incomplete
24
13
 
25
- def setup_platform(hass: HomeAssistant, config: ConfigType, add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = ...) -> None: ...
14
+ async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = ...) -> None: ...
15
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
26
16
 
27
17
  class OpenSkySensor(SensorEntity):
28
18
  _attr_attribution: str
29
19
  _altitude: Incomplete
30
20
  _state: int
31
- _hass: Incomplete
32
21
  _name: Incomplete
33
22
  _previously_tracked: Incomplete
34
23
  _opensky: Incomplete
35
24
  _bounding_box: Incomplete
36
- def __init__(self, hass: HomeAssistant, name: str, opensky: OpenSky, bounding_box: BoundingBox, altitude: float) -> None: ...
25
+ _attr_unique_id: Incomplete
26
+ def __init__(self, name: str, opensky: OpenSky, bounding_box: BoundingBox, altitude: float, entry_id: str) -> None: ...
37
27
  @property
38
28
  def name(self) -> str: ...
39
29
  @property
@@ -1,6 +1,7 @@
1
1
  from .const import DEFAULT_CHANNEL as DEFAULT_CHANNEL, DOMAIN as DOMAIN
2
2
  from .util import OTBRData as OTBRData, get_allowed_channel as get_allowed_channel, update_issues as update_issues
3
3
  from homeassistant.components import websocket_api as websocket_api
4
+ from homeassistant.components.homeassistant_hardware.silabs_multiprotocol_addon import is_multiprotocol_url as is_multiprotocol_url
4
5
  from homeassistant.components.thread import async_add_dataset as async_add_dataset, async_get_dataset as async_get_dataset
5
6
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
6
7
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
@@ -10,3 +11,4 @@ async def websocket_info(hass: HomeAssistant, connection: websocket_api.ActiveCo
10
11
  async def websocket_create_network(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict) -> None: ...
11
12
  async def websocket_set_network(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict) -> None: ...
12
13
  async def websocket_get_extended_address(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict) -> None: ...
14
+ async def websocket_set_channel(hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict) -> None: ...
@@ -1,7 +1,7 @@
1
1
  from _typeshed import Incomplete
2
2
  from collections.abc import Callable as Callable, Mapping
3
3
  from datetime import datetime
4
- from homeassistant.backports.enum import StrEnum as StrEnum
4
+ from enum import StrEnum
5
5
  from homeassistant.components import websocket_api as websocket_api
6
6
  from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, HomeAssistant as HomeAssistant, ServiceCall as ServiceCall, callback as callback
7
7
  from homeassistant.helpers import singleton as singleton
@@ -3,7 +3,7 @@ from .const import DATA_KEY_API as DATA_KEY_API, DATA_KEY_COORDINATOR as DATA_KE
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Callable as Callable
5
5
  from hole import Hole as Hole
6
- from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
6
+ from homeassistant.components.binary_sensor import BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.const import CONF_NAME as CONF_NAME
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant
@@ -22,6 +22,7 @@ SENSORS: tuple[PureEnergieSensorEntityDescription, ...]
22
22
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
23
23
 
24
24
  class PureEnergieSensorEntity(CoordinatorEntity[PureEnergieDataUpdateCoordinator], SensorEntity):
25
+ _attr_has_entity_name: bool
25
26
  entity_description: PureEnergieSensorEntityDescription
26
27
  entity_id: Incomplete
27
28
  _attr_unique_id: Incomplete
@@ -1,12 +1,14 @@
1
- from .const import DOMAIN as DOMAIN
1
+ from .const import CONF_SHOW_ON_MAP as CONF_SHOW_ON_MAP, DOMAIN as DOMAIN
2
2
  from .coordinator import PurpleAirDataUpdateCoordinator as PurpleAirDataUpdateCoordinator
3
3
  from _typeshed import Incomplete
4
4
  from aiopurpleair.models.sensors import SensorModel as SensorModel
5
+ from collections.abc import Mapping
5
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
7
  from homeassistant.const import ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, Platform as Platform
7
8
  from homeassistant.core import HomeAssistant as HomeAssistant
8
9
  from homeassistant.helpers.entity import DeviceInfo as DeviceInfo
9
10
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
11
+ from typing import Any
10
12
 
11
13
  PLATFORMS: Incomplete
12
14
 
@@ -18,7 +20,9 @@ class PurpleAirEntity(CoordinatorEntity[PurpleAirDataUpdateCoordinator]):
18
20
  _attr_has_entity_name: bool
19
21
  _sensor_index: Incomplete
20
22
  _attr_device_info: Incomplete
21
- _attr_extra_state_attributes: Incomplete
23
+ _entry: Incomplete
22
24
  def __init__(self, coordinator: PurpleAirDataUpdateCoordinator, entry: ConfigEntry, sensor_index: int) -> None: ...
23
25
  @property
26
+ def extra_state_attributes(self) -> Mapping[str, Any]: ...
27
+ @property
24
28
  def sensor_data(self) -> SensorModel: ...
@@ -1,5 +1,5 @@
1
1
  import voluptuous as vol
2
- from .const import CONF_SENSOR_INDICES as CONF_SENSOR_INDICES, DOMAIN as DOMAIN, LOGGER as LOGGER
2
+ from .const import CONF_SENSOR_INDICES as CONF_SENSOR_INDICES, CONF_SHOW_ON_MAP as CONF_SHOW_ON_MAP, DOMAIN as DOMAIN, LOGGER as LOGGER
3
3
  from _typeshed import Incomplete
4
4
  from aiopurpleair import API
5
5
  from aiopurpleair.endpoints.sensors import NearbySensorResult as NearbySensorResult
@@ -7,11 +7,12 @@ from collections.abc import Mapping
7
7
  from homeassistant import config_entries as config_entries
8
8
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
9
  from homeassistant.const import CONF_API_KEY as CONF_API_KEY, CONF_LATITUDE as CONF_LATITUDE, CONF_LONGITUDE as CONF_LONGITUDE
10
- from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
10
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
11
  from homeassistant.data_entry_flow import FlowResult as FlowResult
12
12
  from homeassistant.helpers import aiohttp_client as aiohttp_client
13
- from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
13
+ from homeassistant.helpers.event import EventStateChangedData as EventStateChangedData, async_track_state_change_event as async_track_state_change_event
14
14
  from homeassistant.helpers.selector import SelectOptionDict as SelectOptionDict, SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig, SelectSelectorMode as SelectSelectorMode
15
+ from homeassistant.helpers.typing import EventType as EventType
15
16
  from typing import Any
16
17
 
17
18
  CONF_DISTANCE: str
@@ -53,7 +54,10 @@ class PurpleAirOptionsFlowHandler(config_entries.OptionsFlow):
53
54
  _flow_data: Incomplete
54
55
  config_entry: Incomplete
55
56
  def __init__(self, config_entry: ConfigEntry) -> None: ...
57
+ @property
58
+ def settings_schema(self) -> vol.Schema: ...
56
59
  async def async_step_add_sensor(self, user_input: dict[str, Any] | None = ...) -> FlowResult: ...
57
60
  async def async_step_choose_sensor(self, user_input: dict[str, Any] | None = ...) -> FlowResult: ...
58
61
  async def async_step_init(self, user_input: dict[str, Any] | None = ...) -> FlowResult: ...
59
62
  async def async_step_remove_sensor(self, user_input: dict[str, Any] | None = ...) -> FlowResult: ...
63
+ async def async_step_settings(self, user_input: dict[str, Any] | None = ...) -> FlowResult: ...
@@ -4,3 +4,4 @@ DOMAIN: str
4
4
  LOGGER: Incomplete
5
5
  CONF_READ_KEY: str
6
6
  CONF_SENSOR_INDICES: str
7
+ CONF_SHOW_ON_MAP: str
@@ -2,7 +2,7 @@ from .const import MANUFACTURER as MANUFACTURER
2
2
  from .coordinator import QswDataCoordinator as QswDataCoordinator, QswFirmwareCoordinator as QswFirmwareCoordinator
3
3
  from _typeshed import Incomplete
4
4
  from aioqsw.const import QSD_LACP_PORTS, QSD_PORTS
5
- from homeassistant.backports.enum import StrEnum as StrEnum
5
+ from enum import StrEnum
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.const import CONF_URL as CONF_URL
8
8
  from homeassistant.core import callback as callback
@@ -2,7 +2,7 @@ from .const import LOGGER as LOGGER
2
2
  from _typeshed import Incomplete
3
3
  from collections.abc import Awaitable, Callable as Callable, Iterable
4
4
  from datetime import timedelta
5
- from homeassistant.backports.enum import StrEnum as StrEnum
5
+ from enum import StrEnum
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
8
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
@@ -1,5 +1,5 @@
1
1
  from _typeshed import Incomplete
2
- from homeassistant.backports.enum import StrEnum as StrEnum
2
+ from enum import StrEnum
3
3
  from homeassistant.const import ATTR_ATTRIBUTION as ATTR_ATTRIBUTION, ATTR_RESTORED as ATTR_RESTORED, ATTR_SUPPORTED_FEATURES as ATTR_SUPPORTED_FEATURES
4
4
  from homeassistant.helpers.json import JSON_DUMP as JSON_DUMP
5
5
 
@@ -12,8 +12,7 @@ from sqlalchemy.dialects import sqlite
12
12
  from sqlalchemy.engine.interfaces import Dialect as Dialect
13
13
  from sqlalchemy.orm import DeclarativeBase, Mapped as Mapped
14
14
  from sqlalchemy.types import TypeDecorator as TypeDecorator
15
- from typing import Any
16
- from typing_extensions import Self
15
+ from typing import Any, Self
17
16
 
18
17
  class Base(DeclarativeBase): ...
19
18
 
@@ -6,7 +6,7 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
6
6
  from homeassistant.const import CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_SCAN_INTERVAL as CONF_SCAN_INTERVAL, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE, Platform as Platform
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers import discovery as discovery
9
- from homeassistant.helpers.template_entity import TEMPLATE_SENSOR_BASE_SCHEMA as TEMPLATE_SENSOR_BASE_SCHEMA
9
+ from homeassistant.helpers.template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, TEMPLATE_SENSOR_BASE_SCHEMA as TEMPLATE_SENSOR_BASE_SCHEMA
10
10
  from homeassistant.helpers.typing import ConfigType as ConfigType
11
11
 
12
12
  SENSOR_SCHEMA: Incomplete
@@ -1,15 +1,15 @@
1
1
  from .const import CONF_INDEX as CONF_INDEX, CONF_SELECT as CONF_SELECT, DOMAIN as DOMAIN
2
2
  from .coordinator import ScrapeCoordinator as ScrapeCoordinator
3
3
  from _typeshed import Incomplete
4
- from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass
4
+ from homeassistant.components.sensor import CONF_STATE_CLASS as CONF_STATE_CLASS, SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity
5
5
  from homeassistant.components.sensor.helpers import async_parse_date_datetime as async_parse_date_datetime
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
- from homeassistant.const import CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE
7
+ from homeassistant.const import CONF_ATTRIBUTE as CONF_ATTRIBUTE, CONF_DEVICE_CLASS as CONF_DEVICE_CLASS, CONF_ICON as CONF_ICON, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_UNIT_OF_MEASUREMENT as CONF_UNIT_OF_MEASUREMENT, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.exceptions import PlatformNotReady as PlatformNotReady
10
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
11
11
  from homeassistant.helpers.template import Template as Template
12
- from homeassistant.helpers.template_entity import TEMPLATE_SENSOR_BASE_SCHEMA as TEMPLATE_SENSOR_BASE_SCHEMA, TemplateSensor as TemplateSensor
12
+ from homeassistant.helpers.template_entity import CONF_AVAILABILITY as CONF_AVAILABILITY, CONF_PICTURE as CONF_PICTURE, ManualTriggerEntity as ManualTriggerEntity, TEMPLATE_SENSOR_BASE_SCHEMA as TEMPLATE_SENSOR_BASE_SCHEMA
13
13
  from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
14
14
  from homeassistant.helpers.update_coordinator import CoordinatorEntity as CoordinatorEntity
15
15
  from typing import Any
@@ -19,14 +19,18 @@ _LOGGER: Incomplete
19
19
  async def async_setup_platform(hass: HomeAssistant, config: ConfigType, async_add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = ...) -> None: ...
20
20
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
21
21
 
22
- class ScrapeSensor(CoordinatorEntity[ScrapeCoordinator], TemplateSensor):
22
+ class ScrapeSensor(CoordinatorEntity[ScrapeCoordinator], ManualTriggerEntity, SensorEntity):
23
+ _attr_native_unit_of_measurement: Incomplete
24
+ _attr_state_class: Incomplete
23
25
  _select: Incomplete
24
26
  _attr: Incomplete
25
27
  _index: Incomplete
26
28
  _value_template: Incomplete
27
- def __init__(self, hass: HomeAssistant, coordinator: ScrapeCoordinator, config: ConfigType, name: str, unique_id: str | None, select: str, attr: str | None, index: int, value_template: Template | None) -> None: ...
29
+ _attr_native_value: Incomplete
30
+ def __init__(self, hass: HomeAssistant, coordinator: ScrapeCoordinator, trigger_entity_config: ConfigType, unit_of_measurement: str | None, state_class: str | None, select: str, attr: str | None, index: int, value_template: Template | None, yaml: bool) -> None: ...
28
31
  def _extract_value(self) -> Any: ...
29
32
  async def async_added_to_hass(self) -> None: ...
30
- _attr_native_value: Incomplete
31
33
  def _async_update_from_rest_data(self) -> None: ...
34
+ @property
35
+ def available(self) -> bool: ...
32
36
  def _handle_coordinator_update(self) -> None: ...
@@ -15,6 +15,7 @@ _P: Incomplete
15
15
  def async_handle_api_call(function: Callable[Concatenate[_T, _P], Coroutine[Any, Any, Any]]) -> Callable[Concatenate[_T, _P], Coroutine[Any, Any, Any]]: ...
16
16
 
17
17
  class SensiboBaseEntity(CoordinatorEntity[SensiboDataUpdateCoordinator]):
18
+ _attr_has_entity_name: bool
18
19
  _device_id: Incomplete
19
20
  _client: Incomplete
20
21
  def __init__(self, coordinator: SensiboDataUpdateCoordinator, device_id: str) -> None: ...
@@ -22,12 +23,10 @@ class SensiboBaseEntity(CoordinatorEntity[SensiboDataUpdateCoordinator]):
22
23
  def device_data(self) -> SensiboDevice: ...
23
24
 
24
25
  class SensiboDeviceBaseEntity(SensiboBaseEntity):
25
- _attr_has_entity_name: bool
26
26
  _attr_device_info: Incomplete
27
27
  def __init__(self, coordinator: SensiboDataUpdateCoordinator, device_id: str) -> None: ...
28
28
 
29
29
  class SensiboMotionBaseEntity(SensiboBaseEntity):
30
- _attr_has_entity_name: bool
31
30
  _sensor_id: Incomplete
32
31
  _attr_device_info: Incomplete
33
32
  def __init__(self, coordinator: SensiboDataUpdateCoordinator, device_id: str, sensor_id: str, sensor_data: MotionSensor) -> None: ...
@@ -11,8 +11,7 @@ from homeassistant.helpers.entity import Entity, EntityDescription
11
11
  from homeassistant.helpers.entity_platform import EntityPlatform
12
12
  from homeassistant.helpers.restore_state import ExtraStoredData, RestoreEntity
13
13
  from homeassistant.helpers.typing import StateType, UndefinedType
14
- from typing import Any
15
- from typing_extensions import Self
14
+ from typing import Any, Self
16
15
 
17
16
  class SensorEntityDescription(EntityDescription):
18
17
  device_class: SensorDeviceClass | None
@@ -1,5 +1,5 @@
1
1
  from _typeshed import Incomplete
2
- from homeassistant.backports.enum import StrEnum as StrEnum
2
+ from enum import StrEnum
3
3
  from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER as CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION as CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, LIGHT_LUX as LIGHT_LUX, PERCENTAGE as PERCENTAGE, POWER_VOLT_AMPERE_REACTIVE as POWER_VOLT_AMPERE_REACTIVE, SIGNAL_STRENGTH_DECIBELS as SIGNAL_STRENGTH_DECIBELS, SIGNAL_STRENGTH_DECIBELS_MILLIWATT as SIGNAL_STRENGTH_DECIBELS_MILLIWATT, UnitOfApparentPower as UnitOfApparentPower, UnitOfDataRate as UnitOfDataRate, UnitOfElectricCurrent as UnitOfElectricCurrent, UnitOfElectricPotential as UnitOfElectricPotential, UnitOfEnergy as UnitOfEnergy, UnitOfFrequency as UnitOfFrequency, UnitOfInformation as UnitOfInformation, UnitOfIrradiance as UnitOfIrradiance, UnitOfLength as UnitOfLength, UnitOfMass as UnitOfMass, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature, UnitOfTime as UnitOfTime, UnitOfVolume as UnitOfVolume, UnitOfVolumetricFlux as UnitOfVolumetricFlux
4
4
  from homeassistant.util.unit_conversion import BaseUnitConverter as BaseUnitConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter
5
5
  from typing import Final
@@ -12,7 +12,6 @@ ATTR_OPTIONS: Final[str]
12
12
 
13
13
  class SensorDeviceClass(StrEnum):
14
14
  DATE: str
15
- DURATION: str
16
15
  ENUM: str
17
16
  TIMESTAMP: str
18
17
  APPARENT_POWER: str
@@ -25,6 +24,7 @@ class SensorDeviceClass(StrEnum):
25
24
  DATA_RATE: str
26
25
  DATA_SIZE: str
27
26
  DISTANCE: str
27
+ DURATION: str
28
28
  ENERGY: str
29
29
  ENERGY_STORAGE: str
30
30
  FREQUENCY: str
@@ -38,6 +38,7 @@ class SensorDeviceClass(StrEnum):
38
38
  NITROGEN_MONOXIDE: str
39
39
  NITROUS_OXIDE: str
40
40
  OZONE: str
41
+ PH: str
41
42
  PM1: str
42
43
  PM10: str
43
44
  PM25: str
@@ -34,6 +34,7 @@ CONF_IS_NITROGEN_DIOXIDE: str
34
34
  CONF_IS_NITROGEN_MONOXIDE: str
35
35
  CONF_IS_NITROUS_OXIDE: str
36
36
  CONF_IS_OZONE: str
37
+ CONF_IS_PH: str
37
38
  CONF_IS_PM1: str
38
39
  CONF_IS_PM10: str
39
40
  CONF_IS_PM25: str
@@ -34,6 +34,7 @@ CONF_NITROGEN_DIOXIDE: str
34
34
  CONF_NITROGEN_MONOXIDE: str
35
35
  CONF_NITROUS_OXIDE: str
36
36
  CONF_OZONE: str
37
+ CONF_PH: str
37
38
  CONF_PM1: str
38
39
  CONF_PM10: str
39
40
  CONF_PM25: str
@@ -1,7 +1,7 @@
1
1
  import datetime
2
2
  from .const import ATTR_LAST_RESET as ATTR_LAST_RESET, ATTR_OPTIONS as ATTR_OPTIONS, ATTR_STATE_CLASS as ATTR_STATE_CLASS, DOMAIN as DOMAIN, SensorStateClass as SensorStateClass
3
3
  from _typeshed import Incomplete
4
- from collections.abc import Iterable
4
+ from collections.abc import Callable as Callable, Iterable
5
5
  from homeassistant.components.recorder import get_instance as get_instance, history as history, statistics as statistics
6
6
  from homeassistant.components.recorder.models import StatisticData as StatisticData, StatisticMetaData as StatisticMetaData, StatisticResult as StatisticResult
7
7
  from homeassistant.const import ATTR_UNIT_OF_MEASUREMENT as ATTR_UNIT_OF_MEASUREMENT, REVOLUTIONS_PER_MINUTE as REVOLUTIONS_PER_MINUTE, UnitOfIrradiance as UnitOfIrradiance, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfVolume as UnitOfVolume