esphome 2024.8.2__py3-none-any.whl → 2024.9.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 (204) hide show
  1. esphome/__main__.py +6 -2
  2. esphome/components/api/api_connection.cpp +53 -0
  3. esphome/components/api/api_connection.h +4 -0
  4. esphome/components/api/api_pb2.cpp +280 -0
  5. esphome/components/api/api_pb2.h +91 -0
  6. esphome/components/api/api_pb2_service.cpp +85 -0
  7. esphome/components/api/api_pb2_service.h +28 -0
  8. esphome/components/async_tcp/__init__.py +3 -3
  9. esphome/components/atm90e26/sensor.py +10 -10
  10. esphome/components/atm90e32/sensor.py +1 -1
  11. esphome/components/bl0906/__init__.py +1 -0
  12. esphome/components/bl0906/bl0906.cpp +238 -0
  13. esphome/components/bl0906/bl0906.h +96 -0
  14. esphome/components/bl0906/const.py +4 -0
  15. esphome/components/bl0906/constants.h +122 -0
  16. esphome/components/bl0906/sensor.py +184 -0
  17. esphome/components/bl0942/__init__.py +1 -1
  18. esphome/components/bl0942/bl0942.cpp +127 -34
  19. esphome/components/bl0942/bl0942.h +87 -3
  20. esphome/components/bl0942/sensor.py +46 -8
  21. esphome/components/ble_client/__init__.py +1 -3
  22. esphome/components/ble_presence/binary_sensor.py +2 -2
  23. esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +5 -0
  24. esphome/components/bmp280/sensor.py +2 -93
  25. esphome/components/bmp280_base/__init__.py +88 -0
  26. esphome/components/{bmp280/bmp280.cpp → bmp280_base/bmp280_base.cpp} +11 -4
  27. esphome/components/{bmp280/bmp280.h → bmp280_base/bmp280_base.h} +9 -5
  28. esphome/components/bmp280_i2c/__init__.py +0 -0
  29. esphome/components/bmp280_i2c/bmp280_i2c.cpp +27 -0
  30. esphome/components/bmp280_i2c/bmp280_i2c.h +22 -0
  31. esphome/components/bmp280_i2c/sensor.py +22 -0
  32. esphome/components/bmp280_spi/__init__.py +0 -0
  33. esphome/components/bmp280_spi/bmp280_spi.cpp +65 -0
  34. esphome/components/bmp280_spi/bmp280_spi.h +20 -0
  35. esphome/components/bmp280_spi/sensor.py +22 -0
  36. esphome/components/captive_portal/captive_portal.cpp +2 -0
  37. esphome/components/captive_portal/captive_portal.h +3 -1
  38. esphome/components/ch422g/__init__.py +67 -0
  39. esphome/components/ch422g/ch422g.cpp +122 -0
  40. esphome/components/ch422g/ch422g.h +70 -0
  41. esphome/components/debug/debug_esp32.cpp +3 -1
  42. esphome/components/display/__init__.py +5 -4
  43. esphome/components/dsmr/dsmr.cpp +6 -0
  44. esphome/components/dsmr/dsmr.h +6 -0
  45. esphome/components/dsmr/text_sensor.py +7 -2
  46. esphome/components/e131/e131.cpp +2 -0
  47. esphome/components/e131/e131.h +3 -1
  48. esphome/components/e131/e131_addressable_light_effect.cpp +2 -0
  49. esphome/components/e131/e131_addressable_light_effect.h +2 -1
  50. esphome/components/e131/e131_packet.cpp +2 -0
  51. esphome/components/esp32_ble/ble_uuid.cpp +7 -0
  52. esphome/components/esp32_ble/ble_uuid.h +1 -0
  53. esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +11 -9
  54. esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +3 -3
  55. esphome/components/esp32_camera/__init__.py +4 -0
  56. esphome/components/esp32_camera/esp32_camera.cpp +9 -1
  57. esphome/components/esp32_camera/esp32_camera.h +3 -0
  58. esphome/components/esp32_can/canbus.py +18 -7
  59. esphome/components/esp32_can/esp32_can.cpp +8 -0
  60. esphome/components/esp32_can/esp32_can.h +4 -0
  61. esphome/components/esp32_rmt_led_strip/led_strip.cpp +14 -2
  62. esphome/components/esp32_rmt_led_strip/led_strip.h +3 -2
  63. esphome/components/esp32_rmt_led_strip/light.py +21 -4
  64. esphome/components/esphome/ota/ota_esphome.cpp +2 -1
  65. esphome/components/esphome/ota/ota_esphome.h +2 -0
  66. esphome/components/font/__init__.py +11 -22
  67. esphome/components/font/font.cpp +3 -2
  68. esphome/components/font/font.h +12 -3
  69. esphome/components/gree/climate.py +2 -1
  70. esphome/components/gree/gree.cpp +54 -3
  71. esphome/components/gree/gree.h +10 -2
  72. esphome/components/gt911/touchscreen/__init__.py +6 -4
  73. esphome/components/gt911/touchscreen/gt911_touchscreen.cpp +17 -0
  74. esphome/components/gt911/touchscreen/gt911_touchscreen.h +2 -0
  75. esphome/components/hmac_md5/__init__.py +2 -0
  76. esphome/components/hmac_md5/hmac_md5.cpp +56 -0
  77. esphome/components/hmac_md5/hmac_md5.h +48 -0
  78. esphome/components/homeassistant/__init__.py +13 -0
  79. esphome/components/homeassistant/switch/__init__.py +15 -2
  80. esphome/components/homeassistant/switch/homeassistant_switch.cpp +2 -2
  81. esphome/components/i2s_audio/__init__.py +88 -9
  82. esphome/components/i2s_audio/i2s_audio.h +20 -2
  83. esphome/components/i2s_audio/media_player/__init__.py +8 -4
  84. esphome/components/i2s_audio/media_player/i2s_audio_media_player.h +1 -1
  85. esphome/components/i2s_audio/microphone/__init__.py +19 -51
  86. esphome/components/i2s_audio/microphone/i2s_audio_microphone.cpp +18 -15
  87. esphome/components/i2s_audio/microphone/i2s_audio_microphone.h +0 -12
  88. esphome/components/i2s_audio/speaker/__init__.py +39 -27
  89. esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +49 -37
  90. esphome/components/i2s_audio/speaker/i2s_audio_speaker.h +3 -4
  91. esphome/components/ili9xxx/display.py +16 -17
  92. esphome/components/ili9xxx/ili9xxx_display.cpp +1 -1
  93. esphome/components/ili9xxx/ili9xxx_display.h +18 -18
  94. esphome/components/ili9xxx/ili9xxx_init.h +0 -3
  95. esphome/components/improv_serial/improv_serial_component.cpp +2 -1
  96. esphome/components/improv_serial/improv_serial_component.h +2 -1
  97. esphome/components/ledc/ledc_output.cpp +11 -7
  98. esphome/components/libretiny/__init__.py +8 -13
  99. esphome/components/ltr501/__init__.py +1 -0
  100. esphome/components/ltr501/ltr501.cpp +542 -0
  101. esphome/components/ltr501/ltr501.h +184 -0
  102. esphome/components/ltr501/ltr_definitions_501.h +260 -0
  103. esphome/components/ltr501/sensor.py +274 -0
  104. esphome/components/ltr_als_ps/sensor.py +2 -2
  105. esphome/components/lvgl/__init__.py +19 -16
  106. esphome/components/lvgl/automation.py +90 -9
  107. esphome/components/lvgl/defines.py +29 -2
  108. esphome/components/lvgl/gradient.py +61 -0
  109. esphome/components/lvgl/lv_validation.py +45 -27
  110. esphome/components/lvgl/lvcode.py +8 -3
  111. esphome/components/lvgl/lvgl_esphome.cpp +54 -0
  112. esphome/components/lvgl/lvgl_esphome.h +9 -3
  113. esphome/components/lvgl/number/__init__.py +1 -0
  114. esphome/components/lvgl/number/lvgl_number.h +3 -1
  115. esphome/components/lvgl/schemas.py +16 -11
  116. esphome/components/lvgl/select/__init__.py +1 -0
  117. esphome/components/lvgl/select/lvgl_select.h +3 -1
  118. esphome/components/lvgl/switch/__init__.py +2 -1
  119. esphome/components/lvgl/switch/lvgl_switch.h +3 -1
  120. esphome/components/lvgl/text/__init__.py +1 -0
  121. esphome/components/lvgl/text/lvgl_text.h +3 -1
  122. esphome/components/lvgl/trigger.py +3 -2
  123. esphome/components/lvgl/types.py +2 -1
  124. esphome/components/lvgl/widgets/__init__.py +23 -8
  125. esphome/components/lvgl/widgets/arc.py +5 -1
  126. esphome/components/lvgl/widgets/buttonmatrix.py +5 -1
  127. esphome/components/lvgl/widgets/checkbox.py +8 -3
  128. esphome/components/lvgl/widgets/meter.py +8 -1
  129. esphome/components/lvgl/widgets/msgbox.py +26 -15
  130. esphome/components/lvgl/widgets/page.py +51 -7
  131. esphome/components/lvgl/widgets/tileview.py +2 -8
  132. esphome/components/max31856/max31856.cpp +12 -1
  133. esphome/components/max31856/max31856.h +5 -2
  134. esphome/components/max31856/sensor.py +20 -0
  135. esphome/components/mcp9600/sensor.py +2 -2
  136. esphome/components/mdns/__init__.py +6 -6
  137. esphome/components/media_player/media_player.h +16 -0
  138. esphome/components/micro_wake_word/__init__.py +2 -25
  139. esphome/components/microphone/microphone.h +1 -1
  140. esphome/components/mics_4514/mics_4514.cpp +26 -36
  141. esphome/components/modbus_controller/__init__.py +6 -0
  142. esphome/components/modbus_controller/const.py +2 -0
  143. esphome/components/modbus_controller/modbus_controller.cpp +30 -27
  144. esphome/components/modbus_controller/modbus_controller.h +22 -4
  145. esphome/components/network/__init__.py +11 -8
  146. esphome/components/pipsolar/pipsolar.cpp +3 -0
  147. esphome/components/pipsolar/pipsolar.h +1 -0
  148. esphome/components/pipsolar/switch/__init__.py +2 -0
  149. esphome/components/prometheus/prometheus_handler.cpp +2 -0
  150. esphome/components/prometheus/prometheus_handler.h +3 -1
  151. esphome/components/rp2040/__init__.py +7 -8
  152. esphome/components/rpi_dpi_rgb/display.py +20 -17
  153. esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +36 -6
  154. esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.h +4 -0
  155. esphome/components/socket/socket.cpp +2 -0
  156. esphome/components/socket/socket.h +2 -0
  157. esphome/components/speaker/speaker.h +1 -1
  158. esphome/components/st7701s/display.py +35 -37
  159. esphome/components/st7701s/st7701s.cpp +11 -6
  160. esphome/components/st7701s/st7701s.h +1 -0
  161. esphome/components/statsd/__init__.py +65 -0
  162. esphome/components/statsd/statsd.cpp +156 -0
  163. esphome/components/statsd/statsd.h +86 -0
  164. esphome/components/tuya/__init__.py +1 -0
  165. esphome/components/tuya/number/__init__.py +39 -2
  166. esphome/components/tuya/number/tuya_number.cpp +58 -2
  167. esphome/components/tuya/number/tuya_number.h +12 -3
  168. esphome/components/udp/__init__.py +158 -0
  169. esphome/components/udp/binary_sensor.py +27 -0
  170. esphome/components/udp/sensor.py +27 -0
  171. esphome/components/udp/udp_component.cpp +616 -0
  172. esphome/components/udp/udp_component.h +158 -0
  173. esphome/components/uponor_smatrix/uponor_smatrix.cpp +4 -6
  174. esphome/components/uponor_smatrix/uponor_smatrix.h +0 -1
  175. esphome/components/veml7700/sensor.py +2 -2
  176. esphome/components/voice_assistant/__init__.py +6 -0
  177. esphome/components/voice_assistant/voice_assistant.cpp +24 -2
  178. esphome/components/voice_assistant/voice_assistant.h +20 -0
  179. esphome/components/web_server/__init__.py +11 -11
  180. esphome/components/web_server/list_entities.cpp +2 -0
  181. esphome/components/web_server/list_entities.h +3 -1
  182. esphome/components/web_server/web_server.cpp +2 -1
  183. esphome/components/web_server/web_server.h +2 -0
  184. esphome/components/web_server_base/web_server_base.cpp +2 -0
  185. esphome/components/web_server_base/web_server_base.h +3 -1
  186. esphome/components/wifi/wifi_component_libretiny.cpp +15 -1
  187. esphome/components/wireguard/__init__.py +9 -6
  188. esphome/components/wireguard/wireguard.cpp +2 -1
  189. esphome/components/wireguard/wireguard.h +3 -1
  190. esphome/config_validation.py +8 -0
  191. esphome/const.py +8 -1
  192. esphome/core/bytebuffer.cpp +117 -84
  193. esphome/core/bytebuffer.h +69 -21
  194. esphome/core/config.py +0 -3
  195. esphome/core/defines.h +2 -0
  196. esphome/core/ring_buffer.cpp +13 -2
  197. esphome/core/ring_buffer.h +56 -0
  198. esphome/external_files.py +5 -3
  199. {esphome-2024.8.2.dist-info → esphome-2024.9.0.dist-info}/METADATA +1 -1
  200. {esphome-2024.8.2.dist-info → esphome-2024.9.0.dist-info}/RECORD +204 -169
  201. {esphome-2024.8.2.dist-info → esphome-2024.9.0.dist-info}/LICENSE +0 -0
  202. {esphome-2024.8.2.dist-info → esphome-2024.9.0.dist-info}/WHEEL +0 -0
  203. {esphome-2024.8.2.dist-info → esphome-2024.9.0.dist-info}/entry_points.txt +0 -0
  204. {esphome-2024.8.2.dist-info → esphome-2024.9.0.dist-info}/top_level.txt +0 -0
@@ -21,7 +21,6 @@ static const size_t BUFFER_SIZE = 1024;
21
21
  enum class TaskEventType : uint8_t {
22
22
  STARTING = 0,
23
23
  STARTED,
24
- PLAYING,
25
24
  STOPPING,
26
25
  STOPPED,
27
26
  WARNING = 255,
@@ -38,18 +37,18 @@ struct DataEvent {
38
37
  uint8_t data[BUFFER_SIZE];
39
38
  };
40
39
 
41
- class I2SAudioSpeaker : public Component, public speaker::Speaker, public I2SAudioOut {
40
+ class I2SAudioSpeaker : public I2SAudioOut, public speaker::Speaker, public Component {
42
41
  public:
43
42
  float get_setup_priority() const override { return esphome::setup_priority::LATE; }
44
43
 
45
44
  void setup() override;
46
45
  void loop() override;
47
46
 
47
+ void set_timeout(uint32_t ms) { this->timeout_ = ms; }
48
48
  void set_dout_pin(uint8_t pin) { this->dout_pin_ = pin; }
49
49
  #if SOC_I2S_SUPPORTS_DAC
50
50
  void set_internal_dac_mode(i2s_dac_mode_t mode) { this->internal_dac_mode_ = mode; }
51
51
  #endif
52
- void set_external_dac_channels(uint8_t channels) { this->external_dac_channels_ = channels; }
53
52
 
54
53
  void start() override;
55
54
  void stop() override;
@@ -70,13 +69,13 @@ class I2SAudioSpeaker : public Component, public speaker::Speaker, public I2SAud
70
69
  QueueHandle_t buffer_queue_;
71
70
  QueueHandle_t event_queue_;
72
71
 
72
+ uint32_t timeout_{0};
73
73
  uint8_t dout_pin_{0};
74
74
  bool task_created_{false};
75
75
 
76
76
  #if SOC_I2S_SUPPORTS_DAC
77
77
  i2s_dac_mode_t internal_dac_mode_{I2S_DAC_CHANNEL_DISABLE};
78
78
  #endif
79
- uint8_t external_dac_channels_;
80
79
  };
81
80
 
82
81
  } // namespace i2s_audio
@@ -1,31 +1,31 @@
1
- import esphome.codegen as cg
2
- import esphome.config_validation as cv
3
1
  from esphome import core, pins
4
- from esphome.components import display, spi, font
2
+ import esphome.codegen as cg
3
+ from esphome.components import display, font, spi
5
4
  from esphome.components.display import validate_rotation
6
- from esphome.core import CORE, HexInt
5
+ import esphome.config_validation as cv
7
6
  from esphome.const import (
7
+ CONF_COLOR_ORDER,
8
8
  CONF_COLOR_PALETTE,
9
9
  CONF_DC_PIN,
10
+ CONF_DIMENSIONS,
11
+ CONF_HEIGHT,
10
12
  CONF_ID,
13
+ CONF_INVERT_COLORS,
11
14
  CONF_LAMBDA,
15
+ CONF_MIRROR_X,
16
+ CONF_MIRROR_Y,
12
17
  CONF_MODEL,
13
- CONF_RAW_DATA_ID,
18
+ CONF_OFFSET_HEIGHT,
19
+ CONF_OFFSET_WIDTH,
14
20
  CONF_PAGES,
21
+ CONF_RAW_DATA_ID,
15
22
  CONF_RESET_PIN,
16
- CONF_DIMENSIONS,
17
- CONF_WIDTH,
18
- CONF_HEIGHT,
19
23
  CONF_ROTATION,
20
- CONF_MIRROR_X,
21
- CONF_MIRROR_Y,
22
24
  CONF_SWAP_XY,
23
- CONF_COLOR_ORDER,
24
- CONF_OFFSET_HEIGHT,
25
- CONF_OFFSET_WIDTH,
26
25
  CONF_TRANSFORM,
27
- CONF_INVERT_COLORS,
26
+ CONF_WIDTH,
28
27
  )
28
+ from esphome.core import CORE, HexInt
29
29
 
30
30
  DEPENDENCIES = ["spi"]
31
31
 
@@ -177,7 +177,7 @@ CONFIG_SCHEMA = cv.All(
177
177
  cv.Optional(CONF_INVERT_DISPLAY): cv.invalid(
178
178
  "'invert_display' has been replaced by 'invert_colors'"
179
179
  ),
180
- cv.Optional(CONF_INVERT_COLORS): cv.boolean,
180
+ cv.Required(CONF_INVERT_COLORS): cv.boolean,
181
181
  cv.Optional(CONF_COLOR_ORDER): cv.one_of(*COLOR_ORDERS.keys(), upper=True),
182
182
  cv.Exclusive(CONF_ROTATION, CONF_ROTATION): validate_rotation,
183
183
  cv.Exclusive(CONF_TRANSFORM, CONF_ROTATION): cv.Schema(
@@ -287,5 +287,4 @@ async def to_code(config):
287
287
  prog_arr = cg.progmem_array(config[CONF_RAW_DATA_ID], rhs)
288
288
  cg.add(var.set_palette(prog_arr))
289
289
 
290
- if CONF_INVERT_COLORS in config:
291
- cg.add(var.invert_colors(config[CONF_INVERT_COLORS]))
290
+ cg.add(var.invert_colors(config[CONF_INVERT_COLORS]))
@@ -118,6 +118,7 @@ void ILI9XXXDisplay::dump_config() {
118
118
  ESP_LOGCONFIG(TAG, " Swap_xy: %s", YESNO(this->swap_xy_));
119
119
  ESP_LOGCONFIG(TAG, " Mirror_x: %s", YESNO(this->mirror_x_));
120
120
  ESP_LOGCONFIG(TAG, " Mirror_y: %s", YESNO(this->mirror_y_));
121
+ ESP_LOGCONFIG(TAG, " Invert colors: %s", YESNO(this->pre_invertcolors_));
121
122
 
122
123
  if (this->is_failed()) {
123
124
  ESP_LOGCONFIG(TAG, " => Failed to init Memory: YES!");
@@ -154,7 +155,6 @@ void ILI9XXXDisplay::fill(Color color) {
154
155
  }
155
156
  }
156
157
  return;
157
- break;
158
158
  default:
159
159
  new_color = display::ColorUtil::color_to_332(color, display::ColorOrder::COLOR_ORDER_RGB);
160
160
  break;
@@ -28,8 +28,8 @@ class ILI9XXXDisplay : public display::DisplayBuffer,
28
28
  spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_40MHZ> {
29
29
  public:
30
30
  ILI9XXXDisplay() = default;
31
- ILI9XXXDisplay(uint8_t const *init_sequence, int16_t width, int16_t height, bool invert_colors)
32
- : init_sequence_{init_sequence}, width_{width}, height_{height}, pre_invertcolors_{invert_colors} {
31
+ ILI9XXXDisplay(uint8_t const *init_sequence, int16_t width, int16_t height)
32
+ : init_sequence_{init_sequence}, width_{width}, height_{height} {
33
33
  uint8_t cmd, num_args, bits;
34
34
  const uint8_t *addr = init_sequence;
35
35
  while ((cmd = *addr++) != 0) {
@@ -144,7 +144,7 @@ class ILI9XXXDisplay : public display::DisplayBuffer,
144
144
  bool need_update_ = false;
145
145
  bool is_18bitdisplay_ = false;
146
146
  PixelMode pixel_mode_{};
147
- bool pre_invertcolors_ = false;
147
+ bool pre_invertcolors_{};
148
148
  display::ColorOrder color_order_{display::COLOR_ORDER_BGR};
149
149
  bool swap_xy_{};
150
150
  bool mirror_x_{};
@@ -154,54 +154,54 @@ class ILI9XXXDisplay : public display::DisplayBuffer,
154
154
  //----------- M5Stack display --------------
155
155
  class ILI9XXXM5Stack : public ILI9XXXDisplay {
156
156
  public:
157
- ILI9XXXM5Stack() : ILI9XXXDisplay(INITCMD_M5STACK, 320, 240, true) {}
157
+ ILI9XXXM5Stack() : ILI9XXXDisplay(INITCMD_M5STACK, 320, 240) {}
158
158
  };
159
159
 
160
160
  //----------- M5Stack display --------------
161
161
  class ILI9XXXM5CORE : public ILI9XXXDisplay {
162
162
  public:
163
- ILI9XXXM5CORE() : ILI9XXXDisplay(INITCMD_M5CORE, 320, 240, true) {}
163
+ ILI9XXXM5CORE() : ILI9XXXDisplay(INITCMD_M5CORE, 320, 240) {}
164
164
  };
165
165
 
166
166
  //----------- ST7789V display --------------
167
167
  class ILI9XXXST7789V : public ILI9XXXDisplay {
168
168
  public:
169
- ILI9XXXST7789V() : ILI9XXXDisplay(INITCMD_ST7789V, 240, 320, false) {}
169
+ ILI9XXXST7789V() : ILI9XXXDisplay(INITCMD_ST7789V, 240, 320) {}
170
170
  };
171
171
 
172
172
  //----------- ILI9XXX_24_TFT display --------------
173
173
  class ILI9XXXILI9341 : public ILI9XXXDisplay {
174
174
  public:
175
- ILI9XXXILI9341() : ILI9XXXDisplay(INITCMD_ILI9341, 240, 320, false) {}
175
+ ILI9XXXILI9341() : ILI9XXXDisplay(INITCMD_ILI9341, 240, 320) {}
176
176
  };
177
177
 
178
178
  //----------- ILI9XXX_24_TFT rotated display --------------
179
179
  class ILI9XXXILI9342 : public ILI9XXXDisplay {
180
180
  public:
181
- ILI9XXXILI9342() : ILI9XXXDisplay(INITCMD_ILI9341, 320, 240, false) {}
181
+ ILI9XXXILI9342() : ILI9XXXDisplay(INITCMD_ILI9341, 320, 240) {}
182
182
  };
183
183
 
184
184
  //----------- ILI9XXX_??_TFT rotated display --------------
185
185
  class ILI9XXXILI9481 : public ILI9XXXDisplay {
186
186
  public:
187
- ILI9XXXILI9481() : ILI9XXXDisplay(INITCMD_ILI9481, 480, 320, false) {}
187
+ ILI9XXXILI9481() : ILI9XXXDisplay(INITCMD_ILI9481, 480, 320) {}
188
188
  };
189
189
 
190
190
  //----------- ILI9481 in 18 bit mode --------------
191
191
  class ILI9XXXILI948118 : public ILI9XXXDisplay {
192
192
  public:
193
- ILI9XXXILI948118() : ILI9XXXDisplay(INITCMD_ILI9481_18, 320, 480, true) {}
193
+ ILI9XXXILI948118() : ILI9XXXDisplay(INITCMD_ILI9481_18, 320, 480) {}
194
194
  };
195
195
 
196
196
  //----------- ILI9XXX_35_TFT rotated display --------------
197
197
  class ILI9XXXILI9486 : public ILI9XXXDisplay {
198
198
  public:
199
- ILI9XXXILI9486() : ILI9XXXDisplay(INITCMD_ILI9486, 480, 320, false) {}
199
+ ILI9XXXILI9486() : ILI9XXXDisplay(INITCMD_ILI9486, 480, 320) {}
200
200
  };
201
201
 
202
202
  class ILI9XXXILI9488 : public ILI9XXXDisplay {
203
203
  public:
204
- ILI9XXXILI9488(const uint8_t *seq = INITCMD_ILI9488) : ILI9XXXDisplay(seq, 480, 320, true) {}
204
+ ILI9XXXILI9488(const uint8_t *seq = INITCMD_ILI9488) : ILI9XXXDisplay(seq, 480, 320) {}
205
205
 
206
206
  protected:
207
207
  void set_madctl() override {
@@ -246,34 +246,34 @@ class WAVESHARERES35 : public ILI9XXXILI9488 {
246
246
  //----------- ILI9XXX_35_TFT origin colors rotated display --------------
247
247
  class ILI9XXXILI9488A : public ILI9XXXDisplay {
248
248
  public:
249
- ILI9XXXILI9488A() : ILI9XXXDisplay(INITCMD_ILI9488_A, 480, 320, true) {}
249
+ ILI9XXXILI9488A() : ILI9XXXDisplay(INITCMD_ILI9488_A, 480, 320) {}
250
250
  };
251
251
 
252
252
  //----------- ILI9XXX_35_TFT rotated display --------------
253
253
  class ILI9XXXST7796 : public ILI9XXXDisplay {
254
254
  public:
255
- ILI9XXXST7796() : ILI9XXXDisplay(INITCMD_ST7796, 320, 480, false) {}
255
+ ILI9XXXST7796() : ILI9XXXDisplay(INITCMD_ST7796, 320, 480) {}
256
256
  };
257
257
 
258
258
  class ILI9XXXS3Box : public ILI9XXXDisplay {
259
259
  public:
260
- ILI9XXXS3Box() : ILI9XXXDisplay(INITCMD_S3BOX, 320, 240, false) {}
260
+ ILI9XXXS3Box() : ILI9XXXDisplay(INITCMD_S3BOX, 320, 240) {}
261
261
  };
262
262
 
263
263
  class ILI9XXXS3BoxLite : public ILI9XXXDisplay {
264
264
  public:
265
- ILI9XXXS3BoxLite() : ILI9XXXDisplay(INITCMD_S3BOXLITE, 320, 240, true) {}
265
+ ILI9XXXS3BoxLite() : ILI9XXXDisplay(INITCMD_S3BOXLITE, 320, 240) {}
266
266
  };
267
267
 
268
268
  class ILI9XXXGC9A01A : public ILI9XXXDisplay {
269
269
  public:
270
- ILI9XXXGC9A01A() : ILI9XXXDisplay(INITCMD_GC9A01A, 240, 240, true) {}
270
+ ILI9XXXGC9A01A() : ILI9XXXDisplay(INITCMD_GC9A01A, 240, 240) {}
271
271
  };
272
272
 
273
273
  //----------- ILI9XXX_24_TFT display --------------
274
274
  class ILI9XXXST7735 : public ILI9XXXDisplay {
275
275
  public:
276
- ILI9XXXST7735() : ILI9XXXDisplay(INITCMD_ST7735, 128, 160, false) {}
276
+ ILI9XXXST7735() : ILI9XXXDisplay(INITCMD_ST7735, 128, 160) {}
277
277
  };
278
278
 
279
279
  } // namespace ili9xxx
@@ -101,7 +101,6 @@ static const uint8_t PROGMEM INITCMD_ILI9481[] = {
101
101
  ILI9XXX_MADCTL , 1, MADCTL_MV | MADCTL_BGR, // Memory Access Control
102
102
  ILI9XXX_CSCON , 1, 0x01,
103
103
  ILI9XXX_PIXFMT, 1, 0x55, // 16 bit mode
104
- ILI9XXX_INVON, 0,
105
104
  ILI9XXX_DISPON, 0x80, // Set display on
106
105
  0x00 // end
107
106
  };
@@ -121,7 +120,6 @@ static const uint8_t PROGMEM INITCMD_ILI9481_18[] = {
121
120
  ILI9XXX_MADCTL , 1, MADCTL_MX| MADCTL_BGR, // Memory Access Control
122
121
  ILI9XXX_CSCON , 1, 0x01,
123
122
  ILI9XXX_PIXFMT, 1, 0x66, // 18 bit mode
124
- ILI9XXX_INVON, 0,
125
123
  ILI9XXX_DISPON, 0x80, // Set display on
126
124
  0x00 // end
127
125
  };
@@ -204,7 +202,6 @@ static const uint8_t PROGMEM INITCMD_ILI9488_A[] = {
204
202
 
205
203
 
206
204
  ILI9XXX_SLPOUT, 0x80, // Exit sleep mode
207
- //ILI9XXX_INVON , 0,
208
205
  ILI9XXX_DISPON, 0x80, // Set display on
209
206
  0x00 // end
210
207
  };
@@ -1,5 +1,5 @@
1
1
  #include "improv_serial_component.h"
2
-
2
+ #ifdef USE_WIFI
3
3
  #include "esphome/core/application.h"
4
4
  #include "esphome/core/defines.h"
5
5
  #include "esphome/core/hal.h"
@@ -313,3 +313,4 @@ ImprovSerialComponent *global_improv_serial_component = // NOLINT(cppcoreguidel
313
313
 
314
314
  } // namespace improv_serial
315
315
  } // namespace esphome
316
+ #endif
@@ -5,7 +5,7 @@
5
5
  #include "esphome/core/component.h"
6
6
  #include "esphome/core/defines.h"
7
7
  #include "esphome/core/helpers.h"
8
-
8
+ #ifdef USE_WIFI
9
9
  #include <improv.h>
10
10
  #include <vector>
11
11
 
@@ -78,3 +78,4 @@ extern ImprovSerialComponent
78
78
 
79
79
  } // namespace improv_serial
80
80
  } // namespace esphome
81
+ #endif
@@ -8,6 +8,8 @@
8
8
  #endif
9
9
  #include <driver/ledc.h>
10
10
 
11
+ #include <cinttypes>
12
+
11
13
  #define CLOCK_FREQUENCY 80e6f
12
14
 
13
15
  #ifdef USE_ARDUINO
@@ -115,20 +117,22 @@ void LEDCOutput::write_state(float state) {
115
117
  const uint32_t max_duty = (uint32_t(1) << this->bit_depth_) - 1;
116
118
  const float duty_rounded = roundf(state * max_duty);
117
119
  auto duty = static_cast<uint32_t>(duty_rounded);
120
+ ESP_LOGV(TAG, "Setting duty: %" PRIu32 " on channel %u", duty, this->channel_);
118
121
  #ifdef USE_ARDUINO
119
- ESP_LOGV(TAG, "Setting duty: %u on channel %u", duty, this->channel_);
120
122
  ledcWrite(this->channel_, duty);
121
123
  #endif
122
124
  #ifdef USE_ESP_IDF
123
- // ensure that 100% on is not 99.975% on
124
- if ((duty == max_duty) && (max_duty != 1)) {
125
- duty = max_duty + 1;
126
- }
127
125
  auto speed_mode = get_speed_mode(channel_);
128
126
  auto chan_num = static_cast<ledc_channel_t>(channel_ % 8);
129
127
  int hpoint = ledc_angle_to_htop(this->phase_angle_, this->bit_depth_);
130
- ledc_set_duty_with_hpoint(speed_mode, chan_num, duty, hpoint);
131
- ledc_update_duty(speed_mode, chan_num);
128
+ if (duty == max_duty) {
129
+ ledc_stop(speed_mode, chan_num, 1);
130
+ } else if (duty == 0) {
131
+ ledc_stop(speed_mode, chan_num, 0);
132
+ } else {
133
+ ledc_set_duty_with_hpoint(speed_mode, chan_num, duty, hpoint);
134
+ ledc_update_duty(speed_mode, chan_num);
135
+ }
132
136
  #endif
133
137
  }
134
138
 
@@ -1,10 +1,6 @@
1
1
  import json
2
2
  import logging
3
- from os.path import (
4
- dirname,
5
- isfile,
6
- join,
7
- )
3
+ from os.path import dirname, isfile, join
8
4
 
9
5
  import esphome.codegen as cg
10
6
  import esphome.config_validation as cv
@@ -174,12 +170,11 @@ def _notify_old_style(config):
174
170
  return config
175
171
 
176
172
 
177
- # NOTE: Keep this in mind when updating the recommended version:
178
- # * For all constants below, update platformio.ini (in this repo)
173
+ # The dev and latest branches will be at *least* this version, which is what matters.
179
174
  ARDUINO_VERSIONS = {
180
- "dev": (cv.Version(0, 0, 0), "https://github.com/libretiny-eu/libretiny.git"),
181
- "latest": (cv.Version(0, 0, 0), None),
182
- "recommended": (cv.Version(1, 5, 1), None),
175
+ "dev": (cv.Version(1, 7, 0), "https://github.com/libretiny-eu/libretiny.git"),
176
+ "latest": (cv.Version(1, 7, 0), "libretiny"),
177
+ "recommended": (cv.Version(1, 7, 0), None),
183
178
  }
184
179
 
185
180
 
@@ -282,10 +277,10 @@ async def component_to_code(config):
282
277
  # if platform version is a valid version constraint, prefix the default package
283
278
  framework = config[CONF_FRAMEWORK]
284
279
  cv.platformio_version_constraint(framework[CONF_VERSION])
285
- if str(framework[CONF_VERSION]) != "0.0.0":
286
- cg.add_platformio_option("platform", f"libretiny @ {framework[CONF_VERSION]}")
287
- elif framework[CONF_SOURCE]:
280
+ if framework[CONF_SOURCE]:
288
281
  cg.add_platformio_option("platform", framework[CONF_SOURCE])
282
+ elif str(framework[CONF_VERSION]) != "0.0.0":
283
+ cg.add_platformio_option("platform", f"libretiny @ {framework[CONF_VERSION]}")
289
284
  else:
290
285
  cg.add_platformio_option("platform", "libretiny")
291
286
 
@@ -0,0 +1 @@
1
+ CODEOWNERS = ["@latonita"]