mirror of
https://github.com/esphome/esphome.git
synced 2025-04-08 03:40:28 +01:00
Merge branch 'dev' into mcp4461
This commit is contained in:
commit
5a59f17d4c
@ -2,7 +2,14 @@ from esphome import pins
|
|||||||
import esphome.codegen as cg
|
import esphome.codegen as cg
|
||||||
from esphome.components import esp32, speaker
|
from esphome.components import esp32, speaker
|
||||||
import esphome.config_validation as cv
|
import esphome.config_validation as cv
|
||||||
from esphome.const import CONF_CHANNEL, CONF_ID, CONF_MODE, CONF_TIMEOUT
|
from esphome.const import (
|
||||||
|
CONF_BUFFER_DURATION,
|
||||||
|
CONF_CHANNEL,
|
||||||
|
CONF_ID,
|
||||||
|
CONF_MODE,
|
||||||
|
CONF_NEVER,
|
||||||
|
CONF_TIMEOUT,
|
||||||
|
)
|
||||||
|
|
||||||
from .. import (
|
from .. import (
|
||||||
CONF_I2S_DOUT_PIN,
|
CONF_I2S_DOUT_PIN,
|
||||||
@ -24,10 +31,8 @@ I2SAudioSpeaker = i2s_audio_ns.class_(
|
|||||||
"I2SAudioSpeaker", cg.Component, speaker.Speaker, I2SAudioOut
|
"I2SAudioSpeaker", cg.Component, speaker.Speaker, I2SAudioOut
|
||||||
)
|
)
|
||||||
|
|
||||||
CONF_BUFFER_DURATION = "buffer_duration"
|
|
||||||
CONF_DAC_TYPE = "dac_type"
|
CONF_DAC_TYPE = "dac_type"
|
||||||
CONF_I2S_COMM_FMT = "i2s_comm_fmt"
|
CONF_I2S_COMM_FMT = "i2s_comm_fmt"
|
||||||
CONF_NEVER = "never"
|
|
||||||
|
|
||||||
i2s_dac_mode_t = cg.global_ns.enum("i2s_dac_mode_t")
|
i2s_dac_mode_t = cg.global_ns.enum("i2s_dac_mode_t")
|
||||||
INTERNAL_DAC_OPTIONS = {
|
INTERNAL_DAC_OPTIONS = {
|
||||||
|
@ -94,6 +94,7 @@ CONF_BRIGHTNESS = "brightness"
|
|||||||
CONF_BRIGHTNESS_LIMITS = "brightness_limits"
|
CONF_BRIGHTNESS_LIMITS = "brightness_limits"
|
||||||
CONF_BROKER = "broker"
|
CONF_BROKER = "broker"
|
||||||
CONF_BSSID = "bssid"
|
CONF_BSSID = "bssid"
|
||||||
|
CONF_BUFFER_DURATION = "buffer_duration"
|
||||||
CONF_BUFFER_SIZE = "buffer_size"
|
CONF_BUFFER_SIZE = "buffer_size"
|
||||||
CONF_BUILD_PATH = "build_path"
|
CONF_BUILD_PATH = "build_path"
|
||||||
CONF_BUS_VOLTAGE = "bus_voltage"
|
CONF_BUS_VOLTAGE = "bus_voltage"
|
||||||
@ -527,6 +528,7 @@ CONF_NAME_FONT = "name_font"
|
|||||||
CONF_NBITS = "nbits"
|
CONF_NBITS = "nbits"
|
||||||
CONF_NEC = "nec"
|
CONF_NEC = "nec"
|
||||||
CONF_NETWORKS = "networks"
|
CONF_NETWORKS = "networks"
|
||||||
|
CONF_NEVER = "never"
|
||||||
CONF_NEW_PASSWORD = "new_password"
|
CONF_NEW_PASSWORD = "new_password"
|
||||||
CONF_NITROGEN_DIOXIDE = "nitrogen_dioxide"
|
CONF_NITROGEN_DIOXIDE = "nitrogen_dioxide"
|
||||||
CONF_NOISE_LEVEL = "noise_level"
|
CONF_NOISE_LEVEL = "noise_level"
|
||||||
@ -615,6 +617,7 @@ CONF_OTA = "ota"
|
|||||||
CONF_OUTDOOR_TEMPERATURE = "outdoor_temperature"
|
CONF_OUTDOOR_TEMPERATURE = "outdoor_temperature"
|
||||||
CONF_OUTPUT = "output"
|
CONF_OUTPUT = "output"
|
||||||
CONF_OUTPUT_ID = "output_id"
|
CONF_OUTPUT_ID = "output_id"
|
||||||
|
CONF_OUTPUT_SPEAKER = "output_speaker"
|
||||||
CONF_OUTPUTS = "outputs"
|
CONF_OUTPUTS = "outputs"
|
||||||
CONF_OVERSAMPLING = "oversampling"
|
CONF_OVERSAMPLING = "oversampling"
|
||||||
CONF_PACKAGES = "packages"
|
CONF_PACKAGES = "packages"
|
||||||
@ -859,6 +862,7 @@ CONF_TARGET_TEMPERATURE_LOW = "target_temperature_low"
|
|||||||
CONF_TARGET_TEMPERATURE_LOW_COMMAND_TOPIC = "target_temperature_low_command_topic"
|
CONF_TARGET_TEMPERATURE_LOW_COMMAND_TOPIC = "target_temperature_low_command_topic"
|
||||||
CONF_TARGET_TEMPERATURE_LOW_STATE_TOPIC = "target_temperature_low_state_topic"
|
CONF_TARGET_TEMPERATURE_LOW_STATE_TOPIC = "target_temperature_low_state_topic"
|
||||||
CONF_TARGET_TEMPERATURE_STATE_TOPIC = "target_temperature_state_topic"
|
CONF_TARGET_TEMPERATURE_STATE_TOPIC = "target_temperature_state_topic"
|
||||||
|
CONF_TASK_STACK_IN_PSRAM = "task_stack_in_psram"
|
||||||
CONF_TEMPERATURE = "temperature"
|
CONF_TEMPERATURE = "temperature"
|
||||||
CONF_TEMPERATURE_COMPENSATION = "temperature_compensation"
|
CONF_TEMPERATURE_COMPENSATION = "temperature_compensation"
|
||||||
CONF_TEMPERATURE_OFFSET = "temperature_offset"
|
CONF_TEMPERATURE_OFFSET = "temperature_offset"
|
||||||
|
@ -689,7 +689,7 @@ class EsphomeCore:
|
|||||||
_LOGGER.debug("Adding: %s", expression)
|
_LOGGER.debug("Adding: %s", expression)
|
||||||
return expression
|
return expression
|
||||||
|
|
||||||
def add_global(self, expression):
|
def add_global(self, expression, prepend=False):
|
||||||
from esphome.cpp_generator import Expression, Statement, statement
|
from esphome.cpp_generator import Expression, Statement, statement
|
||||||
|
|
||||||
if isinstance(expression, Expression):
|
if isinstance(expression, Expression):
|
||||||
@ -698,6 +698,9 @@ class EsphomeCore:
|
|||||||
raise ValueError(
|
raise ValueError(
|
||||||
f"Add '{expression}' must be expression or statement, not {type(expression)}"
|
f"Add '{expression}' must be expression or statement, not {type(expression)}"
|
||||||
)
|
)
|
||||||
|
if prepend:
|
||||||
|
self.global_statements.insert(0, expression)
|
||||||
|
else:
|
||||||
self.global_statements.append(expression)
|
self.global_statements.append(expression)
|
||||||
_LOGGER.debug("Adding global: %s", expression)
|
_LOGGER.debug("Adding global: %s", expression)
|
||||||
return expression
|
return expression
|
||||||
|
@ -72,6 +72,9 @@ def validate_hostname(config):
|
|||||||
|
|
||||||
|
|
||||||
def valid_include(value):
|
def valid_include(value):
|
||||||
|
# Look for "<...>" includes
|
||||||
|
if value.startswith("<") and value.endswith(">"):
|
||||||
|
return value
|
||||||
try:
|
try:
|
||||||
return cv.directory(value)
|
return cv.directory(value)
|
||||||
except cv.Invalid:
|
except cv.Invalid:
|
||||||
@ -360,7 +363,19 @@ async def to_code(config):
|
|||||||
CORE.add_job(add_arduino_global_workaround)
|
CORE.add_job(add_arduino_global_workaround)
|
||||||
|
|
||||||
if config[CONF_INCLUDES]:
|
if config[CONF_INCLUDES]:
|
||||||
CORE.add_job(add_includes, config[CONF_INCLUDES])
|
# Get the <...> includes
|
||||||
|
system_includes = []
|
||||||
|
other_includes = []
|
||||||
|
for include in config[CONF_INCLUDES]:
|
||||||
|
if include.startswith("<") and include.endswith(">"):
|
||||||
|
system_includes.append(include)
|
||||||
|
else:
|
||||||
|
other_includes.append(include)
|
||||||
|
# <...> includes should be at the start
|
||||||
|
for include in system_includes:
|
||||||
|
cg.add_global(cg.RawStatement(f"#include {include}"), prepend=True)
|
||||||
|
# Other includes should be at the end
|
||||||
|
CORE.add_job(add_includes, other_includes)
|
||||||
|
|
||||||
if project_conf := config.get(CONF_PROJECT):
|
if project_conf := config.get(CONF_PROJECT):
|
||||||
cg.add_define("ESPHOME_PROJECT_NAME", project_conf[CONF_NAME])
|
cg.add_define("ESPHOME_PROJECT_NAME", project_conf[CONF_NAME])
|
||||||
|
@ -588,9 +588,9 @@ def add(expression: Union[Expression, Statement]):
|
|||||||
CORE.add(expression)
|
CORE.add(expression)
|
||||||
|
|
||||||
|
|
||||||
def add_global(expression: Union[SafeExpType, Statement]):
|
def add_global(expression: Union[SafeExpType, Statement], prepend: bool = False):
|
||||||
"""Add an expression to the codegen global storage (above setup())."""
|
"""Add an expression to the codegen global storage (above setup())."""
|
||||||
CORE.add_global(expression)
|
CORE.add_global(expression, prepend)
|
||||||
|
|
||||||
|
|
||||||
def add_library(name: str, version: Optional[str], repository: Optional[str] = None):
|
def add_library(name: str, version: Optional[str], repository: Optional[str] = None):
|
||||||
|
@ -14,7 +14,7 @@ esptool==4.7.0
|
|||||||
click==8.1.7
|
click==8.1.7
|
||||||
esphome-dashboard==20241217.1
|
esphome-dashboard==20241217.1
|
||||||
aioesphomeapi==24.6.2
|
aioesphomeapi==24.6.2
|
||||||
zeroconf==0.132.2
|
zeroconf==0.143.0
|
||||||
puremagic==1.27
|
puremagic==1.27
|
||||||
ruamel.yaml==0.18.6 # dashboard_import
|
ruamel.yaml==0.18.6 # dashboard_import
|
||||||
glyphsets==1.0.0
|
glyphsets==1.0.0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user