mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	Merge remote-tracking branch 'upstream/dev' into integration
This commit is contained in:
		| @@ -4,7 +4,7 @@ | |||||||
| repos: | repos: | ||||||
|   - repo: https://github.com/astral-sh/ruff-pre-commit |   - repo: https://github.com/astral-sh/ruff-pre-commit | ||||||
|     # Ruff version. |     # Ruff version. | ||||||
|     rev: v0.12.0 |     rev: v0.12.1 | ||||||
|     hooks: |     hooks: | ||||||
|       # Run the linter. |       # Run the linter. | ||||||
|       - id: ruff |       - id: ruff | ||||||
|   | |||||||
| @@ -4,9 +4,15 @@ import asyncio | |||||||
| from datetime import datetime | from datetime import datetime | ||||||
| import logging | import logging | ||||||
| from typing import TYPE_CHECKING, Any | from typing import TYPE_CHECKING, Any | ||||||
|  | import warnings | ||||||
|  |  | ||||||
| from aioesphomeapi import APIClient, parse_log_message | # Suppress protobuf version warnings | ||||||
| from aioesphomeapi.log_runner import async_run | with warnings.catch_warnings(): | ||||||
|  |     warnings.filterwarnings( | ||||||
|  |         "ignore", category=UserWarning, message=".*Protobuf gencode version.*" | ||||||
|  |     ) | ||||||
|  |     from aioesphomeapi import APIClient, parse_log_message | ||||||
|  |     from aioesphomeapi.log_runner import async_run | ||||||
|  |  | ||||||
| from esphome.const import CONF_KEY, CONF_PASSWORD, CONF_PORT, __version__ | from esphome.const import CONF_KEY, CONF_PASSWORD, CONF_PORT, __version__ | ||||||
| from esphome.core import CORE | from esphome.core import CORE | ||||||
|   | |||||||
| @@ -341,6 +341,7 @@ SUPPORTED_PLATFORMIO_ESP_IDF_5X = [ | |||||||
| # List based on https://github.com/pioarduino/esp-idf/releases | # List based on https://github.com/pioarduino/esp-idf/releases | ||||||
| SUPPORTED_PIOARDUINO_ESP_IDF_5X = [ | SUPPORTED_PIOARDUINO_ESP_IDF_5X = [ | ||||||
|     cv.Version(5, 5, 0), |     cv.Version(5, 5, 0), | ||||||
|  |     cv.Version(5, 4, 2), | ||||||
|     cv.Version(5, 4, 1), |     cv.Version(5, 4, 1), | ||||||
|     cv.Version(5, 4, 0), |     cv.Version(5, 4, 0), | ||||||
|     cv.Version(5, 3, 3), |     cv.Version(5, 3, 3), | ||||||
|   | |||||||
| @@ -1,5 +1,8 @@ | |||||||
|  | import logging | ||||||
|  |  | ||||||
| from esphome import pins | from esphome import pins | ||||||
| import esphome.codegen as cg | import esphome.codegen as cg | ||||||
|  | from esphome.components import esp32 | ||||||
| import esphome.config_validation as cv | import esphome.config_validation as cv | ||||||
| from esphome.const import ( | from esphome.const import ( | ||||||
|     CONF_ADDRESS, |     CONF_ADDRESS, | ||||||
| @@ -12,6 +15,8 @@ from esphome.const import ( | |||||||
|     CONF_SCL, |     CONF_SCL, | ||||||
|     CONF_SDA, |     CONF_SDA, | ||||||
|     CONF_TIMEOUT, |     CONF_TIMEOUT, | ||||||
|  |     KEY_CORE, | ||||||
|  |     KEY_FRAMEWORK_VERSION, | ||||||
|     PLATFORM_ESP32, |     PLATFORM_ESP32, | ||||||
|     PLATFORM_ESP8266, |     PLATFORM_ESP8266, | ||||||
|     PLATFORM_RP2040, |     PLATFORM_RP2040, | ||||||
| @@ -19,6 +24,7 @@ from esphome.const import ( | |||||||
| from esphome.core import CORE, coroutine_with_priority | from esphome.core import CORE, coroutine_with_priority | ||||||
| import esphome.final_validate as fv | import esphome.final_validate as fv | ||||||
|  |  | ||||||
|  | LOGGER = logging.getLogger(__name__) | ||||||
| CODEOWNERS = ["@esphome/core"] | CODEOWNERS = ["@esphome/core"] | ||||||
| i2c_ns = cg.esphome_ns.namespace("i2c") | i2c_ns = cg.esphome_ns.namespace("i2c") | ||||||
| I2CBus = i2c_ns.class_("I2CBus") | I2CBus = i2c_ns.class_("I2CBus") | ||||||
| @@ -41,6 +47,32 @@ def _bus_declare_type(value): | |||||||
|     raise NotImplementedError |     raise NotImplementedError | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def validate_config(config): | ||||||
|  |     if ( | ||||||
|  |         config[CONF_SCAN] | ||||||
|  |         and CORE.is_esp32 | ||||||
|  |         and CORE.using_esp_idf | ||||||
|  |         and esp32.get_esp32_variant() | ||||||
|  |         in [ | ||||||
|  |             esp32.const.VARIANT_ESP32C5, | ||||||
|  |             esp32.const.VARIANT_ESP32C6, | ||||||
|  |             esp32.const.VARIANT_ESP32P4, | ||||||
|  |         ] | ||||||
|  |     ): | ||||||
|  |         version: cv.Version = CORE.data[KEY_CORE][KEY_FRAMEWORK_VERSION] | ||||||
|  |         if version.major == 5 and ( | ||||||
|  |             (version.minor == 3 and version.patch <= 3) | ||||||
|  |             or (version.minor == 4 and version.patch <= 1) | ||||||
|  |         ): | ||||||
|  |             LOGGER.warning( | ||||||
|  |                 "There is a bug in esp-idf version %s that breaks I2C scan, I2C scan " | ||||||
|  |                 "has been disabled, see https://github.com/esphome/issues/issues/7128", | ||||||
|  |                 str(version), | ||||||
|  |             ) | ||||||
|  |             config[CONF_SCAN] = False | ||||||
|  |     return config | ||||||
|  |  | ||||||
|  |  | ||||||
| pin_with_input_and_output_support = pins.internal_gpio_pin_number( | pin_with_input_and_output_support = pins.internal_gpio_pin_number( | ||||||
|     {CONF_OUTPUT: True, CONF_INPUT: True} |     {CONF_OUTPUT: True, CONF_INPUT: True} | ||||||
| ) | ) | ||||||
| @@ -66,6 +98,7 @@ CONFIG_SCHEMA = cv.All( | |||||||
|         } |         } | ||||||
|     ).extend(cv.COMPONENT_SCHEMA), |     ).extend(cv.COMPONENT_SCHEMA), | ||||||
|     cv.only_on([PLATFORM_ESP32, PLATFORM_ESP8266, PLATFORM_RP2040]), |     cv.only_on([PLATFORM_ESP32, PLATFORM_ESP8266, PLATFORM_RP2040]), | ||||||
|  |     validate_config, | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -6,7 +6,11 @@ namespace mcp23xxx_base { | |||||||
|  |  | ||||||
| float MCP23XXXBase::get_setup_priority() const { return setup_priority::IO; } | float MCP23XXXBase::get_setup_priority() const { return setup_priority::IO; } | ||||||
|  |  | ||||||
| void MCP23XXXGPIOPin::setup() { pin_mode(flags_); } | void MCP23XXXGPIOPin::setup() { | ||||||
|  |   pin_mode(flags_); | ||||||
|  |   this->parent_->pin_interrupt_mode(this->pin_, this->interrupt_mode_); | ||||||
|  | } | ||||||
|  |  | ||||||
| void MCP23XXXGPIOPin::pin_mode(gpio::Flags flags) { this->parent_->pin_mode(this->pin_, flags); } | void MCP23XXXGPIOPin::pin_mode(gpio::Flags flags) { this->parent_->pin_mode(this->pin_, flags); } | ||||||
| bool MCP23XXXGPIOPin::digital_read() { return this->parent_->digital_read(this->pin_) != this->inverted_; } | bool MCP23XXXGPIOPin::digital_read() { return this->parent_->digital_read(this->pin_) != this->inverted_; } | ||||||
| void MCP23XXXGPIOPin::digital_write(bool value) { this->parent_->digital_write(this->pin_, value != this->inverted_); } | void MCP23XXXGPIOPin::digital_write(bool value) { this->parent_->digital_write(this->pin_, value != this->inverted_); } | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| pylint==3.3.7 | pylint==3.3.7 | ||||||
| flake8==7.3.0  # also change in .pre-commit-config.yaml when updating | flake8==7.3.0  # also change in .pre-commit-config.yaml when updating | ||||||
| ruff==0.12.0  # also change in .pre-commit-config.yaml when updating | ruff==0.12.1  # also change in .pre-commit-config.yaml when updating | ||||||
| pyupgrade==3.20.0  # also change in .pre-commit-config.yaml when updating | pyupgrade==3.20.0  # also change in .pre-commit-config.yaml when updating | ||||||
| pre-commit | pre-commit | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user