Merge remote-tracking branch 'upstream/dev' into integration

This commit is contained in:
J. Nick Koston
2026-01-06 17:57:17 -10:00
4 changed files with 24 additions and 0 deletions
@@ -429,9 +429,11 @@ void ESP32Camera::framebuffer_task(void *pv) {
camera_fb_t *framebuffer = esp_camera_fb_get();
xQueueSend(that->framebuffer_get_queue_, &framebuffer, portMAX_DELAY);
// Only wake the main loop if there's a pending request to consume the frame
#if defined(USE_SOCKET_SELECT_SUPPORT) && defined(USE_WAKE_LOOP_THREADSAFE)
if (that->has_requested_image_()) {
App.wake_loop_threadsafe();
}
#endif
// return is no-op for config with 1 fb
xQueueReceive(that->framebuffer_return_queue_, &framebuffer, portMAX_DELAY);
esp_camera_fb_return(framebuffer);
@@ -181,6 +181,11 @@ void HeatpumpIRClimate::transmit_state() {
power_mode_cmd = POWER_ON;
operating_mode_cmd = MODE_HEAT;
break;
// Map HEAT_COOL to hardware AUTO mode (automatic heat/cool changeover based on temperature).
// In hardware AUTO mode, the device automatically switches between heating and cooling
// based on the current temperature versus the target temperature.
// See https://github.com/esphome/esphome/issues/11161 for further discussion.
case climate::CLIMATE_MODE_HEAT_COOL:
case climate::CLIMATE_MODE_AUTO:
power_mode_cmd = POWER_ON;
operating_mode_cmd = MODE_AUTO;
@@ -398,14 +398,18 @@ void IDFUARTComponent::rx_event_task_func(void *param) {
case UART_DATA:
// Data available in UART RX buffer - wake the main loop
ESP_LOGVV(TAG, "Data event: %d bytes", event.size);
#if defined(USE_SOCKET_SELECT_SUPPORT) && defined(USE_WAKE_LOOP_THREADSAFE)
App.wake_loop_threadsafe();
#endif
break;
case UART_FIFO_OVF:
case UART_BUFFER_FULL:
ESP_LOGW(TAG, "FIFO overflow or ring buffer full - clearing");
uart_flush_input(self->uart_num_);
#if defined(USE_SOCKET_SELECT_SUPPORT) && defined(USE_WAKE_LOOP_THREADSAFE)
App.wake_loop_threadsafe();
#endif
break;
default:
+13
View File
@@ -619,6 +619,19 @@ def lint_esphome_h(fname, line, col, content):
)
@lint_content_find_check(
"CORE.using_esp_idf",
include=py_include,
exclude=["esphome/core/__init__.py", "script/ci-custom.py"],
)
def lint_using_esp_idf_deprecated(fname, line, col, content):
return (
f"{highlight('CORE.using_esp_idf')} is deprecated and will change behavior in 2026.6. "
"ESP32 Arduino builds on top of ESP-IDF, so ESP-IDF features are available in both frameworks. "
f"Please use {highlight('CORE.is_esp32')} and/or {highlight('CORE.using_arduino')} instead."
)
@lint_content_check(include=["*.h"])
def lint_pragma_once(fname, content):
if "#pragma once" not in content: