esphome 2025.6.3__py3-none-any.whl → 2025.7.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 (646) hide show
  1. esphome/__main__.py +1 -3
  2. esphome/codegen.py +2 -0
  3. esphome/components/ac_dimmer/ac_dimmer.cpp +6 -6
  4. esphome/components/adc/__init__.py +25 -1
  5. esphome/components/adc/adc_sensor.h +11 -11
  6. esphome/components/adc/adc_sensor_common.cpp +1 -1
  7. esphome/components/adc/adc_sensor_esp32.cpp +16 -8
  8. esphome/components/ade7880/ade7880.h +0 -2
  9. esphome/components/ads1115/ads1115.h +0 -1
  10. esphome/components/ads1118/ads1118.h +0 -1
  11. esphome/components/ags10/ags10.h +0 -2
  12. esphome/components/aic3204/aic3204.h +0 -1
  13. esphome/components/alarm_control_panel/__init__.py +5 -2
  14. esphome/components/alpha3/alpha3.h +0 -1
  15. esphome/components/am43/cover/am43_cover.h +0 -1
  16. esphome/components/am43/sensor/am43_sensor.h +0 -1
  17. esphome/components/analog_threshold/analog_threshold_binary_sensor.h +0 -2
  18. esphome/components/anova/anova.cpp +5 -1
  19. esphome/components/anova/anova.h +0 -1
  20. esphome/components/apds9960/apds9960.cpp +1 -1
  21. esphome/components/api/__init__.py +57 -21
  22. esphome/components/api/api_connection.cpp +344 -539
  23. esphome/components/api/api_connection.h +224 -141
  24. esphome/components/api/api_frame_helper.cpp +91 -127
  25. esphome/components/api/api_frame_helper.h +64 -54
  26. esphome/components/api/api_pb2.cpp +1837 -9044
  27. esphome/components/api/api_pb2.h +532 -685
  28. esphome/components/api/api_pb2_dump.cpp +4432 -0
  29. esphome/components/api/api_pb2_service.cpp +184 -425
  30. esphome/components/api/api_pb2_service.h +13 -6
  31. esphome/components/api/api_server.cpp +131 -167
  32. esphome/components/api/api_server.h +38 -10
  33. esphome/components/api/client.py +8 -2
  34. esphome/components/api/custom_api_device.h +8 -0
  35. esphome/components/api/list_entities.cpp +37 -104
  36. esphome/components/api/list_entities.h +33 -23
  37. esphome/components/api/proto.h +532 -26
  38. esphome/components/api/subscribe_state.cpp +23 -29
  39. esphome/components/api/subscribe_state.h +26 -19
  40. esphome/components/api/user_services.h +2 -0
  41. esphome/components/as3935_spi/as3935_spi.h +0 -2
  42. esphome/components/as5600/as5600.h +0 -1
  43. esphome/components/async_tcp/__init__.py +14 -5
  44. esphome/components/atc_mithermometer/atc_mithermometer.h +0 -1
  45. esphome/components/atm90e32/atm90e32.cpp +2 -1
  46. esphome/components/audio/audio_decoder.cpp +1 -1
  47. esphome/components/audio/audio_transfer_buffer.cpp +2 -2
  48. esphome/components/b_parasite/b_parasite.h +0 -1
  49. esphome/components/bedjet/bedjet_hub.cpp +5 -1
  50. esphome/components/bedjet/climate/bedjet_climate.cpp +5 -1
  51. esphome/components/beken_spi_led_strip/led_strip.cpp +4 -2
  52. esphome/components/bh1750/bh1750.cpp +5 -5
  53. esphome/components/binary_sensor/__init__.py +82 -5
  54. esphome/components/binary_sensor/automation.h +19 -1
  55. esphome/components/binary_sensor/binary_sensor.cpp +12 -30
  56. esphome/components/binary_sensor/binary_sensor.h +11 -25
  57. esphome/components/binary_sensor/filter.cpp +29 -24
  58. esphome/components/binary_sensor/filter.h +20 -10
  59. esphome/components/ble_client/output/ble_binary_output.h +0 -1
  60. esphome/components/ble_client/sensor/ble_rssi_sensor.cpp +5 -1
  61. esphome/components/ble_client/sensor/ble_rssi_sensor.h +0 -1
  62. esphome/components/ble_client/sensor/ble_sensor.cpp +5 -1
  63. esphome/components/ble_client/sensor/ble_sensor.h +0 -1
  64. esphome/components/ble_client/switch/ble_switch.h +0 -1
  65. esphome/components/ble_client/text_sensor/ble_text_sensor.cpp +5 -1
  66. esphome/components/ble_client/text_sensor/ble_text_sensor.h +0 -1
  67. esphome/components/ble_presence/ble_presence_device.h +0 -1
  68. esphome/components/ble_rssi/ble_rssi_sensor.h +0 -1
  69. esphome/components/ble_scanner/ble_scanner.h +0 -1
  70. esphome/components/bluetooth_proxy/bluetooth_connection.h +9 -2
  71. esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +16 -6
  72. esphome/components/bluetooth_proxy/bluetooth_proxy.h +8 -2
  73. esphome/components/bme680/sensor.py +1 -1
  74. esphome/components/bmp581/bmp581.h +0 -2
  75. esphome/components/button/__init__.py +5 -2
  76. esphome/components/camera/__init__.py +1 -0
  77. esphome/components/camera/camera.cpp +22 -0
  78. esphome/components/camera/camera.h +80 -0
  79. esphome/components/canbus/__init__.py +1 -0
  80. esphome/components/cap1188/cap1188.h +0 -1
  81. esphome/components/captive_portal/__init__.py +12 -2
  82. esphome/components/captive_portal/captive_portal.cpp +12 -2
  83. esphome/components/captive_portal/captive_portal.h +5 -2
  84. esphome/components/ccs811/ccs811.h +0 -2
  85. esphome/components/climate/__init__.py +5 -2
  86. esphome/components/cm1106/sensor.py +2 -2
  87. esphome/components/const/__init__.py +2 -0
  88. esphome/components/copy/binary_sensor/copy_binary_sensor.h +0 -1
  89. esphome/components/copy/button/copy_button.h +0 -1
  90. esphome/components/copy/cover/copy_cover.h +0 -1
  91. esphome/components/copy/fan/copy_fan.h +0 -1
  92. esphome/components/copy/lock/copy_lock.h +0 -1
  93. esphome/components/copy/number/copy_number.h +0 -1
  94. esphome/components/copy/select/copy_select.h +0 -1
  95. esphome/components/copy/sensor/copy_sensor.h +0 -1
  96. esphome/components/copy/switch/copy_switch.h +0 -1
  97. esphome/components/copy/text/copy_text.h +0 -1
  98. esphome/components/copy/text_sensor/copy_text_sensor.h +0 -1
  99. esphome/components/cover/__init__.py +5 -2
  100. esphome/components/cs5460a/cs5460a.h +0 -1
  101. esphome/components/datetime/__init__.py +4 -2
  102. esphome/components/debug/__init__.py +20 -0
  103. esphome/components/debug/debug_esp32.cpp +2 -0
  104. esphome/components/deep_sleep/__init__.py +43 -9
  105. esphome/components/demo/__init__.py +2 -2
  106. esphome/components/display/display.cpp +4 -3
  107. esphome/components/display/display.h +0 -2
  108. esphome/components/display/display_buffer.cpp +1 -1
  109. esphome/components/ds2484/__init__.py +1 -0
  110. esphome/components/ds2484/ds2484.cpp +209 -0
  111. esphome/components/ds2484/ds2484.h +43 -0
  112. esphome/components/ds2484/one_wire.py +37 -0
  113. esphome/components/duty_time/duty_time_sensor.h +0 -1
  114. esphome/components/ens160_base/ens160_base.h +0 -1
  115. esphome/components/es7210/es7210.h +0 -1
  116. esphome/components/es7243e/es7243e.h +0 -1
  117. esphome/components/es8156/es8156.h +0 -1
  118. esphome/components/es8311/es8311.h +0 -1
  119. esphome/components/es8388/es8388.h +0 -1
  120. esphome/components/esp32/__init__.py +103 -135
  121. esphome/components/esp32/core.cpp +0 -4
  122. esphome/components/esp32/gpio.h +1 -1
  123. esphome/components/esp32/helpers.cpp +69 -0
  124. esphome/components/esp32_ble/ble.cpp +5 -6
  125. esphome/components/esp32_ble/ble.h +29 -14
  126. esphome/components/esp32_ble/ble_event.h +6 -6
  127. esphome/components/esp32_ble_client/ble_client_base.cpp +21 -6
  128. esphome/components/esp32_ble_client/ble_client_base.h +24 -9
  129. esphome/components/esp32_ble_tracker/__init__.py +2 -8
  130. esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +5 -5
  131. esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +11 -7
  132. esphome/components/esp32_camera/__init__.py +112 -98
  133. esphome/components/esp32_camera/esp32_camera.cpp +41 -31
  134. esphome/components/esp32_camera/esp32_camera.h +35 -30
  135. esphome/components/esp32_camera_web_server/__init__.py +2 -1
  136. esphome/components/esp32_camera_web_server/camera_web_server.cpp +8 -8
  137. esphome/components/esp32_camera_web_server/camera_web_server.h +3 -3
  138. esphome/components/esp32_hall/sensor.py +2 -21
  139. esphome/components/esp32_hosted/__init__.py +101 -0
  140. esphome/components/esp32_hosted/esp32_hosted.py.script +12 -0
  141. esphome/components/esp32_improv/esp32_improv_component.cpp +3 -0
  142. esphome/components/esp32_rmt/__init__.py +0 -58
  143. esphome/components/esp32_rmt_led_strip/led_strip.cpp +77 -63
  144. esphome/components/esp32_rmt_led_strip/led_strip.h +11 -17
  145. esphome/components/esp32_rmt_led_strip/light.py +14 -76
  146. esphome/components/esp32_touch/esp32_touch.h +174 -28
  147. esphome/components/esp32_touch/esp32_touch_common.cpp +162 -0
  148. esphome/components/esp32_touch/esp32_touch_v1.cpp +240 -0
  149. esphome/components/esp32_touch/esp32_touch_v2.cpp +397 -0
  150. esphome/components/esp8266/__init__.py +2 -0
  151. esphome/components/esp8266/gpio.cpp +10 -10
  152. esphome/components/esp8266/helpers.cpp +31 -0
  153. esphome/components/esp_ldo/__init__.py +10 -8
  154. esphome/components/esp_ldo/esp_ldo.h +3 -0
  155. esphome/components/esphome/ota/__init__.py +1 -0
  156. esphome/components/esphome/ota/ota_esphome.cpp +24 -19
  157. esphome/components/ethernet/__init__.py +42 -23
  158. esphome/components/ethernet/esp_eth_phy_jl1101.c +0 -16
  159. esphome/components/ethernet/ethernet_component.cpp +69 -29
  160. esphome/components/ethernet/ethernet_component.h +18 -10
  161. esphome/components/event/__init__.py +5 -2
  162. esphome/components/ezo/ezo.h +0 -1
  163. esphome/components/ezo_pmp/ezo_pmp.h +0 -1
  164. esphome/components/fan/__init__.py +5 -2
  165. esphome/components/fan/fan.cpp +4 -0
  166. esphome/components/feedback/feedback_cover.h +0 -1
  167. esphome/components/font/__init__.py +92 -82
  168. esphome/components/font/font.cpp +9 -2
  169. esphome/components/font/font.h +20 -5
  170. esphome/components/fs3000/fs3000.h +0 -1
  171. esphome/components/gcja5/gcja5.h +0 -1
  172. esphome/components/gl_r01_i2c/__init__.py +0 -0
  173. esphome/components/gl_r01_i2c/gl_r01_i2c.cpp +68 -0
  174. esphome/components/gl_r01_i2c/gl_r01_i2c.h +22 -0
  175. esphome/components/gl_r01_i2c/sensor.py +36 -0
  176. esphome/components/gp8403/gp8403.h +0 -1
  177. esphome/components/gpio/binary_sensor/__init__.py +39 -1
  178. esphome/components/gpio/binary_sensor/gpio_binary_sensor.cpp +77 -3
  179. esphome/components/gpio/binary_sensor/gpio_binary_sensor.h +40 -0
  180. esphome/components/grove_gas_mc_v2/grove_gas_mc_v2.h +0 -2
  181. esphome/components/he60r/he60r.h +0 -1
  182. esphome/components/heatpumpir/climate.py +2 -1
  183. esphome/components/heatpumpir/heatpumpir.cpp +1 -0
  184. esphome/components/heatpumpir/heatpumpir.h +1 -0
  185. esphome/components/honeywellabp2_i2c/honeywellabp2.h +0 -1
  186. esphome/components/host/__init__.py +3 -1
  187. esphome/components/host/helpers.cpp +57 -0
  188. esphome/components/http_request/__init__.py +19 -1
  189. esphome/components/http_request/http_request.h +1 -1
  190. esphome/components/http_request/http_request_arduino.h +1 -0
  191. esphome/components/http_request/ota/ota_http_request.cpp +1 -1
  192. esphome/components/http_request/update/http_request_update.cpp +35 -16
  193. esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +3 -9
  194. esphome/components/hydreon_rgxx/sensor.py +1 -1
  195. esphome/components/i2c/__init__.py +23 -11
  196. esphome/components/i2c/i2c_bus.h +8 -1
  197. esphome/components/i2c/i2c_bus_arduino.cpp +4 -3
  198. esphome/components/i2c/i2c_bus_arduino.h +6 -3
  199. esphome/components/i2c/i2c_bus_esp_idf.h +5 -3
  200. esphome/components/i2c_device/i2c_device.h +0 -1
  201. esphome/components/i2s_audio/__init__.py +2 -10
  202. esphome/components/i2s_audio/i2s_audio.cpp +1 -5
  203. esphome/components/i2s_audio/media_player/__init__.py +2 -2
  204. esphome/components/i2s_audio/speaker/__init__.py +1 -1
  205. esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +2 -2
  206. esphome/components/iaqcore/iaqcore.h +0 -2
  207. esphome/components/image/__init__.py +123 -24
  208. esphome/components/improv_serial/improv_serial_component.cpp +0 -4
  209. esphome/components/ina219/ina219.cpp +7 -0
  210. esphome/components/ina219/ina219.h +1 -0
  211. esphome/components/ina260/ina260.h +0 -2
  212. esphome/components/inkbird_ibsth1_mini/inkbird_ibsth1_mini.h +0 -1
  213. esphome/components/inkplate6/display.py +15 -0
  214. esphome/components/inkplate6/inkplate.cpp +2 -2
  215. esphome/components/integration/integration_sensor.h +0 -1
  216. esphome/components/internal_temperature/internal_temperature.cpp +8 -27
  217. esphome/components/internal_temperature/sensor.py +0 -26
  218. esphome/components/interval/interval.h +0 -2
  219. esphome/components/json/__init__.py +1 -1
  220. esphome/components/json/json_util.cpp +56 -63
  221. esphome/components/ld2410/button/__init__.py +3 -3
  222. esphome/components/ld2410/button/factory_reset_button.cpp +9 -0
  223. esphome/components/ld2410/button/{reset_button.h → factory_reset_button.h} +2 -2
  224. esphome/components/ld2410/ld2410.cpp +421 -268
  225. esphome/components/ld2410/ld2410.h +44 -146
  226. esphome/components/ld2410/number/__init__.py +2 -2
  227. esphome/components/ld2410/sensor.py +1 -1
  228. esphome/components/ld2410/switch/__init__.py +1 -1
  229. esphome/components/ld2420/binary_sensor/ld2420_binary_sensor.cpp +2 -2
  230. esphome/components/ld2420/button/reconfig_buttons.cpp +1 -1
  231. esphome/components/ld2420/ld2420.cpp +252 -147
  232. esphome/components/ld2420/ld2420.h +52 -126
  233. esphome/components/ld2420/number/__init__.py +2 -2
  234. esphome/components/ld2420/number/gate_config_number.cpp +1 -1
  235. esphome/components/ld2420/select/operating_mode_select.cpp +1 -1
  236. esphome/components/ld2420/sensor/__init__.py +6 -2
  237. esphome/components/ld2420/sensor/ld2420_sensor.cpp +2 -2
  238. esphome/components/ld2420/sensor/ld2420_sensor.h +1 -1
  239. esphome/components/ld2420/text_sensor/text_sensor.cpp +2 -2
  240. esphome/components/ld2450/button/__init__.py +3 -3
  241. esphome/components/ld2450/button/factory_reset_button.cpp +9 -0
  242. esphome/components/ld2450/button/{reset_button.h → factory_reset_button.h} +2 -2
  243. esphome/components/ld2450/ld2450.cpp +384 -232
  244. esphome/components/ld2450/ld2450.h +60 -69
  245. esphome/components/ld2450/switch/__init__.py +1 -1
  246. esphome/components/ledc/ledc_output.cpp +1 -63
  247. esphome/components/libretiny/__init__.py +5 -3
  248. esphome/components/libretiny/const.py +5 -0
  249. esphome/components/libretiny/generate_components.py +1 -0
  250. esphome/components/libretiny/helpers.cpp +35 -0
  251. esphome/components/libretiny/lt_component.cpp +5 -3
  252. esphome/components/light/__init__.py +4 -2
  253. esphome/components/light/addressable_light.h +3 -3
  254. esphome/components/light/light_call.cpp +180 -243
  255. esphome/components/light/light_call.h +72 -20
  256. esphome/components/light/light_color_values.h +14 -14
  257. esphome/components/light/light_json_schema.cpp +17 -16
  258. esphome/components/light/light_state.h +15 -13
  259. esphome/components/light/transformers.h +2 -2
  260. esphome/components/ln882x/__init__.py +52 -0
  261. esphome/components/ln882x/boards.py +285 -0
  262. esphome/components/lock/__init__.py +5 -2
  263. esphome/components/logger/__init__.py +40 -3
  264. esphome/components/logger/logger.cpp +47 -12
  265. esphome/components/logger/logger.h +80 -49
  266. esphome/components/logger/logger_esp32.cpp +3 -3
  267. esphome/components/lps22/__init__.py +0 -0
  268. esphome/components/lps22/lps22.cpp +75 -0
  269. esphome/components/lps22/lps22.h +27 -0
  270. esphome/components/lps22/sensor.py +58 -0
  271. esphome/components/ltr390/ltr390.h +0 -1
  272. esphome/components/ltr501/ltr501.h +0 -1
  273. esphome/components/ltr_als_ps/ltr_als_ps.h +0 -1
  274. esphome/components/lvgl/__init__.py +1 -1
  275. esphome/components/lvgl/schemas.py +66 -6
  276. esphome/components/lvgl/styles.py +24 -16
  277. esphome/components/lvgl/widgets/__init__.py +12 -2
  278. esphome/components/lvgl/widgets/lv_bar.py +40 -19
  279. esphome/components/lvgl/widgets/meter.py +20 -13
  280. esphome/components/m5stack_8angle/light/m5stack_8angle_light.cpp +1 -1
  281. esphome/components/max9611/max9611.h +0 -1
  282. esphome/components/mcp23016/__init__.py +1 -1
  283. esphome/components/mcp23xxx_base/__init__.py +1 -1
  284. esphome/components/mcp4461/__init__.py +1 -1
  285. esphome/components/mcp4461/output/__init__.py +3 -2
  286. esphome/components/mcp9600/mcp9600.h +0 -2
  287. esphome/components/md5/md5.cpp +3 -3
  288. esphome/components/md5/md5.h +1 -6
  289. esphome/components/mdns/__init__.py +22 -11
  290. esphome/components/media_player/__init__.py +4 -3
  291. esphome/components/micro_wake_word/__init__.py +1 -5
  292. esphome/components/micro_wake_word/streaming_model.cpp +2 -2
  293. esphome/components/microphone/microphone.cpp +7 -9
  294. esphome/components/microphone/microphone.h +0 -2
  295. esphome/components/mipi_spi/display.py +1 -0
  296. esphome/components/mmc5603/mmc5603.cpp +1 -1
  297. esphome/components/modbus/modbus.cpp +33 -15
  298. esphome/components/modbus/modbus.h +9 -0
  299. esphome/components/modbus_controller/__init__.py +42 -10
  300. esphome/components/modbus_controller/modbus_controller.cpp +92 -11
  301. esphome/components/modbus_controller/modbus_controller.h +61 -7
  302. esphome/components/mopeka_pro_check/mopeka_pro_check.h +0 -1
  303. esphome/components/mopeka_std_check/mopeka_std_check.h +0 -1
  304. esphome/components/mpl3115a2/mpl3115a2.h +0 -2
  305. esphome/components/mqtt/__init__.py +16 -0
  306. esphome/components/mqtt/mqtt_alarm_control_panel.cpp +2 -1
  307. esphome/components/mqtt/mqtt_backend.h +2 -1
  308. esphome/components/mqtt/mqtt_backend_esp32.cpp +132 -47
  309. esphome/components/mqtt/mqtt_backend_esp32.h +106 -4
  310. esphome/components/mqtt/mqtt_binary_sensor.cpp +1 -0
  311. esphome/components/mqtt/mqtt_button.cpp +4 -1
  312. esphome/components/mqtt/mqtt_client.cpp +17 -9
  313. esphome/components/mqtt/mqtt_client.h +8 -3
  314. esphome/components/mqtt/mqtt_climate.cpp +6 -4
  315. esphome/components/mqtt/mqtt_component.cpp +3 -1
  316. esphome/components/mqtt/mqtt_cover.cpp +1 -0
  317. esphome/components/mqtt/mqtt_date.cpp +4 -3
  318. esphome/components/mqtt/mqtt_datetime.cpp +7 -6
  319. esphome/components/mqtt/mqtt_event.cpp +6 -3
  320. esphome/components/mqtt/mqtt_fan.cpp +1 -0
  321. esphome/components/mqtt/mqtt_light.cpp +8 -4
  322. esphome/components/mqtt/mqtt_lock.cpp +3 -1
  323. esphome/components/mqtt/mqtt_number.cpp +1 -0
  324. esphome/components/mqtt/mqtt_select.cpp +2 -1
  325. esphome/components/mqtt/mqtt_sensor.cpp +3 -1
  326. esphome/components/mqtt/mqtt_switch.cpp +3 -1
  327. esphome/components/mqtt/mqtt_text.cpp +1 -0
  328. esphome/components/mqtt/mqtt_text_sensor.cpp +3 -1
  329. esphome/components/mqtt/mqtt_time.cpp +4 -3
  330. esphome/components/mqtt/mqtt_update.cpp +1 -0
  331. esphome/components/mqtt/mqtt_valve.cpp +3 -1
  332. esphome/components/ms8607/ms8607.cpp +1 -1
  333. esphome/components/ms8607/ms8607.h +0 -1
  334. esphome/components/neopixelbus/light.py +4 -1
  335. esphome/components/neopixelbus/neopixelbus_light.h +1 -1
  336. esphome/components/network/__init__.py +4 -1
  337. esphome/components/network/ip_address.h +1 -0
  338. esphome/components/nextion/__init__.py +16 -0
  339. esphome/components/nextion/base_component.py +1 -0
  340. esphome/components/nextion/binary_sensor/nextion_binarysensor.cpp +1 -1
  341. esphome/components/nextion/display.py +14 -4
  342. esphome/components/nextion/nextion.cpp +166 -101
  343. esphome/components/nextion/nextion.h +84 -53
  344. esphome/components/nextion/nextion_commands.cpp +11 -10
  345. esphome/components/nextion/nextion_component.cpp +28 -28
  346. esphome/components/nextion/nextion_component.h +53 -18
  347. esphome/components/nextion/nextion_component_base.h +3 -0
  348. esphome/components/nextion/nextion_upload.cpp +36 -0
  349. esphome/components/nextion/nextion_upload_arduino.cpp +10 -35
  350. esphome/components/nextion/nextion_upload_idf.cpp +9 -33
  351. esphome/components/nextion/sensor/nextion_sensor.cpp +1 -1
  352. esphome/components/nextion/switch/nextion_switch.cpp +1 -1
  353. esphome/components/nextion/text_sensor/nextion_textsensor.cpp +1 -1
  354. esphome/components/nfc/nfc.cpp +3 -22
  355. esphome/components/nfc/nfc.h +3 -3
  356. esphome/components/number/__init__.py +5 -2
  357. esphome/components/online_image/__init__.py +9 -1
  358. esphome/components/online_image/online_image.cpp +17 -7
  359. esphome/components/online_image/online_image.h +10 -2
  360. esphome/components/opentherm/opentherm.cpp +7 -12
  361. esphome/components/opentherm/output/output.cpp +1 -1
  362. esphome/components/openthread/__init__.py +47 -40
  363. esphome/components/openthread/const.py +1 -0
  364. esphome/components/openthread/openthread_esp.cpp +27 -5
  365. esphome/components/opt3001/__init__.py +0 -0
  366. esphome/components/opt3001/opt3001.cpp +122 -0
  367. esphome/components/opt3001/opt3001.h +27 -0
  368. esphome/components/opt3001/sensor.py +35 -0
  369. esphome/components/ota/__init__.py +17 -0
  370. esphome/components/ota/ota_backend.h +27 -1
  371. esphome/components/ota/ota_backend_arduino_esp32.cpp +12 -2
  372. esphome/components/ota/ota_backend_arduino_esp32.h +3 -0
  373. esphome/components/ota/ota_backend_arduino_esp8266.cpp +18 -4
  374. esphome/components/ota/ota_backend_arduino_esp8266.h +3 -0
  375. esphome/components/ota/ota_backend_arduino_libretiny.cpp +12 -2
  376. esphome/components/ota/ota_backend_arduino_libretiny.h +3 -0
  377. esphome/components/ota/ota_backend_arduino_rp2040.cpp +9 -2
  378. esphome/components/ota/ota_backend_arduino_rp2040.h +3 -0
  379. esphome/components/ota/ota_backend_esp_idf.cpp +10 -16
  380. esphome/components/ota/ota_backend_esp_idf.h +1 -0
  381. esphome/components/packages/__init__.py +5 -2
  382. esphome/components/packet_transport/binary_sensor.py +61 -4
  383. esphome/components/packet_transport/packet_transport.cpp +34 -1
  384. esphome/components/packet_transport/packet_transport.h +11 -5
  385. esphome/components/pcf8574/__init__.py +1 -1
  386. esphome/components/pi4ioe5v6408/__init__.py +84 -0
  387. esphome/components/pi4ioe5v6408/pi4ioe5v6408.cpp +171 -0
  388. esphome/components/pi4ioe5v6408/pi4ioe5v6408.h +70 -0
  389. esphome/components/pmsa003i/pmsa003i.h +0 -1
  390. esphome/components/pmsx003/pmsx003.h +0 -1
  391. esphome/components/pn7150/pn7150.cpp +7 -7
  392. esphome/components/pn7150/pn7150.h +0 -1
  393. esphome/components/pn7160/pn7160.cpp +7 -7
  394. esphome/components/pn7160/pn7160.h +0 -1
  395. esphome/components/preferences/syncer.h +2 -0
  396. esphome/components/prometheus/prometheus_handler.h +1 -1
  397. esphome/components/psram/psram.cpp +0 -20
  398. esphome/components/pulse_counter/pulse_counter_sensor.h +0 -1
  399. esphome/components/pulse_meter/pulse_meter_sensor.cpp +8 -4
  400. esphome/components/pulse_width/pulse_width.h +0 -1
  401. esphome/components/pvvx_mithermometer/display/pvvx_display.cpp +0 -4
  402. esphome/components/pvvx_mithermometer/display/pvvx_display.h +0 -2
  403. esphome/components/pvvx_mithermometer/pvvx_mithermometer.h +0 -1
  404. esphome/components/qr_code/__init__.py +13 -10
  405. esphome/components/qwiic_pir/qwiic_pir.h +0 -1
  406. esphome/components/radon_eye_ble/radon_eye_listener.cpp +1 -1
  407. esphome/components/rc522/rc522.h +0 -1
  408. esphome/components/rdm6300/rdm6300.h +0 -2
  409. esphome/components/remote_base/__init__.py +7 -5
  410. esphome/components/remote_base/remote_base.cpp +24 -21
  411. esphome/components/remote_base/remote_base.h +3 -26
  412. esphome/components/remote_receiver/__init__.py +40 -46
  413. esphome/components/remote_receiver/remote_receiver.h +4 -18
  414. esphome/components/remote_receiver/remote_receiver_esp32.cpp +0 -87
  415. esphome/components/remote_receiver/remote_receiver_esp8266.cpp +1 -1
  416. esphome/components/remote_transmitter/__init__.py +42 -43
  417. esphome/components/remote_transmitter/remote_transmitter.h +2 -14
  418. esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +0 -77
  419. esphome/components/resistance/resistance_sensor.h +0 -1
  420. esphome/components/rp2040/__init__.py +2 -0
  421. esphome/components/rp2040/helpers.cpp +55 -0
  422. esphome/components/rp2040_pio_led_strip/led_strip.cpp +2 -2
  423. esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +0 -4
  424. esphome/components/rtttl/__init__.py +4 -4
  425. esphome/components/rtttl/rtttl.cpp +10 -1
  426. esphome/components/ruuvitag/ruuvitag.h +0 -1
  427. esphome/components/safe_mode/safe_mode.cpp +2 -0
  428. esphome/components/safe_mode/safe_mode.h +4 -1
  429. esphome/components/scd30/scd30.h +0 -1
  430. esphome/components/scd30/sensor.py +2 -2
  431. esphome/components/scd4x/scd4x.cpp +61 -54
  432. esphome/components/scd4x/scd4x.h +17 -15
  433. esphome/components/scd4x/sensor.py +4 -4
  434. esphome/components/script/script.h +0 -2
  435. esphome/components/sdp3x/sensor.py +1 -1
  436. esphome/components/select/__init__.py +5 -2
  437. esphome/components/sen5x/sen5x.h +0 -1
  438. esphome/components/senseair/senseair.h +0 -1
  439. esphome/components/sensor/__init__.py +4 -2
  440. esphome/components/sensor/filter.cpp +1 -1
  441. esphome/components/sensor/sensor.cpp +12 -6
  442. esphome/components/sensor/sensor.h +13 -5
  443. esphome/components/servo/servo.cpp +2 -2
  444. esphome/components/servo/servo.h +0 -1
  445. esphome/components/sfa30/sfa30.h +0 -1
  446. esphome/components/sgp30/sgp30.h +0 -1
  447. esphome/components/sgp4x/sgp4x.h +0 -1
  448. esphome/components/shelly_dimmer/stm32flash.cpp +1 -2
  449. esphome/components/sht4x/sht4x.h +0 -1
  450. esphome/components/sm300d2/sm300d2.h +0 -2
  451. esphome/components/smt100/sensor.py +8 -4
  452. esphome/components/smt100/smt100.cpp +5 -5
  453. esphome/components/smt100/smt100.h +3 -3
  454. esphome/components/sn74hc595/__init__.py +1 -1
  455. esphome/components/sn74hc595/sn74hc595.cpp +5 -4
  456. esphome/components/sntp/sntp_component.cpp +9 -3
  457. esphome/components/sntp/time.py +2 -0
  458. esphome/components/socket/__init__.py +17 -0
  459. esphome/components/spi/__init__.py +27 -6
  460. esphome/components/spi/spi.cpp +3 -2
  461. esphome/components/spi/spi.h +9 -3
  462. esphome/components/spi/spi_arduino.cpp +3 -5
  463. esphome/components/spi/spi_esp_idf.cpp +40 -21
  464. esphome/components/spi_led_strip/spi_led_strip.cpp +1 -1
  465. esphome/components/sps30/sps30.h +0 -1
  466. esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
  467. esphome/components/st7701s/st7701s.cpp +0 -4
  468. esphome/components/status/status_binary_sensor.h +0 -2
  469. esphome/components/substitutions/__init__.py +81 -21
  470. esphome/components/substitutions/jinja.py +99 -0
  471. esphome/components/sun/sun.cpp +3 -4
  472. esphome/components/switch/__init__.py +5 -2
  473. esphome/components/switch/binary_sensor/switch_binary_sensor.h +0 -1
  474. esphome/components/sx126x/__init__.py +317 -0
  475. esphome/components/sx126x/automation.h +62 -0
  476. esphome/components/sx126x/packet_transport/__init__.py +26 -0
  477. esphome/components/sx126x/packet_transport/sx126x_transport.cpp +26 -0
  478. esphome/components/sx126x/packet_transport/sx126x_transport.h +25 -0
  479. esphome/components/sx126x/sx126x.cpp +523 -0
  480. esphome/components/sx126x/sx126x.h +140 -0
  481. esphome/components/sx126x/sx126x_reg.h +163 -0
  482. esphome/components/sx127x/__init__.py +325 -0
  483. esphome/components/sx127x/automation.h +62 -0
  484. esphome/components/sx127x/packet_transport/__init__.py +26 -0
  485. esphome/components/sx127x/packet_transport/sx127x_transport.cpp +26 -0
  486. esphome/components/sx127x/packet_transport/sx127x_transport.h +25 -0
  487. esphome/components/sx127x/sx127x.cpp +498 -0
  488. esphome/components/sx127x/sx127x.h +128 -0
  489. esphome/components/sx127x/sx127x_reg.h +295 -0
  490. esphome/components/syslog/esphome_syslog.cpp +5 -3
  491. esphome/components/syslog/esphome_syslog.h +1 -1
  492. esphome/components/tca9555/__init__.py +1 -1
  493. esphome/components/template/binary_sensor/template_binary_sensor.cpp +1 -9
  494. esphome/components/text/__init__.py +5 -2
  495. esphome/components/text_sensor/__init__.py +5 -2
  496. esphome/components/thermostat/thermostat_climate.cpp +34 -31
  497. esphome/components/thermostat/thermostat_climate.h +43 -39
  498. esphome/components/time/__init__.py +16 -2
  499. esphome/components/time/real_time_clock.cpp +4 -0
  500. esphome/components/time/real_time_clock.h +5 -1
  501. esphome/components/tlc5971/tlc5971.cpp +4 -1
  502. esphome/components/tmp1075/tmp1075.h +0 -2
  503. esphome/components/tof10120/tof10120_sensor.h +0 -1
  504. esphome/components/tormatic/tormatic_cover.h +0 -1
  505. esphome/components/total_daily_energy/total_daily_energy.h +0 -1
  506. esphome/components/tsl2591/tsl2591.cpp +1 -1
  507. esphome/components/ttp229_bsf/ttp229_bsf.h +0 -1
  508. esphome/components/ttp229_lsf/ttp229_lsf.h +0 -1
  509. esphome/components/tx20/tx20.cpp +2 -2
  510. esphome/components/uart/__init__.py +18 -0
  511. esphome/components/uart/uart_component_esp_idf.cpp +0 -4
  512. esphome/components/update/__init__.py +5 -2
  513. esphome/components/update/update_entity.h +8 -0
  514. esphome/components/usb_host/__init__.py +5 -2
  515. esphome/components/usb_host/usb_host_client.cpp +10 -10
  516. esphome/components/usb_uart/cp210x.cpp +1 -1
  517. esphome/components/usb_uart/usb_uart.cpp +41 -44
  518. esphome/components/usb_uart/usb_uart.h +4 -3
  519. esphome/components/valve/__init__.py +5 -2
  520. esphome/components/vbus/vbus.h +0 -1
  521. esphome/components/veml3235/veml3235.h +0 -1
  522. esphome/components/veml7700/veml7700.h +0 -1
  523. esphome/components/vl53l0x/vl53l0x_sensor.h +0 -1
  524. esphome/components/voice_assistant/voice_assistant.cpp +4 -4
  525. esphome/components/watchdog/watchdog.cpp +0 -4
  526. esphome/components/waveshare_epaper/waveshare_epaper.cpp +6 -6
  527. esphome/components/web_server/__init__.py +34 -19
  528. esphome/components/web_server/ota/__init__.py +32 -0
  529. esphome/components/web_server/ota/ota_web_server.cpp +210 -0
  530. esphome/components/web_server/ota/ota_web_server.h +26 -0
  531. esphome/components/web_server/web_server.cpp +318 -436
  532. esphome/components/web_server/web_server.h +33 -23
  533. esphome/components/web_server/web_server_v1.cpp +4 -5
  534. esphome/components/web_server_base/__init__.py +5 -2
  535. esphome/components/web_server_base/web_server_base.cpp +2 -94
  536. esphome/components/web_server_base/web_server_base.h +5 -25
  537. esphome/components/web_server_idf/multipart.cpp +254 -0
  538. esphome/components/web_server_idf/multipart.h +86 -0
  539. esphome/components/web_server_idf/utils.cpp +32 -0
  540. esphome/components/web_server_idf/utils.h +10 -0
  541. esphome/components/web_server_idf/web_server_idf.cpp +164 -16
  542. esphome/components/web_server_idf/web_server_idf.h +11 -10
  543. esphome/components/wiegand/wiegand.cpp +2 -2
  544. esphome/components/wifi/__init__.py +18 -0
  545. esphome/components/wifi/wifi_component.cpp +17 -22
  546. esphome/components/wifi/wifi_component.h +27 -23
  547. esphome/components/wifi/wifi_component_esp32_arduino.cpp +52 -59
  548. esphome/components/wifi/wifi_component_esp8266.cpp +46 -46
  549. esphome/components/wifi/wifi_component_esp_idf.cpp +35 -36
  550. esphome/components/wifi/wifi_component_libretiny.cpp +26 -27
  551. esphome/components/wifi/wifi_component_pico_w.cpp +3 -3
  552. esphome/components/wifi_info/wifi_info_text_sensor.cpp +6 -6
  553. esphome/components/wireguard/__init__.py +2 -11
  554. esphome/components/xiaomi_ble/xiaomi_ble.cpp +13 -1
  555. esphome/components/xiaomi_ble/xiaomi_ble.h +1 -0
  556. esphome/components/xiaomi_cgd1/xiaomi_cgd1.h +0 -1
  557. esphome/components/xiaomi_cgdk2/xiaomi_cgdk2.h +0 -1
  558. esphome/components/xiaomi_cgg1/xiaomi_cgg1.h +0 -1
  559. esphome/components/xiaomi_cgpr1/xiaomi_cgpr1.h +0 -1
  560. esphome/components/xiaomi_gcls002/xiaomi_gcls002.h +0 -1
  561. esphome/components/xiaomi_hhccjcy01/xiaomi_hhccjcy01.h +0 -1
  562. esphome/components/xiaomi_hhccjcy10/xiaomi_hhccjcy10.h +0 -1
  563. esphome/components/xiaomi_hhccpot002/xiaomi_hhccpot002.h +0 -1
  564. esphome/components/xiaomi_jqjcy01ym/xiaomi_jqjcy01ym.h +0 -1
  565. esphome/components/xiaomi_lywsd02/xiaomi_lywsd02.h +0 -1
  566. esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.h +0 -1
  567. esphome/components/xiaomi_lywsd03mmc/xiaomi_lywsd03mmc.h +0 -1
  568. esphome/components/xiaomi_lywsdcgq/xiaomi_lywsdcgq.h +0 -1
  569. esphome/components/xiaomi_mhoc303/xiaomi_mhoc303.h +0 -1
  570. esphome/components/xiaomi_mhoc401/xiaomi_mhoc401.h +0 -1
  571. esphome/components/xiaomi_miscale/xiaomi_miscale.h +0 -1
  572. esphome/components/xiaomi_mjyd02yla/xiaomi_mjyd02yla.h +0 -1
  573. esphome/components/xiaomi_mue4094rt/xiaomi_mue4094rt.h +0 -1
  574. esphome/components/xiaomi_rtcgq02lm/xiaomi_rtcgq02lm.h +0 -1
  575. esphome/components/xiaomi_wx08zm/xiaomi_wx08zm.h +0 -1
  576. esphome/components/xiaomi_xmwsdj04mmc/__init__.py +0 -0
  577. esphome/components/xiaomi_xmwsdj04mmc/sensor.py +77 -0
  578. esphome/components/xiaomi_xmwsdj04mmc/xiaomi_xmwsdj04mmc.cpp +77 -0
  579. esphome/components/xiaomi_xmwsdj04mmc/xiaomi_xmwsdj04mmc.h +36 -0
  580. esphome/components/zio_ultrasonic/zio_ultrasonic.h +0 -2
  581. esphome/components/zyaura/zyaura.h +0 -1
  582. esphome/config.py +88 -22
  583. esphome/config_helpers.py +74 -1
  584. esphome/config_validation.py +12 -1
  585. esphome/const.py +65 -10
  586. esphome/core/__init__.py +18 -2
  587. esphome/core/application.cpp +169 -10
  588. esphome/core/application.h +145 -165
  589. esphome/core/area.h +19 -0
  590. esphome/core/automation.h +58 -9
  591. esphome/core/color.cpp +3 -5
  592. esphome/core/color.h +16 -16
  593. esphome/core/component.cpp +156 -22
  594. esphome/core/component.h +98 -4
  595. esphome/core/component_iterator.cpp +11 -9
  596. esphome/core/component_iterator.h +12 -10
  597. esphome/core/config.py +155 -6
  598. esphome/core/controller.cpp +4 -2
  599. esphome/core/controller.h +1 -1
  600. esphome/core/datatypes.h +2 -2
  601. esphome/core/defines.h +17 -2
  602. esphome/core/device.h +20 -0
  603. esphome/core/entity_base.cpp +20 -15
  604. esphome/core/entity_base.h +76 -0
  605. esphome/core/entity_helpers.py +168 -1
  606. esphome/core/event_pool.h +81 -0
  607. esphome/core/helpers.cpp +75 -230
  608. esphome/core/helpers.h +165 -105
  609. esphome/core/lock_free_queue.h +151 -0
  610. esphome/core/log.cpp +2 -2
  611. esphome/core/log.h +2 -0
  612. esphome/core/optional.h +5 -0
  613. esphome/core/ring_buffer.cpp +2 -2
  614. esphome/core/scheduler.cpp +275 -103
  615. esphome/core/scheduler.h +154 -17
  616. esphome/core/time.cpp +5 -5
  617. esphome/core/time.h +5 -5
  618. esphome/cpp_generator.py +17 -0
  619. esphome/cpp_helpers.py +0 -22
  620. esphome/cpp_types.py +3 -1
  621. esphome/dashboard/entries.py +1 -1
  622. esphome/dashboard/util/text.py +5 -21
  623. esphome/dashboard/web_server.py +9 -1
  624. esphome/helpers.py +47 -0
  625. esphome/loader.py +15 -1
  626. esphome/pins.py +14 -8
  627. esphome/platformio_api.py +2 -0
  628. esphome/wizard.py +17 -4
  629. esphome/writer.py +44 -3
  630. esphome/yaml_util.py +0 -2
  631. {esphome-2025.6.3.dist-info → esphome-2025.7.0.dist-info}/METADATA +10 -9
  632. {esphome-2025.6.3.dist-info → esphome-2025.7.0.dist-info}/RECORD +637 -578
  633. esphome/components/api/api_pb2_size.h +0 -361
  634. esphome/components/esp32_ble/ble_event_pool.h +0 -72
  635. esphome/components/esp32_ble/queue.h +0 -85
  636. esphome/components/esp32_hall/esp32_hall.cpp +0 -25
  637. esphome/components/esp32_hall/esp32_hall.h +0 -23
  638. esphome/components/esp32_touch/esp32_touch.cpp +0 -355
  639. esphome/components/ld2410/button/reset_button.cpp +0 -9
  640. esphome/components/ld2450/button/reset_button.cpp +0 -9
  641. esphome/components/openthread/tlv.py +0 -65
  642. /esphome/{dashboard/enum.py → enum.py} +0 -0
  643. {esphome-2025.6.3.dist-info → esphome-2025.7.0.dist-info}/WHEEL +0 -0
  644. {esphome-2025.6.3.dist-info → esphome-2025.7.0.dist-info}/entry_points.txt +0 -0
  645. {esphome-2025.6.3.dist-info → esphome-2025.7.0.dist-info}/licenses/LICENSE +0 -0
  646. {esphome-2025.6.3.dist-info → esphome-2025.7.0.dist-info}/top_level.txt +0 -0
@@ -14,7 +14,7 @@ void APIServerConnectionBase::log_send_message_(const char *name, const std::str
14
14
  }
15
15
  #endif
16
16
 
17
- bool APIServerConnectionBase::read_message(uint32_t msg_size, uint32_t msg_type, uint8_t *msg_data) {
17
+ void APIServerConnectionBase::read_message(uint32_t msg_size, uint32_t msg_type, uint8_t *msg_data) {
18
18
  switch (msg_type) {
19
19
  case 1: {
20
20
  HelloRequest msg;
@@ -106,50 +106,50 @@ bool APIServerConnectionBase::read_message(uint32_t msg_size, uint32_t msg_type,
106
106
  this->on_subscribe_logs_request(msg);
107
107
  break;
108
108
  }
109
- case 30: {
110
109
  #ifdef USE_COVER
110
+ case 30: {
111
111
  CoverCommandRequest msg;
112
112
  msg.decode(msg_data, msg_size);
113
113
  #ifdef HAS_PROTO_MESSAGE_DUMP
114
114
  ESP_LOGVV(TAG, "on_cover_command_request: %s", msg.dump().c_str());
115
115
  #endif
116
116
  this->on_cover_command_request(msg);
117
- #endif
118
117
  break;
119
118
  }
120
- case 31: {
119
+ #endif
121
120
  #ifdef USE_FAN
121
+ case 31: {
122
122
  FanCommandRequest msg;
123
123
  msg.decode(msg_data, msg_size);
124
124
  #ifdef HAS_PROTO_MESSAGE_DUMP
125
125
  ESP_LOGVV(TAG, "on_fan_command_request: %s", msg.dump().c_str());
126
126
  #endif
127
127
  this->on_fan_command_request(msg);
128
- #endif
129
128
  break;
130
129
  }
131
- case 32: {
130
+ #endif
132
131
  #ifdef USE_LIGHT
132
+ case 32: {
133
133
  LightCommandRequest msg;
134
134
  msg.decode(msg_data, msg_size);
135
135
  #ifdef HAS_PROTO_MESSAGE_DUMP
136
136
  ESP_LOGVV(TAG, "on_light_command_request: %s", msg.dump().c_str());
137
137
  #endif
138
138
  this->on_light_command_request(msg);
139
- #endif
140
139
  break;
141
140
  }
142
- case 33: {
141
+ #endif
143
142
  #ifdef USE_SWITCH
143
+ case 33: {
144
144
  SwitchCommandRequest msg;
145
145
  msg.decode(msg_data, msg_size);
146
146
  #ifdef HAS_PROTO_MESSAGE_DUMP
147
147
  ESP_LOGVV(TAG, "on_switch_command_request: %s", msg.dump().c_str());
148
148
  #endif
149
149
  this->on_switch_command_request(msg);
150
- #endif
151
150
  break;
152
151
  }
152
+ #endif
153
153
  case 34: {
154
154
  SubscribeHomeassistantServicesRequest msg;
155
155
  msg.decode(msg_data, msg_size);
@@ -195,6 +195,7 @@ bool APIServerConnectionBase::read_message(uint32_t msg_size, uint32_t msg_type,
195
195
  this->on_home_assistant_state_response(msg);
196
196
  break;
197
197
  }
198
+ #ifdef USE_API_SERVICES
198
199
  case 42: {
199
200
  ExecuteServiceRequest msg;
200
201
  msg.decode(msg_data, msg_size);
@@ -204,395 +205,395 @@ bool APIServerConnectionBase::read_message(uint32_t msg_size, uint32_t msg_type,
204
205
  this->on_execute_service_request(msg);
205
206
  break;
206
207
  }
208
+ #endif
209
+ #ifdef USE_CAMERA
207
210
  case 45: {
208
- #ifdef USE_ESP32_CAMERA
209
211
  CameraImageRequest msg;
210
212
  msg.decode(msg_data, msg_size);
211
213
  #ifdef HAS_PROTO_MESSAGE_DUMP
212
214
  ESP_LOGVV(TAG, "on_camera_image_request: %s", msg.dump().c_str());
213
215
  #endif
214
216
  this->on_camera_image_request(msg);
215
- #endif
216
217
  break;
217
218
  }
218
- case 48: {
219
+ #endif
219
220
  #ifdef USE_CLIMATE
221
+ case 48: {
220
222
  ClimateCommandRequest msg;
221
223
  msg.decode(msg_data, msg_size);
222
224
  #ifdef HAS_PROTO_MESSAGE_DUMP
223
225
  ESP_LOGVV(TAG, "on_climate_command_request: %s", msg.dump().c_str());
224
226
  #endif
225
227
  this->on_climate_command_request(msg);
226
- #endif
227
228
  break;
228
229
  }
229
- case 51: {
230
+ #endif
230
231
  #ifdef USE_NUMBER
232
+ case 51: {
231
233
  NumberCommandRequest msg;
232
234
  msg.decode(msg_data, msg_size);
233
235
  #ifdef HAS_PROTO_MESSAGE_DUMP
234
236
  ESP_LOGVV(TAG, "on_number_command_request: %s", msg.dump().c_str());
235
237
  #endif
236
238
  this->on_number_command_request(msg);
237
- #endif
238
239
  break;
239
240
  }
240
- case 54: {
241
+ #endif
241
242
  #ifdef USE_SELECT
243
+ case 54: {
242
244
  SelectCommandRequest msg;
243
245
  msg.decode(msg_data, msg_size);
244
246
  #ifdef HAS_PROTO_MESSAGE_DUMP
245
247
  ESP_LOGVV(TAG, "on_select_command_request: %s", msg.dump().c_str());
246
248
  #endif
247
249
  this->on_select_command_request(msg);
248
- #endif
249
250
  break;
250
251
  }
251
- case 57: {
252
+ #endif
252
253
  #ifdef USE_SIREN
254
+ case 57: {
253
255
  SirenCommandRequest msg;
254
256
  msg.decode(msg_data, msg_size);
255
257
  #ifdef HAS_PROTO_MESSAGE_DUMP
256
258
  ESP_LOGVV(TAG, "on_siren_command_request: %s", msg.dump().c_str());
257
259
  #endif
258
260
  this->on_siren_command_request(msg);
259
- #endif
260
261
  break;
261
262
  }
262
- case 60: {
263
+ #endif
263
264
  #ifdef USE_LOCK
265
+ case 60: {
264
266
  LockCommandRequest msg;
265
267
  msg.decode(msg_data, msg_size);
266
268
  #ifdef HAS_PROTO_MESSAGE_DUMP
267
269
  ESP_LOGVV(TAG, "on_lock_command_request: %s", msg.dump().c_str());
268
270
  #endif
269
271
  this->on_lock_command_request(msg);
270
- #endif
271
272
  break;
272
273
  }
273
- case 62: {
274
+ #endif
274
275
  #ifdef USE_BUTTON
276
+ case 62: {
275
277
  ButtonCommandRequest msg;
276
278
  msg.decode(msg_data, msg_size);
277
279
  #ifdef HAS_PROTO_MESSAGE_DUMP
278
280
  ESP_LOGVV(TAG, "on_button_command_request: %s", msg.dump().c_str());
279
281
  #endif
280
282
  this->on_button_command_request(msg);
281
- #endif
282
283
  break;
283
284
  }
284
- case 65: {
285
+ #endif
285
286
  #ifdef USE_MEDIA_PLAYER
287
+ case 65: {
286
288
  MediaPlayerCommandRequest msg;
287
289
  msg.decode(msg_data, msg_size);
288
290
  #ifdef HAS_PROTO_MESSAGE_DUMP
289
291
  ESP_LOGVV(TAG, "on_media_player_command_request: %s", msg.dump().c_str());
290
292
  #endif
291
293
  this->on_media_player_command_request(msg);
292
- #endif
293
294
  break;
294
295
  }
295
- case 66: {
296
+ #endif
296
297
  #ifdef USE_BLUETOOTH_PROXY
298
+ case 66: {
297
299
  SubscribeBluetoothLEAdvertisementsRequest msg;
298
300
  msg.decode(msg_data, msg_size);
299
301
  #ifdef HAS_PROTO_MESSAGE_DUMP
300
302
  ESP_LOGVV(TAG, "on_subscribe_bluetooth_le_advertisements_request: %s", msg.dump().c_str());
301
303
  #endif
302
304
  this->on_subscribe_bluetooth_le_advertisements_request(msg);
303
- #endif
304
305
  break;
305
306
  }
306
- case 68: {
307
+ #endif
307
308
  #ifdef USE_BLUETOOTH_PROXY
309
+ case 68: {
308
310
  BluetoothDeviceRequest msg;
309
311
  msg.decode(msg_data, msg_size);
310
312
  #ifdef HAS_PROTO_MESSAGE_DUMP
311
313
  ESP_LOGVV(TAG, "on_bluetooth_device_request: %s", msg.dump().c_str());
312
314
  #endif
313
315
  this->on_bluetooth_device_request(msg);
314
- #endif
315
316
  break;
316
317
  }
317
- case 70: {
318
+ #endif
318
319
  #ifdef USE_BLUETOOTH_PROXY
320
+ case 70: {
319
321
  BluetoothGATTGetServicesRequest msg;
320
322
  msg.decode(msg_data, msg_size);
321
323
  #ifdef HAS_PROTO_MESSAGE_DUMP
322
324
  ESP_LOGVV(TAG, "on_bluetooth_gatt_get_services_request: %s", msg.dump().c_str());
323
325
  #endif
324
326
  this->on_bluetooth_gatt_get_services_request(msg);
325
- #endif
326
327
  break;
327
328
  }
328
- case 73: {
329
+ #endif
329
330
  #ifdef USE_BLUETOOTH_PROXY
331
+ case 73: {
330
332
  BluetoothGATTReadRequest msg;
331
333
  msg.decode(msg_data, msg_size);
332
334
  #ifdef HAS_PROTO_MESSAGE_DUMP
333
335
  ESP_LOGVV(TAG, "on_bluetooth_gatt_read_request: %s", msg.dump().c_str());
334
336
  #endif
335
337
  this->on_bluetooth_gatt_read_request(msg);
336
- #endif
337
338
  break;
338
339
  }
339
- case 75: {
340
+ #endif
340
341
  #ifdef USE_BLUETOOTH_PROXY
342
+ case 75: {
341
343
  BluetoothGATTWriteRequest msg;
342
344
  msg.decode(msg_data, msg_size);
343
345
  #ifdef HAS_PROTO_MESSAGE_DUMP
344
346
  ESP_LOGVV(TAG, "on_bluetooth_gatt_write_request: %s", msg.dump().c_str());
345
347
  #endif
346
348
  this->on_bluetooth_gatt_write_request(msg);
347
- #endif
348
349
  break;
349
350
  }
350
- case 76: {
351
+ #endif
351
352
  #ifdef USE_BLUETOOTH_PROXY
353
+ case 76: {
352
354
  BluetoothGATTReadDescriptorRequest msg;
353
355
  msg.decode(msg_data, msg_size);
354
356
  #ifdef HAS_PROTO_MESSAGE_DUMP
355
357
  ESP_LOGVV(TAG, "on_bluetooth_gatt_read_descriptor_request: %s", msg.dump().c_str());
356
358
  #endif
357
359
  this->on_bluetooth_gatt_read_descriptor_request(msg);
358
- #endif
359
360
  break;
360
361
  }
361
- case 77: {
362
+ #endif
362
363
  #ifdef USE_BLUETOOTH_PROXY
364
+ case 77: {
363
365
  BluetoothGATTWriteDescriptorRequest msg;
364
366
  msg.decode(msg_data, msg_size);
365
367
  #ifdef HAS_PROTO_MESSAGE_DUMP
366
368
  ESP_LOGVV(TAG, "on_bluetooth_gatt_write_descriptor_request: %s", msg.dump().c_str());
367
369
  #endif
368
370
  this->on_bluetooth_gatt_write_descriptor_request(msg);
369
- #endif
370
371
  break;
371
372
  }
372
- case 78: {
373
+ #endif
373
374
  #ifdef USE_BLUETOOTH_PROXY
375
+ case 78: {
374
376
  BluetoothGATTNotifyRequest msg;
375
377
  msg.decode(msg_data, msg_size);
376
378
  #ifdef HAS_PROTO_MESSAGE_DUMP
377
379
  ESP_LOGVV(TAG, "on_bluetooth_gatt_notify_request: %s", msg.dump().c_str());
378
380
  #endif
379
381
  this->on_bluetooth_gatt_notify_request(msg);
380
- #endif
381
382
  break;
382
383
  }
383
- case 80: {
384
+ #endif
384
385
  #ifdef USE_BLUETOOTH_PROXY
386
+ case 80: {
385
387
  SubscribeBluetoothConnectionsFreeRequest msg;
386
388
  msg.decode(msg_data, msg_size);
387
389
  #ifdef HAS_PROTO_MESSAGE_DUMP
388
390
  ESP_LOGVV(TAG, "on_subscribe_bluetooth_connections_free_request: %s", msg.dump().c_str());
389
391
  #endif
390
392
  this->on_subscribe_bluetooth_connections_free_request(msg);
391
- #endif
392
393
  break;
393
394
  }
394
- case 87: {
395
+ #endif
395
396
  #ifdef USE_BLUETOOTH_PROXY
397
+ case 87: {
396
398
  UnsubscribeBluetoothLEAdvertisementsRequest msg;
397
399
  msg.decode(msg_data, msg_size);
398
400
  #ifdef HAS_PROTO_MESSAGE_DUMP
399
401
  ESP_LOGVV(TAG, "on_unsubscribe_bluetooth_le_advertisements_request: %s", msg.dump().c_str());
400
402
  #endif
401
403
  this->on_unsubscribe_bluetooth_le_advertisements_request(msg);
402
- #endif
403
404
  break;
404
405
  }
405
- case 89: {
406
+ #endif
406
407
  #ifdef USE_VOICE_ASSISTANT
408
+ case 89: {
407
409
  SubscribeVoiceAssistantRequest msg;
408
410
  msg.decode(msg_data, msg_size);
409
411
  #ifdef HAS_PROTO_MESSAGE_DUMP
410
412
  ESP_LOGVV(TAG, "on_subscribe_voice_assistant_request: %s", msg.dump().c_str());
411
413
  #endif
412
414
  this->on_subscribe_voice_assistant_request(msg);
413
- #endif
414
415
  break;
415
416
  }
416
- case 91: {
417
+ #endif
417
418
  #ifdef USE_VOICE_ASSISTANT
419
+ case 91: {
418
420
  VoiceAssistantResponse msg;
419
421
  msg.decode(msg_data, msg_size);
420
422
  #ifdef HAS_PROTO_MESSAGE_DUMP
421
423
  ESP_LOGVV(TAG, "on_voice_assistant_response: %s", msg.dump().c_str());
422
424
  #endif
423
425
  this->on_voice_assistant_response(msg);
424
- #endif
425
426
  break;
426
427
  }
427
- case 92: {
428
+ #endif
428
429
  #ifdef USE_VOICE_ASSISTANT
430
+ case 92: {
429
431
  VoiceAssistantEventResponse msg;
430
432
  msg.decode(msg_data, msg_size);
431
433
  #ifdef HAS_PROTO_MESSAGE_DUMP
432
434
  ESP_LOGVV(TAG, "on_voice_assistant_event_response: %s", msg.dump().c_str());
433
435
  #endif
434
436
  this->on_voice_assistant_event_response(msg);
435
- #endif
436
437
  break;
437
438
  }
438
- case 96: {
439
+ #endif
439
440
  #ifdef USE_ALARM_CONTROL_PANEL
441
+ case 96: {
440
442
  AlarmControlPanelCommandRequest msg;
441
443
  msg.decode(msg_data, msg_size);
442
444
  #ifdef HAS_PROTO_MESSAGE_DUMP
443
445
  ESP_LOGVV(TAG, "on_alarm_control_panel_command_request: %s", msg.dump().c_str());
444
446
  #endif
445
447
  this->on_alarm_control_panel_command_request(msg);
446
- #endif
447
448
  break;
448
449
  }
449
- case 99: {
450
+ #endif
450
451
  #ifdef USE_TEXT
452
+ case 99: {
451
453
  TextCommandRequest msg;
452
454
  msg.decode(msg_data, msg_size);
453
455
  #ifdef HAS_PROTO_MESSAGE_DUMP
454
456
  ESP_LOGVV(TAG, "on_text_command_request: %s", msg.dump().c_str());
455
457
  #endif
456
458
  this->on_text_command_request(msg);
457
- #endif
458
459
  break;
459
460
  }
460
- case 102: {
461
+ #endif
461
462
  #ifdef USE_DATETIME_DATE
463
+ case 102: {
462
464
  DateCommandRequest msg;
463
465
  msg.decode(msg_data, msg_size);
464
466
  #ifdef HAS_PROTO_MESSAGE_DUMP
465
467
  ESP_LOGVV(TAG, "on_date_command_request: %s", msg.dump().c_str());
466
468
  #endif
467
469
  this->on_date_command_request(msg);
468
- #endif
469
470
  break;
470
471
  }
471
- case 105: {
472
+ #endif
472
473
  #ifdef USE_DATETIME_TIME
474
+ case 105: {
473
475
  TimeCommandRequest msg;
474
476
  msg.decode(msg_data, msg_size);
475
477
  #ifdef HAS_PROTO_MESSAGE_DUMP
476
478
  ESP_LOGVV(TAG, "on_time_command_request: %s", msg.dump().c_str());
477
479
  #endif
478
480
  this->on_time_command_request(msg);
479
- #endif
480
481
  break;
481
482
  }
482
- case 106: {
483
+ #endif
483
484
  #ifdef USE_VOICE_ASSISTANT
485
+ case 106: {
484
486
  VoiceAssistantAudio msg;
485
487
  msg.decode(msg_data, msg_size);
486
488
  #ifdef HAS_PROTO_MESSAGE_DUMP
487
489
  ESP_LOGVV(TAG, "on_voice_assistant_audio: %s", msg.dump().c_str());
488
490
  #endif
489
491
  this->on_voice_assistant_audio(msg);
490
- #endif
491
492
  break;
492
493
  }
493
- case 111: {
494
+ #endif
494
495
  #ifdef USE_VALVE
496
+ case 111: {
495
497
  ValveCommandRequest msg;
496
498
  msg.decode(msg_data, msg_size);
497
499
  #ifdef HAS_PROTO_MESSAGE_DUMP
498
500
  ESP_LOGVV(TAG, "on_valve_command_request: %s", msg.dump().c_str());
499
501
  #endif
500
502
  this->on_valve_command_request(msg);
501
- #endif
502
503
  break;
503
504
  }
504
- case 114: {
505
+ #endif
505
506
  #ifdef USE_DATETIME_DATETIME
507
+ case 114: {
506
508
  DateTimeCommandRequest msg;
507
509
  msg.decode(msg_data, msg_size);
508
510
  #ifdef HAS_PROTO_MESSAGE_DUMP
509
511
  ESP_LOGVV(TAG, "on_date_time_command_request: %s", msg.dump().c_str());
510
512
  #endif
511
513
  this->on_date_time_command_request(msg);
512
- #endif
513
514
  break;
514
515
  }
515
- case 115: {
516
+ #endif
516
517
  #ifdef USE_VOICE_ASSISTANT
518
+ case 115: {
517
519
  VoiceAssistantTimerEventResponse msg;
518
520
  msg.decode(msg_data, msg_size);
519
521
  #ifdef HAS_PROTO_MESSAGE_DUMP
520
522
  ESP_LOGVV(TAG, "on_voice_assistant_timer_event_response: %s", msg.dump().c_str());
521
523
  #endif
522
524
  this->on_voice_assistant_timer_event_response(msg);
523
- #endif
524
525
  break;
525
526
  }
526
- case 118: {
527
+ #endif
527
528
  #ifdef USE_UPDATE
529
+ case 118: {
528
530
  UpdateCommandRequest msg;
529
531
  msg.decode(msg_data, msg_size);
530
532
  #ifdef HAS_PROTO_MESSAGE_DUMP
531
533
  ESP_LOGVV(TAG, "on_update_command_request: %s", msg.dump().c_str());
532
534
  #endif
533
535
  this->on_update_command_request(msg);
534
- #endif
535
536
  break;
536
537
  }
537
- case 119: {
538
+ #endif
538
539
  #ifdef USE_VOICE_ASSISTANT
540
+ case 119: {
539
541
  VoiceAssistantAnnounceRequest msg;
540
542
  msg.decode(msg_data, msg_size);
541
543
  #ifdef HAS_PROTO_MESSAGE_DUMP
542
544
  ESP_LOGVV(TAG, "on_voice_assistant_announce_request: %s", msg.dump().c_str());
543
545
  #endif
544
546
  this->on_voice_assistant_announce_request(msg);
545
- #endif
546
547
  break;
547
548
  }
548
- case 121: {
549
+ #endif
549
550
  #ifdef USE_VOICE_ASSISTANT
551
+ case 121: {
550
552
  VoiceAssistantConfigurationRequest msg;
551
553
  msg.decode(msg_data, msg_size);
552
554
  #ifdef HAS_PROTO_MESSAGE_DUMP
553
555
  ESP_LOGVV(TAG, "on_voice_assistant_configuration_request: %s", msg.dump().c_str());
554
556
  #endif
555
557
  this->on_voice_assistant_configuration_request(msg);
556
- #endif
557
558
  break;
558
559
  }
559
- case 123: {
560
+ #endif
560
561
  #ifdef USE_VOICE_ASSISTANT
562
+ case 123: {
561
563
  VoiceAssistantSetConfiguration msg;
562
564
  msg.decode(msg_data, msg_size);
563
565
  #ifdef HAS_PROTO_MESSAGE_DUMP
564
566
  ESP_LOGVV(TAG, "on_voice_assistant_set_configuration: %s", msg.dump().c_str());
565
567
  #endif
566
568
  this->on_voice_assistant_set_configuration(msg);
567
- #endif
568
569
  break;
569
570
  }
570
- case 124: {
571
+ #endif
571
572
  #ifdef USE_API_NOISE
573
+ case 124: {
572
574
  NoiseEncryptionSetKeyRequest msg;
573
575
  msg.decode(msg_data, msg_size);
574
576
  #ifdef HAS_PROTO_MESSAGE_DUMP
575
577
  ESP_LOGVV(TAG, "on_noise_encryption_set_key_request: %s", msg.dump().c_str());
576
578
  #endif
577
579
  this->on_noise_encryption_set_key_request(msg);
578
- #endif
579
580
  break;
580
581
  }
581
- case 127: {
582
+ #endif
582
583
  #ifdef USE_BLUETOOTH_PROXY
584
+ case 127: {
583
585
  BluetoothScannerSetModeRequest msg;
584
586
  msg.decode(msg_data, msg_size);
585
587
  #ifdef HAS_PROTO_MESSAGE_DUMP
586
588
  ESP_LOGVV(TAG, "on_bluetooth_scanner_set_mode_request: %s", msg.dump().c_str());
587
589
  #endif
588
590
  this->on_bluetooth_scanner_set_mode_request(msg);
589
- #endif
590
591
  break;
591
592
  }
593
+ #endif
592
594
  default:
593
- return false;
595
+ break;
594
596
  }
595
- return true;
596
597
  }
597
598
 
598
599
  void APIServerConnection::on_hello_request(const HelloRequest &msg) {
@@ -620,544 +621,302 @@ void APIServerConnection::on_ping_request(const PingRequest &msg) {
620
621
  }
621
622
  }
622
623
  void APIServerConnection::on_device_info_request(const DeviceInfoRequest &msg) {
623
- if (!this->is_connection_setup()) {
624
- this->on_no_setup_connection();
625
- return;
626
- }
627
- DeviceInfoResponse ret = this->device_info(msg);
628
- if (!this->send_message(ret)) {
629
- this->on_fatal_error();
624
+ if (this->check_connection_setup_()) {
625
+ DeviceInfoResponse ret = this->device_info(msg);
626
+ if (!this->send_message(ret)) {
627
+ this->on_fatal_error();
628
+ }
630
629
  }
631
630
  }
632
631
  void APIServerConnection::on_list_entities_request(const ListEntitiesRequest &msg) {
633
- if (!this->is_connection_setup()) {
634
- this->on_no_setup_connection();
635
- return;
632
+ if (this->check_authenticated_()) {
633
+ this->list_entities(msg);
636
634
  }
637
- if (!this->is_authenticated()) {
638
- this->on_unauthenticated_access();
639
- return;
640
- }
641
- this->list_entities(msg);
642
635
  }
643
636
  void APIServerConnection::on_subscribe_states_request(const SubscribeStatesRequest &msg) {
644
- if (!this->is_connection_setup()) {
645
- this->on_no_setup_connection();
646
- return;
647
- }
648
- if (!this->is_authenticated()) {
649
- this->on_unauthenticated_access();
650
- return;
637
+ if (this->check_authenticated_()) {
638
+ this->subscribe_states(msg);
651
639
  }
652
- this->subscribe_states(msg);
653
640
  }
654
641
  void APIServerConnection::on_subscribe_logs_request(const SubscribeLogsRequest &msg) {
655
- if (!this->is_connection_setup()) {
656
- this->on_no_setup_connection();
657
- return;
658
- }
659
- if (!this->is_authenticated()) {
660
- this->on_unauthenticated_access();
661
- return;
642
+ if (this->check_authenticated_()) {
643
+ this->subscribe_logs(msg);
662
644
  }
663
- this->subscribe_logs(msg);
664
645
  }
665
646
  void APIServerConnection::on_subscribe_homeassistant_services_request(
666
647
  const SubscribeHomeassistantServicesRequest &msg) {
667
- if (!this->is_connection_setup()) {
668
- this->on_no_setup_connection();
669
- return;
648
+ if (this->check_authenticated_()) {
649
+ this->subscribe_homeassistant_services(msg);
670
650
  }
671
- if (!this->is_authenticated()) {
672
- this->on_unauthenticated_access();
673
- return;
674
- }
675
- this->subscribe_homeassistant_services(msg);
676
651
  }
677
652
  void APIServerConnection::on_subscribe_home_assistant_states_request(const SubscribeHomeAssistantStatesRequest &msg) {
678
- if (!this->is_connection_setup()) {
679
- this->on_no_setup_connection();
680
- return;
681
- }
682
- if (!this->is_authenticated()) {
683
- this->on_unauthenticated_access();
684
- return;
653
+ if (this->check_authenticated_()) {
654
+ this->subscribe_home_assistant_states(msg);
685
655
  }
686
- this->subscribe_home_assistant_states(msg);
687
656
  }
688
657
  void APIServerConnection::on_get_time_request(const GetTimeRequest &msg) {
689
- if (!this->is_connection_setup()) {
690
- this->on_no_setup_connection();
691
- return;
692
- }
693
- GetTimeResponse ret = this->get_time(msg);
694
- if (!this->send_message(ret)) {
695
- this->on_fatal_error();
658
+ if (this->check_connection_setup_()) {
659
+ GetTimeResponse ret = this->get_time(msg);
660
+ if (!this->send_message(ret)) {
661
+ this->on_fatal_error();
662
+ }
696
663
  }
697
664
  }
665
+ #ifdef USE_API_SERVICES
698
666
  void APIServerConnection::on_execute_service_request(const ExecuteServiceRequest &msg) {
699
- if (!this->is_connection_setup()) {
700
- this->on_no_setup_connection();
701
- return;
702
- }
703
- if (!this->is_authenticated()) {
704
- this->on_unauthenticated_access();
705
- return;
667
+ if (this->check_authenticated_()) {
668
+ this->execute_service(msg);
706
669
  }
707
- this->execute_service(msg);
708
670
  }
671
+ #endif
709
672
  #ifdef USE_API_NOISE
710
673
  void APIServerConnection::on_noise_encryption_set_key_request(const NoiseEncryptionSetKeyRequest &msg) {
711
- if (!this->is_connection_setup()) {
712
- this->on_no_setup_connection();
713
- return;
714
- }
715
- if (!this->is_authenticated()) {
716
- this->on_unauthenticated_access();
717
- return;
718
- }
719
- NoiseEncryptionSetKeyResponse ret = this->noise_encryption_set_key(msg);
720
- if (!this->send_message(ret)) {
721
- this->on_fatal_error();
674
+ if (this->check_authenticated_()) {
675
+ NoiseEncryptionSetKeyResponse ret = this->noise_encryption_set_key(msg);
676
+ if (!this->send_message(ret)) {
677
+ this->on_fatal_error();
678
+ }
722
679
  }
723
680
  }
724
681
  #endif
725
682
  #ifdef USE_BUTTON
726
683
  void APIServerConnection::on_button_command_request(const ButtonCommandRequest &msg) {
727
- if (!this->is_connection_setup()) {
728
- this->on_no_setup_connection();
729
- return;
730
- }
731
- if (!this->is_authenticated()) {
732
- this->on_unauthenticated_access();
733
- return;
684
+ if (this->check_authenticated_()) {
685
+ this->button_command(msg);
734
686
  }
735
- this->button_command(msg);
736
687
  }
737
688
  #endif
738
- #ifdef USE_ESP32_CAMERA
689
+ #ifdef USE_CAMERA
739
690
  void APIServerConnection::on_camera_image_request(const CameraImageRequest &msg) {
740
- if (!this->is_connection_setup()) {
741
- this->on_no_setup_connection();
742
- return;
691
+ if (this->check_authenticated_()) {
692
+ this->camera_image(msg);
743
693
  }
744
- if (!this->is_authenticated()) {
745
- this->on_unauthenticated_access();
746
- return;
747
- }
748
- this->camera_image(msg);
749
694
  }
750
695
  #endif
751
696
  #ifdef USE_CLIMATE
752
697
  void APIServerConnection::on_climate_command_request(const ClimateCommandRequest &msg) {
753
- if (!this->is_connection_setup()) {
754
- this->on_no_setup_connection();
755
- return;
756
- }
757
- if (!this->is_authenticated()) {
758
- this->on_unauthenticated_access();
759
- return;
698
+ if (this->check_authenticated_()) {
699
+ this->climate_command(msg);
760
700
  }
761
- this->climate_command(msg);
762
701
  }
763
702
  #endif
764
703
  #ifdef USE_COVER
765
704
  void APIServerConnection::on_cover_command_request(const CoverCommandRequest &msg) {
766
- if (!this->is_connection_setup()) {
767
- this->on_no_setup_connection();
768
- return;
705
+ if (this->check_authenticated_()) {
706
+ this->cover_command(msg);
769
707
  }
770
- if (!this->is_authenticated()) {
771
- this->on_unauthenticated_access();
772
- return;
773
- }
774
- this->cover_command(msg);
775
708
  }
776
709
  #endif
777
710
  #ifdef USE_DATETIME_DATE
778
711
  void APIServerConnection::on_date_command_request(const DateCommandRequest &msg) {
779
- if (!this->is_connection_setup()) {
780
- this->on_no_setup_connection();
781
- return;
782
- }
783
- if (!this->is_authenticated()) {
784
- this->on_unauthenticated_access();
785
- return;
712
+ if (this->check_authenticated_()) {
713
+ this->date_command(msg);
786
714
  }
787
- this->date_command(msg);
788
715
  }
789
716
  #endif
790
717
  #ifdef USE_DATETIME_DATETIME
791
718
  void APIServerConnection::on_date_time_command_request(const DateTimeCommandRequest &msg) {
792
- if (!this->is_connection_setup()) {
793
- this->on_no_setup_connection();
794
- return;
719
+ if (this->check_authenticated_()) {
720
+ this->datetime_command(msg);
795
721
  }
796
- if (!this->is_authenticated()) {
797
- this->on_unauthenticated_access();
798
- return;
799
- }
800
- this->datetime_command(msg);
801
722
  }
802
723
  #endif
803
724
  #ifdef USE_FAN
804
725
  void APIServerConnection::on_fan_command_request(const FanCommandRequest &msg) {
805
- if (!this->is_connection_setup()) {
806
- this->on_no_setup_connection();
807
- return;
808
- }
809
- if (!this->is_authenticated()) {
810
- this->on_unauthenticated_access();
811
- return;
726
+ if (this->check_authenticated_()) {
727
+ this->fan_command(msg);
812
728
  }
813
- this->fan_command(msg);
814
729
  }
815
730
  #endif
816
731
  #ifdef USE_LIGHT
817
732
  void APIServerConnection::on_light_command_request(const LightCommandRequest &msg) {
818
- if (!this->is_connection_setup()) {
819
- this->on_no_setup_connection();
820
- return;
821
- }
822
- if (!this->is_authenticated()) {
823
- this->on_unauthenticated_access();
824
- return;
733
+ if (this->check_authenticated_()) {
734
+ this->light_command(msg);
825
735
  }
826
- this->light_command(msg);
827
736
  }
828
737
  #endif
829
738
  #ifdef USE_LOCK
830
739
  void APIServerConnection::on_lock_command_request(const LockCommandRequest &msg) {
831
- if (!this->is_connection_setup()) {
832
- this->on_no_setup_connection();
833
- return;
740
+ if (this->check_authenticated_()) {
741
+ this->lock_command(msg);
834
742
  }
835
- if (!this->is_authenticated()) {
836
- this->on_unauthenticated_access();
837
- return;
838
- }
839
- this->lock_command(msg);
840
743
  }
841
744
  #endif
842
745
  #ifdef USE_MEDIA_PLAYER
843
746
  void APIServerConnection::on_media_player_command_request(const MediaPlayerCommandRequest &msg) {
844
- if (!this->is_connection_setup()) {
845
- this->on_no_setup_connection();
846
- return;
847
- }
848
- if (!this->is_authenticated()) {
849
- this->on_unauthenticated_access();
850
- return;
747
+ if (this->check_authenticated_()) {
748
+ this->media_player_command(msg);
851
749
  }
852
- this->media_player_command(msg);
853
750
  }
854
751
  #endif
855
752
  #ifdef USE_NUMBER
856
753
  void APIServerConnection::on_number_command_request(const NumberCommandRequest &msg) {
857
- if (!this->is_connection_setup()) {
858
- this->on_no_setup_connection();
859
- return;
860
- }
861
- if (!this->is_authenticated()) {
862
- this->on_unauthenticated_access();
863
- return;
754
+ if (this->check_authenticated_()) {
755
+ this->number_command(msg);
864
756
  }
865
- this->number_command(msg);
866
757
  }
867
758
  #endif
868
759
  #ifdef USE_SELECT
869
760
  void APIServerConnection::on_select_command_request(const SelectCommandRequest &msg) {
870
- if (!this->is_connection_setup()) {
871
- this->on_no_setup_connection();
872
- return;
761
+ if (this->check_authenticated_()) {
762
+ this->select_command(msg);
873
763
  }
874
- if (!this->is_authenticated()) {
875
- this->on_unauthenticated_access();
876
- return;
877
- }
878
- this->select_command(msg);
879
764
  }
880
765
  #endif
881
766
  #ifdef USE_SIREN
882
767
  void APIServerConnection::on_siren_command_request(const SirenCommandRequest &msg) {
883
- if (!this->is_connection_setup()) {
884
- this->on_no_setup_connection();
885
- return;
886
- }
887
- if (!this->is_authenticated()) {
888
- this->on_unauthenticated_access();
889
- return;
768
+ if (this->check_authenticated_()) {
769
+ this->siren_command(msg);
890
770
  }
891
- this->siren_command(msg);
892
771
  }
893
772
  #endif
894
773
  #ifdef USE_SWITCH
895
774
  void APIServerConnection::on_switch_command_request(const SwitchCommandRequest &msg) {
896
- if (!this->is_connection_setup()) {
897
- this->on_no_setup_connection();
898
- return;
899
- }
900
- if (!this->is_authenticated()) {
901
- this->on_unauthenticated_access();
902
- return;
775
+ if (this->check_authenticated_()) {
776
+ this->switch_command(msg);
903
777
  }
904
- this->switch_command(msg);
905
778
  }
906
779
  #endif
907
780
  #ifdef USE_TEXT
908
781
  void APIServerConnection::on_text_command_request(const TextCommandRequest &msg) {
909
- if (!this->is_connection_setup()) {
910
- this->on_no_setup_connection();
911
- return;
782
+ if (this->check_authenticated_()) {
783
+ this->text_command(msg);
912
784
  }
913
- if (!this->is_authenticated()) {
914
- this->on_unauthenticated_access();
915
- return;
916
- }
917
- this->text_command(msg);
918
785
  }
919
786
  #endif
920
787
  #ifdef USE_DATETIME_TIME
921
788
  void APIServerConnection::on_time_command_request(const TimeCommandRequest &msg) {
922
- if (!this->is_connection_setup()) {
923
- this->on_no_setup_connection();
924
- return;
925
- }
926
- if (!this->is_authenticated()) {
927
- this->on_unauthenticated_access();
928
- return;
789
+ if (this->check_authenticated_()) {
790
+ this->time_command(msg);
929
791
  }
930
- this->time_command(msg);
931
792
  }
932
793
  #endif
933
794
  #ifdef USE_UPDATE
934
795
  void APIServerConnection::on_update_command_request(const UpdateCommandRequest &msg) {
935
- if (!this->is_connection_setup()) {
936
- this->on_no_setup_connection();
937
- return;
796
+ if (this->check_authenticated_()) {
797
+ this->update_command(msg);
938
798
  }
939
- if (!this->is_authenticated()) {
940
- this->on_unauthenticated_access();
941
- return;
942
- }
943
- this->update_command(msg);
944
799
  }
945
800
  #endif
946
801
  #ifdef USE_VALVE
947
802
  void APIServerConnection::on_valve_command_request(const ValveCommandRequest &msg) {
948
- if (!this->is_connection_setup()) {
949
- this->on_no_setup_connection();
950
- return;
951
- }
952
- if (!this->is_authenticated()) {
953
- this->on_unauthenticated_access();
954
- return;
803
+ if (this->check_authenticated_()) {
804
+ this->valve_command(msg);
955
805
  }
956
- this->valve_command(msg);
957
806
  }
958
807
  #endif
959
808
  #ifdef USE_BLUETOOTH_PROXY
960
809
  void APIServerConnection::on_subscribe_bluetooth_le_advertisements_request(
961
810
  const SubscribeBluetoothLEAdvertisementsRequest &msg) {
962
- if (!this->is_connection_setup()) {
963
- this->on_no_setup_connection();
964
- return;
811
+ if (this->check_authenticated_()) {
812
+ this->subscribe_bluetooth_le_advertisements(msg);
965
813
  }
966
- if (!this->is_authenticated()) {
967
- this->on_unauthenticated_access();
968
- return;
969
- }
970
- this->subscribe_bluetooth_le_advertisements(msg);
971
814
  }
972
815
  #endif
973
816
  #ifdef USE_BLUETOOTH_PROXY
974
817
  void APIServerConnection::on_bluetooth_device_request(const BluetoothDeviceRequest &msg) {
975
- if (!this->is_connection_setup()) {
976
- this->on_no_setup_connection();
977
- return;
978
- }
979
- if (!this->is_authenticated()) {
980
- this->on_unauthenticated_access();
981
- return;
818
+ if (this->check_authenticated_()) {
819
+ this->bluetooth_device_request(msg);
982
820
  }
983
- this->bluetooth_device_request(msg);
984
821
  }
985
822
  #endif
986
823
  #ifdef USE_BLUETOOTH_PROXY
987
824
  void APIServerConnection::on_bluetooth_gatt_get_services_request(const BluetoothGATTGetServicesRequest &msg) {
988
- if (!this->is_connection_setup()) {
989
- this->on_no_setup_connection();
990
- return;
991
- }
992
- if (!this->is_authenticated()) {
993
- this->on_unauthenticated_access();
994
- return;
825
+ if (this->check_authenticated_()) {
826
+ this->bluetooth_gatt_get_services(msg);
995
827
  }
996
- this->bluetooth_gatt_get_services(msg);
997
828
  }
998
829
  #endif
999
830
  #ifdef USE_BLUETOOTH_PROXY
1000
831
  void APIServerConnection::on_bluetooth_gatt_read_request(const BluetoothGATTReadRequest &msg) {
1001
- if (!this->is_connection_setup()) {
1002
- this->on_no_setup_connection();
1003
- return;
832
+ if (this->check_authenticated_()) {
833
+ this->bluetooth_gatt_read(msg);
1004
834
  }
1005
- if (!this->is_authenticated()) {
1006
- this->on_unauthenticated_access();
1007
- return;
1008
- }
1009
- this->bluetooth_gatt_read(msg);
1010
835
  }
1011
836
  #endif
1012
837
  #ifdef USE_BLUETOOTH_PROXY
1013
838
  void APIServerConnection::on_bluetooth_gatt_write_request(const BluetoothGATTWriteRequest &msg) {
1014
- if (!this->is_connection_setup()) {
1015
- this->on_no_setup_connection();
1016
- return;
1017
- }
1018
- if (!this->is_authenticated()) {
1019
- this->on_unauthenticated_access();
1020
- return;
839
+ if (this->check_authenticated_()) {
840
+ this->bluetooth_gatt_write(msg);
1021
841
  }
1022
- this->bluetooth_gatt_write(msg);
1023
842
  }
1024
843
  #endif
1025
844
  #ifdef USE_BLUETOOTH_PROXY
1026
845
  void APIServerConnection::on_bluetooth_gatt_read_descriptor_request(const BluetoothGATTReadDescriptorRequest &msg) {
1027
- if (!this->is_connection_setup()) {
1028
- this->on_no_setup_connection();
1029
- return;
846
+ if (this->check_authenticated_()) {
847
+ this->bluetooth_gatt_read_descriptor(msg);
1030
848
  }
1031
- if (!this->is_authenticated()) {
1032
- this->on_unauthenticated_access();
1033
- return;
1034
- }
1035
- this->bluetooth_gatt_read_descriptor(msg);
1036
849
  }
1037
850
  #endif
1038
851
  #ifdef USE_BLUETOOTH_PROXY
1039
852
  void APIServerConnection::on_bluetooth_gatt_write_descriptor_request(const BluetoothGATTWriteDescriptorRequest &msg) {
1040
- if (!this->is_connection_setup()) {
1041
- this->on_no_setup_connection();
1042
- return;
1043
- }
1044
- if (!this->is_authenticated()) {
1045
- this->on_unauthenticated_access();
1046
- return;
853
+ if (this->check_authenticated_()) {
854
+ this->bluetooth_gatt_write_descriptor(msg);
1047
855
  }
1048
- this->bluetooth_gatt_write_descriptor(msg);
1049
856
  }
1050
857
  #endif
1051
858
  #ifdef USE_BLUETOOTH_PROXY
1052
859
  void APIServerConnection::on_bluetooth_gatt_notify_request(const BluetoothGATTNotifyRequest &msg) {
1053
- if (!this->is_connection_setup()) {
1054
- this->on_no_setup_connection();
1055
- return;
860
+ if (this->check_authenticated_()) {
861
+ this->bluetooth_gatt_notify(msg);
1056
862
  }
1057
- if (!this->is_authenticated()) {
1058
- this->on_unauthenticated_access();
1059
- return;
1060
- }
1061
- this->bluetooth_gatt_notify(msg);
1062
863
  }
1063
864
  #endif
1064
865
  #ifdef USE_BLUETOOTH_PROXY
1065
866
  void APIServerConnection::on_subscribe_bluetooth_connections_free_request(
1066
867
  const SubscribeBluetoothConnectionsFreeRequest &msg) {
1067
- if (!this->is_connection_setup()) {
1068
- this->on_no_setup_connection();
1069
- return;
1070
- }
1071
- if (!this->is_authenticated()) {
1072
- this->on_unauthenticated_access();
1073
- return;
1074
- }
1075
- BluetoothConnectionsFreeResponse ret = this->subscribe_bluetooth_connections_free(msg);
1076
- if (!this->send_message(ret)) {
1077
- this->on_fatal_error();
868
+ if (this->check_authenticated_()) {
869
+ BluetoothConnectionsFreeResponse ret = this->subscribe_bluetooth_connections_free(msg);
870
+ if (!this->send_message(ret)) {
871
+ this->on_fatal_error();
872
+ }
1078
873
  }
1079
874
  }
1080
875
  #endif
1081
876
  #ifdef USE_BLUETOOTH_PROXY
1082
877
  void APIServerConnection::on_unsubscribe_bluetooth_le_advertisements_request(
1083
878
  const UnsubscribeBluetoothLEAdvertisementsRequest &msg) {
1084
- if (!this->is_connection_setup()) {
1085
- this->on_no_setup_connection();
1086
- return;
1087
- }
1088
- if (!this->is_authenticated()) {
1089
- this->on_unauthenticated_access();
1090
- return;
879
+ if (this->check_authenticated_()) {
880
+ this->unsubscribe_bluetooth_le_advertisements(msg);
1091
881
  }
1092
- this->unsubscribe_bluetooth_le_advertisements(msg);
1093
882
  }
1094
883
  #endif
1095
884
  #ifdef USE_BLUETOOTH_PROXY
1096
885
  void APIServerConnection::on_bluetooth_scanner_set_mode_request(const BluetoothScannerSetModeRequest &msg) {
1097
- if (!this->is_connection_setup()) {
1098
- this->on_no_setup_connection();
1099
- return;
886
+ if (this->check_authenticated_()) {
887
+ this->bluetooth_scanner_set_mode(msg);
1100
888
  }
1101
- if (!this->is_authenticated()) {
1102
- this->on_unauthenticated_access();
1103
- return;
1104
- }
1105
- this->bluetooth_scanner_set_mode(msg);
1106
889
  }
1107
890
  #endif
1108
891
  #ifdef USE_VOICE_ASSISTANT
1109
892
  void APIServerConnection::on_subscribe_voice_assistant_request(const SubscribeVoiceAssistantRequest &msg) {
1110
- if (!this->is_connection_setup()) {
1111
- this->on_no_setup_connection();
1112
- return;
1113
- }
1114
- if (!this->is_authenticated()) {
1115
- this->on_unauthenticated_access();
1116
- return;
893
+ if (this->check_authenticated_()) {
894
+ this->subscribe_voice_assistant(msg);
1117
895
  }
1118
- this->subscribe_voice_assistant(msg);
1119
896
  }
1120
897
  #endif
1121
898
  #ifdef USE_VOICE_ASSISTANT
1122
899
  void APIServerConnection::on_voice_assistant_configuration_request(const VoiceAssistantConfigurationRequest &msg) {
1123
- if (!this->is_connection_setup()) {
1124
- this->on_no_setup_connection();
1125
- return;
1126
- }
1127
- if (!this->is_authenticated()) {
1128
- this->on_unauthenticated_access();
1129
- return;
1130
- }
1131
- VoiceAssistantConfigurationResponse ret = this->voice_assistant_get_configuration(msg);
1132
- if (!this->send_message(ret)) {
1133
- this->on_fatal_error();
900
+ if (this->check_authenticated_()) {
901
+ VoiceAssistantConfigurationResponse ret = this->voice_assistant_get_configuration(msg);
902
+ if (!this->send_message(ret)) {
903
+ this->on_fatal_error();
904
+ }
1134
905
  }
1135
906
  }
1136
907
  #endif
1137
908
  #ifdef USE_VOICE_ASSISTANT
1138
909
  void APIServerConnection::on_voice_assistant_set_configuration(const VoiceAssistantSetConfiguration &msg) {
1139
- if (!this->is_connection_setup()) {
1140
- this->on_no_setup_connection();
1141
- return;
1142
- }
1143
- if (!this->is_authenticated()) {
1144
- this->on_unauthenticated_access();
1145
- return;
910
+ if (this->check_authenticated_()) {
911
+ this->voice_assistant_set_configuration(msg);
1146
912
  }
1147
- this->voice_assistant_set_configuration(msg);
1148
913
  }
1149
914
  #endif
1150
915
  #ifdef USE_ALARM_CONTROL_PANEL
1151
916
  void APIServerConnection::on_alarm_control_panel_command_request(const AlarmControlPanelCommandRequest &msg) {
1152
- if (!this->is_connection_setup()) {
1153
- this->on_no_setup_connection();
1154
- return;
1155
- }
1156
- if (!this->is_authenticated()) {
1157
- this->on_unauthenticated_access();
1158
- return;
917
+ if (this->check_authenticated_()) {
918
+ this->alarm_control_panel_command(msg);
1159
919
  }
1160
- this->alarm_control_panel_command(msg);
1161
920
  }
1162
921
  #endif
1163
922