Merge branch 'esphome:dev' into dev

This commit is contained in:
Siemon Geeroms 2023-12-17 23:31:12 +01:00 committed by GitHub
commit f3684362ad
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 187 additions and 19 deletions

View file

@ -9,7 +9,7 @@ from esphome.const import (
CONF_TVOC, CONF_TVOC,
DEVICE_CLASS_AQI, DEVICE_CLASS_AQI,
DEVICE_CLASS_CARBON_DIOXIDE, DEVICE_CLASS_CARBON_DIOXIDE,
DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS, DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS_PARTS,
ICON_CHEMICAL_WEAPON, ICON_CHEMICAL_WEAPON,
ICON_MOLECULE_CO2, ICON_MOLECULE_CO2,
ICON_RADIATOR, ICON_RADIATOR,
@ -45,11 +45,10 @@ CONFIG_SCHEMA = (
unit_of_measurement=UNIT_PARTS_PER_BILLION, unit_of_measurement=UNIT_PARTS_PER_BILLION,
icon=ICON_RADIATOR, icon=ICON_RADIATOR,
accuracy_decimals=0, accuracy_decimals=0,
device_class=DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS, device_class=DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS_PARTS,
state_class=STATE_CLASS_MEASUREMENT, state_class=STATE_CLASS_MEASUREMENT,
), ),
cv.Required(CONF_AQI): sensor.sensor_schema( cv.Required(CONF_AQI): sensor.sensor_schema(
unit_of_measurement=UNIT_INDEX,
icon=ICON_CHEMICAL_WEAPON, icon=ICON_CHEMICAL_WEAPON,
accuracy_decimals=0, accuracy_decimals=0,
device_class=DEVICE_CLASS_AQI, device_class=DEVICE_CLASS_AQI,

View file

@ -172,7 +172,9 @@ CONFIG_SCHEMA = cv.All(
esp8266=UART0, esp8266=UART0,
esp32=UART0, esp32=UART0,
esp32_s2=USB_CDC, esp32_s2=USB_CDC,
esp32_s3=USB_CDC, esp32_s3_idf=USB_SERIAL_JTAG,
esp32_c3_idf=USB_SERIAL_JTAG,
esp32_s3_arduino=USB_CDC,
rp2040=USB_CDC, rp2040=USB_CDC,
bk72xx=DEFAULT, bk72xx=DEFAULT,
rtl87xx=DEFAULT, rtl87xx=DEFAULT,

View file

@ -1518,6 +1518,13 @@ class GenerateID(Optional):
super().__init__(key, default=lambda: None) super().__init__(key, default=lambda: None)
def _get_priority_default(*args):
for arg in args:
if arg is not vol.UNDEFINED:
return arg
return vol.UNDEFINED
class SplitDefault(Optional): class SplitDefault(Optional):
"""Mark this key to have a split default for ESP8266/ESP32.""" """Mark this key to have a split default for ESP8266/ESP32."""
@ -1534,6 +1541,9 @@ class SplitDefault(Optional):
esp32_s3=vol.UNDEFINED, esp32_s3=vol.UNDEFINED,
esp32_s3_arduino=vol.UNDEFINED, esp32_s3_arduino=vol.UNDEFINED,
esp32_s3_idf=vol.UNDEFINED, esp32_s3_idf=vol.UNDEFINED,
esp32_c3=vol.UNDEFINED,
esp32_c3_arduino=vol.UNDEFINED,
esp32_c3_idf=vol.UNDEFINED,
rp2040=vol.UNDEFINED, rp2040=vol.UNDEFINED,
bk72xx=vol.UNDEFINED, bk72xx=vol.UNDEFINED,
rtl87xx=vol.UNDEFINED, rtl87xx=vol.UNDEFINED,
@ -1542,30 +1552,28 @@ class SplitDefault(Optional):
super().__init__(key) super().__init__(key)
self._esp8266_default = vol.default_factory(esp8266) self._esp8266_default = vol.default_factory(esp8266)
self._esp32_arduino_default = vol.default_factory( self._esp32_arduino_default = vol.default_factory(
esp32_arduino if esp32 is vol.UNDEFINED else esp32 _get_priority_default(esp32_arduino, esp32)
) )
self._esp32_idf_default = vol.default_factory( self._esp32_idf_default = vol.default_factory(
esp32_idf if esp32 is vol.UNDEFINED else esp32 _get_priority_default(esp32_idf, esp32)
) )
self._esp32_s2_arduino_default = vol.default_factory( self._esp32_s2_arduino_default = vol.default_factory(
(esp32_s2_arduino if esp32 is vol.UNDEFINED else esp32) _get_priority_default(esp32_s2_arduino, esp32_s2, esp32_arduino, esp32)
if esp32_s2 is vol.UNDEFINED
else esp32_s2
) )
self._esp32_s2_idf_default = vol.default_factory( self._esp32_s2_idf_default = vol.default_factory(
(esp32_s2_idf if esp32 is vol.UNDEFINED else esp32) _get_priority_default(esp32_s2_idf, esp32_s2, esp32_idf, esp32)
if esp32_s2 is vol.UNDEFINED
else esp32_s2
) )
self._esp32_s3_arduino_default = vol.default_factory( self._esp32_s3_arduino_default = vol.default_factory(
(esp32_s3_arduino if esp32 is vol.UNDEFINED else esp32) _get_priority_default(esp32_s3_arduino, esp32_s3, esp32_arduino, esp32)
if esp32_s3 is vol.UNDEFINED
else esp32_s3
) )
self._esp32_s3_idf_default = vol.default_factory( self._esp32_s3_idf_default = vol.default_factory(
(esp32_s3_idf if esp32 is vol.UNDEFINED else esp32) _get_priority_default(esp32_s3_idf, esp32_s3, esp32_idf, esp32)
if esp32_s3 is vol.UNDEFINED )
else esp32_s3 self._esp32_c3_arduino_default = vol.default_factory(
_get_priority_default(esp32_c3_arduino, esp32_c3, esp32_arduino, esp32)
)
self._esp32_c3_idf_default = vol.default_factory(
_get_priority_default(esp32_c3_idf, esp32_c3, esp32_idf, esp32)
) )
self._rp2040_default = vol.default_factory(rp2040) self._rp2040_default = vol.default_factory(rp2040)
self._bk72xx_default = vol.default_factory(bk72xx) self._bk72xx_default = vol.default_factory(bk72xx)
@ -1581,6 +1589,7 @@ class SplitDefault(Optional):
from esphome.components.esp32.const import ( from esphome.components.esp32.const import (
VARIANT_ESP32S2, VARIANT_ESP32S2,
VARIANT_ESP32S3, VARIANT_ESP32S3,
VARIANT_ESP32C3,
) )
variant = get_esp32_variant() variant = get_esp32_variant()
@ -1594,6 +1603,11 @@ class SplitDefault(Optional):
return self._esp32_s3_arduino_default return self._esp32_s3_arduino_default
if CORE.using_esp_idf: if CORE.using_esp_idf:
return self._esp32_s3_idf_default return self._esp32_s3_idf_default
elif variant == VARIANT_ESP32C3:
if CORE.using_arduino:
return self._esp32_c3_arduino_default
if CORE.using_esp_idf:
return self._esp32_c3_idf_default
else: else:
if CORE.using_arduino: if CORE.using_arduino:
return self._esp32_arduino_default return self._esp32_arduino_default

View file

@ -11,7 +11,7 @@ esptool==4.6.2
click==8.1.7 click==8.1.7
esphome-dashboard==20231107.0 esphome-dashboard==20231107.0
aioesphomeapi==21.0.0 aioesphomeapi==21.0.0
zeroconf==0.128.4 zeroconf==0.130.0
python-magic==0.4.27 python-magic==0.4.27
# esp-idf requires this, but doesn't bundle it by default # esp-idf requires this, but doesn't bundle it by default

78
tests/test8.1.yaml Normal file
View file

@ -0,0 +1,78 @@
# Tests for ESP32-S3 boards - IDf
---
wifi:
ssid: "ssid"
network:
enable_ipv6: true
esp32:
board: esp32s3box
variant: ESP32S3
framework:
type: esp-idf
esphome:
name: esp32-s3-test
logger:
debug:
psram:
spi:
- id: spi_id_1
clk_pin:
number: GPIO7
allow_other_uses: false
mosi_pin: GPIO6
interface: any
spi_device:
id: spidev
data_rate: 2MHz
spi_id: spi_id_1
mode: 3
bit_order: lsb_first
display:
- platform: ili9xxx
id: displ8
model: ili9342
cs_pin: GPIO5
dc_pin: GPIO4
reset_pin:
number: GPIO48
allow_other_uses: true
i2c:
scl: GPIO18
sda: GPIO8
touchscreen:
- platform: tt21100
display: displ8
interrupt_pin:
number: GPIO3
ignore_strapping_warning: true
allow_other_uses: false
reset_pin:
number: GPIO48
allow_other_uses: true
binary_sensor:
- platform: tt21100
name: Home Button
index: 1
sensor:
- platform: debug
free:
name: "Heap Free"
block:
name: "Max Block Free"
loop_time:
name: "Loop Time"
psram:
name: "PSRAM Free"

75
tests/test8.2.yaml Normal file
View file

@ -0,0 +1,75 @@
# Tests for ESP32-C3 boards - IDf
---
wifi:
ssid: "ssid"
network:
enable_ipv6: true
esp32:
board: lolin_c3_mini
variant: ESP32C3
framework:
type: esp-idf
esphome:
name: esp32-c3-test
logger:
debug:
psram:
spi:
- id: spi_id_1
clk_pin:
number: GPIO7
allow_other_uses: false
mosi_pin: GPIO6
interface: any
spi_device:
id: spidev
data_rate: 2MHz
spi_id: spi_id_1
mode: 3
bit_order: lsb_first
display:
- platform: ili9xxx
id: displ8
model: ili9342
cs_pin: GPIO5
dc_pin: GPIO4
reset_pin:
number: GPIO21
i2c:
scl: GPIO18
sda: GPIO8
touchscreen:
- platform: tt21100
display: displ8
interrupt_pin:
number: GPIO3
allow_other_uses: false
reset_pin:
number: GPIO20
binary_sensor:
- platform: tt21100
name: Home Button
index: 1
sensor:
- platform: debug
free:
name: "Heap Free"
block:
name: "Max Block Free"
loop_time:
name: "Loop Time"
psram:
name: "PSRAM Free"