Where to add additional sensor component into ESPHOME

I consider myself as beginner in ESPHOME. May I know where to add the additional sensor component(like uptime sensor & wifi signal sensor) in ESPHOME, I try to add by click the edit button at the bluetooth proxy then install but will come out error when compile.

inside the esp32-proxy1.yaml is as below

substitutions:
  name: "esp32-proxy1"
packages:
  esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: false
api:
  encryption:
    key: xxx


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

# sensor:
#   - platform: wifi_signal
#    name: "WiFi Signal Sensor"
#    update_interval: 60s

sensor:
  - platform: uptime
    name: Uptime Sensor

after save & press install, it will come out error below

INFO Reading configuration /config/esphome/esp32-proxy1.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing esp32-proxy1 (board: esp32dev; framework: espidf; platform: platformio/espressif32 @ 5.3.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.40404.0 (4.4.4) 
 - tool-cmake @ 3.16.4 
 - tool-ninja @ 1.7.1 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Reading CMake configuration...
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- noise-c @ 0.1.4
|   |-- libsodium @ 1.10018.1
|-- Improv @ 1.2.3
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_frame_helper.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_pb2.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_pb2_service.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_server.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/list_entities.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/proto.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/subscribe_state.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/user_services.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/bluetooth_proxy/bluetooth_connection.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/bluetooth_proxy/bluetooth_proxy.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/button/button.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32/gpio.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32/preferences.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble/ble.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble/ble_advertising.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble/ble_uuid.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble_client/ble_characteristic.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble_client/ble_client_base.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble_client/ble_service.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble_tracker/esp32_ble_tracker.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/improv_base/improv_base.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/improv_serial/improv_serial_component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/logger/logger.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/md5/md5.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/mdns/mdns_component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/mdns/mdns_esp32.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/mdns/mdns_esp8266.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/mdns/mdns_rp2040.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/network/util.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_backend_arduino_esp32.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_backend_arduino_esp8266.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_backend_arduino_rp2040.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_backend_esp_idf.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/safe_mode/button/safe_mode_button.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/socket/bsd_sockets_impl.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/socket/lwip_raw_tcp_impl.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/socket/socket.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component_esp32_arduino.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component_esp8266.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component_esp_idf.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component_pico_w.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/application.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/component_iterator.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/controller.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/helpers.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/log.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/scheduler.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/util.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o
Linking /data/esp32-proxy1/.pioenvs/esp32-proxy1/firmware.elf
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection17send_sensor_stateEPNS_6sensor6SensorEf+0x8): undefined reference to `esphome::sensor::Sensor::has_state() const'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection16send_sensor_infoEPNS_6sensor6SensorE+0x10): undefined reference to `esphome::sensor::Sensor::get_unit_of_measurement[abi:cxx11]()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection16send_sensor_infoEPNS_6sensor6SensorE+0x14): undefined reference to `esphome::sensor::Sensor::get_accuracy_decimals()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection16send_sensor_infoEPNS_6sensor6SensorE+0x18): undefined reference to `esphome::sensor::Sensor::get_device_class[abi:cxx11]()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection16send_sensor_infoEPNS_6sensor6SensorE+0x1c): undefined reference to `esphome::sensor::Sensor::get_state_class()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o: in function `esphome::api::APIConnection::send_sensor_state(esphome::sensor::Sensor*, float)':
/config/esphome/.esphome/build/esp32-proxy1/src/esphome/components/api/api_connection.cpp:414: undefined reference to `esphome::sensor::Sensor::has_state() const'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/data/cache/platformio/packages/[email protected]+2021r2-patch5/xtensa-esp32-elf/include/c++/8.4.0/bits/basic_string.h:1366: undefined reference to `esphome::sensor::Sensor::get_unit_of_measurement[abi:cxx11]()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o: in function `esphome::api::APIConnection::send_sensor_info(esphome::sensor::Sensor*)':
/config/esphome/.esphome/build/esp32-proxy1/src/esphome/components/api/api_connection.cpp:426: undefined reference to `esphome::sensor::Sensor::get_accuracy_decimals()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /config/esphome/.esphome/build/esp32-proxy1/src/esphome/components/api/api_connection.cpp:427: undefined reference to `esphome::sensor::Sensor::get_device_class[abi:cxx11]()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /config/esphome/.esphome/build/esp32-proxy1/src/esphome/components/api/api_connection.cpp:429: undefined reference to `esphome::sensor::Sensor::get_state_class()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0xb8): undefined reference to `vtable for esphome::uptime::UptimeSensor'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0xbc): undefined reference to `vtable for esphome::uptime::UptimeSensor'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0x108): undefined reference to `esphome::sensor::Sensor::Sensor()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0x10c): undefined reference to `esphome::sensor::Sensor::set_device_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0x110): undefined reference to `esphome::sensor::Sensor::set_state_class(esphome::sensor::StateClass)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0x114): undefined reference to `esphome::sensor::Sensor::set_unit_of_measurement(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0x118): undefined reference to `esphome::sensor::Sensor::set_accuracy_decimals(signed char)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o: in function `esphome::safe_mode::SafeModeButton::SafeModeButton()':
/config/esphome/.esphome/build/esp32-proxy1/src/esphome/components/safe_mode/button/safe_mode_button.h:10: undefined reference to `esphome::sensor::Sensor::Sensor()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o: in function `setup()':
/config/esphome/.esphome/build/esp32-proxy1/src/main.cpp:218: undefined reference to `esphome::sensor::Sensor::set_device_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()':
/data/cache/platformio/packages/[email protected]+2021r2-patch5/xtensa-esp32-elf/include/c++/8.4.0/bits/basic_string.h:657: undefined reference to `esphome::sensor::Sensor::set_state_class(esphome::sensor::StateClass)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o: in function `setup()':
/config/esphome/.esphome/build/esp32-proxy1/src/main.cpp:233: undefined reference to `esphome::sensor::Sensor::set_unit_of_measurement(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o: in function `esphome::uptime::UptimeSensor::UptimeSensor()':
/config/esphome/.esphome/build/esp32-proxy1/src/esphome/components/uptime/uptime_sensor.h:9: undefined reference to `esphome::sensor::Sensor::set_accuracy_decimals(signed char)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/controller.o:(.literal._ZN7esphome10Controller16setup_controllerEb+0x8): undefined reference to `esphome::sensor::Sensor::add_on_state_callback(std::function<void (float)>&&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/controller.o: in function `esphome::Controller::setup_controller(bool)':
/config/esphome/.esphome/build/esp32-proxy1/src/esphome/core/controller.cpp:29: undefined reference to `esphome::sensor::Sensor::add_on_state_callback(std::function<void (float)>&&)'
collect2: error: ld returned 1 exit status
*** [/data/esp32-proxy1/.pioenvs/esp32-proxy1/firmware.elf] Error 1
========================= [FAILED] Took 21.20 seconds =========================

I believe I might add the sensor component to wrong place or wrong indentation.

Your config looks correct. What version of esphome are you using?

latest version v2023.3.2

I could be wrong, but I think this is due to the indentation of the end of the package file you’re importing: bluetooth-proxies/esp32-generic.yaml at 6ccc74c87fc658dc1ba56bec1771aea4a9f86a6b · esphome/bluetooth-proxies · GitHub

The first sign of an error in the compilation logs is a reference to “Sensor” within safe_mode_button.

Maybe try copy/pasting the config out of that package into your code, then removing the packages declaration? Like this:

substitutions:
  name: "esp32-proxy1"
  friendly_name: Bluetooth Proxy

esp32:
  board: esp32dev
  framework:
    type: esp-idf

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  project:
    name: esphome.bluetooth-proxy
    version: "1.0"
  name_add_mac_suffix: false

api:
  encryption:
    key: xxx

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:

logger:
ota:
improv_serial:

dashboard_import:
  package_import_url: github://esphome/bluetooth-proxies/esp32-generic.yaml@main

esp32_ble_tracker:
  scan_parameters:
    # We currently use the defaults to ensure Bluetooth
    # can co-exist with WiFi In the future we may be able to
    # enable the built-in coexistence logic in ESP-IDF
    active: true

bluetooth_proxy:
  active: true

button:
  - platform: safe_mode
    name: Safe Mode Boot
    entity_category: diagnostic

# sensor:
#   - platform: wifi_signal
#    name: "WiFi Signal Sensor"
#    update_interval: 60s

sensor:
  - platform: uptime
    name: Uptime Sensor

@Troon , somehow with the default setting, without the wifi signal & uptime sensor, the install work. HA did detect the safe mode button.

Below with the default yaml without adding any extra sensor to it & compile successfully

INFO Reading configuration /config/esphome/esp32-proxy1.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing esp32-proxy1 (board: esp32dev; framework: espidf; platform: platformio/espressif32 @ 5.3.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.40404.0 (4.4.4) 
 - tool-cmake @ 3.16.4 
 - tool-ninja @ 1.7.1 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Reading CMake configuration...
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- noise-c @ 0.1.4
|   |-- libsodium @ 1.10018.1
|-- Improv @ 1.2.3
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_frame_helper.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_pb2.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_pb2_service.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_server.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/list_entities.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/proto.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/subscribe_state.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/user_services.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/bluetooth_proxy/bluetooth_connection.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/bluetooth_proxy/bluetooth_proxy.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/button/button.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32/gpio.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32/preferences.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble/ble.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble/ble_advertising.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble/ble_uuid.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble_client/ble_characteristic.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble_client/ble_client_base.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble_client/ble_service.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble_tracker/esp32_ble_tracker.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/improv_base/improv_base.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/improv_serial/improv_serial_component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/logger/logger.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/md5/md5.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/mdns/mdns_component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/mdns/mdns_esp32.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/mdns/mdns_esp8266.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/mdns/mdns_rp2040.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/network/util.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_backend_arduino_esp32.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_backend_arduino_esp8266.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_backend_arduino_rp2040.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_backend_esp_idf.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/safe_mode/button/safe_mode_button.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/socket/bsd_sockets_impl.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/socket/lwip_raw_tcp_impl.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/socket/socket.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component_esp32_arduino.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component_esp8266.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component_esp_idf.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component_pico_w.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/application.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/component_iterator.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/controller.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/helpers.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/log.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/scheduler.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/util.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o
Linking /data/esp32-proxy1/.pioenvs/esp32-proxy1/firmware.elf
RAM:   [==        ]  16.4% (used 53784 bytes from 327680 bytes)
Flash: [=======   ]  69.8% (used 1280929 bytes from 1835008 bytes)
Building /data/esp32-proxy1/.pioenvs/esp32-proxy1/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin(["/data/esp32-proxy1/.pioenvs/esp32-proxy1/firmware.bin"], ["/data/esp32-proxy1/.pioenvs/esp32-proxy1/firmware.elf"])
Wrote 0x14a210 bytes to file /data/esp32-proxy1/.pioenvs/esp32-proxy1/firmware-factory.bin, ready to flash to offset 0x0
========================= [SUCCESS] Took 20.84 seconds =========================
INFO Successfully compiled program.
INFO Resolving IP address of esp32-proxy1.local
INFO  -> x
INFO Uploading /data/esp32-proxy1/.pioenvs/esp32-proxy1/firmware.bin (1286672 bytes)
Uploading: [============================================================] 100% Done...

INFO Waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from esp32-proxy1.local using esphome API
INFO Successfully connected to esp32-proxy1.local
[16:42:53][I][app:102]: ESPHome version 2023.3.2 compiled on Apr  7 2023, 16:42:18
[16:42:53][I][app:104]: Project esphome.bluetooth-proxy version 1.0
[16:42:53][C][wifi:504]: WiFi:
[16:42:53][C][wifi:362]:   Local MAC: x
[16:42:53][C][wifi:363]:   SSID: 'x'[redacted]
[16:42:53][C][wifi:364]:   IP Address: x
[16:42:53][C][wifi:366]:   BSSID: x[redacted]
[16:42:53][C][wifi:367]:   Hostname: 'esp32-proxy1'
[16:42:53][C][wifi:369]:   Signal strength: -70 dB ▂▄▆█
[16:42:53][C][wifi:373]:   Channel: 1
[16:42:53][C][wifi:374]:   Subnet: 255.255.255.0
[16:42:53][C][wifi:375]:   Gateway: x
[16:42:53][C][wifi:376]:   DNS1: x
[16:42:53][C][wifi:377]:   DNS2: x
[16:42:53][C][logger:293]: Logger:
[16:42:53][C][logger:294]:   Level: DEBUG
[16:42:53][C][logger:295]:   Log Baud Rate: 115200
[16:42:53][C][logger:296]:   Hardware UART: UART0
[16:42:53][C][bluetooth_proxy:065]: Bluetooth Proxy:
[16:42:53][C][bluetooth_proxy:066]:   Active: YES
[16:42:53][C][safe_mode.button:022]: Safe Mode Button 'Safe Mode Boot'
[16:42:53][C][safe_mode.button:022]:   Icon: 'mdi:restart-alert'
[16:42:53][C][esp32_ble:214]: ESP32 BLE:
[16:42:53][C][esp32_ble_tracker:591]: BLE Tracker:
[16:42:53][C][esp32_ble_tracker:592]:   Scan Duration: 300 s
[16:42:53][C][esp32_ble_tracker:593]:   Scan Interval: 320.0 ms
[16:42:53][C][esp32_ble_tracker:594]:   Scan Window: 30.0 ms
[16:42:53][C][esp32_ble_tracker:595]:   Scan Type: ACTIVE
[16:42:53][C][esp32_ble_tracker:596]:   Continuous Scanning: True
[16:42:53][C][mdns:108]: mDNS:
[16:42:53][C][mdns:109]:   Hostname: esp32-proxy1
[16:42:53][C][ota:093]: Over-The-Air Updates:
[16:42:53][C][ota:094]:   Address: esp32-proxy1.local:3232
[16:42:53][C][api:138]: API Server:
[16:42:53][C][api:139]:   Address: esp32-proxy1.local:6053
[16:42:53][C][api:141]:   Using noise encryption: YES
[16:42:53][C][improv_serial:032]: Improv Serial:

Right, and what does the config I created above do?

your config direct come out error below after click install

INFO Reading configuration /config/esphome/esp32-proxy1.yaml...
Failed config

button.safe_mode: [source /config/esphome/esp32-proxy1.yaml:37]
  
  Component button.safe_mode requires component ota.
  platform: safe_mode
  name: Safe Mode Boot
  entity_category: diagnostic

Oops, missed the ota: line. Edited above: try again?

different error come out this time

INFO Reading configuration /config/esphome/esp32-proxy1.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing esp32-proxy1 (board: esp32dev; framework: espidf; platform: platformio/espressif32 @ 5.3.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.40404.0 (4.4.4) 
 - tool-cmake @ 3.16.4 
 - tool-ninja @ 1.7.1 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Reading CMake configuration...
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- noise-c @ 0.1.4
|   |-- libsodium @ 1.10018.1
|-- Improv @ 1.2.3
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_frame_helper.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_pb2.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_pb2_service.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_server.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/list_entities.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/proto.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/subscribe_state.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/user_services.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/bluetooth_proxy/bluetooth_connection.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/bluetooth_proxy/bluetooth_proxy.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/button/button.o
*** [/data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/dashboard_import/dashboard_import.o] Source `src/esphome/components/dashboard_import/dashboard_import.cpp' not found, needed by target `/data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/dashboard_import/dashboard_import.o'.
========================== [FAILED] Took 5.22 seconds ==========================

Sign. Nearly there: one more go? Refresh this page and re-copy it…

this time also different error

INFO Reading configuration /config/esphome/esp32-proxy1.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing esp32-proxy1 (board: esp32dev; framework: espidf; platform: platformio/espressif32 @ 5.3.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.40404.0 (4.4.4) 
 - tool-cmake @ 3.16.4 
 - tool-ninja @ 1.7.1 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Reading CMake configuration...
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- noise-c @ 0.1.4
|   |-- libsodium @ 1.10018.1
|-- Improv @ 1.2.3
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_frame_helper.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_pb2.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_pb2_service.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_server.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/list_entities.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/proto.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/subscribe_state.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/user_services.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/bluetooth_proxy/bluetooth_connection.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/bluetooth_proxy/bluetooth_proxy.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/button/button.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32/gpio.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32/preferences.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble/ble.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble/ble_advertising.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble/ble_uuid.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble_client/ble_characteristic.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble_client/ble_client_base.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble_client/ble_service.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/esp32_ble_tracker/esp32_ble_tracker.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/improv_base/improv_base.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/improv_serial/improv_serial_component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/logger/logger.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/md5/md5.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/mdns/mdns_component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/mdns/mdns_esp32.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/mdns/mdns_esp8266.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/mdns/mdns_rp2040.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/network/util.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_backend_arduino_esp32.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_backend_arduino_esp8266.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_backend_arduino_rp2040.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_backend_esp_idf.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/ota/ota_component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/safe_mode/button/safe_mode_button.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/socket/bsd_sockets_impl.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/socket/lwip_raw_tcp_impl.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/socket/socket.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component_esp32_arduino.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component_esp8266.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component_esp_idf.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/wifi/wifi_component_pico_w.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/application.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/component.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/component_iterator.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/controller.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/helpers.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/log.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/scheduler.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/util.o
Compiling /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o
Linking /data/esp32-proxy1/.pioenvs/esp32-proxy1/firmware.elf
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection17send_sensor_stateEPNS_6sensor6SensorEf+0x8): undefined reference to `esphome::sensor::Sensor::has_state() const'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection16send_sensor_infoEPNS_6sensor6SensorE+0x10): undefined reference to `esphome::sensor::Sensor::get_unit_of_measurement[abi:cxx11]()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection16send_sensor_infoEPNS_6sensor6SensorE+0x14): undefined reference to `esphome::sensor::Sensor::get_accuracy_decimals()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection16send_sensor_infoEPNS_6sensor6SensorE+0x18): undefined reference to `esphome::sensor::Sensor::get_device_class[abi:cxx11]()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection16send_sensor_infoEPNS_6sensor6SensorE+0x1c): undefined reference to `esphome::sensor::Sensor::get_state_class()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o: in function `esphome::api::APIConnection::send_sensor_state(esphome::sensor::Sensor*, float)':
/config/esphome/.esphome/build/esp32-proxy1/src/esphome/components/api/api_connection.cpp:414: undefined reference to `esphome::sensor::Sensor::has_state() const'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/data/cache/platformio/packages/[email protected]+2021r2-patch5/xtensa-esp32-elf/include/c++/8.4.0/bits/basic_string.h:1366: undefined reference to `esphome::sensor::Sensor::get_unit_of_measurement[abi:cxx11]()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/components/api/api_connection.o: in function `esphome::api::APIConnection::send_sensor_info(esphome::sensor::Sensor*)':
/config/esphome/.esphome/build/esp32-proxy1/src/esphome/components/api/api_connection.cpp:426: undefined reference to `esphome::sensor::Sensor::get_accuracy_decimals()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /config/esphome/.esphome/build/esp32-proxy1/src/esphome/components/api/api_connection.cpp:427: undefined reference to `esphome::sensor::Sensor::get_device_class[abi:cxx11]()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /config/esphome/.esphome/build/esp32-proxy1/src/esphome/components/api/api_connection.cpp:429: undefined reference to `esphome::sensor::Sensor::get_state_class()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0xb8): undefined reference to `vtable for esphome::uptime::UptimeSensor'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0xbc): undefined reference to `vtable for esphome::uptime::UptimeSensor'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0x108): undefined reference to `esphome::sensor::Sensor::Sensor()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0x10c): undefined reference to `esphome::sensor::Sensor::set_device_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0x110): undefined reference to `esphome::sensor::Sensor::set_state_class(esphome::sensor::StateClass)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0x114): undefined reference to `esphome::sensor::Sensor::set_unit_of_measurement(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o:(.literal._Z5setupv+0x118): undefined reference to `esphome::sensor::Sensor::set_accuracy_decimals(signed char)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o: in function `esphome::safe_mode::SafeModeButton::SafeModeButton()':
/config/esphome/.esphome/build/esp32-proxy1/src/esphome/components/safe_mode/button/safe_mode_button.h:10: undefined reference to `esphome::sensor::Sensor::Sensor()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o: in function `setup()':
/config/esphome/.esphome/build/esp32-proxy1/src/main.cpp:218: undefined reference to `esphome::sensor::Sensor::set_device_class(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()':
/data/cache/platformio/packages/[email protected]+2021r2-patch5/xtensa-esp32-elf/include/c++/8.4.0/bits/basic_string.h:657: undefined reference to `esphome::sensor::Sensor::set_state_class(esphome::sensor::StateClass)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o: in function `setup()':
/config/esphome/.esphome/build/esp32-proxy1/src/main.cpp:233: undefined reference to `esphome::sensor::Sensor::set_unit_of_measurement(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/main.o: in function `esphome::uptime::UptimeSensor::UptimeSensor()':
/config/esphome/.esphome/build/esp32-proxy1/src/esphome/components/uptime/uptime_sensor.h:9: undefined reference to `esphome::sensor::Sensor::set_accuracy_decimals(signed char)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/controller.o:(.literal._ZN7esphome10Controller16setup_controllerEb+0x8): undefined reference to `esphome::sensor::Sensor::add_on_state_callback(std::function<void (float)>&&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/esp32-proxy1/.pioenvs/esp32-proxy1/src/esphome/core/controller.o: in function `esphome::Controller::setup_controller(bool)':
/config/esphome/.esphome/build/esp32-proxy1/src/esphome/core/controller.cpp:29: undefined reference to `esphome::sensor::Sensor::add_on_state_callback(std::function<void (float)>&&)'
collect2: error: ld returned 1 exit status
*** [/data/esp32-proxy1/.pioenvs/esp32-proxy1/firmware.elf] Error 1
========================= [FAILED] Took 20.85 seconds =========================

I think that’s pretty much the original error, actually. I’m out of ideas, then: sorry…

is ok. actually not just this version, all previous version also like that, suspect my format could be wrong.

Hm, that latest version of mine, and your original, both compile here.

Compiling .pioenvs/esp32-proxy1/bootloader/spi_flash/esp32/spi_flash_rom_patch.o
Archiving .pioenvs/esp32-proxy1/bootloader/esp-idf/soc/libsoc.a
Compiling .pioenvs/esp32-proxy1/bootloader/xtensa/eri.o
Compiling .pioenvs/esp32-proxy1/bootloader/xtensa/xt_trax.o
Archiving .pioenvs/esp32-proxy1/bootloader/esp-idf/xtensa/libxtensa.a
Generating partitions .pioenvs/esp32-proxy1/partitions.bin
Generating an empty partition .pioenvs/esp32-proxy1/ota_data_initial.bin
Compiling .pioenvs/esp32-proxy1/lib2c6/Improv/improv.o
Archiving .pioenvs/esp32-proxy1/bootloader/esp-idf/spi_flash/libspi_flash.a
Linking .pioenvs/esp32-proxy1/bootloader.elf
Building .pioenvs/esp32-proxy1/bootloader.bin
Creating esp32 image...
Successfully created esp32 image.
Archiving .pioenvs/esp32-proxy1/lib2c6/libImprov.a
Linking .pioenvs/esp32-proxy1/firmware.elf
RAM:   [==        ]  16.7% (used 54584 bytes from 327680 bytes)
Flash: [=======   ]  65.4% (used 1199525 bytes from 1835008 bytes)
Building .pioenvs/esp32-proxy1/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin([".pioenvs/esp32-proxy1/firmware.bin"], [".pioenvs/esp32-proxy1/firmware.elf"])
Wrote 0x136430 bytes to file /config/.esphome/build/esp32-proxy1/.pioenvs/esp32-proxy1/firmware-factory.bin, ready to flash to offset 0x0
======================== [SUCCESS] Took 262.24 seconds ========================
INFO Successfully compiled program.

That suggests an issue with your installation rather than your YAML config. I’m on 2023.2.4 — I’ll try the latest now.

Your original code also compiles without error on the latest Docker container version, 2023.3.2:

Compiling .pioenvs/esp32-proxy1/bootloader/xtensa/xt_trax.o
Archiving .pioenvs/esp32-proxy1/bootloader/esp-idf/xtensa/libxtensa.a
Generating partitions .pioenvs/esp32-proxy1/partitions.bin
Generating an empty partition .pioenvs/esp32-proxy1/ota_data_initial.bin
Compiling .pioenvs/esp32-proxy1/lib2c6/Improv/improv.o
Archiving .pioenvs/esp32-proxy1/bootloader/esp-idf/spi_flash/libspi_flash.a
Linking .pioenvs/esp32-proxy1/bootloader.elf
Building .pioenvs/esp32-proxy1/bootloader.bin
Archiving .pioenvs/esp32-proxy1/lib2c6/libImprov.a
Creating esp32 image...
Successfully created esp32 image.
Linking .pioenvs/esp32-proxy1/firmware.elf
RAM:   [==        ]  16.4% (used 53728 bytes from 327680 bytes)
Flash: [=======   ]  66.3% (used 1217137 bytes from 1835008 bytes)
Building .pioenvs/esp32-proxy1/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin([".pioenvs/esp32-proxy1/firmware.bin"], [".pioenvs/esp32-proxy1/firmware.elf"])
Wrote 0x13a8e0 bytes to file /config/.esphome/build/esp32-proxy1/.pioenvs/esp32-proxy1/firmware-factory.bin, ready to flash to offset 0x0
======================== [SUCCESS] Took 655.60 seconds ========================
INFO Successfully compiled program.

@Nick24 are you sure you don’t have weird characters in your yaml file? Like tab characters or screwed up line endings? What are you using to edit the yaml? Where are you cutting and pasting it from?

@nickrout , really strange, I’m using chrome browser to open the home assistant web page. I edit the yaml directly from the home assistant as shown below

image

I didn’t put any extra tab, should I edit the yaml file using special text editor?

@Troon , u got add the uptime sensor when you compile?

@Nick24 I think you might be running out of RAM. By chance are you compiling on a RPi 3?

@nickrout this HA is running on proxmox & run as ova. I allocate 4Gb to the HA & still have pretty of ram left over as below