esphome / issues

Issue Tracker for ESPHome
https://esphome.io/
290 stars 36 forks source link

ESPHome Version text sensor causes build to fail #4104

Closed TheGroundZero closed 1 year ago

TheGroundZero commented 1 year ago

The problem

Adding the version text sensor to my ESPHome config causes the build to fail.

Which version of ESPHome has the issue?

v2022.12.8

What type of installation are you using?

Docker

Which version of Home Assistant has the issue?

2023.1.7

What platform are you using?

ESP32

Board

No response

Component causing the issue

version

Example YAML snippet

substitutions:
  name: esp32-bluetooth-proxy-ef4ddc
packages:
  esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: false

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  domain: .not.local
  use_address: 192.168.70.61

text_sensor:
  - platform: version
    name: "${name} ESPHome Version"
    hide_timestamp: true

Anything in the logs that might be useful for us?

INFO Reading configuration /config/esp32-bluetooth-proxy-ef4ddc.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing esp32-bluetooth-proxy-ef4ddc (board: esp32dev; framework: espidf; platform: platformio/espressif32 @ 5.2.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.40402.0 (4.4.2) 
 - tool-cmake @ 3.16.4 
 - tool-ninja @ 1.7.1 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch3
Reading CMake configuration...
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- Improv @ 1.2.3
Linking .pioenvs/esp32-bluetooth-proxy-ef4ddc/firmware.elf
/config/.esphome/platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch3/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection22send_text_sensor_stateEPNS_11text_sensor10TextSensorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x4): undefined reference to `esphome::text_sensor::TextSensor::has_state()'
/config/.esphome/platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch3/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/api/api_connection.o: in function `esphome::api::APIConnection::send_text_sensor_state(esphome::text_sensor::TextSensor*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
/config/.esphome/build/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/api/api_connection.cpp:481: undefined reference to `esphome::text_sensor::TextSensor::has_state()'
/config/.esphome/platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch3/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/main.o:(.literal._Z5setupv+0xac): undefined reference to `vtable for esphome::version::VersionTextSensor'
/config/.esphome/platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch3/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/main.o:(.literal._Z5setupv+0xb0): undefined reference to `vtable for esphome::version::VersionTextSensor'
/config/.esphome/platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch3/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/main.o:(.literal._Z5setupv+0xec): undefined reference to `esphome::text_sensor::TextSensor::TextSensor()'
/config/.esphome/platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch3/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/main.o:(.literal._Z5setupv+0xf0): undefined reference to `esphome::version::VersionTextSensor::set_hide_timestamp(bool)'
/config/.esphome/platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch3/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/main.o: in function `esphome::safe_mode::SafeModeButton::SafeModeButton()':
/config/.esphome/build/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/safe_mode/button/safe_mode_button.h:10: undefined reference to `esphome::text_sensor::TextSensor::TextSensor()'
/config/.esphome/platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch3/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/main.o: in function `setup()':
/config/.esphome/build/esp32-bluetooth-proxy-ef4ddc/src/main.cpp:217: undefined reference to `esphome::version::VersionTextSensor::set_hide_timestamp(bool)'
/config/.esphome/platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch3/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/core/controller.o:(.literal._ZN7esphome10Controller16setup_controllerEb+0x8): undefined reference to `esphome::text_sensor::TextSensor::add_on_state_callback(std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)>)'
/config/.esphome/platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch3/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/core/controller.o: in function `esphome::Controller::setup_controller(bool)':
/config/.esphome/build/esp32-bluetooth-proxy-ef4ddc/src/esphome/core/controller.cpp:47: undefined reference to `esphome::text_sensor::TextSensor::add_on_state_callback(std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)>)'
collect2: error: ld returned 1 exit status
*** [.pioenvs/esp32-bluetooth-proxy-ef4ddc/firmware.elf] Error 1
========================= [FAILED] Took 27.32 seconds =========================

Additional information

Without the version component in the config, the build succeeds

INFO Reading configuration /config/esp32-bluetooth-proxy-ef4ddc.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing esp32-bluetooth-proxy-ef4ddc (board: esp32dev; framework: espidf; platform: platformio/espressif32 @ 5.2.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.40402.0 (4.4.2) 
 - tool-cmake @ 3.16.4 
 - tool-ninja @ 1.7.1 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch3
Reading CMake configuration...
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- Improv @ 1.2.3
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/api/api_connection.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/api/api_frame_helper.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/api/api_pb2.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/api/api_pb2_service.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/api/api_server.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/api/list_entities.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/api/proto.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/api/subscribe_state.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/api/user_services.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/bluetooth_proxy/bluetooth_connection.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/bluetooth_proxy/bluetooth_proxy.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/button/button.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/esp32/gpio.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/esp32/preferences.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/esp32_ble_client/ble_characteristic.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/esp32_ble_client/ble_client_base.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/esp32_ble_client/ble_service.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/esp32_ble_tracker/esp32_ble_tracker.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/improv_serial/improv_serial_component.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/logger/logger.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/md5/md5.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/mdns/mdns_component.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/mdns/mdns_esp32_arduino.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/mdns/mdns_esp8266.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/mdns/mdns_esp_idf.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/mdns/mdns_rp2040.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/network/util.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/ota/ota_backend_arduino_esp32.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/ota/ota_backend_arduino_esp8266.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/ota/ota_backend_arduino_rp2040.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/ota/ota_backend_esp_idf.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/ota/ota_component.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/safe_mode/button/safe_mode_button.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/socket/bsd_sockets_impl.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/socket/lwip_raw_tcp_impl.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/socket/socket.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/wifi/wifi_component.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/wifi/wifi_component_esp32_arduino.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/wifi/wifi_component_esp8266.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/wifi/wifi_component_esp_idf.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/components/wifi/wifi_component_pico_w.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/core/application.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/core/component.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/core/component_iterator.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/core/controller.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/core/helpers.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/core/log.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/core/scheduler.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/esphome/core/util.o
Compiling .pioenvs/esp32-bluetooth-proxy-ef4ddc/src/main.o
Linking .pioenvs/esp32-bluetooth-proxy-ef4ddc/firmware.elf
RAM:   [==        ]  16.6% (used 54504 bytes from 327680 bytes)
Flash: [======    ]  64.9% (used 1191069 bytes from 1835008 bytes)
Building .pioenvs/esp32-bluetooth-proxy-ef4ddc/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin([".pioenvs/esp32-bluetooth-proxy-ef4ddc/firmware.bin"], [".pioenvs/esp32-bluetooth-proxy-ef4ddc/firmware.elf"])
Wrote 0x134330 bytes to file /config/.esphome/build/esp32-bluetooth-proxy-ef4ddc/.pioenvs/esp32-bluetooth-proxy-ef4ddc/firmware-factory.bin, ready to flash to offset 0x0
========================= [SUCCESS] Took 40.27 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 192.168.70.61
INFO Uploading /config/.esphome/build/esp32-bluetooth-proxy-ef4ddc/.pioenvs/esp32-bluetooth-proxy-ef4ddc/firmware.bin (1196848 bytes)
Uploading: [============================================================] 100% Done...

INFO Waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.70.61 using esphome API
ssieb commented 1 year ago

Given the bluetooth proxy, I assume you're using esp-idf. Do a clean build.

TheGroundZero commented 1 year ago

Cleaning build files and then installating did the trick