mirror of
https://github.com/esphome/esphome.git
synced 2026-09-17 18:18:43 +00:00
Merge remote-tracking branch 'upstream/dev' into integration
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user