diff --git a/esphomeyaml/components/api.py b/esphomeyaml/components/api.py index 5a7cfd9cfc..4775ef626a 100644 --- a/esphomeyaml/components/api.py +++ b/esphomeyaml/components/api.py @@ -42,7 +42,7 @@ BUILD_FLAGS = '-DUSE_API' def lib_deps(config): if CORE.is_esp32: - return 'AsyncTCP@1.0.3' + return 'AsyncTCP@1.0.1' if CORE.is_esp8266: return 'ESPAsyncTCP@1.1.3' raise NotImplementedError diff --git a/esphomeyaml/core_config.py b/esphomeyaml/core_config.py index 4d413407b7..1bd510a9e4 100644 --- a/esphomeyaml/core_config.py +++ b/esphomeyaml/core_config.py @@ -123,7 +123,7 @@ PLATFORMIO_ESP8266_LUT = { PLATFORMIO_ESP32_LUT = { '1.0.0': 'espressif32@1.4.0', - 'RECOMMENDED': 'espressif32@1.6.0', + 'RECOMMENDED': 'espressif32@1.5.0', 'LATEST': 'espressif32', 'DEV': ARDUINO_VERSION_ESP32_DEV, } diff --git a/esphomeyaml/dashboard/static/favicon.ico b/esphomeyaml/dashboard/static/favicon.ico index 5aaaf3fb24..88dcd7e2d1 100644 Binary files a/esphomeyaml/dashboard/static/favicon.ico and b/esphomeyaml/dashboard/static/favicon.ico differ diff --git a/esphomeyaml/dashboard/templates/index.html b/esphomeyaml/dashboard/templates/index.html index a3a330e8ae..42e6ab8162 100644 --- a/esphomeyaml/dashboard/templates/index.html +++ b/esphomeyaml/dashboard/templates/index.html @@ -295,16 +295,6 @@ - - - - - - - - - - diff --git a/esphomeyaml/pins.py b/esphomeyaml/pins.py index f16c9fed57..2a8fb7ec06 100644 --- a/esphomeyaml/pins.py +++ b/esphomeyaml/pins.py @@ -127,18 +127,9 @@ 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}, @@ -151,15 +142,12 @@ 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, '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, '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}, 'hornbill32dev': {'LED': 13, 'BUTTON': 0}, 'hornbill32minima': {'SS': 2}, 'intorobot': {'LED': 4, 'LED_RED': 27, 'LED_GREEN': 21, 'LED_BLUE': 22, @@ -171,12 +159,6 @@ 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, @@ -202,27 +184,14 @@ 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, - '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}, + '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}, '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/esphomeyaml/writer.py b/esphomeyaml/writer.py index 60de4353dc..575d57db3c 100644 --- a/esphomeyaml/writer.py +++ b/esphomeyaml/writer.py @@ -8,10 +8,10 @@ import re import shutil from esphomeyaml.config import iter_components -from esphomeyaml.const import CONF_ARDUINO_VERSION, CONF_BRANCH, CONF_COMMIT, \ - CONF_ESPHOMELIB_VERSION, CONF_ESPHOMEYAML, CONF_LOCAL, CONF_REPOSITORY, CONF_TAG, \ - CONF_USE_CUSTOM_CODE, CONF_PLATFORMIO_OPTIONS, CONF_BOARD_FLASH_MODE, \ - ARDUINO_VERSION_ESP8266_DEV +from esphomeyaml.const import ARDUINO_VERSION_ESP32_DEV, CONF_ARDUINO_VERSION, \ + CONF_BRANCH, CONF_COMMIT, CONF_ESPHOMELIB_VERSION, CONF_ESPHOMEYAML, \ + CONF_LOCAL, CONF_REPOSITORY, CONF_TAG, CONF_USE_CUSTOM_CODE, CONF_PLATFORMIO_OPTIONS, \ + CONF_BOARD_FLASH_MODE, ARDUINO_VERSION_ESP8266_DEV from esphomeyaml.core import CORE, EsphomeyamlError from esphomeyaml.core_config import VERSION_REGEX, LIBRARY_URI_REPO, GITHUB_ARCHIVE_ZIP from esphomeyaml.helpers import mkdir_p, run_system_command @@ -279,9 +279,27 @@ def gather_lib_deps(): if CORE.is_esp32: lib_deps |= { 'Preferences', # Preferences helper + 'AsyncTCP@1.0.1', # Pin AsyncTCP version } + lib_deps.discard('AsyncTCP@1.0.3') + + # Manual fix for AsyncTCP + if CORE.config[CONF_ESPHOMEYAML].get(CONF_ARDUINO_VERSION) == ARDUINO_VERSION_ESP32_DEV: + lib_deps.add('AsyncTCP@1.0.3') + lib_deps.discard('AsyncTCP@1.0.1') + elif CORE.is_esp8266: + lib_deps.add('ESPAsyncTCP@1.1.3') # avoid changing build flags order - return list(sorted(x for x in lib_deps if x)) + lib_deps_l = list(lib_deps) + lib_deps_l.sort() + + # Move AsyncTCP to front, see https://github.com/platformio/platformio-core/issues/2115 + if 'AsyncTCP@1.0.3' in lib_deps_l: + lib_deps_l.insert(0, lib_deps_l.pop(lib_deps_l.index('AsyncTCP@1.0.3'))) + if 'AsyncTCP@1.0.1' in lib_deps_l: + lib_deps_l.insert(0, lib_deps_l.pop(lib_deps_l.index('AsyncTCP@1.0.1'))) + + return lib_deps_l def gather_build_flags(): @@ -344,32 +362,30 @@ def get_ini_content(): data['board_build.flash_mode'] = flash_mode if not CORE.config[CONF_ESPHOMEYAML][CONF_USE_CUSTOM_CODE]: - if CORE.is_esp8266: - # On ESP8266, we can disable LDF - data['lib_ldf_mode'] = 'off' - elif CORE.is_esp32: - # On ESP32, we need to enable LDF - # and can manually remove all libraries we don't need - data['lib_ldf_mode'] = 'chain' - REMOVABLE_LIBRARIES = [ - 'ArduinoOTA', - 'ESPmDNS', - 'Update', - 'Wire', - 'FastLED', - 'NeoPixelBus', - 'ESP Async WebServer', - 'AsyncMqttClient', - ] - ignore = [] - for x in REMOVABLE_LIBRARIES: - for o in lib_deps: - if x in o: - break - else: - ignore.append(x) - if ignore: - data['lib_ignore'] = ignore + # Ignore libraries that are not explicitly used, but may + # be added by LDF + data['lib_ldf_mode'] = 'chain' + REMOVABLE_LIBRARIES = [ + 'ArduinoOTA', + 'ESPmDNS', + 'Update', + 'Wire', + 'FastLED', + 'NeoPixelBus', + 'ESP Async WebServer', + 'AsyncMqttClient', + 'AsyncTCP', + 'ESPAsyncTCP', + ] + ignore = [] + for x in REMOVABLE_LIBRARIES: + for o in lib_deps: + if o.startswith(x): + break + else: + ignore.append(x) + if ignore: + data['lib_ignore'] = ignore data.update(CORE.config[CONF_ESPHOMEYAML].get(CONF_PLATFORMIO_OPTIONS, {})) diff --git a/tests/test2.yaml b/tests/test2.yaml index 40c00b2355..93e54fb8fb 100644 --- a/tests/test2.yaml +++ b/tests/test2.yaml @@ -47,6 +47,8 @@ ota: logger: level: DEBUG +web_server: + deep_sleep: run_duration: 20s sleep_duration: 50s @@ -161,6 +163,10 @@ binary_sensor: entity_id: binary_sensor.hello_world id: ha_hello_world_binary +remote_receiver: + pin: GPIO32 + dump: [] + esp32_ble_tracker: scan_interval: 300s