ESP-IDF support and generic target platforms (#2303)

* Socket refactor and SSL

* esp-idf temp

* Fixes

* Echo component and noise

* Add noise API transport support

* Updates

* ESP-IDF

* Complete

* Fixes

* Fixes

* Versions update

* New i2c APIs

* Complete i2c refactor

* SPI migration

* Revert ESP Preferences migration, too complex for now

* OTA support

* Remove echo again

* Remove ssl again

* GPIOFlags updates

* Rename esphal and ICACHE_RAM_ATTR

* Make ESP32 arduino compilable again

* Fix GPIO flags

* Complete pin registry refactor and fixes

* Fixes to make test1 compile

* Remove sdkconfig file

* Ignore sdkconfig file

* Fixes in reviewing

* Make test2 compile

* Make test4 compile

* Make test5 compile

* Run clang-format

* Fix lint errors

* Use esp-idf APIs instead of btStart

* Another round of fixes

* Start implementing ESP8266

* Make test3 compile

* Guard esp8266 code

* Lint

* Reformat

* Fixes

* Fixes v2

* more fixes

* ESP-IDF tidy target

* Convert ARDUINO_ARCH_ESPxx

* Update WiFiSignalSensor

* Update time ifdefs

* OTA needs millis from hal

* RestartSwitch needs delay from hal

* ESP-IDF Uart

* Fix OTA blank password

* Allow setting sdkconfig

* Fix idf partitions and allow setting sdkconfig from yaml

* Re-add read/write compat APIs and fix esp8266 uart

* Fix esp8266 store log strings in flash

* Fix ESP32 arduino preferences not initialized

* Update ifdefs

* Change how sdkconfig change is detected

* Add checks to ci-custom and fix them

* Run clang-format

* Add esp-idf clang-tidy target and fix errors

* Fixes from clang-tidy idf round 2

* Fixes from compiling tests with esp-idf

* Run clang-format

* Switch test5.yaml to esp-idf

* Implement ESP8266 Preferences

* Lint

* Re-do PIO package version selection a bit

* Fix arduinoespressif32 package version

* Fix unit tests

* Lint

* Lint fixes

* Fix readv/writev not defined

* Fix graphing component

* Re-add all old options from core/config.py

Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
Otto Winter
2021-09-20 11:47:51 +02:00
committed by GitHub
parent 1e8e471dec
commit ac0d921413
583 changed files with 9008 additions and 5420 deletions

View File

@@ -71,7 +71,6 @@ wifi:
password: ''
channel: 14
bssid: 'A1:63:95:47:D3:1D'
enable_mdns: true
manual_ip:
static_ip: 192.168.178.230
gateway: 192.168.178.1
@@ -82,6 +81,9 @@ wifi:
reboot_timeout: 120s
power_save_mode: light
mdns:
disabled: false
http_request:
useragent: esphome/device
timeout: 10s
@@ -170,6 +172,7 @@ i2c:
scan: True
frequency: 100kHz
setup_priority: -100
id: i2c_bus
spi:
clk_pin: GPIO21
@@ -177,15 +180,18 @@ spi:
miso_pin: GPIO23
uart:
- tx_pin: GPIO22
rx_pin: GPIO23
- tx_pin:
number: GPIO22
inverted: yes
rx_pin:
number: GPIO23
inverted: yes
baud_rate: 115200
id: uart0
parity: NONE
data_bits: 8
stop_bits: 1
rx_buffer_size: 512
invert: false
- id: adalight_uart
tx_pin: GPIO25
@@ -246,6 +252,7 @@ deep_sleep:
ads1115:
address: 0x48
i2c_id: i2c_bus
dallas:
pin: GPIO23
@@ -436,6 +443,7 @@ sensor:
availability:
state_topic: livingroom/custom_state_topic
measurement_duration: 31
i2c_id: i2c_bus
- platform: bme280
temperature:
name: 'Outside Temperature'
@@ -449,6 +457,7 @@ sensor:
address: 0x77
iir_filter: 16x
update_interval: 15s
i2c_id: i2c_bus
- platform: bme680
temperature:
name: 'Outside Temperature'
@@ -464,6 +473,7 @@ sensor:
temperature: 320
duration: 150ms
update_interval: 15s
i2c_id: i2c_bus
- platform: bmp085
temperature:
name: 'Outside Temperature'
@@ -473,6 +483,7 @@ sensor:
- lambda: >-
return x / powf(1.0 - (x / 44330.0), 5.255);
update_interval: 15s
i2c_id: i2c_bus
- platform: bmp280
temperature:
name: 'Outside Temperature'
@@ -482,6 +493,7 @@ sensor:
address: 0x77
update_interval: 15s
iir_filter: 16x
i2c_id: i2c_bus
- platform: dallas
address: 0x1C0000031EDD2A28
name: 'Living Room Temperature'
@@ -503,6 +515,7 @@ sensor:
humidity:
name: 'Living Room Humidity 4'
update_interval: 15s
i2c_id: i2c_bus
- platform: duty_cycle
pin: GPIO25
name: Duty Cycle Sensor
@@ -515,6 +528,7 @@ sensor:
humidity:
name: 'Living Room Pressure 5'
update_interval: 15s
i2c_id: i2c_bus
- platform: hlw8012
sel_pin: 5
cf_pin: 14
@@ -560,6 +574,7 @@ sensor:
range: 130uT
oversampling: 8x
update_interval: 15s
i2c_id: i2c_bus
- platform: qmc5883l
address: 0x0D
field_strength_x:
@@ -573,6 +588,7 @@ sensor:
range: 800uT
oversampling: 256x
update_interval: 15s
i2c_id: i2c_bus
- platform: hx711
name: 'HX711 Value'
dout_pin: GPIO23
@@ -593,6 +609,7 @@ sensor:
max_voltage: 32.0V
max_current: 3.2A
update_interval: 15s
i2c_id: i2c_bus
- platform: ina226
address: 0x40
shunt_resistance: 0.1 ohm
@@ -606,6 +623,7 @@ sensor:
name: 'INA226 Shunt Voltage'
max_current: 3.2A
update_interval: 15s
i2c_id: i2c_bus
- platform: ina3221
address: 0x40
channel_1:
@@ -619,12 +637,14 @@ sensor:
shunt_voltage:
name: 'INA3221 Channel 1 Shunt Voltage'
update_interval: 15s
i2c_id: i2c_bus
- platform: htu21d
temperature:
name: 'Living Room Temperature 6'
humidity:
name: 'Living Room Humidity 6'
update_interval: 15s
i2c_id: i2c_bus
- platform: max6675
name: 'Living Room Temperature'
cs_pin: GPIO23
@@ -670,6 +690,7 @@ sensor:
name: 'MPU6050 Gyro z'
temperature:
name: 'MPU6050 Temperature'
i2c_id: i2c_bus
- platform: ms5611
temperature:
name: 'Outside Temperature'
@@ -677,6 +698,7 @@ sensor:
name: 'Outside Pressure'
address: 0x77
update_interval: 15s
i2c_id: i2c_bus
- platform: pmsa003i
pm_1_0:
name: "PMSA003i PM1.0"
@@ -698,6 +720,7 @@ sensor:
name: "PMSA003i PMC <10µm"
address: 0x12
standard_units: True
i2c_id: i2c_bus
- platform: pulse_counter
name: 'Pulse Counter'
pin: GPIO12
@@ -768,10 +791,12 @@ sensor:
humidity:
name: 'Living Room Humidity 8'
address: 0x44
i2c_id: i2c_bus
update_interval: 15s
- platform: sts3x
name: 'Living Room Temperature 9'
address: 0x4A
i2c_id: i2c_bus
- platform: scd30
co2:
name: 'Living Room CO2 9'
@@ -785,6 +810,7 @@ sensor:
altitude_compensation: 10m
ambient_pressure_compensation: 961mBar
temperature_offset: 4.2C
i2c_id: i2c_bus
- platform: sgp30
eco2:
name: 'Workshop eCO2'
@@ -794,6 +820,7 @@ sensor:
accuracy_decimals: 1
address: 0x58
update_interval: 5s
i2c_id: i2c_bus
- platform: sps30
pm_1_0:
name: 'Workshop PM <1µm Weight concentration'
@@ -824,6 +851,7 @@ sensor:
id: 'workshop_PMC_10_0'
address: 0x69
update_interval: 10s
i2c_id: i2c_bus
- platform: sht4x
temperature:
name: 'SHT4X Temperature'
@@ -831,6 +859,7 @@ sensor:
name: 'SHT4X Humidity'
address: 0x44
update_interval: 15s
i2c_id: i2c_bus
- platform: shtcx
temperature:
name: 'Living Room Temperature 10'
@@ -838,6 +867,7 @@ sensor:
name: 'Living Room Humidity 10'
address: 0x70
update_interval: 15s
i2c_id: i2c_bus
- platform: template
name: 'Template Sensor'
state_class: measurement
@@ -863,6 +893,7 @@ sensor:
is_cs_package: true
integration_time: 402ms
gain: 16x
i2c_id: i2c_bus
- platform: tsl2591
id: this_little_light_of_mine
address: 0x29
@@ -882,6 +913,7 @@ sensor:
calculated_lux:
name: "tsl2591 calculated_lux"
id: tsl2591_cl
i2c_id: i2c_bus
- platform: ultrasonic
trigger_pin: GPIO25
echo_pin:
@@ -921,6 +953,7 @@ sensor:
name: CCS811 TVOC
update_interval: 30s
baseline: 0x4242
i2c_id: i2c_bus
- platform: tx20
wind_speed:
name: 'Windspeed'
@@ -946,6 +979,7 @@ sensor:
- platform: tmp117
name: 'TMP117 Temperature'
update_interval: 5s
i2c_id: i2c_bus
- platform: hm3301
pm_1_0:
name: 'PM1.0'
@@ -956,6 +990,7 @@ sensor:
aqi:
name: 'AQI'
calculation_type: 'CAQI'
i2c_id: i2c_bus
- platform: teleinfo
tag_name: "HCHC"
name: "hchc"
@@ -965,15 +1000,18 @@ sensor:
- platform: mcp9808
name: 'MCP9808 Temperature'
update_interval: 15s
i2c_id: i2c_bus
- platform: ezo
id: ph_ezo
address: 99
unit_of_measurement: 'pH'
i2c_id: i2c_bus
- platform: sdp3x
name: "HVAC Filter Pressure drop"
id: filter_pressure
update_interval: 5s
accuracy_decimals: 3
i2c_id: i2c_bus
- platform: cs5460a
id: cs5460a1
current:
@@ -1216,14 +1254,18 @@ binary_sensor:
pca9685:
frequency: 500
address: 0x0
i2c_id: i2c_bus
tlc59208f:
- address: 0x20
id: tlc59208f_1
i2c_id: i2c_bus
- address: 0x22
id: tlc59208f_2
i2c_id: i2c_bus
- address: 0x24
id: tlc59208f_3
i2c_id: i2c_bus
my9231:
data_pin: GPIO12
@@ -1363,6 +1405,7 @@ output:
id: dac_output
- platform: mcp4725
id: mcp4725_dac_output
i2c_id: i2c_bus
e131:
@@ -1992,6 +2035,7 @@ display:
address: 0x3F
lambda: |-
it.print("Hello World!");
i2c_id: i2c_bus
- platform: max7219
cs_pin: GPIO23
num_chips: 1
@@ -2039,6 +2083,7 @@ display:
then:
lambda: |-
ESP_LOGD("display", "1 -> 2");
i2c_id: i2c_bus
- platform: ssd1306_spi
model: 'SSD1306 128x64'
cs_pin: GPIO23
@@ -2073,6 +2118,7 @@ display:
- id: page13272
lambda: |-
// Nothing
i2c_id: i2c_bus
- platform: ssd1327_spi
model: 'SSD1327 128x128'
cs_pin: GPIO23
@@ -2151,6 +2197,7 @@ pn532_spi:
payload: !lambda 'return x;'
pn532_i2c:
i2c_id: i2c_bus
rdm6300:
uart_id: uart0
@@ -2167,11 +2214,13 @@ rc522_i2c:
on_tag:
- lambda: |-
ESP_LOGD("main", "Found tag %s", x.c_str());
i2c_id: i2c_bus
- update_interval: 1s
on_tag:
- lambda: |-
ESP_LOGD("main", "Found tag %s", x.c_str());
i2c_id: i2c_bus
gps:
uart_id: uart0
@@ -2198,6 +2247,7 @@ time:
on_time:
seconds: 0
then: ds1307.read_time
i2c_id: i2c_bus
cover:
- platform: template
@@ -2225,31 +2275,35 @@ debug:
tca9548a:
- address: 0x70
id: multiplex0
scan: True
channels:
- bus_id: multiplex0_chan0
channel: 0
i2c_id: i2c_bus
- address: 0x71
id: multiplex1
scan: True
multiplexer:
id: multiplex0
channel: 0
i2c_id: multiplex0_chan0
pcf8574:
- id: 'pcf8574_hub'
address: 0x21
pcf8575: False
i2c_id: i2c_bus
mcp23017:
- id: 'mcp23017_hub'
open_drain_interrupt: 'true'
i2c_id: i2c_bus
mcp23008:
- id: 'mcp23008_hub'
address: 0x22
open_drain_interrupt: 'true'
i2c_id: i2c_bus
mcp23016:
- id: 'mcp23016_hub'
address: 0x23
i2c_id: i2c_bus
stepper:
- platform: a4988