diff --git a/esphome/components/api.py b/esphome/components/api.py index 39b15f23ec..7a6d61d6a6 100644 --- a/esphome/components/api.py +++ b/esphome/components/api.py @@ -84,7 +84,7 @@ BUILD_FLAGS = '-DUSE_API' def lib_deps(config): if CORE.is_esp32: - return 'AsyncTCP@1.0.1' + return 'AsyncTCP@1.0.3' if CORE.is_esp8266: return 'ESPAsyncTCP@1.1.3' raise NotImplementedError diff --git a/esphome/components/logger.py b/esphome/components/logger.py index 9211d41b22..2cf67123e7 100644 --- a/esphome/components/logger.py +++ b/esphome/components/logger.py @@ -102,7 +102,9 @@ def required_build_flags(config): flags.append(u'-DESPHOME_LOG_LEVEL={}'.format(str(LOG_LEVELS[config[CONF_LEVEL]]))) this_severity = LOG_LEVEL_SEVERITY.index(config[CONF_LEVEL]) verbose_severity = LOG_LEVEL_SEVERITY.index('VERBOSE') + very_verbose_severity = LOG_LEVEL_SEVERITY.index('VERY_VERBOSE') is_at_least_verbose = this_severity >= verbose_severity + is_at_least_very_verbose = this_severity >= very_verbose_severity has_serial_logging = config.get(CONF_BAUD_RATE) != 0 if CORE.is_esp8266 and has_serial_logging and is_at_least_verbose: debug_serial_port = HARDWARE_UART_TO_SERIAL[config.get(CONF_HARDWARE_UART)] @@ -122,6 +124,8 @@ def required_build_flags(config): flags.append(u"-DDEBUG_ESP_{}".format(comp)) if CORE.is_esp32 and is_at_least_verbose: flags.append('-DCORE_DEBUG_LEVEL=5') + if CORE.is_esp32 and is_at_least_very_verbose: + flags.append('-DENABLE_I2C_DEBUG_BUFFER') return flags diff --git a/esphome/const.py b/esphome/const.py index 11678e0bd8..79a122698c 100644 --- a/esphome/const.py +++ b/esphome/const.py @@ -422,6 +422,7 @@ CONF_MAX_VALUE = 'max_value' ALLOWED_NAME_CHARS = u'abcdefghijklmnopqrstuvwxyz0123456789_' ARDUINO_VERSION_ESP32_DEV = 'https://github.com/platformio/platform-espressif32.git#feature/stage' +ARDUINO_VERSION_ESP32_1_0_0 = 'espressif32@1.5.0' ARDUINO_VERSION_ESP32_1_0_1 = 'espressif32@1.6.0' ARDUINO_VERSION_ESP8266_DEV = 'https://github.com/platformio/platform-espressif8266.git#feature' \ '/stage' diff --git a/esphome/core_config.py b/esphome/core_config.py index 5088455fec..86cc66f3cc 100644 --- a/esphome/core_config.py +++ b/esphome/core_config.py @@ -126,7 +126,7 @@ PLATFORMIO_ESP8266_LUT = { PLATFORMIO_ESP32_LUT = { '1.0.0': 'espressif32@1.4.0', '1.0.1': 'espressif32@1.6.0', - 'RECOMMENDED': 'espressif32@1.5.0', + 'RECOMMENDED': 'espressif32@1.6.0', 'LATEST': 'espressif32', 'DEV': ARDUINO_VERSION_ESP32_DEV, } diff --git a/esphome/dashboard/templates/index.html b/esphome/dashboard/templates/index.html index fa184c2b2c..dac1c69858 100644 --- a/esphome/dashboard/templates/index.html +++ b/esphome/dashboard/templates/index.html @@ -295,6 +295,16 @@ + + + + + + + + + + diff --git a/esphome/pins.py b/esphome/pins.py index 39027608bd..e22e39033a 100644 --- a/esphome/pins.py +++ b/esphome/pins.py @@ -127,9 +127,18 @@ ESP32_BOARD_PINS = { 'SW2': 2, 'SW3': 0, 'POT1': 32, 'POT2': 33, 'PIEZO1': 19, 'PIEZO2': 18, 'PHOTO': 25, 'DHT_PIN': 26, 'S1': 4, 'S2': 16, 'S3': 18, 'S4': 19, 'S5': 21, 'SDA': 27, 'SCL': 14, 'SS': 19, 'MOSI': 21, 'MISO': 22, 'SCK': 23}, + 'bpi-bit': {'BUZZER': 25, 'BUTTON_A': 35, 'BUTTON_B': 27, 'RGB_LED': 4, 'LIGHT_SENSOR1': 36, + 'LIGHT_SENSOR2': 39, 'TEMPERATURE_SENSOR': 34, 'MPU9250_INT': 0, 'P0': 25, 'P1': 32, + 'P2': 33, 'P3': 13, 'P4': 15, 'P5': 35, 'P6': 12, 'P7': 14, 'P8': 16, 'P9': 17, + 'P10': 26, 'P11': 27, 'P12': 2, 'P13': 18, 'P14': 19, 'P15': 23, 'P16': 5, + 'P19': 22, 'P20': 21, 'DAC1': 26}, + 'd-duino-32': {'SDA': 5, 'SCL': 4, 'SS ': 15, 'MOSI ': 13, 'MISO ': 12, 'SCK ': 14, 'D1': 5, + 'D2': 4, 'D3': 0, 'D4': 2, 'D5': 14, 'D6': 12, 'D7': 13, 'D8': 15, 'D9': 3, + 'D10': 1}, 'esp-wrover-kit': {}, 'esp32-evb': {'BUTTON': 34, 'SDA': 13, 'SCL': 16, 'SS': 17, 'MOSI': 2, 'MISO': 15, 'SCK': 14}, 'esp32-gateway': {'LED': 33, 'BUTTON': 34, 'SCL': 16, 'SDA': 17}, + 'esp32-poe': {'BUTTON': 34, 'SDA': 13, 'SCL': 16, 'MOSI': 2, 'MISO': 15, 'SCK': 14}, 'esp320': {'LED': 5, 'SDA': 2, 'SCL': 14, 'SS': 15, 'MOSI': 13, 'MISO': 12, 'SCK': 14}, 'esp32dev': {}, 'esp32doit-devkit-v1': {'LED': 2}, @@ -142,12 +151,15 @@ ESP32_BOARD_PINS = { 'A0': 26, 'A1': 25, 'A2': 34, 'A4': 36, 'A5': 4, 'A6': 14, 'A7': 32, 'A8': 15, 'A9': 33, 'A10': 27, 'A11': 12, 'A12': 13, 'A13': 35}, 'firebeetle32': {'LED': 2}, + 'fm-devkit': {'LED': 5, 'SW1': 4, 'SW2': 18, 'SW3': 19, 'SW4': 21, 'I2S_MCLK': 2, + 'I2S_LRCLK': 25, 'I2S_SCLK': 26, 'I2S_DOUT': 22, 'D0': 34, 'D1': 35, 'D2': 32, + 'D3': 33, 'D4': 27, 'D5': 14, 'D6': 12, 'D7': 13, 'D8': 15, 'D9': 23, 'D10': 0, + 'SDA': 16, 'SCL': 17}, 'heltec_wifi_kit_32': {'LED': 25, 'BUTTON': 0, 'A1': 37, 'A2': 38}, 'heltec_wifi_lora_32': {'LED': 25, 'BUTTON': 0, 'SDA': 4, 'SCL': 15, 'SS': 18, 'MOSI': 27, - 'SCK': 5, 'A1': 37, 'A2': 38, 'T8': 32, 'T9': 33, 'DAC1': 26, - 'DAC2': 25, 'OLED_SCL': 15, 'OLED_SDA': 4, 'OLED_RST': 16, - 'LORA_SCK': 5, 'LORA_MOSI': 27, 'LORA_MISO': 19, 'LORA_CS': 18, - 'LORA_RST': 14, 'LORA_IRQ': 26}, + 'SCK': 5, 'A1': 37, 'A2': 38, 'OLED_SCL': 15, 'OLED_SDA': 4, + 'OLED_RST': 16, 'LORA_SCK': 5, 'LORA_MOSI': 27, 'LORA_MISO': 19, + 'LORA_CS': 18, 'LORA_RST': 14, 'LORA_IRQ': 26}, 'hornbill32dev': {'LED': 13, 'BUTTON': 0}, 'hornbill32minima': {'SS': 2}, 'intorobot': {'LED': 4, 'LED_RED': 27, 'LED_GREEN': 21, 'LED_BLUE': 22, @@ -159,6 +171,12 @@ ESP32_BOARD_PINS = { 'lolin_d32': {'LED': 5, 'VBAT': 35}, 'lolin_d32_pro': {'LED': 5, 'VBAT': 35, 'TF_CS': 4, 'TS_CS': 12, 'TFT_CS': 14, 'TFT_LED': 32, 'TFT_RST': 33, 'TFT_DC': 27}, + 'lopy': {'LORA_SCK': 5, 'LORA_MISO': 19, 'LORA_MOSI': 27, 'LORA_CS': 17, 'LORA_RST': 18, + 'LORA_IRQ': 23, 'LED': 0, 'ANT_SELECT': 16, 'SDA': 12, 'SCL': 13, 'SS': 17, + 'MOSI': 22, 'MISO': 37, 'SCK': 13, 'A1': 37, 'A2': 38}, + 'lopy4': {'LORA_SCK': 5, 'LORA_MISO': 19, 'LORA_MOSI': 27, 'LORA_CS': 18, 'LORA_IRQ': 23, + 'LED': 0, 'ANT_SELECT': 21, 'SDA': 12, 'SCL': 13, 'SS': 18, 'MOSI': 22, 'MISO': 37, + 'SCK': 13, 'A1': 37, 'A2': 38}, 'm5stack-core-esp32': {'TXD2': 17, 'RXD2': 16, 'G23': 23, 'G19': 19, 'G18': 18, 'G3': 3, 'G16': 16, 'G21': 21, 'G2': 2, 'G12': 12, 'G15': 15, 'G35': 35, 'G36': 36, 'G25': 25, 'G26': 26, 'G1': 1, 'G17': 17, 'G22': 22, 'G5': 5, @@ -184,14 +202,27 @@ ESP32_BOARD_PINS = { 'nodemcu-32s': {'LED': 2, 'BUTTON': 0}, 'odroid_esp32': {'LED': 2, 'SDA': 15, 'SCL': 4, 'SS': 22, 'ADC1': 35, 'ADC2': 36}, 'onehorse32dev': {'LED': 5, 'BUTTON': 0, 'A1': 37, 'A2': 38}, + 'oroca_edubot': {'LED': 13, 'TX': 17, 'RX': 16, 'SDA': 23, 'SS': 2, 'MOSI': 18, 'SCK': 5, + 'A0': 34, 'A1': 39, 'A2': 36, 'A3': 33, 'D0': 4, 'D1': 16, 'D2': 17, 'D3': 22, + 'D4': 23, 'D5': 5, 'D6': 18, 'D7': 19, 'D8': 33, 'VBAT': 35}, 'pico32': {}, 'pocket_32': {'LED': 16}, 'quantum': {}, 'ttgo-lora32-v1': {'LED': 2, 'BUTTON': 0, 'SS': 18, 'MOSI': 27, 'SCK': 5, 'A1': 37, 'A2': 38, - 'T8': 32, 'T9': 33, 'DAC1': 26, 'DAC2': 25, 'OLED_SDA': 4, 'OLED_SCL': 15, - 'OLED_RST': 16, 'LORA_SCK': 5, 'LORA_MISO': 19, 'LORA_MOSI': 27, - 'LORA_CS': 18, 'LORA_RST': 14, 'LORA_IRQ': 26}, + 'OLED_SDA': 4, 'OLED_SCL': 15, 'OLED_RST': 16, 'LORA_SCK': 5, + 'LORA_MISO': 19, 'LORA_MOSI': 27, 'LORA_CS': 18, 'LORA_RST': 14, + 'LORA_IRQ': 26}, + 'ttgo-t-beam': {'LORA_SCK': 5, 'LORA_MISO': 19, 'LORA_MOSI': 27, 'LORA_CS': 18, 'LORA_RST': 23, + 'LORA_IRQ': 26, 'LORA_IO1': 33, 'LORA_IO2': 32, 'SS': 18, 'MOSI': 27, 'SCK': 5, + 'T8': 32, 'T9': 33, 'DAC2': 25}, + 'turta_iot_node': {'LED': 13, 'TX': 10, 'RX': 9, 'SDA': 23, 'SS': 21, 'MOSI': 18, 'SCK': 5, + 'A0': 4, 'A1': 25, 'A2': 26, 'A3': 27, 'A8': 38, 'T1': 25, 'T2': 26, + 'T3': 27, 'T4': 32, 'T5': 33, 'T6': 34, 'T7': 35, 'T8': 22, 'T9': 23, + 'T10': 10, 'T11': 9, 'T12': 21, 'T13': 5, 'T14': 18, 'T15': 19, + 'T16': 37, 'T17': 14, 'T18': 2, 'T19': 38}, 'wemosbat': 'pocket_32', + 'wesp32': {'SCL': 4, 'SDA': 2, 'MISO': 32, 'ETH_PHY_ADDR': 0, 'ETH_PHY_MDC': 16, + 'ETH_PHY_MDIO': 17}, 'widora-air': {'LED': 25, 'BUTTON': 0, 'SDA': 23, 'SCL': 19, 'MOSI': 16, 'MISO': 17, 'A1': 39, 'A2': 35, 'A3': 25, 'A4': 26, 'A5': 14, 'A6': 12, 'A7': 15, 'A8': 13, 'A9': 2, 'D0': 19, 'D1': 23, 'D2': 18, 'D3': 17, 'D4': 16, 'D5': 5, 'D6': 4, 'T0': 19, diff --git a/esphome/writer.py b/esphome/writer.py index a6566146c5..0d62372587 100644 --- a/esphome/writer.py +++ b/esphome/writer.py @@ -8,10 +8,9 @@ import re import shutil from esphome.config import iter_components -from esphome.const import ARDUINO_VERSION_ESP32_1_0_1, ARDUINO_VERSION_ESP32_DEV, \ - ARDUINO_VERSION_ESP8266_2_5_0, ARDUINO_VERSION_ESP8266_DEV, CONF_BOARD_FLASH_MODE, \ - CONF_BRANCH, CONF_COMMIT, CONF_ESPHOME, CONF_LOCAL, CONF_PLATFORMIO_OPTIONS, CONF_REPOSITORY, \ - CONF_TAG, CONF_USE_CUSTOM_CODE +from esphome.const import ARDUINO_VERSION_ESP32_1_0_0, ARDUINO_VERSION_ESP8266_2_5_0, \ + ARDUINO_VERSION_ESP8266_DEV, CONF_BOARD_FLASH_MODE, CONF_BRANCH, CONF_COMMIT, CONF_ESPHOME, \ + CONF_LOCAL, CONF_PLATFORMIO_OPTIONS, CONF_REPOSITORY, CONF_TAG, CONF_USE_CUSTOM_CODE from esphome.core import CORE, EsphomeError from esphome.core_config import GITHUB_ARCHIVE_ZIP, LIBRARY_URI_REPO, VERSION_REGEX from esphome.helpers import mkdir_p, run_system_command, symlink @@ -280,18 +279,18 @@ def gather_lib_deps(): if CORE.is_esp32: lib_deps |= { 'Preferences', # Preferences helper - 'AsyncTCP@1.0.1', # Pin AsyncTCP version + 'AsyncTCP@1.0.3', # Pin AsyncTCP version } - lib_deps.discard('AsyncTCP@1.0.3') # Manual fix for AsyncTCP - if CORE.arduino_version in (ARDUINO_VERSION_ESP32_DEV, ARDUINO_VERSION_ESP32_1_0_1): - lib_deps.add('AsyncTCP@1.0.3') - lib_deps.discard('AsyncTCP@1.0.1') + if CORE.arduino_version == ARDUINO_VERSION_ESP32_1_0_0: + lib_deps.discard('AsyncTCP@1.0.3') + lib_deps.add('AsyncTCP@1.0.1') lib_deps.add('ESPmDNS') elif CORE.is_esp8266: lib_deps.add('ESPAsyncTCP@1.1.3') lib_deps.add('ESP8266mDNS') + # avoid changing build flags order lib_deps_l = list(lib_deps) lib_deps_l.sort()