Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BK72XX Compile error error in IRremoteESP8266 #5432

Open
dianlight opened this issue Jan 25, 2024 · 5 comments · May be fixed by esphome/esphome#6955
Open

BK72XX Compile error error in IRremoteESP8266 #5432

dianlight opened this issue Jan 25, 2024 · 5 comments · May be fixed by esphome/esphome#6955

Comments

@dianlight
Copy link

The problem

I have a compiler error when I add climete/heatpumpir to my config.

Which version of ESPHome has the issue?

2023.12.9

What type of installation are you using?

Home Assistant Add-on

Which version of Home Assistant has the issue?

2024.1

What platform are you using?

BK72XX

Board

generic-bk7231t-qfn32-tuya

Component causing the issue

climate/heaypimpir

Example YAML snippet

esphome:
  name: "smart-ir-display"

bk72xx:
  board: generic-bk7231t-qfn32-tuya

logger:

web_server:

captive_portal:

mdns:

api:
  password: !secret api_password

ota:
  password: !secret ota_password

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

text_sensor:
  - platform: libretiny
    version:
      name: LibreTiny Version


remote_receiver:
  id: rcvr
  pin:
    number: PWM2 #P8
    inverted: True
    mode: INPUT_PULLUP
  dump: all
  tolerance: 55%
  buffer_size: 10kB
  

remote_transmitter:
  id: send
  pin: P26 # P14 for AHT10 model
  carrier_duty_percent: 50%

climate:
  - platform: heatpumpir
    protocol: daikin
    horizontal_default: auto
    vertical_default: auto
    max_temperature: 32
    min_temperature: 16  
    name: "Soggiorno Giochi AC"
    receiver_id: rcvr
    transmitter_id: send

Anything in the logs that might be useful for us?

INFO ESPHome 2023.12.9
INFO Reading configuration /config/esphome/smart-ir-display.yaml...
INFO Detected timezone 'Europe/Rome'
INFO Generating C++ source...
INFO Compiling app...
Processing smart-ir-display (board: generic-bk7231t-qfn32-tuya; framework: arduino; platform: libretiny @ 1.4.1)
--------------------------------------------------------------------------------
Removing unused dependencies...
Library Manager: Installing tonia/HeatpumpIR @ 1.0.23
INFO Installing tonia/HeatpumpIR @ 1.0.23
Unpacking  [####################################]  100%
Library Manager: HeatpumpIR@1.0.23 has been installed!
INFO HeatpumpIR@1.0.23 has been installed!
Library Manager: Resolving dependencies...
INFO Resolving dependencies...
Warning! Non-Git installations are NOT SUPPORTED.
HARDWARE: BK7231T 120MHz, 256KB RAM, 1.03MB Flash
 - framework-arduino-api @ 2022.8.24+sha.237b10a 
 - framework-beken-bdk @ 0.0.0+v2021.06.07.sha.6491b8c 
 - library-flashdb @ 1.2.0+sha.d5c892f 
 - library-freertos @ 9.0.0+sha.95cc959 
 - library-freertos-port @ 2023.5.23+sha.a917d93 
 - library-lwip @ 2.1.3-bdk+sha.4ee4d34 
 - library-printf @ 6.1.0+sha.28a79bd 
 - library-uf2ota @ 5.0.0+sha.f955412 
PLATFORM VERSIONS:
 - libretiny @ 1.4.1
 - ltchiptool @ 4.10.1
CUSTOM OPTIONS:
 - fw_name = esphome
 - fw_version = 2023.12.9
Dependency Graph
|-- AsyncTCP-esphome @ 2.0.1
|-- ESPAsyncWebServer-esphome @ 3.1.0
|-- DNSServer @ 1.1.0
|-- ArduinoJson @ 6.18.5
|-- HeatpumpIR @ 1.0.23
Compiling .pioenvs/smart-ir-display/src/esphome/components/api/api_connection.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/api/api_frame_helper.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/api/api_pb2.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/api/api_pb2_service.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/api/api_server.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/api/list_entities.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/api/proto.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/api/subscribe_state.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/api/user_services.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/binary_sensor/automation.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/binary_sensor/binary_sensor.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/binary_sensor/filter.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/captive_portal/captive_portal.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/climate/climate.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/climate/climate_mode.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/climate/climate_traits.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/climate_ir/climate_ir.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/heatpumpir/heatpumpir.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/heatpumpir/ir_sender_esphome.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/homeassistant/time/homeassistant_time.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/json/json_util.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/libretiny/core.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/libretiny/gpio_arduino.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/libretiny/lt_component.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/libretiny/preferences.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/logger/logger.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/md5/md5.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/mdns/mdns_component.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/mdns/mdns_esp32.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/mdns/mdns_esp8266.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/mdns/mdns_host.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/mdns/mdns_libretiny.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/mdns/mdns_rp2040.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/network/util.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/ota/ota_backend_arduino_esp32.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/ota/ota_backend_arduino_esp8266.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/ota/ota_backend_arduino_libretiny.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/ota/ota_backend_arduino_rp2040.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/ota/ota_backend_esp_idf.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/ota/ota_component.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/aeha_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/byronsx_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/canalsat_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/coolix_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/dish_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/drayton_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/haier_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/jvc_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/lg_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/magiquest_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/midea_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/nec_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/nexa_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/panasonic_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/pioneer_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/pronto_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/raw_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/rc5_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/rc6_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/rc_switch_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/remote_base.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/samsung36_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/samsung_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/sony_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_base/toshiba_ac_protocol.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_receiver/remote_receiver_esp32.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_receiver/remote_receiver_esp8266.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_receiver/remote_receiver_libretiny.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_transmitter/remote_transmitter.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_transmitter/remote_transmitter_esp32.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_transmitter/remote_transmitter_esp8266.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/remote_transmitter/remote_transmitter_libretiny.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/sensor/automation.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/sensor/filter.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/sensor/sensor.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/socket/bsd_sockets_impl.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/socket/lwip_raw_tcp_impl.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/socket/lwip_sockets_impl.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/socket/socket.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/status_led/status_led.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/template/sensor/template_sensor.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/text_sensor/filter.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/text_sensor/text_sensor.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/time/automation.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/time/real_time_clock.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/tuya/automation.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/tuya/tuya.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/uart/uart.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/uart/uart_component.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/uart/uart_component_esp32_arduino.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/uart/uart_component_esp8266.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/uart/uart_component_esp_idf.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/uart/uart_component_libretiny.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/uart/uart_component_rp2040.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/uart/uart_debugger.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/web_server/list_entities.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/web_server/web_server.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/web_server_base/web_server_base.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/wifi/wifi_component.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/wifi/wifi_component_esp32_arduino.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/wifi/wifi_component_esp8266.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/wifi/wifi_component_esp_idf.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/wifi/wifi_component_libretiny.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/components/wifi/wifi_component_pico_w.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/core/application.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/core/color.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/core/component.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/core/component_iterator.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/core/controller.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/core/entity_base.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/core/helpers.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/core/log.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/core/ring_buffer.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/core/scheduler.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/core/string_ref.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/core/time.cpp.o
Compiling .pioenvs/smart-ir-display/src/esphome/core/util.cpp.o
Compiling .pioenvs/smart-ir-display/src/main.cpp.o
Compiling .pioenvs/smart-ir-display/lib5f2/AsyncTCP-esphome/AsyncTCP.cpp.o
Compiling .pioenvs/smart-ir-display/lib2be/ESPAsyncWebServer-esphome/AsyncEventSource.cpp.o
Archiving .pioenvs/smart-ir-display/lib5f2/libAsyncTCP-esphome.a
Compiling .pioenvs/smart-ir-display/lib2be/ESPAsyncWebServer-esphome/AsyncWebSocket.cpp.o
Compiling .pioenvs/smart-ir-display/lib2be/ESPAsyncWebServer-esphome/WebAuthentication.cpp.o
Compiling .pioenvs/smart-ir-display/lib2be/ESPAsyncWebServer-esphome/WebHandlers.cpp.o
Compiling .pioenvs/smart-ir-display/lib2be/ESPAsyncWebServer-esphome/WebRequest.cpp.o
Compiling .pioenvs/smart-ir-display/lib2be/ESPAsyncWebServer-esphome/WebResponses.cpp.o
Compiling .pioenvs/smart-ir-display/lib2be/ESPAsyncWebServer-esphome/WebServer.cpp.o
Compiling .pioenvs/smart-ir-display/libb29/DNSServer/DNSServer.cpp.o
Compiling .pioenvs/smart-ir-display/lib84c/IRremoteESP8266/IRac.cpp.o
Compiling .pioenvs/smart-ir-display/lib84c/IRremoteESP8266/IRrecv.cpp.o
Archiving .pioenvs/smart-ir-display/libb29/libDNSServer.a
Archiving .pioenvs/smart-ir-display/lib2be/libESPAsyncWebServer-esphome.a
Compiling .pioenvs/smart-ir-display/lib84c/IRremoteESP8266/IRsend.cpp.o
Compiling .pioenvs/smart-ir-display/lib84c/IRremoteESP8266/IRtext.cpp.o
/piolibs/IRremoteESP8266/src/IRrecv.cpp:140:7: error: '_IRrecv' has not been declared
  140 | using _IRrecv::timer;
      |       ^~~~~~~
/piolibs/IRremoteESP8266/src/IRrecv.cpp:174:3: error: expected unqualified-id before 'if'
  174 |   if (params.rawlen) params.rcvstate = kStopState;
      |   ^~
/piolibs/IRremoteESP8266/src/IRrecv.cpp:181:1: error: expected declaration before '}' token
  181 | }
      | ^
/piolibs/IRremoteESP8266/src/IRrecv.cpp:184:27: error: expected initializer before 'gpio_intr'
  184 | static void USE_IRAM_ATTR gpio_intr() {
      |                           ^~~~~~~~~
/piolibs/IRremoteESP8266/src/IRrecv.cpp: In member function 'void IRrecv::enableIRIn(bool)':
/piolibs/IRremoteESP8266/src/IRrecv.cpp:389:35: error: 'gpio_intr' was not declared in this scope
  389 |   attachInterrupt(params.recvpin, gpio_intr, CHANGE);
      |                                   ^~~~~~~~~
*** [.pioenvs/smart-ir-display/lib84c/IRremoteESP8266/IRrecv.cpp.o] Error 1
========================= [FAILED] Took 217.86 seconds =========================

Additional information

No response

@crankyoldgit
Copy link

FYI, I don't believe the bk7231t etc is part of the ESP chip family.
The IRremoteESP8266 library only supports the ESP8266 & ESP32 family of chips.

@VivitechMT
Copy link

I've encountered the same issue when using

climate:
platform: heatpumpir

I understand the comments about the BK72xx not being ESP chips, but the curious thing is that I have a working BK72xx device using this config:

climate:
platform: mitsubishi

So I wonder how does the mitsubishi configuration successfully send IR commands to the Beken chip ?!

@crankyoldgit
Copy link

So I wonder how does the mitsubishi configuration successfully send IR commands to the Beken chip ?!

That is something you will have to ask the ESPHome community. I have no idea.

If ESP32 or ESP8266 are not defined, you will get the error you orginally described.

@rob-deutsch
Copy link

@crankyoldgit thanks for chiming in here.

I'm the codeowner for this part of esphome, and I agree with your perspective.

We'll resolve this internally and won't need to involve your crankyoldgit/IRremoteESP8266 repo.

PS thanks for creating and maintaining IRremoteESP8266! I've used it a few times and its very helpful.

@rob-deutsch
Copy link

rob-deutsch commented Jun 25, 2024

I've encountered the same issue when using

climate: platform: heatpumpir

I understand the comments about the BK72xx not being ESP chips, but the curious thing is that I have a working BK72xx device using this config:

climate: platform: mitsubishi

So I wonder how does the mitsubishi configuration successfully send IR commands to the Beken chip ?!

That's a good quesiton, and its answered in the ESPHome documentation:

The heatpumpir platform supports dozens of manufacturers and hundreds of AC units by utilising the Arduino-HeatpumpIR library.

This platform should only be used if your AC unit is not supported by any of the other (native) platforms. No support can be provided for Arduino-HeatpumpIR, because it is a third party library.

The heatpumpir platform doesn't currently work on BK72xx chips. Fixes for this are being discussed in esphome/esphome#6955 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants