esphome 2025.2.2__py3-none-any.whl → 2025.3.0b2__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 (146) hide show
  1. esphome/__main__.py +9 -1
  2. esphome/components/api/api_connection.cpp +426 -70
  3. esphome/components/api/api_connection.h +117 -25
  4. esphome/components/api/api_pb2.cpp +33 -0
  5. esphome/components/api/api_pb2.h +4 -0
  6. esphome/components/api/api_server.cpp +2 -2
  7. esphome/components/api/list_entities.cpp +76 -22
  8. esphome/components/api/list_entities.h +1 -0
  9. esphome/components/api/subscribe_state.h +2 -0
  10. esphome/components/audio/__init__.py +1 -1
  11. esphome/components/audio/audio_decoder.cpp +43 -11
  12. esphome/components/audio/audio_reader.cpp +2 -2
  13. esphome/components/audio/audio_resampler.cpp +4 -2
  14. esphome/components/audio/audio_transfer_buffer.cpp +19 -9
  15. esphome/components/audio/audio_transfer_buffer.h +7 -2
  16. esphome/components/bluetooth_proxy/bluetooth_proxy.h +8 -0
  17. esphome/components/bmp085/bmp085.cpp +1 -1
  18. esphome/components/chsc6x/__init__.py +2 -0
  19. esphome/components/chsc6x/chsc6x_touchscreen.cpp +47 -0
  20. esphome/components/chsc6x/chsc6x_touchscreen.h +34 -0
  21. esphome/components/chsc6x/touchscreen.py +33 -0
  22. esphome/components/climate/__init__.py +0 -1
  23. esphome/components/cst816/binary_sensor/__init__.py +2 -25
  24. esphome/components/cst816/touchscreen/cst816_touchscreen.cpp +3 -14
  25. esphome/components/cst816/touchscreen/cst816_touchscreen.h +0 -4
  26. esphome/components/esp32_ble_beacon/__init__.py +3 -1
  27. esphome/components/esp8266/gpio.py +1 -2
  28. esphome/components/font/__init__.py +185 -185
  29. esphome/components/font/font.cpp +4 -4
  30. esphome/components/font/font.h +1 -0
  31. esphome/components/haier/climate.py +11 -10
  32. esphome/components/hbridge/switch/hbridge_switch.cpp +2 -2
  33. esphome/components/heatpumpir/climate.py +2 -1
  34. esphome/components/heatpumpir/heatpumpir.cpp +1 -0
  35. esphome/components/heatpumpir/heatpumpir.h +1 -0
  36. esphome/components/i2c/__init__.py +6 -6
  37. esphome/components/i2c/i2c_bus_esp_idf.cpp +6 -2
  38. esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +1 -1
  39. esphome/components/ili9xxx/display.py +1 -0
  40. esphome/components/ili9xxx/ili9xxx_display.h +5 -0
  41. esphome/components/ili9xxx/ili9xxx_init.h +59 -0
  42. esphome/components/ld2450/__init__.py +51 -0
  43. esphome/components/ld2450/binary_sensor.py +47 -0
  44. esphome/components/ld2450/button/__init__.py +45 -0
  45. esphome/components/ld2450/button/reset_button.cpp +9 -0
  46. esphome/components/ld2450/button/reset_button.h +18 -0
  47. esphome/components/ld2450/button/restart_button.cpp +9 -0
  48. esphome/components/ld2450/button/restart_button.h +18 -0
  49. esphome/components/ld2450/ld2450.cpp +876 -0
  50. esphome/components/ld2450/ld2450.h +234 -0
  51. esphome/components/ld2450/number/__init__.py +121 -0
  52. esphome/components/ld2450/number/presence_timeout_number.cpp +12 -0
  53. esphome/components/ld2450/number/presence_timeout_number.h +18 -0
  54. esphome/components/ld2450/number/zone_coordinate_number.cpp +14 -0
  55. esphome/components/ld2450/number/zone_coordinate_number.h +19 -0
  56. esphome/components/ld2450/select/__init__.py +56 -0
  57. esphome/components/ld2450/select/baud_rate_select.cpp +12 -0
  58. esphome/components/ld2450/select/baud_rate_select.h +18 -0
  59. esphome/components/ld2450/select/zone_type_select.cpp +12 -0
  60. esphome/components/ld2450/select/zone_type_select.h +18 -0
  61. esphome/components/ld2450/sensor.py +156 -0
  62. esphome/components/ld2450/switch/__init__.py +45 -0
  63. esphome/components/ld2450/switch/bluetooth_switch.cpp +12 -0
  64. esphome/components/ld2450/switch/bluetooth_switch.h +18 -0
  65. esphome/components/ld2450/switch/multi_target_switch.cpp +12 -0
  66. esphome/components/ld2450/switch/multi_target_switch.h +18 -0
  67. esphome/components/ld2450/text_sensor.py +62 -0
  68. esphome/components/lvgl/defines.py +0 -2
  69. esphome/components/lvgl/font.cpp +1 -1
  70. esphome/components/lvgl/lvgl_esphome.cpp +27 -19
  71. esphome/components/lvgl/widgets/img.py +1 -3
  72. esphome/components/mcp2515/mcp2515.cpp +1 -0
  73. esphome/components/mdns/__init__.py +1 -1
  74. esphome/components/mixer/speaker/mixer_speaker.cpp +6 -1
  75. esphome/components/mixer/speaker/mixer_speaker.h +2 -0
  76. esphome/components/mlx90393/sensor.py +53 -33
  77. esphome/components/mlx90393/sensor_mlx90393.cpp +4 -0
  78. esphome/components/mlx90393/sensor_mlx90393.h +8 -3
  79. esphome/components/mqtt/__init__.py +2 -2
  80. esphome/components/msa3xx/__init__.py +189 -0
  81. esphome/components/msa3xx/binary_sensor.py +40 -0
  82. esphome/components/msa3xx/msa3xx.cpp +417 -0
  83. esphome/components/msa3xx/msa3xx.h +311 -0
  84. esphome/components/msa3xx/sensor.py +42 -0
  85. esphome/components/msa3xx/text_sensor.py +38 -0
  86. esphome/components/nfc/binary_sensor/__init__.py +4 -4
  87. esphome/components/opentherm/binary_sensor/__init__.py +4 -4
  88. esphome/components/opentherm/generate.py +6 -6
  89. esphome/components/opentherm/sensor/__init__.py +5 -6
  90. esphome/components/packages/__init__.py +35 -11
  91. esphome/components/pn532/binary_sensor.py +4 -4
  92. esphome/components/rc522/binary_sensor.py +4 -4
  93. esphome/components/resampler/speaker/resampler_speaker.h +2 -0
  94. esphome/components/socket/bsd_sockets_impl.cpp +1 -0
  95. esphome/components/socket/lwip_sockets_impl.cpp +1 -0
  96. esphome/components/socket/socket.h +3 -1
  97. esphome/components/speaker/speaker.h +2 -2
  98. esphome/components/ssd1306_base/__init__.py +7 -7
  99. esphome/components/thermostat/climate.py +1 -1
  100. esphome/components/tmp1075/tmp1075.cpp +7 -11
  101. esphome/components/tmp1075/tmp1075.h +1 -2
  102. esphome/components/tormatic/__init__.py +1 -0
  103. esphome/components/tormatic/cover.py +47 -0
  104. esphome/components/tormatic/tormatic_cover.cpp +355 -0
  105. esphome/components/tormatic/tormatic_cover.h +60 -0
  106. esphome/components/tormatic/tormatic_protocol.h +211 -0
  107. esphome/components/touchscreen/binary_sensor/__init__.py +3 -0
  108. esphome/components/touchscreen/binary_sensor/touchscreen_binary_sensor.cpp +7 -1
  109. esphome/components/touchscreen/binary_sensor/touchscreen_binary_sensor.h +3 -1
  110. esphome/components/touchscreen/touchscreen.cpp +3 -4
  111. esphome/components/udp/udp_component.h +4 -1
  112. esphome/components/web_server/list_entities.cpp +70 -66
  113. esphome/components/web_server/list_entities.h +43 -22
  114. esphome/components/web_server/web_server.cpp +345 -68
  115. esphome/components/web_server/web_server.h +138 -6
  116. esphome/components/web_server_base/__init__.py +1 -1
  117. esphome/components/web_server_idf/__init__.py +2 -0
  118. esphome/components/web_server_idf/web_server_idf.cpp +177 -30
  119. esphome/components/web_server_idf/web_server_idf.h +53 -4
  120. esphome/config_validation.py +23 -125
  121. esphome/const.py +5 -1
  122. esphome/core/config.py +12 -4
  123. esphome/core/defines.h +1 -1
  124. esphome/core/helpers.h +24 -3
  125. esphome/core/time.cpp +1 -0
  126. esphome/cpp_generator.py +3 -3
  127. esphome/dashboard/core.py +30 -21
  128. esphome/dashboard/dns.py +7 -1
  129. esphome/dashboard/entries.py +83 -16
  130. esphome/dashboard/settings.py +0 -4
  131. esphome/dashboard/status/mdns.py +43 -14
  132. esphome/dashboard/status/mqtt.py +22 -9
  133. esphome/dashboard/status/ping.py +54 -10
  134. esphome/dashboard/web_server.py +56 -24
  135. esphome/storage_json.py +4 -0
  136. esphome/wizard.py +13 -17
  137. esphome/writer.py +1 -3
  138. esphome/yaml_util.py +36 -33
  139. esphome/zeroconf.py +9 -21
  140. {esphome-2025.2.2.dist-info → esphome-2025.3.0b2.dist-info}/METADATA +7 -7
  141. {esphome-2025.2.2.dist-info → esphome-2025.3.0b2.dist-info}/RECORD +145 -105
  142. esphome/components/cst816/binary_sensor/cst816_button.h +0 -27
  143. {esphome-2025.2.2.dist-info → esphome-2025.3.0b2.dist-info}/LICENSE +0 -0
  144. {esphome-2025.2.2.dist-info → esphome-2025.3.0b2.dist-info}/WHEEL +0 -0
  145. {esphome-2025.2.2.dist-info → esphome-2025.3.0b2.dist-info}/entry_points.txt +0 -0
  146. {esphome-2025.2.2.dist-info → esphome-2025.3.0b2.dist-info}/top_level.txt +0 -0
esphome/__main__.py CHANGED
@@ -2,6 +2,7 @@
2
2
  import argparse
3
3
  from datetime import datetime
4
4
  import functools
5
+ import importlib
5
6
  import logging
6
7
  import os
7
8
  import re
@@ -66,7 +67,7 @@ def choose_prompt(options, purpose: str = None):
66
67
  return options[0][1]
67
68
 
68
69
  safe_print(
69
- f'Found multiple options{f" for {purpose}" if purpose else ""}, please choose one:'
70
+ f"Found multiple options{f' for {purpose}' if purpose else ''}, please choose one:"
70
71
  )
71
72
  for i, (desc, _) in enumerate(options):
72
73
  safe_print(f" [{i + 1}] {desc}")
@@ -336,6 +337,13 @@ def check_permissions(port):
336
337
 
337
338
 
338
339
  def upload_program(config, args, host):
340
+ try:
341
+ module = importlib.import_module("esphome.components." + CORE.target_platform)
342
+ if getattr(module, "upload_program")(config, args, host):
343
+ return 0
344
+ except AttributeError:
345
+ pass
346
+
339
347
  if get_port_type(host) == "SERIAL":
340
348
  check_permissions(host)
341
349
  if CORE.target_platform in (PLATFORM_ESP32, PLATFORM_ESP8266):