First time with ESP Home, so I need a little help.
I’ve got an Emporia Vue2 that I’m trying to get setup on ESPHome and into HA. I have successfully managed to get the firmware built and loaded onto the chip via serial connection, but I want to be able to to do OTA updates once it’s installed in my electrical panel. I can not figure out how to make it work.
I added the ESPHome Add-On in HA, and created my device using the generic yaml file found at Setting up Emporia Vue 2 with ESPHome · GitHub
I modified the first handful of lines to get rid of logging and the api stuff (as per another walkthrough that i found).
Added the 2 lines for ota as below
esphome:
name: emporiavue2
external_components:
- source: github://flaviut/[email protected]
components: [ emporia_vue ]
esp32:
board: esp32dev
framework:
type: esp-idf
version: recommended
ota:
safe_mode: true
wifi:
ssid: "The SSID"
password: "Password Here"
fast_connect: true
ap: {}
When I click “install” and choose the download (I don’t have the ability to flash from my browser) it goes through the motions and then throws a bunch of errors relating to the “otacomponent” and then fails. I am not sure what I’m missing and I just installed the add-on last night, so I’m assuming everything ESPHome is up to date.
INFO Reading configuration /config/esphome/emporia-vue-2.yaml...
INFO Detected timezone 'America/Vancouver'
INFO Generating C++ source...
INFO Compiling app...
Processing emporiavue2 (board: esp32dev; framework: espidf; platform: platformio/espressif32 @ 3.5.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
- framework-espidf 3.40302.0 (4.3.2)
- tool-cmake 3.16.4
- tool-ninja 1.7.1
- toolchain-riscv32-esp 8.4.0+2021r2-patch2
- toolchain-xtensa-esp32 8.4.0+2021r2-patch2
- toolchain-xtensa-esp32s2 8.4.0+2021r2-patch2
Reading CMake configuration...
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
No dependencies
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/emporia_vue/emporia_vue.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/esp32/gpio_arduino.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/esp32/gpio_idf.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/esp32/preferences.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/i2c/i2c.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/i2c/i2c_bus_arduino.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/i2c/i2c_bus_esp_idf.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/mdns/mdns_component.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/mdns/mdns_esp32_arduino.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/mdns/mdns_esp8266.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/mdns/mdns_esp_idf.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/network/util.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/sensor/automation.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/sensor/filter.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/sensor/sensor.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/sntp/sntp_component.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/template/sensor/template_sensor.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/time/automation.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/time/real_time_clock.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/total_daily_energy/total_daily_energy.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/wifi/wifi_component.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/wifi/wifi_component_esp32_arduino.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/wifi/wifi_component_esp8266.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/components/wifi/wifi_component_esp_idf.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/core/application.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/core/component.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/core/component_iterator.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/core/controller.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/core/helpers.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/core/log.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/core/scheduler.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/esphome/core/util.o
Compiling /data/emporiavue2/.pioenvs/emporiavue2/src/main.o
Linking /data/emporiavue2/.pioenvs/emporiavue2/firmware.elf
/data/cache/platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/emporiavue2/.pioenvs/emporiavue2/src/main.o:(.literal._Z5setupv+0x30): undefined reference to `vtable for esphome::ota::OTAComponent'
/data/cache/platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/emporiavue2/.pioenvs/emporiavue2/src/main.o:(.literal._Z5setupv+0x398): undefined reference to `esphome::ota::OTAComponent::set_port(unsigned short)'
/data/cache/platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/emporiavue2/.pioenvs/emporiavue2/src/main.o:(.literal._Z5setupv+0x39c): undefined reference to `esphome::ota::OTAComponent::should_enter_safe_mode(unsigned char, unsigned int)'
/data/cache/platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/emporiavue2/.pioenvs/emporiavue2/src/main.o: in function `setup()':
/config/esphome/.esphome/build/emporiavue2/src/main.cpp:167: undefined reference to `esphome::ota::OTAComponent::set_port(unsigned short)'
/data/cache/platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/emporiavue2/.pioenvs/emporiavue2/src/main.o: in function `esphome::mdns::MDNSComponent* esphome::Application::register_component<esphome::mdns::MDNSComponent>(esphome::mdns::MDNSComponent*)':
/config/esphome/.esphome/build/emporiavue2/src/esphome/core/application.h:124: undefined reference to `esphome::ota::OTAComponent::should_enter_safe_mode(unsigned char, unsigned int)'
collect2: error: ld returned 1 exit status
*** [/data/emporiavue2/.pioenvs/emporiavue2/firmware.elf] Error 1
========================= [FAILED] Took 42.18 seconds =========================
Any suggestions? I’ve tried withtout the “safe_mode” line as well and no go.