esphome / issues

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

OTA on_state_change misses a semicolon after "lambda:"-keyword #5362

Closed M4dMikel closed 8 months ago

M4dMikel commented 8 months ago

The problem

Hi everyone,

on the esphome-website under the OTA-Documentation (https://esphome.io/components/ota) i found a not working example text. In the example text to the on_state_change function is a semicolon missing at the end of line with the "lambda:" keyword. In the current form i wasnt able to compile my .yaml file with this example inside of it. With a semicolon at the end of this line everything worked fine.

Thanks, have a nice day.

Which version of ESPHome has the issue?

2023.12.05

What type of installation are you using?

pip

Which version of Home Assistant has the issue?

https://esphome.io/components/ota

What platform are you using?

ESP32-IDF

Board

ESP32-C3-SuperMini (esp32-c3-devkitm-1

Component causing the issue

OTA state_on_change

Example YAML snippet

ota:
  on_state_change:
    then:
      - if:
          condition:
            lambda: return state == ota::OTA_STARTED
          then:
            - logger.log: "OTA start"

Anything in the logs that might be useful for us?

***\esp32-c3-test>esphome run esp32-c3-test-1.yaml
INFO ESPHome 2023.12.5
INFO Reading configuration esp32-c3-test-1.yaml...
INFO Generating C++ source...
INFO Core config or version changed, cleaning build files...
INFO Compiling app...
Processing esp32-c3-test-1 (board: esp32-c3-devkitm-1; framework: espidf; platform: platformio/espressif32@5.4.0)
------------------------------------------------------------------------------------------------------------------------
Library Manager: Installing esphome/noise-c @ 0.1.4
INFO Installing esphome/noise-c @ 0.1.4
Unpacking  [####################################]  100%
Library Manager: noise-c@0.1.4 has been installed!
INFO noise-c@0.1.4 has been installed!
Library Manager: Resolving dependencies...
INFO Resolving dependencies...
Library Manager: Installing esphome/libsodium @ 1.10018.1
INFO Installing esphome/libsodium @ 1.10018.1
Unpacking  [####################################]  100%
Library Manager: libsodium@1.10018.1 has been installed!
INFO libsodium@1.10018.1 has been installed!
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-c3-devkitm-1.html
PLATFORM: Espressif 32 (5.4.0) > Espressif ESP32-C3-DevKitM-1
HARDWARE: ESP32C3 160MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-espidf @ 3.40405.230623 (4.4.5)
 - tool-cmake @ 3.16.4
 - tool-esptoolpy @ 1.40400.0 (4.4.0)
 - tool-idf @ 1.0.1
 - tool-mconf @ 1.4060000.20190628 (406.0.0)
 - tool-ninja @ 1.9.0
 - toolchain-esp32ulp @ 2.35.0-20220830
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
Reading CMake configuration...
Generating assembly for certificate bundle...
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ off, Compatibility ~ soft
Found 2 compatible libraries
Scanning dependencies...
Dependency Graph
|-- noise-c @ 0.1.4
Building in release mode
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\api\api_connection.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\api\api_frame_helper.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\api\api_pb2.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\api\api_pb2_service.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\api\api_server.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\api\list_entities.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\api\proto.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\api\subscribe_state.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\api\user_services.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\bme280\bme280.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\copy\sensor\copy_sensor.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\esp32\core.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\esp32\gpio.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\esp32\preferences.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\i2c\i2c.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\i2c\i2c_bus_arduino.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\i2c\i2c_bus_esp_idf.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\logger\logger.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\md5\md5.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\mdns\mdns_component.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\mdns\mdns_esp32.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\mdns\mdns_esp8266.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\mdns\mdns_host.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\mdns\mdns_libretiny.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\mdns\mdns_rp2040.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\network\util.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\ota\ota_backend_arduino_esp32.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\ota\ota_backend_arduino_esp8266.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\ota\ota_backend_arduino_libretiny.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\ota\ota_backend_arduino_rp2040.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\ota\ota_backend_esp_idf.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\ota\ota_component.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\sensor\automation.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\sensor\filter.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\sensor\sensor.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\socket\bsd_sockets_impl.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\socket\lwip_raw_tcp_impl.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\socket\lwip_sockets_impl.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\socket\socket.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\wifi\wifi_component.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\wifi\wifi_component_esp32_arduino.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\wifi\wifi_component_esp8266.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\wifi\wifi_component_esp_idf.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\wifi\wifi_component_libretiny.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\wifi\wifi_component_pico_w.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\components\wifi_signal\wifi_signal_sensor.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\core\application.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\core\color.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\core\component.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\core\component_iterator.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\core\controller.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\core\entity_base.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\core\helpers.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\core\log.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\core\scheduler.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\core\string_ref.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\core\time.o
Compiling .pioenvs\esp32-c3-test-1\src\esphome\core\util.o
Compiling .pioenvs\esp32-c3-test-1\src\main.o
Generating LD script .pioenvs\esp32-c3-test-1\memory.ld
Compiling .pioenvs\esp32-c3-test-1\app_trace\app_trace.o
Compiling .pioenvs\esp32-c3-test-1\app_trace\app_trace_util.o
Compiling .pioenvs\esp32-c3-test-1\app_trace\host_file_io.o
Compiling .pioenvs\esp32-c3-test-1\app_trace\gcov\gcov_rtio.o
Archiving .pioenvs\esp32-c3-test-1\esp-idf\app_trace\libapp_trace.a
Compiling .pioenvs\esp32-c3-test-1\app_update\esp_ota_ops.o
Compiling .pioenvs\esp32-c3-test-1\app_update\esp_app_desc.o
Compiling .pioenvs\esp32-c3-test-1\bootloader_support\src\bootloader_common.o
Compiling .pioenvs\esp32-c3-test-1\bootloader_support\src\bootloader_common_loader.o
Archiving .pioenvs\esp32-c3-test-1\esp-idf\app_update\libapp_update.a
Compiling .pioenvs\esp32-c3-test-1\bootloader_support\src\bootloader_clock_init.o
Compiling .pioenvs\esp32-c3-test-1\bootloader_support\src\bootloader_flash.o
Compiling .pioenvs\esp32-c3-test-1\bootloader_support\src\bootloader_mem.o
<unicode string>: In lambda function:
<unicode string>:75:39: error: expected ';' before '}' token
Compiling .pioenvs\esp32-c3-test-1\bootloader_support\src\bootloader_random.o
Compiling .pioenvs\esp32-c3-test-1\bootloader_support\src\bootloader_random_esp32c3.o
Compiling .pioenvs\esp32-c3-test-1\bootloader_support\src\bootloader_utility.o
*** [.pioenvs\esp32-c3-test-1\src\main.o] Error 1
============================================= [FAILED] Took 149.64 seconds =============================================

Additional information

As a beginner with a not so small .yaml-file this took me quite some time to figure out.

Have a nice Day.

ssieb commented 8 months ago

You could make a PR for the docs.

M4dMikel commented 8 months ago

Thanks for your Advice.

I tried so here: https://github.com/esphome/esphome-docs/pull/3530

As a first-timer i appreciate your Feedback.