esphome 2025.4.2__py3-none-any.whl → 2025.5.0b3__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 (440) hide show
  1. esphome/__main__.py +16 -14
  2. esphome/components/ac_dimmer/ac_dimmer.cpp +3 -2
  3. esphome/components/adc/__init__.py +51 -34
  4. esphome/components/airthings_wave_base/__init__.py +1 -1
  5. esphome/components/alarm_control_panel/__init__.py +37 -2
  6. esphome/components/am43/cover/__init__.py +4 -5
  7. esphome/components/analog_threshold/analog_threshold_binary_sensor.cpp +6 -4
  8. esphome/components/analog_threshold/analog_threshold_binary_sensor.h +4 -5
  9. esphome/components/analog_threshold/binary_sensor.py +10 -8
  10. esphome/components/anova/climate.py +4 -5
  11. esphome/components/api/__init__.py +25 -8
  12. esphome/components/api/api_connection.cpp +81 -13
  13. esphome/components/api/api_connection.h +13 -1
  14. esphome/components/api/api_frame_helper.cpp +232 -177
  15. esphome/components/api/api_frame_helper.h +61 -8
  16. esphome/components/api/api_noise_context.h +13 -4
  17. esphome/components/api/api_pb2.cpp +1422 -1
  18. esphome/components/api/api_pb2.h +255 -1
  19. esphome/components/api/api_pb2_service.cpp +162 -49
  20. esphome/components/api/api_pb2_service.h +90 -51
  21. esphome/components/api/api_pb2_size.h +361 -0
  22. esphome/components/api/api_server.cpp +110 -34
  23. esphome/components/api/api_server.h +8 -0
  24. esphome/components/api/proto.h +86 -17
  25. esphome/components/as7341/as7341.h +1 -1
  26. esphome/components/atm90e32/__init__.py +1 -0
  27. esphome/components/atm90e32/atm90e32.cpp +576 -199
  28. esphome/components/atm90e32/atm90e32.h +128 -31
  29. esphome/components/atm90e32/atm90e32_reg.h +4 -2
  30. esphome/components/atm90e32/button/__init__.py +62 -10
  31. esphome/components/atm90e32/button/atm90e32_button.cpp +63 -4
  32. esphome/components/atm90e32/button/atm90e32_button.h +36 -4
  33. esphome/components/atm90e32/number/__init__.py +130 -0
  34. esphome/components/atm90e32/number/atm90e32_number.h +16 -0
  35. esphome/components/atm90e32/sensor.py +21 -4
  36. esphome/components/atm90e32/text_sensor/__init__.py +48 -0
  37. esphome/components/audio/__init__.py +96 -49
  38. esphome/components/audio/audio.h +48 -0
  39. esphome/components/audio/audio_decoder.cpp +1 -1
  40. esphome/components/audio/audio_resampler.cpp +2 -0
  41. esphome/components/audio/audio_resampler.h +1 -0
  42. esphome/components/ballu/climate.py +2 -9
  43. esphome/components/bang_bang/climate.py +5 -6
  44. esphome/components/bedjet/bedjet_hub.cpp +1 -0
  45. esphome/components/bedjet/climate/__init__.py +3 -8
  46. esphome/components/bedjet/fan/__init__.py +2 -11
  47. esphome/components/binary/fan/__init__.py +13 -16
  48. esphome/components/binary_sensor/__init__.py +13 -10
  49. esphome/components/bl0906/constants.h +16 -16
  50. esphome/components/ble_client/text_sensor/__init__.py +3 -5
  51. esphome/components/bluetooth_proxy/bluetooth_connection.cpp +4 -6
  52. esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +136 -21
  53. esphome/components/bluetooth_proxy/bluetooth_proxy.h +7 -0
  54. esphome/components/button/__init__.py +11 -8
  55. esphome/components/canbus/canbus.cpp +3 -0
  56. esphome/components/canbus/canbus.h +16 -0
  57. esphome/components/ccs811/sensor.py +9 -6
  58. esphome/components/climate/__init__.py +35 -2
  59. esphome/components/climate/climate_mode.h +1 -1
  60. esphome/components/climate/climate_traits.h +63 -57
  61. esphome/components/climate_ir/__init__.py +57 -17
  62. esphome/components/climate_ir_lg/climate.py +2 -5
  63. esphome/components/climate_ir_lg/climate_ir_lg.cpp +7 -7
  64. esphome/components/climate_ir_lg/climate_ir_lg.h +1 -1
  65. esphome/components/color/__init__.py +2 -0
  66. esphome/components/const/__init__.py +5 -0
  67. esphome/components/coolix/climate.py +2 -9
  68. esphome/components/copy/cover/__init__.py +10 -9
  69. esphome/components/copy/fan/__init__.py +11 -9
  70. esphome/components/copy/lock/__init__.py +11 -9
  71. esphome/components/copy/text/__init__.py +9 -6
  72. esphome/components/cover/__init__.py +37 -2
  73. esphome/components/cse7766/cse7766.cpp +2 -1
  74. esphome/components/cst226/binary_sensor/__init__.py +28 -0
  75. esphome/components/cst226/binary_sensor/cs226_button.h +22 -0
  76. esphome/components/cst226/binary_sensor/cstt6_button.cpp +19 -0
  77. esphome/components/cst226/touchscreen/cst226_touchscreen.cpp +27 -5
  78. esphome/components/cst226/touchscreen/cst226_touchscreen.h +10 -10
  79. esphome/components/current_based/cover.py +37 -36
  80. esphome/components/current_based/current_based_cover.cpp +2 -1
  81. esphome/components/daikin/climate.py +2 -9
  82. esphome/components/daikin/daikin.cpp +15 -9
  83. esphome/components/daikin/daikin.h +5 -5
  84. esphome/components/daikin_arc/climate.py +2 -7
  85. esphome/components/daikin_brc/climate.py +3 -5
  86. esphome/components/dallas_temp/dallas_temp.cpp +17 -24
  87. esphome/components/dallas_temp/dallas_temp.h +0 -1
  88. esphome/components/daly_bms/daly_bms.cpp +2 -1
  89. esphome/components/debug/debug_component.cpp +6 -1
  90. esphome/components/debug/debug_component.h +6 -0
  91. esphome/components/debug/debug_esp32.cpp +109 -254
  92. esphome/components/debug/sensor.py +14 -0
  93. esphome/components/deep_sleep/deep_sleep_esp32.cpp +13 -1
  94. esphome/components/delonghi/climate.py +2 -9
  95. esphome/components/demo/__init__.py +18 -20
  96. esphome/components/dfrobot_sen0395/switch/__init__.py +21 -22
  97. esphome/components/dps310/sensor.py +6 -6
  98. esphome/components/ee895/sensor.py +9 -9
  99. esphome/components/emmeti/climate.py +2 -9
  100. esphome/components/endstop/cover.py +17 -16
  101. esphome/components/endstop/endstop_cover.cpp +2 -1
  102. esphome/components/ens160_base/__init__.py +12 -9
  103. esphome/components/esp32/__init__.py +60 -3
  104. esphome/components/esp32/core.cpp +11 -5
  105. esphome/components/esp32/gpio.cpp +86 -24
  106. esphome/components/esp32/gpio.py +15 -16
  107. esphome/components/esp32/gpio_esp32.py +1 -2
  108. esphome/components/esp32/gpio_esp32_c2.py +1 -1
  109. esphome/components/esp32/gpio_esp32_c3.py +1 -1
  110. esphome/components/esp32/gpio_esp32_c6.py +1 -1
  111. esphome/components/esp32/gpio_esp32_h2.py +1 -1
  112. esphome/components/esp32_ble/ble.cpp +1 -0
  113. esphome/components/esp32_ble/ble.h +5 -3
  114. esphome/components/esp32_ble/ble_advertising.cpp +2 -1
  115. esphome/components/esp32_ble/ble_advertising.h +1 -0
  116. esphome/components/esp32_ble_server/__init__.py +3 -0
  117. esphome/components/esp32_ble_tracker/__init__.py +7 -1
  118. esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +192 -118
  119. esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +29 -3
  120. esphome/components/esp32_camera/esp32_camera.cpp +2 -1
  121. esphome/components/esp32_camera/esp32_camera.h +1 -1
  122. esphome/components/esp32_can/esp32_can.cpp +1 -1
  123. esphome/components/esp32_improv/esp32_improv_component.cpp +1 -1
  124. esphome/components/esp32_rmt_led_strip/led_strip.cpp +1 -1
  125. esphome/components/esp32_rmt_led_strip/led_strip.h +7 -5
  126. esphome/components/esp32_rmt_led_strip/light.py +9 -1
  127. esphome/components/esp32_touch/esp32_touch.cpp +1 -1
  128. esphome/components/esp8266/gpio.cpp +69 -8
  129. esphome/components/ethernet/ethernet_component.cpp +1 -1
  130. esphome/components/event/__init__.py +13 -10
  131. esphome/components/factory_reset/switch/__init__.py +7 -21
  132. esphome/components/fan/__init__.py +52 -5
  133. esphome/components/fastled_base/__init__.py +1 -4
  134. esphome/components/fastled_base/fastled_light.cpp +1 -1
  135. esphome/components/feedback/cover.py +38 -33
  136. esphome/components/feedback/feedback_cover.cpp +2 -1
  137. esphome/components/fujitsu_general/climate.py +2 -9
  138. esphome/components/gcja5/gcja5.cpp +2 -1
  139. esphome/components/gpio/one_wire/gpio_one_wire.cpp +45 -43
  140. esphome/components/gpio/one_wire/gpio_one_wire.h +2 -1
  141. esphome/components/gpio_expander/cached_gpio.h +22 -7
  142. esphome/components/gps/__init__.py +47 -17
  143. esphome/components/gps/gps.cpp +42 -23
  144. esphome/components/gps/gps.h +17 -13
  145. esphome/components/graph/__init__.py +1 -2
  146. esphome/components/gree/climate.py +4 -6
  147. esphome/components/gree/gree.cpp +16 -2
  148. esphome/components/gree/gree.h +2 -2
  149. esphome/components/growatt_solar/growatt_solar.cpp +2 -1
  150. esphome/components/haier/climate.py +37 -34
  151. esphome/components/hbridge/fan/__init__.py +19 -17
  152. esphome/components/he60r/cover.py +4 -5
  153. esphome/components/heatpumpir/climate.py +3 -6
  154. esphome/components/hitachi_ac344/climate.py +2 -9
  155. esphome/components/hitachi_ac424/climate.py +2 -9
  156. esphome/components/hm3301/hm3301.h +1 -1
  157. esphome/components/hte501/sensor.py +6 -6
  158. esphome/components/http_request/__init__.py +39 -6
  159. esphome/components/http_request/http_request.cpp +20 -0
  160. esphome/components/http_request/http_request.h +57 -15
  161. esphome/components/http_request/http_request_arduino.cpp +22 -6
  162. esphome/components/http_request/http_request_arduino.h +4 -3
  163. esphome/components/http_request/http_request_host.cpp +141 -0
  164. esphome/components/http_request/http_request_host.h +37 -0
  165. esphome/components/http_request/http_request_idf.cpp +35 -3
  166. esphome/components/http_request/http_request_idf.h +10 -3
  167. esphome/components/http_request/httplib.h +9691 -0
  168. esphome/components/http_request/update/__init__.py +11 -8
  169. esphome/components/hyt271/sensor.py +6 -6
  170. esphome/components/i2c/i2c.h +4 -0
  171. esphome/components/i2c/i2c_bus_esp_idf.cpp +1 -1
  172. esphome/components/i2s_audio/__init__.py +131 -22
  173. esphome/components/i2s_audio/i2s_audio.h +44 -4
  174. esphome/components/i2s_audio/media_player/__init__.py +19 -9
  175. esphome/components/i2s_audio/microphone/__init__.py +63 -5
  176. esphome/components/i2s_audio/microphone/i2s_audio_microphone.cpp +351 -61
  177. esphome/components/i2s_audio/microphone/i2s_audio_microphone.h +40 -6
  178. esphome/components/i2s_audio/speaker/__init__.py +31 -5
  179. esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +155 -19
  180. esphome/components/i2s_audio/speaker/i2s_audio_speaker.h +17 -4
  181. esphome/components/ili9xxx/ili9xxx_init.h +1 -1
  182. esphome/components/image/__init__.py +37 -17
  183. esphome/components/image/image.cpp +25 -8
  184. esphome/components/internal_temperature/internal_temperature.cpp +6 -4
  185. esphome/components/key_collector/__init__.py +35 -0
  186. esphome/components/key_collector/key_collector.cpp +8 -0
  187. esphome/components/key_collector/key_collector.h +10 -0
  188. esphome/components/kuntze/kuntze.cpp +2 -1
  189. esphome/components/ld2410/ld2410.h +1 -1
  190. esphome/components/ld2450/ld2450.h +1 -1
  191. esphome/components/light/__init__.py +57 -0
  192. esphome/components/lock/__init__.py +51 -4
  193. esphome/components/lock/automation.h +2 -13
  194. esphome/components/logger/__init__.py +22 -0
  195. esphome/components/logger/logger.cpp +154 -103
  196. esphome/components/logger/logger.h +211 -36
  197. esphome/components/logger/task_log_buffer.cpp +138 -0
  198. esphome/components/logger/task_log_buffer.h +69 -0
  199. esphome/components/lvgl/__init__.py +13 -5
  200. esphome/components/lvgl/automation.py +50 -1
  201. esphome/components/lvgl/defines.py +0 -1
  202. esphome/components/lvgl/lvgl_esphome.cpp +5 -1
  203. esphome/components/lvgl/text/__init__.py +1 -2
  204. esphome/components/mapping/__init__.py +134 -0
  205. esphome/components/matrix_keypad/matrix_keypad.cpp +2 -1
  206. esphome/components/max7219digit/max7219digit.cpp +28 -27
  207. esphome/components/mdns/__init__.py +11 -5
  208. esphome/components/mdns/mdns_component.cpp +11 -5
  209. esphome/components/mdns/mdns_component.h +3 -2
  210. esphome/components/mdns/mdns_esp32.cpp +4 -3
  211. esphome/components/mdns/mdns_esp8266.cpp +4 -2
  212. esphome/components/mdns/mdns_libretiny.cpp +4 -2
  213. esphome/components/mdns/mdns_rp2040.cpp +4 -2
  214. esphome/components/media_player/__init__.py +33 -1
  215. esphome/components/mhz19/sensor.py +11 -7
  216. esphome/components/micro_wake_word/__init__.py +99 -31
  217. esphome/components/micro_wake_word/automation.h +54 -0
  218. esphome/components/micro_wake_word/micro_wake_word.cpp +331 -319
  219. esphome/components/micro_wake_word/micro_wake_word.h +58 -105
  220. esphome/components/micro_wake_word/preprocessor_settings.h +19 -2
  221. esphome/components/micro_wake_word/streaming_model.cpp +158 -41
  222. esphome/components/micro_wake_word/streaming_model.h +85 -13
  223. esphome/components/microphone/__init__.py +139 -9
  224. esphome/components/microphone/automation.h +14 -2
  225. esphome/components/microphone/microphone.cpp +21 -0
  226. esphome/components/microphone/microphone.h +14 -5
  227. esphome/components/microphone/microphone_source.cpp +95 -0
  228. esphome/components/microphone/microphone_source.h +80 -0
  229. esphome/components/mics_4514/sensor.py +25 -14
  230. esphome/components/midea/climate.py +3 -4
  231. esphome/components/midea_ir/climate.py +3 -5
  232. esphome/components/mipi_spi/__init__.py +15 -0
  233. esphome/components/mipi_spi/display.py +474 -0
  234. esphome/components/mipi_spi/mipi_spi.cpp +481 -0
  235. esphome/components/mipi_spi/mipi_spi.h +171 -0
  236. esphome/components/mipi_spi/models/__init__.py +65 -0
  237. esphome/components/mipi_spi/models/amoled.py +72 -0
  238. esphome/components/mipi_spi/models/commands.py +82 -0
  239. esphome/components/mipi_spi/models/cyd.py +10 -0
  240. esphome/components/mipi_spi/models/ili.py +749 -0
  241. esphome/components/mipi_spi/models/jc.py +260 -0
  242. esphome/components/mipi_spi/models/lanbon.py +15 -0
  243. esphome/components/mipi_spi/models/lilygo.py +60 -0
  244. esphome/components/mipi_spi/models/waveshare.py +139 -0
  245. esphome/components/mitsubishi/climate.py +2 -5
  246. esphome/components/mitsubishi/mitsubishi.cpp +9 -9
  247. esphome/components/mixer/speaker/mixer_speaker.cpp +12 -22
  248. esphome/components/mixer/speaker/mixer_speaker.h +1 -3
  249. esphome/components/mlx90393/sensor.py +5 -0
  250. esphome/components/mlx90393/sensor_mlx90393.cpp +195 -13
  251. esphome/components/mlx90393/sensor_mlx90393.h +21 -4
  252. esphome/components/modbus/modbus.cpp +2 -1
  253. esphome/components/mqtt/__init__.py +1 -1
  254. esphome/components/mqtt/mqtt_client.cpp +6 -2
  255. esphome/components/mqtt/mqtt_const.h +4 -0
  256. esphome/components/mqtt/mqtt_fan.cpp +39 -0
  257. esphome/components/mqtt/mqtt_fan.h +2 -0
  258. esphome/components/ms5611/sensor.py +6 -6
  259. esphome/components/ms8607/sensor.py +3 -3
  260. esphome/components/network/__init__.py +1 -1
  261. esphome/components/nextion/base_component.py +17 -16
  262. esphome/components/nextion/display.py +11 -2
  263. esphome/components/nextion/nextion.cpp +39 -1
  264. esphome/components/nextion/nextion.h +50 -0
  265. esphome/components/noblex/climate.py +2 -9
  266. esphome/components/number/__init__.py +12 -9
  267. esphome/components/one_wire/one_wire_bus.cpp +14 -10
  268. esphome/components/one_wire/one_wire_bus.h +14 -8
  269. esphome/components/online_image/bmp_image.cpp +48 -11
  270. esphome/components/online_image/bmp_image.h +2 -0
  271. esphome/components/opentherm/binary_sensor/__init__.py +2 -4
  272. esphome/components/opentherm/number/__init__.py +11 -20
  273. esphome/components/opentherm/sensor/__init__.py +3 -3
  274. esphome/components/opentherm/switch/__init__.py +3 -5
  275. esphome/components/output/lock/__init__.py +11 -9
  276. esphome/components/packages/__init__.py +33 -31
  277. esphome/components/packet_transport/__init__.py +201 -0
  278. esphome/components/packet_transport/binary_sensor.py +19 -0
  279. esphome/components/packet_transport/packet_transport.cpp +534 -0
  280. esphome/components/packet_transport/packet_transport.h +154 -0
  281. esphome/components/packet_transport/sensor.py +19 -0
  282. esphome/components/pca9685/pca9685_output.cpp +2 -1
  283. esphome/components/pid/climate.py +2 -4
  284. esphome/components/pm2005/__init__.py +1 -0
  285. esphome/components/pm2005/pm2005.cpp +123 -0
  286. esphome/components/pm2005/pm2005.h +46 -0
  287. esphome/components/pm2005/sensor.py +86 -0
  288. esphome/components/pmsa003i/pmsa003i.cpp +43 -16
  289. esphome/components/pmsa003i/pmsa003i.h +25 -25
  290. esphome/components/pmsx003/pmsx003.cpp +195 -230
  291. esphome/components/pmsx003/pmsx003.h +51 -33
  292. esphome/components/pmsx003/sensor.py +21 -11
  293. esphome/components/pn7150/pn7150.h +2 -2
  294. esphome/components/pn7160/pn7160.h +2 -2
  295. esphome/components/prometheus/prometheus_handler.cpp +174 -0
  296. esphome/components/prometheus/prometheus_handler.h +17 -0
  297. esphome/components/psram/__init__.py +7 -5
  298. esphome/components/pulse_meter/pulse_meter_sensor.cpp +32 -12
  299. esphome/components/pulse_meter/pulse_meter_sensor.h +5 -5
  300. esphome/components/pzem004t/pzem004t.cpp +2 -1
  301. esphome/components/qspi_dbi/__init__.py +0 -1
  302. esphome/components/qspi_dbi/display.py +2 -1
  303. esphome/components/qspi_dbi/models.py +1 -2
  304. esphome/components/remote_base/__init__.py +91 -0
  305. esphome/components/remote_base/beo4_protocol.cpp +153 -0
  306. esphome/components/remote_base/beo4_protocol.h +43 -0
  307. esphome/components/remote_base/gobox_protocol.cpp +131 -0
  308. esphome/components/remote_base/gobox_protocol.h +54 -0
  309. esphome/components/remote_receiver/remote_receiver_esp32.cpp +16 -9
  310. esphome/components/resampler/speaker/resampler_speaker.cpp +12 -10
  311. esphome/components/resampler/speaker/resampler_speaker.h +1 -1
  312. esphome/components/rf_bridge/rf_bridge.cpp +2 -1
  313. esphome/components/scd30/sensor.py +2 -3
  314. esphome/components/scd4x/sensor.py +4 -5
  315. esphome/components/sdp3x/sensor.py +2 -1
  316. esphome/components/sds011/sds011.cpp +2 -1
  317. esphome/components/select/__init__.py +19 -20
  318. esphome/components/sen5x/sen5x.cpp +55 -36
  319. esphome/components/sen5x/sensor.py +1 -1
  320. esphome/components/senseair/sensor.py +3 -3
  321. esphome/components/sensor/__init__.py +158 -14
  322. esphome/components/sensor/filter.cpp +23 -0
  323. esphome/components/sensor/filter.h +22 -0
  324. esphome/components/sgp30/sensor.py +14 -16
  325. esphome/components/sgp4x/sensor.py +1 -1
  326. esphome/components/sht4x/sht4x.cpp +43 -22
  327. esphome/components/sht4x/sht4x.h +1 -1
  328. esphome/components/shtcx/sensor.py +6 -6
  329. esphome/components/slow_pwm/slow_pwm_output.cpp +2 -1
  330. esphome/components/sml/text_sensor/__init__.py +4 -6
  331. esphome/components/sound_level/__init__.py +0 -0
  332. esphome/components/sound_level/sensor.py +97 -0
  333. esphome/components/sound_level/sound_level.cpp +194 -0
  334. esphome/components/sound_level/sound_level.h +73 -0
  335. esphome/components/speaker/media_player/__init__.py +4 -8
  336. esphome/components/speaker/media_player/speaker_media_player.cpp +0 -18
  337. esphome/components/speaker/media_player/speaker_media_player.h +0 -11
  338. esphome/components/speaker/speaker.h +4 -7
  339. esphome/components/speed/fan/__init__.py +17 -16
  340. esphome/components/spi/spi.h +11 -1
  341. esphome/components/sprinkler/__init__.py +18 -19
  342. esphome/components/sprinkler/sprinkler.cpp +6 -5
  343. esphome/components/switch/__init__.py +32 -42
  344. esphome/components/syslog/__init__.py +41 -0
  345. esphome/components/syslog/esphome_syslog.cpp +49 -0
  346. esphome/components/syslog/esphome_syslog.h +27 -0
  347. esphome/components/t6615/sensor.py +3 -3
  348. esphome/components/t6615/t6615.cpp +2 -1
  349. esphome/components/tca9555/tca9555.cpp +11 -6
  350. esphome/components/tcl112/climate.py +2 -9
  351. esphome/components/template/alarm_control_panel/__init__.py +7 -6
  352. esphome/components/template/alarm_control_panel/template_alarm_control_panel.cpp +21 -17
  353. esphome/components/template/alarm_control_panel/template_alarm_control_panel.h +2 -1
  354. esphome/components/template/cover/__init__.py +27 -21
  355. esphome/components/template/fan/__init__.py +14 -12
  356. esphome/components/template/lock/__init__.py +20 -25
  357. esphome/components/template/lock/automation.h +18 -0
  358. esphome/components/template/text/__init__.py +4 -3
  359. esphome/components/template/valve/__init__.py +32 -21
  360. esphome/components/template/valve/automation.h +24 -0
  361. esphome/components/text/__init__.py +32 -1
  362. esphome/components/text_sensor/__init__.py +24 -29
  363. esphome/components/thermostat/climate.py +5 -5
  364. esphome/components/time_based/cover.py +17 -16
  365. esphome/components/time_based/time_based_cover.cpp +2 -1
  366. esphome/components/tm1638/switch/__init__.py +10 -7
  367. esphome/components/tormatic/cover.py +4 -5
  368. esphome/components/toshiba/climate.py +3 -5
  369. esphome/components/touchscreen/touchscreen.cpp +3 -1
  370. esphome/components/tuya/climate/__init__.py +5 -6
  371. esphome/components/tuya/cover/__init__.py +6 -11
  372. esphome/components/tuya/select/__init__.py +15 -5
  373. esphome/components/tuya/select/tuya_select.cpp +6 -1
  374. esphome/components/tuya/select/tuya_select.h +5 -1
  375. esphome/components/uart/packet_transport/__init__.py +20 -0
  376. esphome/components/uart/packet_transport/uart_transport.cpp +88 -0
  377. esphome/components/uart/packet_transport/uart_transport.h +41 -0
  378. esphome/components/uart/switch/uart_switch.cpp +2 -1
  379. esphome/components/udp/__init__.py +126 -128
  380. esphome/components/udp/automation.h +40 -0
  381. esphome/components/udp/binary_sensor.py +3 -25
  382. esphome/components/udp/packet_transport/__init__.py +29 -0
  383. esphome/components/udp/packet_transport/udp_transport.cpp +36 -0
  384. esphome/components/udp/packet_transport/udp_transport.h +28 -0
  385. esphome/components/udp/sensor.py +3 -25
  386. esphome/components/udp/udp_component.cpp +26 -470
  387. esphome/components/udp/udp_component.h +21 -128
  388. esphome/components/update/__init__.py +31 -1
  389. esphome/components/uponor_smatrix/climate/__init__.py +4 -9
  390. esphome/components/uponor_smatrix/climate/uponor_smatrix_climate.cpp +2 -1
  391. esphome/components/uponor_smatrix/uponor_smatrix.cpp +2 -1
  392. esphome/components/uptime/text_sensor/__init__.py +47 -7
  393. esphome/components/uptime/text_sensor/uptime_text_sensor.cpp +12 -7
  394. esphome/components/uptime/text_sensor/uptime_text_sensor.h +19 -0
  395. esphome/components/valve/__init__.py +34 -3
  396. esphome/components/valve/automation.h +1 -19
  397. esphome/components/vl53l0x/sensor.py +11 -0
  398. esphome/components/vl53l0x/vl53l0x_sensor.cpp +5 -1
  399. esphome/components/vl53l0x/vl53l0x_sensor.h +2 -1
  400. esphome/components/voice_assistant/__init__.py +36 -10
  401. esphome/components/voice_assistant/voice_assistant.cpp +170 -144
  402. esphome/components/voice_assistant/voice_assistant.h +26 -25
  403. esphome/components/waveshare_epaper/display.py +6 -0
  404. esphome/components/waveshare_epaper/waveshare_epaper.cpp +439 -37
  405. esphome/components/waveshare_epaper/waveshare_epaper.h +60 -11
  406. esphome/components/whirlpool/climate.py +3 -5
  407. esphome/components/whynter/climate.py +3 -5
  408. esphome/components/xpt2046/touchscreen/xpt2046.cpp +1 -1
  409. esphome/components/yashima/climate.py +6 -6
  410. esphome/components/zhlt01/climate.py +2 -7
  411. esphome/config.py +13 -13
  412. esphome/config_validation.py +38 -58
  413. esphome/const.py +15 -1
  414. esphome/core/__init__.py +2 -0
  415. esphome/core/application.cpp +23 -10
  416. esphome/core/application.h +9 -1
  417. esphome/core/automation.h +4 -3
  418. esphome/core/component.cpp +28 -7
  419. esphome/core/component.h +10 -1
  420. esphome/core/defines.h +23 -17
  421. esphome/core/macros.h +4 -0
  422. esphome/core/scheduler.cpp +7 -1
  423. esphome/cpp_generator.py +6 -2
  424. esphome/dashboard/web_server.py +3 -3
  425. esphome/helpers.py +39 -0
  426. esphome/loader.py +4 -0
  427. esphome/log.py +15 -19
  428. esphome/mqtt.py +23 -10
  429. esphome/platformio_api.py +1 -1
  430. esphome/schema_extractors.py +0 -1
  431. esphome/voluptuous_schema.py +3 -1
  432. esphome/vscode.py +15 -0
  433. esphome/wizard.py +47 -37
  434. esphome/zeroconf.py +7 -3
  435. {esphome-2025.4.2.dist-info → esphome-2025.5.0b3.dist-info}/METADATA +10 -11
  436. {esphome-2025.4.2.dist-info → esphome-2025.5.0b3.dist-info}/RECORD +440 -380
  437. {esphome-2025.4.2.dist-info → esphome-2025.5.0b3.dist-info}/WHEEL +1 -1
  438. {esphome-2025.4.2.dist-info → esphome-2025.5.0b3.dist-info}/entry_points.txt +0 -0
  439. {esphome-2025.4.2.dist-info → esphome-2025.5.0b3.dist-info}/licenses/LICENSE +0 -0
  440. {esphome-2025.4.2.dist-info → esphome-2025.5.0b3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,749 @@
1
+ from esphome.components.spi import TYPE_OCTAL
2
+
3
+ from .. import MODE_RGB
4
+ from . import DriverChip, delay
5
+ from .commands import (
6
+ ADJCTL3,
7
+ CSCON,
8
+ DFUNCTR,
9
+ ETMOD,
10
+ FRMCTR1,
11
+ FRMCTR2,
12
+ FRMCTR3,
13
+ GAMMASET,
14
+ GMCTR,
15
+ GMCTRN1,
16
+ GMCTRP1,
17
+ IDMOFF,
18
+ IFCTR,
19
+ IFMODE,
20
+ INVCTR,
21
+ NORON,
22
+ PWCTR1,
23
+ PWCTR2,
24
+ PWCTR3,
25
+ PWCTR4,
26
+ PWCTR5,
27
+ PWSET,
28
+ PWSETN,
29
+ SETEXTC,
30
+ SWRESET,
31
+ VMCTR,
32
+ VMCTR1,
33
+ VMCTR2,
34
+ VSCRSADD,
35
+ )
36
+
37
+ DriverChip(
38
+ "M5CORE",
39
+ width=320,
40
+ height=240,
41
+ cs_pin=14,
42
+ dc_pin=27,
43
+ reset_pin=33,
44
+ initsequence=(
45
+ (SETEXTC, 0xFF, 0x93, 0x42),
46
+ (PWCTR1, 0x12, 0x12),
47
+ (PWCTR2, 0x03),
48
+ (VMCTR1, 0xF2),
49
+ (IFMODE, 0xE0),
50
+ (0xF6, 0x01, 0x00, 0x00),
51
+ (
52
+ GMCTRP1,
53
+ 0x00,
54
+ 0x0C,
55
+ 0x11,
56
+ 0x04,
57
+ 0x11,
58
+ 0x08,
59
+ 0x37,
60
+ 0x89,
61
+ 0x4C,
62
+ 0x06,
63
+ 0x0C,
64
+ 0x0A,
65
+ 0x2E,
66
+ 0x34,
67
+ 0x0F,
68
+ ),
69
+ (
70
+ GMCTRN1,
71
+ 0x00,
72
+ 0x0B,
73
+ 0x11,
74
+ 0x05,
75
+ 0x13,
76
+ 0x09,
77
+ 0x33,
78
+ 0x67,
79
+ 0x48,
80
+ 0x07,
81
+ 0x0E,
82
+ 0x0B,
83
+ 0x2E,
84
+ 0x33,
85
+ 0x0F,
86
+ ),
87
+ (DFUNCTR, 0x08, 0x82, 0x1D, 0x04),
88
+ (IDMOFF,),
89
+ ),
90
+ )
91
+ ILI9341 = DriverChip(
92
+ "ILI9341",
93
+ mirror_x=True,
94
+ width=240,
95
+ height=320,
96
+ initsequence=(
97
+ (0xEF, 0x03, 0x80, 0x02),
98
+ (0xCF, 0x00, 0xC1, 0x30),
99
+ (0xED, 0x64, 0x03, 0x12, 0x81),
100
+ (0xE8, 0x85, 0x00, 0x78),
101
+ (0xCB, 0x39, 0x2C, 0x00, 0x34, 0x02),
102
+ (0xF7, 0x20),
103
+ (0xEA, 0x00, 0x00),
104
+ (PWCTR1, 0x23),
105
+ (PWCTR2, 0x10),
106
+ (VMCTR1, 0x3E, 0x28),
107
+ (VMCTR2, 0x86),
108
+ (VSCRSADD, 0x00),
109
+ (FRMCTR1, 0x00, 0x18),
110
+ (DFUNCTR, 0x08, 0x82, 0x27),
111
+ (0xF2, 0x00),
112
+ (GAMMASET, 0x01),
113
+ (
114
+ GMCTRP1,
115
+ 0x0F,
116
+ 0x31,
117
+ 0x2B,
118
+ 0x0C,
119
+ 0x0E,
120
+ 0x08,
121
+ 0x4E,
122
+ 0xF1,
123
+ 0x37,
124
+ 0x07,
125
+ 0x10,
126
+ 0x03,
127
+ 0x0E,
128
+ 0x09,
129
+ 0x00,
130
+ ),
131
+ (
132
+ GMCTRN1,
133
+ 0x00,
134
+ 0x0E,
135
+ 0x14,
136
+ 0x03,
137
+ 0x11,
138
+ 0x07,
139
+ 0x31,
140
+ 0xC1,
141
+ 0x48,
142
+ 0x08,
143
+ 0x0F,
144
+ 0x0C,
145
+ 0x31,
146
+ 0x36,
147
+ 0x0F,
148
+ ),
149
+ ),
150
+ )
151
+ DriverChip(
152
+ "ILI9481",
153
+ mirror_x=True,
154
+ width=320,
155
+ height=480,
156
+ use_axis_flips=True,
157
+ initsequence=(
158
+ (PWSET, 0x07, 0x42, 0x18),
159
+ (VMCTR, 0x00, 0x07, 0x10),
160
+ (PWSETN, 0x01, 0x02),
161
+ (PWCTR1, 0x10, 0x3B, 0x00, 0x02, 0x11),
162
+ (VMCTR1, 0x03),
163
+ (IFCTR, 0x83),
164
+ (GMCTR, 0x32, 0x36, 0x45, 0x06, 0x16, 0x37, 0x75, 0x77, 0x54, 0x0C, 0x00),
165
+ ),
166
+ )
167
+ DriverChip(
168
+ "ILI9486",
169
+ mirror_x=True,
170
+ width=320,
171
+ height=480,
172
+ initsequence=(
173
+ (PWCTR3, 0x44),
174
+ (VMCTR1, 0x00, 0x00, 0x00, 0x00),
175
+ (
176
+ GMCTRP1,
177
+ 0x0F,
178
+ 0x1F,
179
+ 0x1C,
180
+ 0x0C,
181
+ 0x0F,
182
+ 0x08,
183
+ 0x48,
184
+ 0x98,
185
+ 0x37,
186
+ 0x0A,
187
+ 0x13,
188
+ 0x04,
189
+ 0x11,
190
+ 0x0D,
191
+ 0x00,
192
+ ),
193
+ (
194
+ GMCTRN1,
195
+ 0x0F,
196
+ 0x32,
197
+ 0x2E,
198
+ 0x0B,
199
+ 0x0D,
200
+ 0x05,
201
+ 0x47,
202
+ 0x75,
203
+ 0x37,
204
+ 0x06,
205
+ 0x10,
206
+ 0x03,
207
+ 0x24,
208
+ 0x20,
209
+ 0x00,
210
+ ),
211
+ ),
212
+ )
213
+ DriverChip(
214
+ "ILI9488",
215
+ width=320,
216
+ height=480,
217
+ pixel_mode="18bit",
218
+ initsequence=(
219
+ (
220
+ GMCTRP1,
221
+ 0x0F,
222
+ 0x24,
223
+ 0x1C,
224
+ 0x0A,
225
+ 0x0F,
226
+ 0x08,
227
+ 0x43,
228
+ 0x88,
229
+ 0x32,
230
+ 0x0F,
231
+ 0x10,
232
+ 0x06,
233
+ 0x0F,
234
+ 0x07,
235
+ 0x00,
236
+ ),
237
+ (
238
+ GMCTRN1,
239
+ 0x0F,
240
+ 0x38,
241
+ 0x30,
242
+ 0x09,
243
+ 0x0F,
244
+ 0x0F,
245
+ 0x4E,
246
+ 0x77,
247
+ 0x3C,
248
+ 0x07,
249
+ 0x10,
250
+ 0x05,
251
+ 0x23,
252
+ 0x1B,
253
+ 0x00,
254
+ ),
255
+ (PWCTR1, 0x17, 0x15),
256
+ (PWCTR2, 0x41),
257
+ (VMCTR1, 0x00, 0x12, 0x80),
258
+ (IFMODE, 0x00),
259
+ (FRMCTR1, 0xA0),
260
+ (INVCTR, 0x02),
261
+ (0xE9, 0x00),
262
+ (ADJCTL3, 0xA9, 0x51, 0x2C, 0x82),
263
+ ),
264
+ )
265
+ ILI9488_A = DriverChip(
266
+ "ILI9488_A",
267
+ width=320,
268
+ height=480,
269
+ invert_colors=False,
270
+ pixel_mode="18bit",
271
+ mirror_x=True,
272
+ initsequence=(
273
+ (
274
+ GMCTRP1,
275
+ 0x00,
276
+ 0x03,
277
+ 0x09,
278
+ 0x08,
279
+ 0x16,
280
+ 0x0A,
281
+ 0x3F,
282
+ 0x78,
283
+ 0x4C,
284
+ 0x09,
285
+ 0x0A,
286
+ 0x08,
287
+ 0x16,
288
+ 0x1A,
289
+ 0x0F,
290
+ ),
291
+ (
292
+ GMCTRN1,
293
+ 0x00,
294
+ 0x16,
295
+ 0x19,
296
+ 0x03,
297
+ 0x0F,
298
+ 0x05,
299
+ 0x32,
300
+ 0x45,
301
+ 0x46,
302
+ 0x04,
303
+ 0x0E,
304
+ 0x0D,
305
+ 0x35,
306
+ 0x37,
307
+ 0x0F,
308
+ ),
309
+ (PWCTR1, 0x17, 0x15),
310
+ (PWCTR2, 0x41),
311
+ (VMCTR1, 0x00, 0x12, 0x80),
312
+ (IFMODE, 0x00),
313
+ (FRMCTR1, 0xA0),
314
+ (INVCTR, 0x02),
315
+ (DFUNCTR, 0x02, 0x02),
316
+ (0xE9, 0x00),
317
+ (ADJCTL3, 0xA9, 0x51, 0x2C, 0x82),
318
+ ),
319
+ )
320
+ ST7796 = DriverChip(
321
+ "ST7796",
322
+ mirror_x=True,
323
+ width=320,
324
+ height=480,
325
+ initsequence=(
326
+ (SWRESET,),
327
+ (CSCON, 0xC3),
328
+ (CSCON, 0x96),
329
+ (VMCTR1, 0x1C),
330
+ (IFMODE, 0x80),
331
+ (INVCTR, 0x01),
332
+ (DFUNCTR, 0x80, 0x02, 0x3B),
333
+ (ETMOD, 0xC6),
334
+ (CSCON, 0x69),
335
+ (CSCON, 0x3C),
336
+ ),
337
+ )
338
+ DriverChip(
339
+ "S3BOX",
340
+ width=320,
341
+ height=240,
342
+ mirror_x=True,
343
+ mirror_y=True,
344
+ invert_colors=False,
345
+ data_rate="40MHz",
346
+ dc_pin=4,
347
+ cs_pin=5,
348
+ # reset_pin={CONF_INVERTED: True, CONF_NUMBER: 48},
349
+ initsequence=(
350
+ (0xEF, 0x03, 0x80, 0x02),
351
+ (0xCF, 0x00, 0xC1, 0x30),
352
+ (0xED, 0x64, 0x03, 0x12, 0x81),
353
+ (0xE8, 0x85, 0x00, 0x78),
354
+ (0xCB, 0x39, 0x2C, 0x00, 0x34, 0x02),
355
+ (0xF7, 0x20),
356
+ (0xEA, 0x00, 0x00),
357
+ (PWCTR1, 0x23),
358
+ (PWCTR2, 0x10),
359
+ (VMCTR1, 0x3E, 0x28),
360
+ (VMCTR2, 0x86),
361
+ (VSCRSADD, 0x00),
362
+ (FRMCTR1, 0x00, 0x18),
363
+ (DFUNCTR, 0x08, 0x82, 0x27),
364
+ (0xF2, 0x00),
365
+ (GAMMASET, 0x01),
366
+ (
367
+ GMCTRP1,
368
+ 0x0F,
369
+ 0x31,
370
+ 0x2B,
371
+ 0x0C,
372
+ 0x0E,
373
+ 0x08,
374
+ 0x4E,
375
+ 0xF1,
376
+ 0x37,
377
+ 0x07,
378
+ 0x10,
379
+ 0x03,
380
+ 0x0E,
381
+ 0x09,
382
+ 0x00,
383
+ ),
384
+ (
385
+ GMCTRN1,
386
+ 0x00,
387
+ 0x0E,
388
+ 0x14,
389
+ 0x03,
390
+ 0x11,
391
+ 0x07,
392
+ 0x31,
393
+ 0xC1,
394
+ 0x48,
395
+ 0x08,
396
+ 0x0F,
397
+ 0x0C,
398
+ 0x31,
399
+ 0x36,
400
+ 0x0F,
401
+ ),
402
+ ),
403
+ )
404
+ DriverChip(
405
+ "S3BOXLITE",
406
+ mirror_x=True,
407
+ color_order=MODE_RGB,
408
+ width=320,
409
+ height=240,
410
+ cs_pin=5,
411
+ dc_pin=4,
412
+ reset_pin=48,
413
+ initsequence=(
414
+ (0xEF, 0x03, 0x80, 0x02),
415
+ (0xCF, 0x00, 0xC1, 0x30),
416
+ (0xED, 0x64, 0x03, 0x12, 0x81),
417
+ (0xE8, 0x85, 0x00, 0x78),
418
+ (0xCB, 0x39, 0x2C, 0x00, 0x34, 0x02),
419
+ (0xF7, 0x20),
420
+ (0xEA, 0x00, 0x00),
421
+ (PWCTR1, 0x23),
422
+ (PWCTR2, 0x10),
423
+ (VMCTR1, 0x3E, 0x28),
424
+ (VMCTR2, 0x86),
425
+ (VSCRSADD, 0x00),
426
+ (FRMCTR1, 0x00, 0x18),
427
+ (DFUNCTR, 0x08, 0x82, 0x27),
428
+ (0xF2, 0x00),
429
+ (GAMMASET, 0x01),
430
+ (
431
+ GMCTRP1,
432
+ 0xF0,
433
+ 0x09,
434
+ 0x0B,
435
+ 0x06,
436
+ 0x04,
437
+ 0x15,
438
+ 0x2F,
439
+ 0x54,
440
+ 0x42,
441
+ 0x3C,
442
+ 0x17,
443
+ 0x14,
444
+ 0x18,
445
+ 0x1B,
446
+ ),
447
+ (
448
+ GMCTRN1,
449
+ 0xE0,
450
+ 0x09,
451
+ 0x0B,
452
+ 0x06,
453
+ 0x04,
454
+ 0x03,
455
+ 0x2B,
456
+ 0x43,
457
+ 0x42,
458
+ 0x3B,
459
+ 0x16,
460
+ 0x14,
461
+ 0x17,
462
+ 0x1B,
463
+ ),
464
+ ),
465
+ )
466
+ ST7789V = DriverChip(
467
+ "ST7789V",
468
+ width=240,
469
+ height=320,
470
+ initsequence=(
471
+ (DFUNCTR, 0x0A, 0x82),
472
+ (FRMCTR2, 0x0C, 0x0C, 0x00, 0x33, 0x33),
473
+ (ETMOD, 0x35),
474
+ (0xBB, 0x28),
475
+ (PWCTR1, 0x0C),
476
+ (PWCTR3, 0x01, 0xFF),
477
+ (PWCTR4, 0x10),
478
+ (PWCTR5, 0x20),
479
+ (IFCTR, 0x0F),
480
+ (PWSET, 0xA4, 0xA1),
481
+ (
482
+ GMCTRP1,
483
+ 0xD0,
484
+ 0x00,
485
+ 0x02,
486
+ 0x07,
487
+ 0x0A,
488
+ 0x28,
489
+ 0x32,
490
+ 0x44,
491
+ 0x42,
492
+ 0x06,
493
+ 0x0E,
494
+ 0x12,
495
+ 0x14,
496
+ 0x17,
497
+ ),
498
+ (
499
+ GMCTRN1,
500
+ 0xD0,
501
+ 0x00,
502
+ 0x02,
503
+ 0x07,
504
+ 0x0A,
505
+ 0x28,
506
+ 0x31,
507
+ 0x54,
508
+ 0x47,
509
+ 0x0E,
510
+ 0x1C,
511
+ 0x17,
512
+ 0x1B,
513
+ 0x1E,
514
+ ),
515
+ ),
516
+ )
517
+ DriverChip(
518
+ "GC9A01A",
519
+ mirror_x=True,
520
+ width=240,
521
+ height=240,
522
+ initsequence=(
523
+ (0xEF,),
524
+ (0xEB, 0x14),
525
+ (0xFE,),
526
+ (0xEF,),
527
+ (0xEB, 0x14),
528
+ (0x84, 0x40),
529
+ (0x85, 0xFF),
530
+ (0x86, 0xFF),
531
+ (0x87, 0xFF),
532
+ (0x88, 0x0A),
533
+ (0x89, 0x21),
534
+ (0x8A, 0x00),
535
+ (0x8B, 0x80),
536
+ (0x8C, 0x01),
537
+ (0x8D, 0x01),
538
+ (0x8E, 0xFF),
539
+ (0x8F, 0xFF),
540
+ (0xB6, 0x00, 0x00),
541
+ (0x90, 0x08, 0x08, 0x08, 0x08),
542
+ (0xBD, 0x06),
543
+ (0xBC, 0x00),
544
+ (0xFF, 0x60, 0x01, 0x04),
545
+ (0xC3, 0x13),
546
+ (0xC4, 0x13),
547
+ (0xF9, 0x22),
548
+ (0xBE, 0x11),
549
+ (0xE1, 0x10, 0x0E),
550
+ (0xDF, 0x21, 0x0C, 0x02),
551
+ (0xF0, 0x45, 0x09, 0x08, 0x08, 0x26, 0x2A),
552
+ (0xF1, 0x43, 0x70, 0x72, 0x36, 0x37, 0x6F),
553
+ (0xF2, 0x45, 0x09, 0x08, 0x08, 0x26, 0x2A),
554
+ (0xF3, 0x43, 0x70, 0x72, 0x36, 0x37, 0x6F),
555
+ (0xED, 0x1B, 0x0B),
556
+ (0xAE, 0x77),
557
+ (0xCD, 0x63),
558
+ (0xE8, 0x34),
559
+ (
560
+ 0x62,
561
+ 0x18,
562
+ 0x0D,
563
+ 0x71,
564
+ 0xED,
565
+ 0x70,
566
+ 0x70,
567
+ 0x18,
568
+ 0x0F,
569
+ 0x71,
570
+ 0xEF,
571
+ 0x70,
572
+ 0x70,
573
+ ),
574
+ (
575
+ 0x63,
576
+ 0x18,
577
+ 0x11,
578
+ 0x71,
579
+ 0xF1,
580
+ 0x70,
581
+ 0x70,
582
+ 0x18,
583
+ 0x13,
584
+ 0x71,
585
+ 0xF3,
586
+ 0x70,
587
+ 0x70,
588
+ ),
589
+ (0x64, 0x28, 0x29, 0xF1, 0x01, 0xF1, 0x00, 0x07),
590
+ (0x66, 0x3C, 0x00, 0xCD, 0x67, 0x45, 0x45, 0x10, 0x00, 0x00, 0x00),
591
+ (0x67, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x01, 0x54, 0x10, 0x32, 0x98),
592
+ (0x74, 0x10, 0x85, 0x80, 0x00, 0x00, 0x4E, 0x00),
593
+ (0x98, 0x3E, 0x07),
594
+ (0x35,),
595
+ ),
596
+ )
597
+ DriverChip(
598
+ "GC9D01N",
599
+ width=160,
600
+ height=160,
601
+ initsequence=(
602
+ (0xFE,),
603
+ (0xEF,),
604
+ (0x80, 0xFF),
605
+ (0x81, 0xFF),
606
+ (0x82, 0xFF),
607
+ (0x83, 0xFF),
608
+ (0x84, 0xFF),
609
+ (0x85, 0xFF),
610
+ (0x86, 0xFF),
611
+ (0x87, 0xFF),
612
+ (0x88, 0xFF),
613
+ (0x89, 0xFF),
614
+ (0x8A, 0xFF),
615
+ (0x8B, 0xFF),
616
+ (0x8C, 0xFF),
617
+ (0x8D, 0xFF),
618
+ (0x8E, 0xFF),
619
+ (0x8F, 0xFF),
620
+ (0x3A, 0x05),
621
+ (0xEC, 0x01),
622
+ (0x74, 0x02, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00),
623
+ (0x98, 0x3E),
624
+ (0x99, 0x3E),
625
+ (0xB5, 0x0D, 0x0D),
626
+ (0x60, 0x38, 0x0F, 0x79, 0x67),
627
+ (0x61, 0x38, 0x11, 0x79, 0x67),
628
+ (0x64, 0x38, 0x17, 0x71, 0x5F, 0x79, 0x67),
629
+ (0x65, 0x38, 0x13, 0x71, 0x5B, 0x79, 0x67),
630
+ (0x6A, 0x00, 0x00),
631
+ (0x6C, 0x22, 0x02, 0x22, 0x02, 0x22, 0x22, 0x50),
632
+ (
633
+ 0x6E,
634
+ 0x03,
635
+ 0x03,
636
+ 0x01,
637
+ 0x01,
638
+ 0x00,
639
+ 0x00,
640
+ 0x0F,
641
+ 0x0F,
642
+ 0x0D,
643
+ 0x0D,
644
+ 0x0B,
645
+ 0x0B,
646
+ 0x09,
647
+ 0x09,
648
+ 0x00,
649
+ 0x00,
650
+ 0x00,
651
+ 0x00,
652
+ 0x0A,
653
+ 0x0A,
654
+ 0x0C,
655
+ 0x0C,
656
+ 0x0E,
657
+ 0x0E,
658
+ 0x10,
659
+ 0x10,
660
+ 0x00,
661
+ 0x00,
662
+ 0x02,
663
+ 0x02,
664
+ 0x04,
665
+ 0x04,
666
+ ),
667
+ (0xBF, 0x01),
668
+ (0xF9, 0x40),
669
+ (0x9B, 0x3B, 0x93, 0x33, 0x7F, 0x00),
670
+ (0x7E, 0x30),
671
+ (0x70, 0x0D, 0x02, 0x08, 0x0D, 0x02, 0x08),
672
+ (0x71, 0x0D, 0x02, 0x08),
673
+ (0x91, 0x0E, 0x09),
674
+ (0xC3, 0x19, 0xC4, 0x19, 0xC9, 0x3C),
675
+ (0xF0, 0x53, 0x15, 0x0A, 0x04, 0x00, 0x3E),
676
+ (0xF1, 0x56, 0xA8, 0x7F, 0x33, 0x34, 0x5F),
677
+ (0xF2, 0x53, 0x15, 0x0A, 0x04, 0x00, 0x3A),
678
+ (0xF3, 0x52, 0xA4, 0x7F, 0x33, 0x34, 0xDF),
679
+ ),
680
+ )
681
+ DriverChip(
682
+ "ST7735",
683
+ color_order=MODE_RGB,
684
+ width=128,
685
+ height=160,
686
+ initsequence=(
687
+ SWRESET,
688
+ delay(10),
689
+ (FRMCTR1, 0x01, 0x2C, 0x2D),
690
+ (FRMCTR2, 0x01, 0x2C, 0x2D),
691
+ (FRMCTR3, 0x01, 0x2C, 0x2D, 0x01, 0x2C, 0x2D),
692
+ (INVCTR, 0x07),
693
+ (PWCTR1, 0xA2, 0x02, 0x84),
694
+ (PWCTR2, 0xC5),
695
+ (PWCTR3, 0x0A, 0x00),
696
+ (PWCTR4, 0x8A, 0x2A),
697
+ (PWCTR5, 0x8A, 0xEE),
698
+ (VMCTR1, 0x0E),
699
+ (
700
+ GMCTRP1,
701
+ 0x02,
702
+ 0x1C,
703
+ 0x07,
704
+ 0x12,
705
+ 0x37,
706
+ 0x32,
707
+ 0x29,
708
+ 0x2D,
709
+ 0x29,
710
+ 0x25,
711
+ 0x2B,
712
+ 0x39,
713
+ 0x00,
714
+ 0x01,
715
+ 0x03,
716
+ 0x10,
717
+ ),
718
+ (
719
+ GMCTRN1,
720
+ 0x03,
721
+ 0x1D,
722
+ 0x07,
723
+ 0x06,
724
+ 0x2E,
725
+ 0x2C,
726
+ 0x29,
727
+ 0x2D,
728
+ 0x2E,
729
+ 0x2E,
730
+ 0x37,
731
+ 0x3F,
732
+ 0x00,
733
+ 0x00,
734
+ 0x02,
735
+ 0x10,
736
+ ),
737
+ NORON,
738
+ ),
739
+ )
740
+ ST7796.extend(
741
+ "WT32-SC01-PLUS",
742
+ bus_mode=TYPE_OCTAL,
743
+ mirror_x=True,
744
+ reset_pin=4,
745
+ dc_pin=0,
746
+ invert_colors=True,
747
+ )
748
+
749
+ models = {}