mirror of
https://github.com/esphome/esphome.git
synced 2025-08-10 12:27:46 +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