homeassistant-stubs 2024.4.4__py3-none-any.whl → 2024.5.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 (372) hide show
  1. homeassistant-stubs/auth/__init__.pyi +3 -1
  2. homeassistant-stubs/auth/jwt_wrapper.pyi +1 -1
  3. homeassistant-stubs/auth/permissions/__init__.pyi +1 -2
  4. homeassistant-stubs/auth/permissions/events.pyi +3 -2
  5. homeassistant-stubs/auth/session.pyi +46 -0
  6. homeassistant-stubs/backports/enum.pyi +6 -2
  7. homeassistant-stubs/backports/functools.pyi +5 -15
  8. homeassistant-stubs/block_async_io.pyi +8 -1
  9. homeassistant-stubs/bootstrap.pyi +7 -1
  10. homeassistant-stubs/components/accuweather/__init__.pyi +9 -13
  11. homeassistant-stubs/components/accuweather/config_flow.pyi +2 -10
  12. homeassistant-stubs/components/accuweather/const.pyi +2 -2
  13. homeassistant-stubs/components/accuweather/coordinator.pyi +27 -0
  14. homeassistant-stubs/components/accuweather/diagnostics.pyi +1 -1
  15. homeassistant-stubs/components/accuweather/sensor.pyi +29 -8
  16. homeassistant-stubs/components/accuweather/weather.pyi +9 -5
  17. homeassistant-stubs/components/adax/climate.pyi +3 -1
  18. homeassistant-stubs/components/adguard/__init__.pyi +9 -1
  19. homeassistant-stubs/components/adguard/const.pyi +0 -2
  20. homeassistant-stubs/components/adguard/entity.pyi +4 -3
  21. homeassistant-stubs/components/adguard/sensor.pyi +3 -3
  22. homeassistant-stubs/components/adguard/switch.pyi +3 -3
  23. homeassistant-stubs/components/airtouch5/config_flow.pyi +3 -3
  24. homeassistant-stubs/components/airzone_cloud/entity.pyi +7 -0
  25. homeassistant-stubs/components/airzone_cloud/select.pyi +38 -0
  26. homeassistant-stubs/components/airzone_cloud/water_heater.pyi +35 -0
  27. homeassistant-stubs/components/alert/__init__.pyi +2 -2
  28. homeassistant-stubs/components/alexa/config.pyi +2 -0
  29. homeassistant-stubs/components/alexa/entities.pyi +0 -2
  30. homeassistant-stubs/components/alexa/intent.pyi +2 -1
  31. homeassistant-stubs/components/alexa/resources.pyi +3 -3
  32. homeassistant-stubs/components/alexa/state_report.pyi +3 -4
  33. homeassistant-stubs/components/ambient_network/__init__.pyi +10 -0
  34. homeassistant-stubs/components/ambient_network/config_flow.pyi +22 -0
  35. homeassistant-stubs/components/ambient_network/const.pyi +12 -0
  36. homeassistant-stubs/components/ambient_network/coordinator.pyi +18 -0
  37. homeassistant-stubs/components/ambient_network/entity.pyi +20 -0
  38. homeassistant-stubs/components/ambient_network/helper.pyi +4 -0
  39. homeassistant-stubs/components/ambient_network/sensor.pyi +46 -0
  40. homeassistant-stubs/components/ambient_station/sensor.pyi +3 -1
  41. homeassistant-stubs/components/apache_kafka/__init__.pyi +1 -2
  42. homeassistant-stubs/components/apcupsd/binary_sensor.pyi +1 -0
  43. homeassistant-stubs/components/apcupsd/sensor.pyi +1 -0
  44. homeassistant-stubs/components/api/__init__.pyi +2 -2
  45. homeassistant-stubs/components/apple_tv/remote.pyi +1 -1
  46. homeassistant-stubs/components/arris_tg2492lg/device_tracker.pyi +5 -4
  47. homeassistant-stubs/components/aseko_pool_live/binary_sensor.pyi +0 -1
  48. homeassistant-stubs/components/assist_pipeline/__init__.pyi +2 -2
  49. homeassistant-stubs/components/assist_pipeline/const.pyi +1 -0
  50. homeassistant-stubs/components/assist_pipeline/pipeline.pyi +5 -3
  51. homeassistant-stubs/components/auth/__init__.pyi +9 -2
  52. homeassistant-stubs/components/auth/login_flow.pyi +2 -2
  53. homeassistant-stubs/components/auth/mfa_setup_flow.pyi +1 -1
  54. homeassistant-stubs/components/automation/__init__.pyi +7 -9
  55. homeassistant-stubs/components/automation/logbook.pyi +3 -1
  56. homeassistant-stubs/components/axis/hub/event_source.pyi +23 -0
  57. homeassistant-stubs/components/axis/hub/hub.pyi +4 -9
  58. homeassistant-stubs/components/baf/fan.pyi +1 -0
  59. homeassistant-stubs/components/bayesian/binary_sensor.pyi +2 -2
  60. homeassistant-stubs/components/bluetooth/config_flow.pyi +6 -0
  61. homeassistant-stubs/components/bluetooth/diagnostics.pyi +1 -1
  62. homeassistant-stubs/components/bluetooth/util.pyi +2 -1
  63. homeassistant-stubs/components/bmw_connected_drive/binary_sensor.pyi +2 -1
  64. homeassistant-stubs/components/bmw_connected_drive/const.pyi +1 -0
  65. homeassistant-stubs/components/bmw_connected_drive/sensor.pyi +4 -3
  66. homeassistant-stubs/components/camera/__init__.pyi +2 -2
  67. homeassistant-stubs/components/cloud/__init__.pyi +9 -4
  68. homeassistant-stubs/components/cloud/alexa_config.pyi +2 -2
  69. homeassistant-stubs/components/cloud/const.pyi +2 -1
  70. homeassistant-stubs/components/cloud/google_config.pyi +3 -3
  71. homeassistant-stubs/components/cloud/http_api.pyi +2 -2
  72. homeassistant-stubs/components/cloud/prefs.pyi +5 -3
  73. homeassistant-stubs/components/cloud/stt.pyi +1 -0
  74. homeassistant-stubs/components/cloud/tts.pyi +1 -0
  75. homeassistant-stubs/components/cloud/util.pyi +7 -0
  76. homeassistant-stubs/components/command_line/binary_sensor.pyi +4 -4
  77. homeassistant-stubs/components/command_line/const.pyi +4 -1
  78. homeassistant-stubs/components/command_line/cover.pyi +3 -3
  79. homeassistant-stubs/components/command_line/sensor.pyi +4 -5
  80. homeassistant-stubs/components/command_line/switch.pyi +3 -3
  81. homeassistant-stubs/components/config/__init__.pyi +1 -1
  82. homeassistant-stubs/components/deconz/binary_sensor.pyi +0 -1
  83. homeassistant-stubs/components/demo/notify.pyi +12 -10
  84. homeassistant-stubs/components/demo/sensor.pyi +1 -1
  85. homeassistant-stubs/components/derivative/sensor.pyi +2 -2
  86. homeassistant-stubs/components/device_tracker/config_entry.pyi +1 -1
  87. homeassistant-stubs/components/device_tracker/legacy.pyi +2 -1
  88. homeassistant-stubs/components/dhcp/__init__.pyi +2 -2
  89. homeassistant-stubs/components/dlna_dms/dms.pyi +2 -1
  90. homeassistant-stubs/components/ecovacs/event.pyi +1 -0
  91. homeassistant-stubs/components/ecovacs/select.pyi +1 -1
  92. homeassistant-stubs/components/ecovacs/util.pyi +5 -1
  93. homeassistant-stubs/components/ecovacs/vacuum.pyi +1 -0
  94. homeassistant-stubs/components/emulated_hue/config.pyi +2 -2
  95. homeassistant-stubs/components/emulated_hue/hue_api.pyi +2 -2
  96. homeassistant-stubs/components/energenie_power_sockets/__init__.pyi +12 -0
  97. homeassistant-stubs/components/energenie_power_sockets/config_flow.pyi +6 -0
  98. homeassistant-stubs/components/energenie_power_sockets/const.pyi +5 -0
  99. homeassistant-stubs/components/energenie_power_sockets/switch.pyi +27 -0
  100. homeassistant-stubs/components/energy/data.pyi +1 -0
  101. homeassistant-stubs/components/energy/sensor.pyi +4 -4
  102. homeassistant-stubs/components/energy/websocket_api.pyi +1 -1
  103. homeassistant-stubs/components/enigma2/__init__.pyi +11 -0
  104. homeassistant-stubs/components/enigma2/config_flow.pyi +17 -0
  105. homeassistant-stubs/components/enigma2/const.pyi +1 -0
  106. homeassistant-stubs/components/enigma2/media_player.pyi +9 -6
  107. homeassistant-stubs/components/enphase_envoy/coordinator.pyi +1 -0
  108. homeassistant-stubs/components/eq3btsmart/__init__.pyi +18 -0
  109. homeassistant-stubs/components/eq3btsmart/climate.pyi +55 -0
  110. homeassistant-stubs/components/eq3btsmart/config_flow.pyi +17 -0
  111. homeassistant-stubs/components/eq3btsmart/const.pyi +38 -0
  112. homeassistant-stubs/components/eq3btsmart/entity.pyi +10 -0
  113. homeassistant-stubs/components/eq3btsmart/models.pyi +20 -0
  114. homeassistant-stubs/components/eq3btsmart/schemas.pyi +6 -0
  115. homeassistant-stubs/components/esphome/datetime.pyi +14 -0
  116. homeassistant-stubs/components/esphome/entry_data.pyi +4 -5
  117. homeassistant-stubs/components/esphome/event.pyi +16 -0
  118. homeassistant-stubs/components/esphome/manager.pyi +5 -4
  119. homeassistant-stubs/components/esphome/update.pyi +0 -1
  120. homeassistant-stubs/components/esphome/valve.pyi +30 -0
  121. homeassistant-stubs/components/esphome/voice_assistant.pyi +24 -8
  122. homeassistant-stubs/components/filter/sensor.pyi +2 -2
  123. homeassistant-stubs/components/fritz/__init__.pyi +2 -2
  124. homeassistant-stubs/components/fritz/button.pyi +16 -3
  125. homeassistant-stubs/components/fritz/common.pyi +6 -3
  126. homeassistant-stubs/components/fritz/config_flow.pyi +7 -2
  127. homeassistant-stubs/components/fritz/const.pyi +5 -1
  128. homeassistant-stubs/components/fritzbox/climate.pyi +1 -1
  129. homeassistant-stubs/components/fritzbox/config_flow.pyi +2 -0
  130. homeassistant-stubs/components/fritzbox/coordinator.pyi +4 -2
  131. homeassistant-stubs/components/generic_hygrostat/humidifier.pyi +4 -2
  132. homeassistant-stubs/components/generic_thermostat/climate.pyi +2 -2
  133. homeassistant-stubs/components/geo_location/trigger.pyi +2 -2
  134. homeassistant-stubs/components/glances/coordinator.pyi +1 -0
  135. homeassistant-stubs/components/glances/sensor.pyi +6 -5
  136. homeassistant-stubs/components/group/entity.pyi +6 -12
  137. homeassistant-stubs/components/group/event.pyi +2 -2
  138. homeassistant-stubs/components/group/media_player.pyi +2 -2
  139. homeassistant-stubs/components/group/notify.pyi +2 -1
  140. homeassistant-stubs/components/group/registry.pyi +6 -4
  141. homeassistant-stubs/components/history/websocket_api.pyi +6 -6
  142. homeassistant-stubs/components/history_stats/coordinator.pyi +2 -2
  143. homeassistant-stubs/components/history_stats/data.pyi +1 -2
  144. homeassistant-stubs/components/homeassistant/logbook.pyi +5 -3
  145. homeassistant-stubs/components/homeassistant/triggers/numeric_state.pyi +2 -2
  146. homeassistant-stubs/components/homeassistant/triggers/state.pyi +2 -2
  147. homeassistant-stubs/components/homeassistant/triggers/time.pyi +2 -2
  148. homeassistant-stubs/components/homeassistant_alerts/__init__.pyi +3 -1
  149. homeassistant-stubs/components/homeassistant_sky_connect/__init__.pyi +7 -9
  150. homeassistant-stubs/components/homeassistant_sky_connect/config_flow.pyi +61 -6
  151. homeassistant-stubs/components/homeassistant_sky_connect/const.pyi +8 -0
  152. homeassistant-stubs/components/homeassistant_sky_connect/util.pyi +23 -2
  153. homeassistant-stubs/components/homekit/accessories.pyi +2 -2
  154. homeassistant-stubs/components/homekit/type_cameras.pyi +3 -2
  155. homeassistant-stubs/components/homekit/type_covers.pyi +2 -2
  156. homeassistant-stubs/components/homekit/type_humidifiers.pyi +2 -2
  157. homeassistant-stubs/components/homekit/type_thermostats.pyi +2 -2
  158. homeassistant-stubs/components/homekit/util.pyi +3 -4
  159. homeassistant-stubs/components/homeworks/__init__.pyi +7 -2
  160. homeassistant-stubs/components/homeworks/button.pyi +1 -1
  161. homeassistant-stubs/components/http/__init__.pyi +9 -6
  162. homeassistant-stubs/components/http/auth.pyi +11 -3
  163. homeassistant-stubs/components/http/const.pyi +7 -0
  164. homeassistant-stubs/components/http/session.pyi +29 -0
  165. homeassistant-stubs/components/hydrawise/__init__.pyi +3 -6
  166. homeassistant-stubs/components/hydrawise/binary_sensor.pyi +1 -4
  167. homeassistant-stubs/components/hydrawise/config_flow.pyi +8 -9
  168. homeassistant-stubs/components/hydrawise/sensor.pyi +2 -4
  169. homeassistant-stubs/components/hydrawise/switch.pyi +2 -5
  170. homeassistant-stubs/components/image/__init__.pyi +2 -2
  171. homeassistant-stubs/components/imap/__init__.pyi +20 -4
  172. homeassistant-stubs/components/imap/config_flow.pyi +2 -1
  173. homeassistant-stubs/components/imap/const.pyi +5 -2
  174. homeassistant-stubs/components/imap/coordinator.pyi +5 -2
  175. homeassistant-stubs/components/integration/sensor.pyi +12 -13
  176. homeassistant-stubs/components/islamic_prayer_times/config_flow.pyi +1 -3
  177. homeassistant-stubs/components/islamic_prayer_times/coordinator.pyi +4 -4
  178. homeassistant-stubs/components/isy994/helpers.pyi +1 -1
  179. homeassistant-stubs/components/jvc_projector/select.pyi +30 -0
  180. homeassistant-stubs/components/knx/expose.pyi +2 -2
  181. homeassistant-stubs/components/knx/helpers/__init__.pyi +0 -0
  182. homeassistant-stubs/components/knx/notify.pyi +16 -3
  183. homeassistant-stubs/components/knx/repairs.pyi +7 -0
  184. homeassistant-stubs/components/local_todo/todo.pyi +1 -0
  185. homeassistant-stubs/components/logbook/__init__.pyi +1 -0
  186. homeassistant-stubs/components/logbook/helpers.pyi +5 -4
  187. homeassistant-stubs/components/logbook/models.pyi +4 -3
  188. homeassistant-stubs/components/logbook/processor.pyi +3 -2
  189. homeassistant-stubs/components/logger/helpers.pyi +4 -1
  190. homeassistant-stubs/components/matter/config_flow.pyi +4 -0
  191. homeassistant-stubs/components/matter/light.pyi +3 -0
  192. homeassistant-stubs/components/media_extractor/__init__.pyi +4 -4
  193. homeassistant-stubs/components/media_extractor/const.pyi +5 -0
  194. homeassistant-stubs/components/min_max/sensor.pyi +2 -2
  195. homeassistant-stubs/components/minecraft_server/sensor.pyi +2 -2
  196. homeassistant-stubs/components/modbus/__init__.pyi +2 -2
  197. homeassistant-stubs/components/modbus/base_platform.pyi +1 -1
  198. homeassistant-stubs/components/modbus/climate.pyi +9 -3
  199. homeassistant-stubs/components/modbus/const.pyi +7 -0
  200. homeassistant-stubs/components/modbus/modbus.pyi +1 -0
  201. homeassistant-stubs/components/modbus/validators.pyi +2 -1
  202. homeassistant-stubs/components/mqtt/__init__.pyi +1 -2
  203. homeassistant-stubs/components/mqtt/client.pyi +37 -12
  204. homeassistant-stubs/components/mqtt/config_flow.pyi +9 -1
  205. homeassistant-stubs/components/mqtt/mixins.pyi +7 -4
  206. homeassistant-stubs/components/mqtt/models.pyi +1 -1
  207. homeassistant-stubs/components/mqtt/notify.pyi +31 -0
  208. homeassistant-stubs/components/mysensors/gateway.pyi +1 -0
  209. homeassistant-stubs/components/netatmo/__init__.pyi +2 -0
  210. homeassistant-stubs/components/netatmo/binary_sensor.pyi +20 -0
  211. homeassistant-stubs/components/netatmo/camera.pyi +8 -11
  212. homeassistant-stubs/components/netatmo/climate.pyi +11 -19
  213. homeassistant-stubs/components/netatmo/cover.pyi +5 -7
  214. homeassistant-stubs/components/netatmo/entity.pyi +40 -10
  215. homeassistant-stubs/components/netatmo/fan.pyi +5 -8
  216. homeassistant-stubs/components/netatmo/light.pyi +11 -19
  217. homeassistant-stubs/components/netatmo/select.pyi +4 -7
  218. homeassistant-stubs/components/netatmo/sensor.pyi +36 -49
  219. homeassistant-stubs/components/netatmo/switch.pyi +5 -7
  220. homeassistant-stubs/components/nextdns/__init__.pyi +1 -38
  221. homeassistant-stubs/components/nextdns/binary_sensor.pyi +1 -1
  222. homeassistant-stubs/components/nextdns/button.pyi +1 -1
  223. homeassistant-stubs/components/nextdns/coordinator.pyi +42 -0
  224. homeassistant-stubs/components/nextdns/sensor.pyi +1 -1
  225. homeassistant-stubs/components/nextdns/switch.pyi +1 -1
  226. homeassistant-stubs/components/nfandroidtv/notify.pyi +2 -1
  227. homeassistant-stubs/components/notify/__init__.pyi +31 -2
  228. homeassistant-stubs/components/notify/const.pyi +2 -0
  229. homeassistant-stubs/components/number/const.pyi +1 -0
  230. homeassistant-stubs/components/number/significant_change.pyi +1 -1
  231. homeassistant-stubs/components/oncue/__init__.pyi +2 -1
  232. homeassistant-stubs/components/oncue/config_flow.pyi +7 -1
  233. homeassistant-stubs/components/onewire/model.pyi +1 -1
  234. homeassistant-stubs/components/onewire/onewirehub.pyi +2 -2
  235. homeassistant-stubs/components/open_meteo/weather.pyi +2 -1
  236. homeassistant-stubs/components/prometheus/__init__.pyi +1 -2
  237. homeassistant-stubs/components/proximity/__init__.pyi +1 -1
  238. homeassistant-stubs/components/proximity/coordinator.pyi +2 -2
  239. homeassistant-stubs/components/purpleair/config_flow.pyi +2 -2
  240. homeassistant-stubs/components/rabbitair/config_flow.pyi +4 -4
  241. homeassistant-stubs/components/recorder/__init__.pyi +1 -0
  242. homeassistant-stubs/components/recorder/auto_repairs/states/__init__.pyi +0 -0
  243. homeassistant-stubs/components/recorder/core.pyi +6 -5
  244. homeassistant-stubs/components/recorder/db_schema.pyi +3 -3
  245. homeassistant-stubs/components/recorder/history/__init__.pyi +5 -6
  246. homeassistant-stubs/components/recorder/history/legacy.pyi +7 -7
  247. homeassistant-stubs/components/recorder/history/modern.pyi +7 -7
  248. homeassistant-stubs/components/recorder/models/event.pyi +4 -1
  249. homeassistant-stubs/components/recorder/pool.pyi +1 -1
  250. homeassistant-stubs/components/recorder/services.pyi +1 -0
  251. homeassistant-stubs/components/recorder/statistics.pyi +4 -4
  252. homeassistant-stubs/components/recorder/table_managers/__init__.pyi +4 -3
  253. homeassistant-stubs/components/recorder/table_managers/event_types.pyi +5 -3
  254. homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi +3 -3
  255. homeassistant-stubs/components/recorder/table_managers/states_meta.pyi +2 -2
  256. homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi +3 -3
  257. homeassistant-stubs/components/recorder/tasks.pyi +2 -1
  258. homeassistant-stubs/components/recorder/websocket_api.pyi +1 -1
  259. homeassistant-stubs/components/rest/__init__.pyi +2 -2
  260. homeassistant-stubs/components/rest/const.pyi +1 -0
  261. homeassistant-stubs/components/rest/data.pyi +1 -0
  262. homeassistant-stubs/components/rest/schema.pyi +1 -1
  263. homeassistant-stubs/components/rfxtrx/__init__.pyi +1 -1
  264. homeassistant-stubs/components/rfxtrx/config_flow.pyi +2 -2
  265. homeassistant-stubs/components/rfxtrx/event.pyi +1 -0
  266. homeassistant-stubs/components/ring/__init__.pyi +25 -0
  267. homeassistant-stubs/components/ring/binary_sensor.pyi +35 -0
  268. homeassistant-stubs/components/ring/button.pyi +20 -0
  269. homeassistant-stubs/components/ring/camera.pyi +43 -0
  270. homeassistant-stubs/components/ring/config_flow.pyi +26 -0
  271. homeassistant-stubs/components/ring/const.pyi +12 -0
  272. homeassistant-stubs/components/ring/coordinator.pyi +25 -0
  273. homeassistant-stubs/components/ring/diagnostics.pyi +11 -0
  274. homeassistant-stubs/components/ring/entity.pyi +33 -0
  275. homeassistant-stubs/components/ring/light.pyi +34 -0
  276. homeassistant-stubs/components/ring/sensor.pyi +39 -0
  277. homeassistant-stubs/components/ring/siren.pyi +23 -0
  278. homeassistant-stubs/components/ring/switch.pyi +31 -0
  279. homeassistant-stubs/components/romy/binary_sensor.pyi +19 -0
  280. homeassistant-stubs/components/romy/config_flow.pyi +7 -7
  281. homeassistant-stubs/components/romy/sensor.pyi +20 -0
  282. homeassistant-stubs/components/sensor/__init__.pyi +1 -1
  283. homeassistant-stubs/components/sensor/significant_change.pyi +1 -1
  284. homeassistant-stubs/components/shelly/__init__.pyi +2 -4
  285. homeassistant-stubs/components/shelly/coordinator.pyi +8 -7
  286. homeassistant-stubs/components/shelly/switch.pyi +1 -1
  287. homeassistant-stubs/components/shelly/utils.pyi +1 -0
  288. homeassistant-stubs/components/starlink/coordinator.pyi +1 -0
  289. homeassistant-stubs/components/statistics/sensor.pyi +2 -2
  290. homeassistant-stubs/components/switch/light.pyi +2 -2
  291. homeassistant-stubs/components/synology_dsm/__init__.pyi +2 -2
  292. homeassistant-stubs/components/synology_dsm/camera.pyi +3 -2
  293. homeassistant-stubs/components/synology_dsm/common.pyi +6 -2
  294. homeassistant-stubs/components/synology_dsm/coordinator.pyi +4 -4
  295. homeassistant-stubs/components/synology_dsm/diagnostics.pyi +0 -1
  296. homeassistant-stubs/components/system_log/__init__.pyi +3 -3
  297. homeassistant-stubs/components/threshold/binary_sensor.pyi +2 -2
  298. homeassistant-stubs/components/tibber/sensor.pyi +1 -0
  299. homeassistant-stubs/components/tplink/coordinator.pyi +2 -0
  300. homeassistant-stubs/components/tplink/entity.pyi +1 -0
  301. homeassistant-stubs/components/tplink/light.pyi +1 -1
  302. homeassistant-stubs/components/tplink/sensor.pyi +4 -3
  303. homeassistant-stubs/components/tplink_omada/switch.pyi +12 -14
  304. homeassistant-stubs/components/trend/binary_sensor.pyi +2 -2
  305. homeassistant-stubs/components/unifi/__init__.pyi +2 -0
  306. homeassistant-stubs/components/unifi/button.pyi +2 -1
  307. homeassistant-stubs/components/unifi/hub/entity_helper.pyi +44 -0
  308. homeassistant-stubs/components/unifi/hub/hub.pyi +8 -13
  309. homeassistant-stubs/components/unifi/sensor.pyi +2 -1
  310. homeassistant-stubs/components/velbus/cover.pyi +2 -0
  311. homeassistant-stubs/components/weather/significant_change.pyi +1 -1
  312. homeassistant-stubs/components/websocket_api/commands.pyi +2 -2
  313. homeassistant-stubs/components/websocket_api/messages.pyi +1 -2
  314. homeassistant-stubs/components/websocket_api/sensor.pyi +3 -7
  315. homeassistant-stubs/components/withings/__init__.pyi +2 -8
  316. homeassistant-stubs/components/withings/config_flow.pyi +1 -1
  317. homeassistant-stubs/components/withings/const.pyi +0 -2
  318. homeassistant-stubs/components/withings/coordinator.pyi +1 -0
  319. homeassistant-stubs/components/zone/__init__.pyi +8 -10
  320. homeassistant-stubs/components/zone/trigger.pyi +2 -2
  321. homeassistant-stubs/components/zwave_js/config_flow.pyi +1 -1
  322. homeassistant-stubs/config.pyi +1 -1
  323. homeassistant-stubs/config_entries.pyi +32 -29
  324. homeassistant-stubs/const.pyi +11 -6
  325. homeassistant-stubs/core.pyi +57 -24
  326. homeassistant-stubs/data_entry_flow.pyi +3 -3
  327. homeassistant-stubs/exceptions.pyi +4 -2
  328. homeassistant-stubs/helpers/aiohttp_client.pyi +1 -0
  329. homeassistant-stubs/helpers/area_registry.pyi +28 -6
  330. homeassistant-stubs/helpers/backports/__init__.pyi +0 -0
  331. homeassistant-stubs/helpers/backports/aiohttp_resolver.pyi +21 -0
  332. homeassistant-stubs/helpers/category_registry.pyi +16 -6
  333. homeassistant-stubs/helpers/data_entry_flow.pyi +1 -1
  334. homeassistant-stubs/helpers/deprecation.pyi +5 -0
  335. homeassistant-stubs/helpers/device_registry.pyi +25 -12
  336. homeassistant-stubs/helpers/dispatcher.pyi +1 -1
  337. homeassistant-stubs/helpers/entity.pyi +6 -3
  338. homeassistant-stubs/helpers/entity_registry.pyi +24 -16
  339. homeassistant-stubs/helpers/event.pyi +10 -17
  340. homeassistant-stubs/helpers/floor_registry.pyi +14 -3
  341. homeassistant-stubs/helpers/frame.pyi +2 -2
  342. homeassistant-stubs/helpers/httpx_client.pyi +1 -1
  343. homeassistant-stubs/helpers/icon.pyi +3 -2
  344. homeassistant-stubs/helpers/intent.pyi +1 -2
  345. homeassistant-stubs/helpers/label_registry.pyi +14 -3
  346. homeassistant-stubs/helpers/network.pyi +2 -2
  347. homeassistant-stubs/helpers/normalized_name_base_registry.pyi +4 -6
  348. homeassistant-stubs/helpers/registry.pyi +19 -4
  349. homeassistant-stubs/helpers/reload.pyi +1 -1
  350. homeassistant-stubs/helpers/schema_config_entry_flow.pyi +2 -2
  351. homeassistant-stubs/helpers/script.pyi +1 -1
  352. homeassistant-stubs/helpers/service.pyi +4 -1
  353. homeassistant-stubs/helpers/significant_change.pyi +4 -4
  354. homeassistant-stubs/helpers/start.pyi +3 -1
  355. homeassistant-stubs/helpers/template.pyi +6 -3
  356. homeassistant-stubs/helpers/translation.pyi +5 -9
  357. homeassistant-stubs/helpers/typing.pyi +11 -7
  358. homeassistant-stubs/requirements.pyi +2 -0
  359. homeassistant-stubs/setup.pyi +1 -0
  360. homeassistant-stubs/util/async_.pyi +1 -6
  361. homeassistant-stubs/util/dt.pyi +5 -4
  362. homeassistant-stubs/util/event_type.pyi +14 -0
  363. homeassistant-stubs/util/logging.pyi +3 -4
  364. homeassistant-stubs/util/loop.pyi +15 -0
  365. homeassistant-stubs/util/signal_type.pyi +1 -1
  366. homeassistant-stubs/util/timeout.pyi +6 -6
  367. homeassistant-stubs/util/yaml/loader.pyi +3 -4
  368. homeassistant-stubs/util/yaml/objects.pyi +12 -2
  369. {homeassistant_stubs-2024.4.4.dist-info → homeassistant_stubs-2024.5.0.dist-info}/METADATA +2 -2
  370. {homeassistant_stubs-2024.4.4.dist-info → homeassistant_stubs-2024.5.0.dist-info}/RECORD +372 -315
  371. {homeassistant_stubs-2024.4.4.dist-info → homeassistant_stubs-2024.5.0.dist-info}/LICENSE +0 -0
  372. {homeassistant_stubs-2024.4.4.dist-info → homeassistant_stubs-2024.5.0.dist-info}/WHEEL +0 -0
@@ -3,7 +3,7 @@ from .const import ATTR_PAYLOAD as ATTR_PAYLOAD, ATTR_QOS as ATTR_QOS, ATTR_RETA
3
3
  from .util import async_create_certificate_temp_files as async_create_certificate_temp_files, get_file_path as get_file_path, valid_birth_will as valid_birth_will, valid_publish_topic as valid_publish_topic
4
4
  from _typeshed import Incomplete
5
5
  from collections import OrderedDict
6
- from collections.abc import Callable as Callable
6
+ from collections.abc import Callable as Callable, Mapping
7
7
  from homeassistant.components.file_upload import process_uploaded_file as process_uploaded_file
8
8
  from homeassistant.components.hassio import HassioServiceInfo as HassioServiceInfo
9
9
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow
@@ -35,13 +35,21 @@ BROKER_VERIFICATION_SELECTOR: Incomplete
35
35
  CA_CERT_UPLOAD_SELECTOR: Incomplete
36
36
  CERT_UPLOAD_SELECTOR: Incomplete
37
37
  KEY_UPLOAD_SELECTOR: Incomplete
38
+ REAUTH_SCHEMA: Incomplete
39
+ PWD_NOT_CHANGED: str
40
+
41
+ def update_password_from_user_input(entry_password: str | None, user_input: dict[str, Any]) -> dict[str, Any]: ...
38
42
 
39
43
  class FlowHandler(ConfigFlow, domain=DOMAIN):
40
44
  VERSION: int
45
+ entry: ConfigEntry | None
41
46
  _hassio_discovery: dict[str, Any] | None
47
+ _reauth_config_entry: ConfigEntry | None
42
48
  @staticmethod
43
49
  def async_get_options_flow(config_entry: ConfigEntry) -> MQTTOptionsFlowHandler: ...
44
50
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
51
+ async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
52
+ async def async_step_reauth_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
45
53
  async def async_step_broker(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
46
54
  async def async_step_hassio(self, discovery_info: HassioServiceInfo) -> ConfigFlowResult: ...
47
55
  async def async_step_hassio_confirm(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
@@ -11,10 +11,9 @@ from .util import get_mqtt_data as get_mqtt_data, mqtt_config_entry_enabled as m
11
11
  from _typeshed import Incomplete
12
12
  from abc import ABC, abstractmethod
13
13
  from collections.abc import Callable as Callable, Coroutine
14
- from functools import partial
15
14
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
16
15
  from homeassistant.const import ATTR_CONFIGURATION_URL as ATTR_CONFIGURATION_URL, ATTR_HW_VERSION as ATTR_HW_VERSION, ATTR_MANUFACTURER as ATTR_MANUFACTURER, ATTR_MODEL as ATTR_MODEL, ATTR_NAME as ATTR_NAME, ATTR_SERIAL_NUMBER as ATTR_SERIAL_NUMBER, ATTR_SUGGESTED_AREA as ATTR_SUGGESTED_AREA, ATTR_SW_VERSION as ATTR_SW_VERSION, ATTR_VIA_DEVICE as ATTR_VIA_DEVICE, CONF_DEVICE as CONF_DEVICE, CONF_ENTITY_CATEGORY as CONF_ENTITY_CATEGORY, CONF_ICON as CONF_ICON, CONF_MODEL as CONF_MODEL, CONF_NAME as CONF_NAME, CONF_UNIQUE_ID as CONF_UNIQUE_ID, CONF_VALUE_TEMPLATE as CONF_VALUE_TEMPLATE
17
- from homeassistant.core import CALLBACK_TYPE as CALLBACK_TYPE, Event as Event, HomeAssistant as HomeAssistant, callback as callback
16
+ from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
18
17
  from homeassistant.helpers import entity_registry as er
19
18
  from homeassistant.helpers.device_registry import DeviceEntry as DeviceEntry, DeviceInfo as DeviceInfo, EventDeviceRegistryUpdatedData as EventDeviceRegistryUpdatedData
20
19
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
@@ -53,8 +52,12 @@ class SetupEntity(Protocol):
53
52
  async def __call__(self, hass: HomeAssistant, async_add_entities: AddEntitiesCallback, config: ConfigType, config_entry: ConfigEntry, discovery_data: DiscoveryInfoType | None = None) -> None: ...
54
53
 
55
54
  def async_handle_schema_error(discovery_payload: MQTTDiscoveryPayload, err: vol.MultipleInvalid) -> None: ...
56
- async def _async_discover(hass: HomeAssistant, domain: str, setup: partial[CALLBACK_TYPE] | None, async_setup: partial[Coroutine[Any, Any, None]] | None, discovery_payload: MQTTDiscoveryPayload) -> None: ...
57
- async def async_setup_non_entity_entry_helper(hass: HomeAssistant, domain: str, async_setup: partial[Coroutine[Any, Any, None]], discovery_schema: vol.Schema) -> None: ...
55
+ async def _async_discover(hass: HomeAssistant, domain: str, setup: Callable[[MQTTDiscoveryPayload], None] | None, async_setup: Callable[[MQTTDiscoveryPayload], Coroutine[Any, Any, None]] | None, discovery_payload: MQTTDiscoveryPayload) -> None: ...
56
+
57
+ class _SetupNonEntityHelperCallbackProtocol(Protocol):
58
+ async def __call__(self, config: ConfigType, discovery_data: DiscoveryInfoType) -> None: ...
59
+
60
+ async def async_setup_non_entity_entry_helper(hass: HomeAssistant, domain: str, async_setup: _SetupNonEntityHelperCallbackProtocol, discovery_schema: vol.Schema) -> None: ...
58
61
  async def async_setup_entity_entry_helper(hass: HomeAssistant, entry: ConfigEntry, entity_class: type[MqttEntity] | None, domain: str, async_add_entities: AddEntitiesCallback, discovery_schema: vol.Schema, platform_schema_modern: vol.Schema, schema_class_mapping: dict[str, type[MqttEntity]] | None = None) -> None: ...
59
62
  def init_entity_id_from_config(hass: HomeAssistant, entity: Entity, config: ConfigType, entity_id_format: str) -> None: ...
60
63
  def write_state_on_attr_change(entity: Entity, attributes: set[str]) -> Callable[[MessageCallbackType], MessageCallbackType]: ...
@@ -38,7 +38,7 @@ class PublishMessage:
38
38
  retain: bool
39
39
  def __init__(self, topic, payload, qos, retain) -> None: ...
40
40
 
41
- @dataclass
41
+ @dataclass(slots=True, frozen=True)
42
42
  class ReceiveMessage:
43
43
  topic: str
44
44
  payload: ReceivePayloadType
@@ -0,0 +1,31 @@
1
+ import voluptuous as vol
2
+ from .config import DEFAULT_RETAIN as DEFAULT_RETAIN, MQTT_BASE_SCHEMA as MQTT_BASE_SCHEMA
3
+ from .const import CONF_COMMAND_TEMPLATE as CONF_COMMAND_TEMPLATE, CONF_COMMAND_TOPIC as CONF_COMMAND_TOPIC, CONF_ENCODING as CONF_ENCODING, CONF_QOS as CONF_QOS, CONF_RETAIN as CONF_RETAIN
4
+ from .mixins import MQTT_ENTITY_COMMON_SCHEMA as MQTT_ENTITY_COMMON_SCHEMA, MqttEntity as MqttEntity, async_setup_entity_entry_helper as async_setup_entity_entry_helper
5
+ from .models import MqttCommandTemplate as MqttCommandTemplate
6
+ from .util import valid_publish_topic as valid_publish_topic
7
+ from _typeshed import Incomplete
8
+ from homeassistant.components import notify as notify
9
+ from homeassistant.components.notify import NotifyEntity as NotifyEntity
10
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
11
+ from homeassistant.const import CONF_NAME as CONF_NAME
12
+ from homeassistant.core import HomeAssistant as HomeAssistant
13
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
14
+ from homeassistant.helpers.typing import ConfigType as ConfigType
15
+
16
+ DEFAULT_NAME: str
17
+ PLATFORM_SCHEMA_MODERN: Incomplete
18
+ DISCOVERY_SCHEMA: Incomplete
19
+
20
+ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
21
+
22
+ class MqttNotify(MqttEntity, NotifyEntity):
23
+ _default_name = DEFAULT_NAME
24
+ _entity_id_format: Incomplete
25
+ @staticmethod
26
+ def config_schema() -> vol.Schema: ...
27
+ _command_template: Incomplete
28
+ def _setup_from_config(self, config: ConfigType) -> None: ...
29
+ def _prepare_subscribe_topics(self) -> None: ...
30
+ async def _subscribe_topics(self) -> None: ...
31
+ async def async_send_message(self, message: str) -> None: ...
@@ -7,6 +7,7 @@ from homeassistant.components.mqtt import ReceivePayloadType as ReceivePayloadTy
7
7
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
8
8
  from homeassistant.const import CONF_DEVICE as CONF_DEVICE, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP
9
9
  from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant, callback as callback
10
+ from homeassistant.setup import SetupPhases as SetupPhases, async_pause_setup as async_pause_setup
10
11
  from homeassistant.util.unit_system import METRIC_SYSTEM as METRIC_SYSTEM
11
12
  from mysensors import BaseAsyncGateway as BaseAsyncGateway, Message as Message, Sensor as Sensor
12
13
  from typing import Any
@@ -9,6 +9,7 @@ from homeassistant.const import CONF_WEBHOOK_ID as CONF_WEBHOOK_ID, EVENT_HOMEAS
9
9
  from homeassistant.core import HomeAssistant as HomeAssistant
10
10
  from homeassistant.exceptions import ConfigEntryAuthFailed as ConfigEntryAuthFailed, ConfigEntryNotReady as ConfigEntryNotReady
11
11
  from homeassistant.helpers import aiohttp_client as aiohttp_client, config_entry_oauth2_flow as config_entry_oauth2_flow
12
+ from homeassistant.helpers.device_registry import DeviceEntry as DeviceEntry
12
13
  from homeassistant.helpers.dispatcher import async_dispatcher_send as async_dispatcher_send
13
14
  from homeassistant.helpers.event import async_call_later as async_call_later
14
15
  from homeassistant.helpers.start import async_at_started as async_at_started
@@ -24,3 +25,4 @@ async def async_cloudhook_generate_url(hass: HomeAssistant, entry: ConfigEntry)
24
25
  async def async_config_entry_updated(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
25
26
  async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
26
27
  async def async_remove_entry(hass: HomeAssistant, entry: ConfigEntry) -> None: ...
28
+ async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: ConfigEntry, device_entry: DeviceEntry) -> bool: ...
@@ -0,0 +1,20 @@
1
+ from .const import NETATMO_CREATE_WEATHER_SENSOR as NETATMO_CREATE_WEATHER_SENSOR
2
+ from .data_handler import NetatmoDevice as NetatmoDevice
3
+ from .entity import NetatmoWeatherModuleEntity as NetatmoWeatherModuleEntity
4
+ from _typeshed import Incomplete
5
+ from homeassistant.components.binary_sensor import BinarySensorDeviceClass as BinarySensorDeviceClass, BinarySensorEntity as BinarySensorEntity, BinarySensorEntityDescription as BinarySensorEntityDescription
6
+ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
+ from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
+ from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
9
+ from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+
11
+ BINARY_SENSOR_TYPES: tuple[BinarySensorEntityDescription, ...]
12
+
13
+ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
14
+
15
+ class NetatmoWeatherBinarySensor(NetatmoWeatherModuleEntity, BinarySensorEntity):
16
+ entity_description: Incomplete
17
+ _attr_unique_id: Incomplete
18
+ def __init__(self, device: NetatmoDevice, description: BinarySensorEntityDescription) -> None: ...
19
+ _attr_is_on: Incomplete
20
+ def async_update_callback(self) -> None: ...
@@ -1,6 +1,6 @@
1
1
  from .const import ATTR_CAMERA_LIGHT_MODE as ATTR_CAMERA_LIGHT_MODE, ATTR_PERSON as ATTR_PERSON, ATTR_PERSONS as ATTR_PERSONS, CAMERA_LIGHT_MODES as CAMERA_LIGHT_MODES, CONF_URL_SECURITY as CONF_URL_SECURITY, DATA_CAMERAS as DATA_CAMERAS, DATA_EVENTS as DATA_EVENTS, DOMAIN as DOMAIN, EVENT_TYPE_LIGHT_MODE as EVENT_TYPE_LIGHT_MODE, EVENT_TYPE_OFF as EVENT_TYPE_OFF, EVENT_TYPE_ON as EVENT_TYPE_ON, MANUFACTURER as MANUFACTURER, NETATMO_CREATE_CAMERA as NETATMO_CREATE_CAMERA, SERVICE_SET_CAMERA_LIGHT as SERVICE_SET_CAMERA_LIGHT, SERVICE_SET_PERSONS_HOME as SERVICE_SET_PERSONS_HOME, SERVICE_SET_PERSON_AWAY as SERVICE_SET_PERSON_AWAY, WEBHOOK_LIGHT_MODE as WEBHOOK_LIGHT_MODE, WEBHOOK_NACAMERA_CONNECTION as WEBHOOK_NACAMERA_CONNECTION, WEBHOOK_PUSH_TYPE as WEBHOOK_PUSH_TYPE
2
2
  from .data_handler import EVENT as EVENT, HOME as HOME, NetatmoDevice as NetatmoDevice, SIGNAL_NAME as SIGNAL_NAME
3
- from .entity import NetatmoBaseEntity as NetatmoBaseEntity
3
+ from .entity import NetatmoModuleEntity as NetatmoModuleEntity
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.camera import Camera as Camera, CameraEntityFeature as CameraEntityFeature
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
@@ -9,6 +9,7 @@ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
9
  from homeassistant.helpers import entity_platform as entity_platform
10
10
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
11
11
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
12
+ from pyatmo import modules as NaModules
12
13
  from pyatmo.event import Event as NaEvent
13
14
  from typing import Any
14
15
 
@@ -17,19 +18,15 @@ DEFAULT_QUALITY: str
17
18
 
18
19
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
19
20
 
20
- class NetatmoCamera(NetatmoBaseEntity, Camera):
21
+ class NetatmoCamera(NetatmoModuleEntity, Camera):
21
22
  _attr_brand = MANUFACTURER
22
- _attr_has_entity_name: bool
23
23
  _attr_supported_features: Incomplete
24
- _camera: Incomplete
25
- _id: Incomplete
26
- _home_id: Incomplete
27
- _device_name: Incomplete
28
- _model: Incomplete
29
- _config_url: Incomplete
24
+ _attr_configuration_url = CONF_URL_SECURITY
25
+ device: NaModules.Camera
26
+ _quality = DEFAULT_QUALITY
27
+ _monitoring: bool | None
28
+ _attr_name: Incomplete
30
29
  _attr_unique_id: Incomplete
31
- _quality: Incomplete
32
- _monitoring: Incomplete
33
30
  _light_state: Incomplete
34
31
  def __init__(self, netatmo_device: NetatmoDevice) -> None: ...
35
32
  async def async_added_to_hass(self) -> None: ...
@@ -1,13 +1,12 @@
1
- from .const import ATTR_END_DATETIME as ATTR_END_DATETIME, ATTR_HEATING_POWER_REQUEST as ATTR_HEATING_POWER_REQUEST, ATTR_SCHEDULE_NAME as ATTR_SCHEDULE_NAME, ATTR_SELECTED_SCHEDULE as ATTR_SELECTED_SCHEDULE, ATTR_TARGET_TEMPERATURE as ATTR_TARGET_TEMPERATURE, ATTR_TIME_PERIOD as ATTR_TIME_PERIOD, CONF_URL_ENERGY as CONF_URL_ENERGY, DATA_SCHEDULES as DATA_SCHEDULES, DOMAIN as DOMAIN, EVENT_TYPE_CANCEL_SET_POINT as EVENT_TYPE_CANCEL_SET_POINT, EVENT_TYPE_SCHEDULE as EVENT_TYPE_SCHEDULE, EVENT_TYPE_SET_POINT as EVENT_TYPE_SET_POINT, EVENT_TYPE_THERM_MODE as EVENT_TYPE_THERM_MODE, NETATMO_CREATE_CLIMATE as NETATMO_CREATE_CLIMATE, SERVICE_CLEAR_TEMPERATURE_SETTING as SERVICE_CLEAR_TEMPERATURE_SETTING, SERVICE_SET_PRESET_MODE_WITH_END_DATETIME as SERVICE_SET_PRESET_MODE_WITH_END_DATETIME, SERVICE_SET_SCHEDULE as SERVICE_SET_SCHEDULE, SERVICE_SET_TEMPERATURE_WITH_END_DATETIME as SERVICE_SET_TEMPERATURE_WITH_END_DATETIME, SERVICE_SET_TEMPERATURE_WITH_TIME_PERIOD as SERVICE_SET_TEMPERATURE_WITH_TIME_PERIOD
1
+ from .const import ATTR_END_DATETIME as ATTR_END_DATETIME, ATTR_HEATING_POWER_REQUEST as ATTR_HEATING_POWER_REQUEST, ATTR_SCHEDULE_NAME as ATTR_SCHEDULE_NAME, ATTR_SELECTED_SCHEDULE as ATTR_SELECTED_SCHEDULE, ATTR_TARGET_TEMPERATURE as ATTR_TARGET_TEMPERATURE, ATTR_TIME_PERIOD as ATTR_TIME_PERIOD, DATA_SCHEDULES as DATA_SCHEDULES, DOMAIN as DOMAIN, EVENT_TYPE_CANCEL_SET_POINT as EVENT_TYPE_CANCEL_SET_POINT, EVENT_TYPE_SCHEDULE as EVENT_TYPE_SCHEDULE, EVENT_TYPE_SET_POINT as EVENT_TYPE_SET_POINT, EVENT_TYPE_THERM_MODE as EVENT_TYPE_THERM_MODE, NETATMO_CREATE_CLIMATE as NETATMO_CREATE_CLIMATE, SERVICE_CLEAR_TEMPERATURE_SETTING as SERVICE_CLEAR_TEMPERATURE_SETTING, SERVICE_SET_PRESET_MODE_WITH_END_DATETIME as SERVICE_SET_PRESET_MODE_WITH_END_DATETIME, SERVICE_SET_SCHEDULE as SERVICE_SET_SCHEDULE, SERVICE_SET_TEMPERATURE_WITH_END_DATETIME as SERVICE_SET_TEMPERATURE_WITH_END_DATETIME, SERVICE_SET_TEMPERATURE_WITH_TIME_PERIOD as SERVICE_SET_TEMPERATURE_WITH_TIME_PERIOD
2
2
  from .data_handler import HOME as HOME, NetatmoRoom as NetatmoRoom, SIGNAL_NAME as SIGNAL_NAME
3
- from .entity import NetatmoBaseEntity as NetatmoBaseEntity
3
+ from .entity import NetatmoRoomEntity as NetatmoRoomEntity
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.climate import ATTR_PRESET_MODE as ATTR_PRESET_MODE, ClimateEntity as ClimateEntity, ClimateEntityFeature as ClimateEntityFeature, DEFAULT_MIN_TEMP as DEFAULT_MIN_TEMP, HVACAction as HVACAction, HVACMode as HVACMode, PRESET_AWAY as PRESET_AWAY, PRESET_BOOST as PRESET_BOOST, PRESET_HOME as PRESET_HOME
6
6
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
- from homeassistant.const import ATTR_SUGGESTED_AREA as ATTR_SUGGESTED_AREA, ATTR_TEMPERATURE as ATTR_TEMPERATURE, PRECISION_HALVES as PRECISION_HALVES, STATE_OFF as STATE_OFF, UnitOfTemperature as UnitOfTemperature
7
+ from homeassistant.const import ATTR_TEMPERATURE as ATTR_TEMPERATURE, PRECISION_HALVES as PRECISION_HALVES, STATE_OFF as STATE_OFF, UnitOfTemperature as UnitOfTemperature
8
8
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
9
9
  from homeassistant.helpers import entity_platform as entity_platform
10
- from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
11
10
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
12
11
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
13
12
  from typing import Any
@@ -36,30 +35,25 @@ NA_VALVE: Incomplete
36
35
 
37
36
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
38
37
 
39
- class NetatmoThermostat(NetatmoBaseEntity, ClimateEntity):
38
+ class NetatmoThermostat(NetatmoRoomEntity, ClimateEntity):
40
39
  _attr_hvac_mode: Incomplete
41
40
  _attr_max_temp = DEFAULT_MAX_TEMP
42
41
  _attr_preset_modes = SUPPORT_PRESET
43
42
  _attr_supported_features = SUPPORT_FLAGS
44
43
  _attr_target_temperature_step = PRECISION_HALVES
45
44
  _attr_temperature_unit: Incomplete
45
+ _attr_name: Incomplete
46
+ _away: bool | None
47
+ _connected: bool | None
46
48
  _enable_turn_on_off_backwards_compatibility: bool
47
- _room: Incomplete
48
- _id: Incomplete
49
- _home_id: Incomplete
49
+ _away_temperature: float | None
50
+ _hg_temperature: float | None
51
+ _boilerstatus: bool | None
50
52
  _signal_name: Incomplete
51
- _model: Incomplete
52
- _config_url: Incomplete
53
- _attr_name: Incomplete
54
- _away: Incomplete
55
- _connected: Incomplete
56
- _away_temperature: Incomplete
57
- _hg_temperature: Incomplete
58
- _boilerstatus: Incomplete
59
53
  _selected_schedule: Incomplete
60
54
  _attr_hvac_modes: Incomplete
61
55
  _attr_unique_id: Incomplete
62
- def __init__(self, netatmo_device: NetatmoRoom) -> None: ...
56
+ def __init__(self, room: NetatmoRoom) -> None: ...
63
57
  async def async_added_to_hass(self) -> None: ...
64
58
  _attr_preset_mode: Incomplete
65
59
  _attr_target_temperature: Incomplete
@@ -80,5 +74,3 @@ class NetatmoThermostat(NetatmoBaseEntity, ClimateEntity):
80
74
  async def _async_service_set_temperature_with_end_datetime(self, **kwargs: Any) -> None: ...
81
75
  async def _async_service_set_temperature_with_time_period(self, **kwargs: Any) -> None: ...
82
76
  async def _async_service_clear_temperature_setting(self, **kwargs: Any) -> None: ...
83
- @property
84
- def device_info(self) -> DeviceInfo: ...
@@ -1,27 +1,25 @@
1
1
  from .const import CONF_URL_CONTROL as CONF_URL_CONTROL, NETATMO_CREATE_COVER as NETATMO_CREATE_COVER
2
2
  from .data_handler import HOME as HOME, NetatmoDevice as NetatmoDevice, SIGNAL_NAME as SIGNAL_NAME
3
- from .entity import NetatmoBaseEntity as NetatmoBaseEntity
3
+ from .entity import NetatmoModuleEntity as NetatmoModuleEntity
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.cover import ATTR_POSITION as ATTR_POSITION, CoverDeviceClass as CoverDeviceClass, CoverEntity as CoverEntity, CoverEntityFeature as CoverEntityFeature
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
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+ from pyatmo import modules as NaModules
10
11
  from typing import Any
11
12
 
12
13
  _LOGGER: Incomplete
13
14
 
14
15
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
15
16
 
16
- class NetatmoCover(NetatmoBaseEntity, CoverEntity):
17
+ class NetatmoCover(NetatmoModuleEntity, CoverEntity):
17
18
  _attr_supported_features: Incomplete
19
+ _attr_configuration_url = CONF_URL_CONTROL
18
20
  _attr_device_class: Incomplete
19
- _cover: Incomplete
20
- _id: Incomplete
21
21
  _attr_name: Incomplete
22
- _model: Incomplete
23
- _config_url: Incomplete
24
- _home_id: Incomplete
22
+ device: NaModules.Shutter
25
23
  _attr_is_closed: Incomplete
26
24
  _signal_name: Incomplete
27
25
  _attr_unique_id: Incomplete
@@ -1,25 +1,55 @@
1
- from .const import DATA_DEVICE_IDS as DATA_DEVICE_IDS, DEFAULT_ATTRIBUTION as DEFAULT_ATTRIBUTION, DOMAIN as DOMAIN, SIGNAL_NAME as SIGNAL_NAME
2
- from .data_handler import NetatmoDataHandler as NetatmoDataHandler, PUBLIC as PUBLIC
1
+ import abc
2
+ from .const import CONF_URL_ENERGY as CONF_URL_ENERGY, CONF_URL_WEATHER as CONF_URL_WEATHER, DATA_DEVICE_IDS as DATA_DEVICE_IDS, DEFAULT_ATTRIBUTION as DEFAULT_ATTRIBUTION, DOMAIN as DOMAIN, SIGNAL_NAME as SIGNAL_NAME
3
+ from .data_handler import NetatmoDataHandler as NetatmoDataHandler, NetatmoDevice as NetatmoDevice, NetatmoRoom as NetatmoRoom, PUBLIC as PUBLIC
3
4
  from _typeshed import Incomplete
5
+ from abc import abstractmethod
6
+ from homeassistant.const import ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE
4
7
  from homeassistant.core import callback as callback
5
8
  from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
6
9
  from homeassistant.helpers.entity import Entity as Entity
7
- from pyatmo import DeviceType as DeviceType
10
+ from pyatmo import DeviceType, Home as Home, Module as Module, Room as Room
11
+ from pyatmo.modules.base_class import NetatmoBase as NetatmoBase
8
12
 
9
13
  class NetatmoBaseEntity(Entity):
10
14
  _attr_attribution = DEFAULT_ATTRIBUTION
15
+ _attr_has_entity_name: bool
11
16
  data_handler: Incomplete
12
17
  _publishers: Incomplete
13
- _device_name: str
14
- _id: str
15
- _model: Incomplete
16
- _config_url: Incomplete
17
- _attr_name: Incomplete
18
- _attr_unique_id: Incomplete
19
18
  _attr_extra_state_attributes: Incomplete
20
19
  def __init__(self, data_handler: NetatmoDataHandler) -> None: ...
21
20
  async def async_added_to_hass(self) -> None: ...
22
21
  async def async_will_remove_from_hass(self) -> None: ...
23
22
  def async_update_callback(self) -> None: ...
23
+
24
+ class NetatmoDeviceEntity(NetatmoBaseEntity, metaclass=abc.ABCMeta):
25
+ device: Incomplete
26
+ def __init__(self, data_handler: NetatmoDataHandler, device: NetatmoBase) -> None: ...
27
+ @property
28
+ @abstractmethod
29
+ def device_type(self) -> DeviceType: ...
30
+ @property
31
+ def device_description(self) -> tuple[str, str]: ...
32
+ @property
33
+ def home(self) -> Home: ...
34
+
35
+ class NetatmoRoomEntity(NetatmoDeviceEntity):
36
+ device: Room
37
+ _attr_device_info: Incomplete
38
+ def __init__(self, room: NetatmoRoom) -> None: ...
39
+ async def async_added_to_hass(self) -> None: ...
40
+ @property
41
+ def device_type(self) -> DeviceType: ...
42
+
43
+ class NetatmoModuleEntity(NetatmoDeviceEntity):
44
+ device: Module
45
+ _attr_configuration_url: str
46
+ _attr_device_info: Incomplete
47
+ def __init__(self, device: NetatmoDevice) -> None: ...
48
+ @property
49
+ def device_type(self) -> DeviceType: ...
50
+
51
+ class NetatmoWeatherModuleEntity(NetatmoModuleEntity):
52
+ _attr_configuration_url = CONF_URL_WEATHER
53
+ def __init__(self, device: NetatmoDevice) -> None: ...
24
54
  @property
25
- def device_info(self) -> DeviceInfo: ...
55
+ def device_type(self) -> DeviceType: ...
@@ -1,12 +1,13 @@
1
1
  from .const import CONF_URL_CONTROL as CONF_URL_CONTROL, NETATMO_CREATE_FAN as NETATMO_CREATE_FAN
2
2
  from .data_handler import HOME as HOME, NetatmoDevice as NetatmoDevice, SIGNAL_NAME as SIGNAL_NAME
3
- from .entity import NetatmoBaseEntity as NetatmoBaseEntity
3
+ from .entity import NetatmoModuleEntity as NetatmoModuleEntity
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.fan import FanEntity as FanEntity, FanEntityFeature as FanEntityFeature
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
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+ from pyatmo import modules as NaModules
10
11
  from typing import Final
11
12
 
12
13
  _LOGGER: Incomplete
@@ -16,16 +17,12 @@ PRESETS: Incomplete
16
17
 
17
18
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
18
19
 
19
- class NetatmoFan(NetatmoBaseEntity, FanEntity):
20
+ class NetatmoFan(NetatmoModuleEntity, FanEntity):
20
21
  _attr_preset_modes: Incomplete
21
22
  _attr_supported_features: Incomplete
22
- _fan: Incomplete
23
- _id: Incomplete
23
+ _attr_configuration_url = CONF_URL_CONTROL
24
24
  _attr_name: Incomplete
25
- _model: Incomplete
26
- _config_url: Incomplete
27
- _home_id: Incomplete
28
- _signal_name: Incomplete
25
+ device: NaModules.Fan
29
26
  _attr_unique_id: Incomplete
30
27
  def __init__(self, netatmo_device: NetatmoDevice) -> None: ...
31
28
  async def async_set_preset_mode(self, preset_mode: str) -> None: ...
@@ -1,29 +1,27 @@
1
1
  from .const import CONF_URL_CONTROL as CONF_URL_CONTROL, CONF_URL_SECURITY as CONF_URL_SECURITY, DOMAIN as DOMAIN, EVENT_TYPE_LIGHT_MODE as EVENT_TYPE_LIGHT_MODE, NETATMO_CREATE_CAMERA_LIGHT as NETATMO_CREATE_CAMERA_LIGHT, NETATMO_CREATE_LIGHT as NETATMO_CREATE_LIGHT, WEBHOOK_LIGHT_MODE as WEBHOOK_LIGHT_MODE, WEBHOOK_PUSH_TYPE as WEBHOOK_PUSH_TYPE
2
2
  from .data_handler import HOME as HOME, NetatmoDevice as NetatmoDevice, SIGNAL_NAME as SIGNAL_NAME
3
- from .entity import NetatmoBaseEntity as NetatmoBaseEntity
3
+ from .entity import NetatmoModuleEntity as NetatmoModuleEntity
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.light import ATTR_BRIGHTNESS as ATTR_BRIGHTNESS, ColorMode as ColorMode, LightEntity as LightEntity
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
9
9
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
+ from pyatmo import modules as NaModules
10
11
  from typing import Any
11
12
 
12
13
  _LOGGER: Incomplete
13
14
 
14
15
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
15
16
 
16
- class NetatmoCameraLight(NetatmoBaseEntity, LightEntity):
17
+ class NetatmoCameraLight(NetatmoModuleEntity, LightEntity):
18
+ device: NaModules.NOC
19
+ _attr_is_on: bool
20
+ _attr_name: Incomplete
21
+ _attr_configuration_url = CONF_URL_SECURITY
17
22
  _attr_color_mode: Incomplete
18
23
  _attr_has_entity_name: bool
19
24
  _attr_supported_color_modes: Incomplete
20
- _camera: Incomplete
21
- _id: Incomplete
22
- _home_id: Incomplete
23
- _device_name: Incomplete
24
- _model: Incomplete
25
- _config_url: Incomplete
26
- _is_on: bool
27
25
  _attr_unique_id: Incomplete
28
26
  _signal_name: Incomplete
29
27
  def __init__(self, netatmo_device: NetatmoDevice) -> None: ...
@@ -31,21 +29,15 @@ class NetatmoCameraLight(NetatmoBaseEntity, LightEntity):
31
29
  def handle_event(self, event: dict) -> None: ...
32
30
  @property
33
31
  def available(self) -> bool: ...
34
- @property
35
- def is_on(self) -> bool: ...
36
32
  async def async_turn_on(self, **kwargs: Any) -> None: ...
37
33
  async def async_turn_off(self, **kwargs: Any) -> None: ...
38
34
  def async_update_callback(self) -> None: ...
39
35
 
40
- class NetatmoLight(NetatmoBaseEntity, LightEntity):
41
- _dimmer: Incomplete
42
- _id: Incomplete
43
- _home_id: Incomplete
44
- _device_name: Incomplete
36
+ class NetatmoLight(NetatmoModuleEntity, LightEntity):
45
37
  _attr_name: Incomplete
46
- _model: Incomplete
47
- _config_url: Incomplete
48
- _attr_brightness: int
38
+ _attr_configuration_url = CONF_URL_CONTROL
39
+ _attr_brightness: int | None
40
+ device: NaModules.NLFN
49
41
  _attr_unique_id: Incomplete
50
42
  _attr_color_mode: Incomplete
51
43
  _attr_supported_color_modes: Incomplete
@@ -1,10 +1,11 @@
1
- from .const import CONF_URL_ENERGY as CONF_URL_ENERGY, DATA_SCHEDULES as DATA_SCHEDULES, DOMAIN as DOMAIN, EVENT_TYPE_SCHEDULE as EVENT_TYPE_SCHEDULE, NETATMO_CREATE_SELECT as NETATMO_CREATE_SELECT
1
+ from .const import CONF_URL_ENERGY as CONF_URL_ENERGY, DATA_SCHEDULES as DATA_SCHEDULES, DOMAIN as DOMAIN, EVENT_TYPE_SCHEDULE as EVENT_TYPE_SCHEDULE, MANUFACTURER as MANUFACTURER, NETATMO_CREATE_SELECT as NETATMO_CREATE_SELECT
2
2
  from .data_handler import HOME as HOME, NetatmoHome as NetatmoHome, SIGNAL_NAME as SIGNAL_NAME
3
3
  from .entity import NetatmoBaseEntity as NetatmoBaseEntity
4
4
  from _typeshed import Incomplete
5
5
  from homeassistant.components.select import SelectEntity as SelectEntity
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.device_registry import DeviceInfo as DeviceInfo
8
9
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect
9
10
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
11
 
@@ -13,13 +14,9 @@ _LOGGER: Incomplete
13
14
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
14
15
 
15
16
  class NetatmoScheduleSelect(NetatmoBaseEntity, SelectEntity):
16
- _home: Incomplete
17
- _home_id: Incomplete
18
- _signal_name: Incomplete
19
- _device_name: Incomplete
20
17
  _attr_name: Incomplete
21
- _model: Incomplete
22
- _config_url: Incomplete
18
+ home: Incomplete
19
+ _attr_device_info: Incomplete
23
20
  _attr_unique_id: Incomplete
24
21
  _attr_current_option: Incomplete
25
22
  _attr_options: Incomplete
@@ -1,108 +1,95 @@
1
- from .const import CONF_URL_ENERGY as CONF_URL_ENERGY, CONF_URL_PUBLIC_WEATHER as CONF_URL_PUBLIC_WEATHER, CONF_URL_WEATHER as CONF_URL_WEATHER, CONF_WEATHER_AREAS as CONF_WEATHER_AREAS, DATA_HANDLER as DATA_HANDLER, DOMAIN as DOMAIN, NETATMO_CREATE_BATTERY as NETATMO_CREATE_BATTERY, NETATMO_CREATE_ROOM_SENSOR as NETATMO_CREATE_ROOM_SENSOR, NETATMO_CREATE_SENSOR as NETATMO_CREATE_SENSOR, NETATMO_CREATE_WEATHER_SENSOR as NETATMO_CREATE_WEATHER_SENSOR, SIGNAL_NAME as SIGNAL_NAME
1
+ import pyatmo
2
+ from .const import CONF_URL_ENERGY as CONF_URL_ENERGY, CONF_URL_PUBLIC_WEATHER as CONF_URL_PUBLIC_WEATHER, CONF_WEATHER_AREAS as CONF_WEATHER_AREAS, DATA_HANDLER as DATA_HANDLER, DOMAIN as DOMAIN, NETATMO_CREATE_BATTERY as NETATMO_CREATE_BATTERY, NETATMO_CREATE_ROOM_SENSOR as NETATMO_CREATE_ROOM_SENSOR, NETATMO_CREATE_SENSOR as NETATMO_CREATE_SENSOR, NETATMO_CREATE_WEATHER_SENSOR as NETATMO_CREATE_WEATHER_SENSOR, SIGNAL_NAME as SIGNAL_NAME
2
3
  from .data_handler import HOME as HOME, NetatmoDataHandler as NetatmoDataHandler, NetatmoDevice as NetatmoDevice, NetatmoRoom as NetatmoRoom, PUBLIC as PUBLIC
3
- from .entity import NetatmoBaseEntity as NetatmoBaseEntity
4
+ from .entity import NetatmoBaseEntity as NetatmoBaseEntity, NetatmoModuleEntity as NetatmoModuleEntity, NetatmoRoomEntity as NetatmoRoomEntity, NetatmoWeatherModuleEntity as NetatmoWeatherModuleEntity
4
5
  from .helper import NetatmoArea as NetatmoArea
5
6
  from _typeshed import Incomplete
7
+ from collections.abc import Callable as Callable
6
8
  from dataclasses import dataclass
7
9
  from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription, SensorStateClass as SensorStateClass
8
10
  from homeassistant.config_entries import ConfigEntry as ConfigEntry
9
11
  from homeassistant.const import ATTR_LATITUDE as ATTR_LATITUDE, ATTR_LONGITUDE as ATTR_LONGITUDE, CONCENTRATION_PARTS_PER_MILLION as CONCENTRATION_PARTS_PER_MILLION, DEGREE as DEGREE, EntityCategory as EntityCategory, PERCENTAGE as PERCENTAGE, UnitOfPower as UnitOfPower, UnitOfPrecipitationDepth as UnitOfPrecipitationDepth, UnitOfPressure as UnitOfPressure, UnitOfSoundPressure as UnitOfSoundPressure, UnitOfSpeed as UnitOfSpeed, UnitOfTemperature as UnitOfTemperature
10
12
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
11
- from homeassistant.helpers.device_registry import async_entries_for_config_entry as async_entries_for_config_entry
13
+ from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo, async_entries_for_config_entry as async_entries_for_config_entry
12
14
  from homeassistant.helpers.dispatcher import async_dispatcher_connect as async_dispatcher_connect, async_dispatcher_send as async_dispatcher_send
13
15
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
16
+ from homeassistant.helpers.typing import StateType as StateType
17
+ from pyatmo.modules import PublicWeatherArea as PublicWeatherArea
18
+ from typing import Any
14
19
 
15
20
  _LOGGER: Incomplete
16
- SUPPORTED_PUBLIC_SENSOR_TYPES: tuple[str, ...]
21
+ DIRECTION_OPTIONS: Incomplete
22
+
23
+ def process_health(health: StateType) -> str | None: ...
24
+ def process_rf(strength: StateType) -> str | None: ...
25
+ def process_wifi(strength: StateType) -> str | None: ...
17
26
 
18
27
  @dataclass(frozen=True, kw_only=True)
19
28
  class NetatmoSensorEntityDescription(SensorEntityDescription):
20
29
  netatmo_name: str
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, translation_placeholders, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, netatmo_name) -> None: ...
30
+ value_fn: Callable[[StateType], StateType] = ...
31
+ 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, translation_placeholders, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, netatmo_name, value_fn) -> None: ...
22
32
 
23
33
  SENSOR_TYPES: tuple[NetatmoSensorEntityDescription, ...]
24
34
  SENSOR_TYPES_KEYS: Incomplete
35
+
36
+ @dataclass(frozen=True, kw_only=True)
37
+ class NetatmoPublicWeatherSensorEntityDescription(SensorEntityDescription):
38
+ value_fn: Callable[[PublicWeatherArea], dict[str, Any]]
39
+ 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, translation_placeholders, unit_of_measurement, last_reset, native_unit_of_measurement, options, state_class, suggested_display_precision, suggested_unit_of_measurement, value_fn) -> None: ...
40
+
41
+ PUBLIC_WEATHER_STATION_TYPES: tuple[NetatmoPublicWeatherSensorEntityDescription, ...]
25
42
  BATTERY_SENSOR_DESCRIPTION: Incomplete
26
43
 
27
44
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
28
45
 
29
- class NetatmoWeatherSensor(NetatmoBaseEntity, SensorEntity):
30
- _attr_has_entity_name: bool
46
+ class NetatmoWeatherSensor(NetatmoWeatherModuleEntity, SensorEntity):
31
47
  entity_description: NetatmoSensorEntityDescription
32
- _module: Incomplete
33
- _id: Incomplete
34
- _station_id: Incomplete
35
- _device_name: Incomplete
36
- _attr_name: Incomplete
37
- _model: Incomplete
38
- _config_url: Incomplete
48
+ _attr_translation_key: Incomplete
39
49
  _attr_unique_id: Incomplete
40
50
  def __init__(self, netatmo_device: NetatmoDevice, description: NetatmoSensorEntityDescription) -> None: ...
41
- _attr_available: bool
51
+ @property
52
+ def available(self) -> bool: ...
42
53
  _attr_native_value: Incomplete
43
54
  def async_update_callback(self) -> None: ...
44
55
 
45
- class NetatmoClimateBatterySensor(NetatmoBaseEntity, SensorEntity):
56
+ class NetatmoClimateBatterySensor(NetatmoModuleEntity, SensorEntity):
46
57
  entity_description: NetatmoSensorEntityDescription
47
- _module: Incomplete
48
- _id: Incomplete
49
- _attr_name: Incomplete
50
- _room_id: Incomplete
51
- _model: Incomplete
52
- _config_url: Incomplete
58
+ device: pyatmo.modules.NRV
59
+ _attr_configuration_url = CONF_URL_ENERGY
53
60
  _attr_unique_id: Incomplete
61
+ _attr_device_info: Incomplete
54
62
  def __init__(self, netatmo_device: NetatmoDevice) -> None: ...
55
63
  _attr_available: bool
56
64
  _attr_native_value: Incomplete
57
65
  def async_update_callback(self) -> None: ...
58
66
 
59
- class NetatmoSensor(NetatmoBaseEntity, SensorEntity):
67
+ class NetatmoSensor(NetatmoModuleEntity, SensorEntity):
60
68
  entity_description: NetatmoSensorEntityDescription
61
- _module: Incomplete
62
- _id: Incomplete
63
- _attr_name: Incomplete
64
- _room_id: Incomplete
65
- _model: Incomplete
66
- _config_url: Incomplete
69
+ _attr_configuration_url = CONF_URL_ENERGY
67
70
  _attr_unique_id: Incomplete
68
71
  def __init__(self, netatmo_device: NetatmoDevice, description: NetatmoSensorEntityDescription) -> None: ...
69
72
  _attr_available: bool
70
73
  _attr_native_value: Incomplete
71
74
  def async_update_callback(self) -> None: ...
72
75
 
73
- def process_health(health: int) -> str: ...
74
- def process_rf(strength: int) -> str: ...
75
- def process_wifi(strength: int) -> str: ...
76
-
77
- class NetatmoRoomSensor(NetatmoBaseEntity, SensorEntity):
76
+ class NetatmoRoomSensor(NetatmoRoomEntity, SensorEntity):
78
77
  entity_description: NetatmoSensorEntityDescription
79
- _room: Incomplete
80
- _id: Incomplete
81
- _attr_name: Incomplete
82
- _room_id: Incomplete
83
- _config_url: Incomplete
84
- _model: Incomplete
85
78
  _attr_unique_id: Incomplete
86
79
  def __init__(self, netatmo_room: NetatmoRoom, description: NetatmoSensorEntityDescription) -> None: ...
87
80
  _attr_native_value: Incomplete
88
81
  def async_update_callback(self) -> None: ...
89
82
 
90
83
  class NetatmoPublicSensor(NetatmoBaseEntity, SensorEntity):
91
- _attr_has_entity_name: bool
92
- entity_description: NetatmoSensorEntityDescription
84
+ entity_description: NetatmoPublicWeatherSensorEntityDescription
93
85
  _signal_name: Incomplete
94
86
  _station: Incomplete
95
87
  area: Incomplete
96
88
  _mode: Incomplete
97
- _area_name: Incomplete
98
- _id: Incomplete
99
- _device_name: Incomplete
100
- _attr_name: Incomplete
101
89
  _show_on_map: Incomplete
102
- _config_url: Incomplete
103
90
  _attr_unique_id: Incomplete
104
- _model: Incomplete
105
- def __init__(self, data_handler: NetatmoDataHandler, area: NetatmoArea, description: NetatmoSensorEntityDescription) -> None: ...
91
+ _attr_device_info: Incomplete
92
+ def __init__(self, data_handler: NetatmoDataHandler, area: NetatmoArea, description: NetatmoPublicWeatherSensorEntityDescription) -> None: ...
106
93
  async def async_added_to_hass(self) -> None: ...
107
94
  async def async_config_update_callback(self, area: NetatmoArea) -> None: ...
108
95
  _attr_available: bool