esphome / issues

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

Using fastled_clockless on 2.7.4 framework broken in esphome 2023.12 #5270

Open jehy opened 11 months ago

jehy commented 11 months ago

The problem

Using fastled_clockless with 2.7.4 framework was usable recently but broken in 2023.12.

Current compilation logs, 2023.12.3, click to expand ``` Processing led-controller-1-ws2812b (board: esp8285; framework: arduino; platform: platformio/espressif8266@2.6.3) -------------------------------------------------------------------------------- HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash Dependency Graph |-- ESPAsyncTCP-esphome @ 2.0.0 |-- ESPAsyncWebServer-esphome @ 3.1.0 |-- DNSServer @ 1.1.1 |-- ESP8266WiFi @ 1.0 |-- ESP8266mDNS @ 1.2 |-- ArduinoJson @ 6.18.5 |-- FastLED @ 3.3.2 Compiling .pioenvs/led-controller-1-ws2812b/src/esphome/components/api/api_connection.cpp.o Compiling .pioenvs/led-controller-1-ws2812b/src/esphome/components/api/api_server.cpp.o Compiling .pioenvs/led-controller-1-ws2812b/src/esphome/components/api/list_entities.cpp.o Compiling .pioenvs/led-controller-1-ws2812b/src/esphome/components/api/proto.cpp.o Compiling .pioenvs/led-controller-1-ws2812b/src/esphome/components/api/subscribe_state.cpp.o In file included from src/esphome/components/api/api_connection.h:6:0, from src/esphome/components/api/api_connection.cpp:1: src/esphome/components/api/api_server.h:118:96: error: invalid use of '::' Trigger *client_connected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:118:96: error: expected ';' at end of member declaration src/esphome/components/api/api_server.h:118:102: error: expected unqualified-id before '>' token Trigger *client_connected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:119:99: error: invalid use of '::' Trigger *client_disconnected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:119:99: error: expected ';' at end of member declaration src/esphome/components/api/api_server.h:119:105: error: expected unqualified-id before '>' token Trigger *client_disconnected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:118:83: error: template argument 1 is invalid Trigger *client_connected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:119:86: error: template argument 1 is invalid Trigger *client_disconnected_trigger_ = new Trigger(); ^ In file included from src/esphome/components/api/api_server.cpp:1:0: src/esphome/components/api/api_server.h:118:96: error: invalid use of '::' Trigger *client_connected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:118:96: error: expected ';' at end of member declaration src/esphome/components/api/api_server.h:118:102: error: expected unqualified-id before '>' token Trigger *client_connected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:119:99: error: invalid use of '::' Trigger *client_disconnected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:119:99: error: expected ';' at end of member declaration src/esphome/components/api/api_server.h:119:105: error: expected unqualified-id before '>' token Trigger *client_disconnected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:118:83: error: template argument 1 is invalid Trigger *client_connected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:119:86: error: template argument 1 is invalid Trigger *client_disconnected_trigger_ = new Trigger(); ^ In file included from src/esphome/components/api/api_connection.h:6:0, from src/esphome/components/api/list_entities.cpp:5: src/esphome/components/api/api_server.h:118:96: error: invalid use of '::' Trigger *client_connected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:118:96: error: expected ';' at end of member declaration src/esphome/components/api/api_server.h:118:102: error: expected unqualified-id before '>' token Trigger *client_connected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:119:99: error: invalid use of '::' Trigger *client_disconnected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:119:99: error: expected ';' at end of member declaration src/esphome/components/api/api_server.h:119:105: error: expected unqualified-id before '>' token Trigger *client_disconnected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:118:83: error: template argument 1 is invalid Trigger *client_connected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:119:86: error: template argument 1 is invalid Trigger *client_disconnected_trigger_ = new Trigger(); ^ cc1plus: warning: unrecognized command line option "-Wno-nonnull-compare" [enabled by default] *** [.pioenvs/led-controller-1-ws2812b/src/esphome/components/api/api_connection.cpp.o] Error 1 cc1plus: warning: unrecognized command line option "-Wno-nonnull-compare" [enabled by default] *** [.pioenvs/led-controller-1-ws2812b/src/esphome/components/api/list_entities.cpp.o] Error 1 cc1plus: warning: unrecognized command line option "-Wno-nonnull-compare" [enabled by default] *** [.pioenvs/led-controller-1-ws2812b/src/esphome/components/api/api_server.cpp.o] Error 1 In file included from src/esphome/components/api/api_connection.h:6:0, from src/esphome/components/api/subscribe_state.cpp:2: src/esphome/components/api/api_server.h:118:96: error: invalid use of '::' Trigger *client_connected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:118:96: error: expected ';' at end of member declaration src/esphome/components/api/api_server.h:118:102: error: expected unqualified-id before '>' token Trigger *client_connected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:119:99: error: invalid use of '::' Trigger *client_disconnected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:119:99: error: expected ';' at end of member declaration src/esphome/components/api/api_server.h:119:105: error: expected unqualified-id before '>' token Trigger *client_disconnected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:118:83: error: template argument 1 is invalid Trigger *client_connected_trigger_ = new Trigger(); ^ src/esphome/components/api/api_server.h:119:86: error: template argument 1 is invalid Trigger *client_disconnected_trigger_ = new Trigger(); ^ cc1plus: warning: unrecognized command line option "-Wno-nonnull-compare" [enabled by default] *** [.pioenvs/led-controller-1-ws2812b/src/esphome/components/api/subscribe_state.cpp.o] Error 1 ========================== [FAILED] Took 3.73 seconds ========================== ```

If I drop framework: version: 2.7.4 part, then:

Failed config

light.fastled_clockless: [source <unicode string>:69]

  This feature requires framework version 2.7.4 or lower. Please see note on documentation for FastLED.

Which version of ESPHome has the issue?

2023.12.3

What type of installation are you using?

Docker

Which version of Home Assistant has the issue?

2023.12

What platform are you using?

ESP8266

Board

No response

Component causing the issue

light.fastled_clockless

Example YAML snippet

Component yaml, click to expand ```yaml substitutions: name: "led-controller-1-ws2812b" friendly_name: "Athom LED Controller" project_name: "athom.ls-4p-3wire" project_version: "1.1" button_toggle: "true" led_restore_mode: RESTORE_DEFAULT_OFF number_of_leds: '60' led_rgb_order: GRB led_chipset: WS2812B esp8266: board: esp8285 restore_from_flash: true framework: version: 2.7.4 api: ota: logger: baud_rate: 0 web_server: port: 80 captive_portal: binary_sensor: - platform: status name: "${friendly_name} Status" - platform: gpio pin: number: 0 mode: INPUT_PULLUP inverted: true name: "${friendly_name} Power Button" disabled_by_default: true on_multi_click: - timing: - ON for at most 1s - OFF for at least 0.2s then: - light.toggle: leds - timing: - ON for at least 4s then: - button.press: Reset sensor: - platform: uptime name: "${friendly_name} Uptime" button: - platform: factory_reset name: Restart with Factory Default Settings id: Reset power_supply: - id: relay pin: GPIO12 wled: light: - platform: fastled_clockless pin: GPIO1 id: leds name: "${friendly_name}" power_supply: relay chipset: ${led_chipset} num_leds: ${number_of_leds} rgb_order: ${led_rgb_order} restore_mode: ${led_restore_mode} text_sensor: - platform: wifi_info ip_address: name: "${friendly_name} IP Address" disabled_by_default: true time: - platform: sntp id: my_time esphome: name: ${name} name_add_mac_suffix: false project: name: "${project_name}" version: "${project_version}" wifi: ssid: !secret wifi_ssid password: !secret wifi_password ap: {} # This spawns an AP with the device name and mac address with no password. ```

Anything in the logs that might be useful for us?

No response

Additional information

UPD: I see many duplicates like https://github.com/esphome/issues/issues/4449, but it seems like build with 2.7.4 was fixed in https://github.com/esphome/esphome/pull/4777 and in release 2023.4.4 but was broken in 2023.12 - was that intentionally?

UPD: I tried neopixel and I suddenly discovered that it took me two minutes to migrate to it, that's almost a drop in replacement. Can we somehow make it more obvious in compile error messages?

UPD: By the way, docs say that using old framework should still work, but that's not the case. We should either update docs or make it work:

image

github-actions[bot] commented 7 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Gvolten commented 4 months ago

bump

DefenestratingWizard commented 2 months ago

still an issue on 2024.8.3, can attach logs if needed

jerano commented 2 weeks ago

Still the same problem! And please stop recommending other components, my LED strip is not supported by them.

Why can't the FastLED component be upgraded to something newer than v3.3.2 ? I would assume the issue with RMT that prevented esphome from using v3.3.3 would have been fixed by now when they're at v3.9.2 ?!