benzino77 / tasmocompiler

Web GUI for custom Tasmota compilation
MIT License
488 stars 144 forks source link

I can not build ESP32 generic, if i add BLE gateway support. #225

Closed vampywiz17 closed 2 years ago

vampywiz17 commented 2 years ago

Hello there,

If i add BLE gateway to tasmocompiler, i get this error:

/tmp/Tasmota/tasmota/xsns_62_esp32_mi.ino:59:26: fatal error: NimBLEDevice.h: No such file or directory

benzino77 commented 2 years ago

Which version of TC are you using? What do you put inside "Custom parameters" field (there is no BLE feature in feature list to select in TC)? What version of Tasmota are you choosing?

vampywiz17 commented 2 years ago

@benzino77

  1. 6.0.1

  2. #ifndef USE_OPENTHERM
    #define USE_OPENTHERM
    #endif
    #define USE_EXPRESSION
    #define SUPPORT_IF_STATEMENT
    #define USE_IBEACON_ESP32
    #define USE_MI_ESP32
    #define USE_BLE_ESP32
  3. 9.5.0

Use this latest docker image: https://hub.docker.com/r/benzino77/tasmocompiler/tags

benzino77 commented 2 years ago

There is a bug. TasmoCompiler should allow you to select "Bluetooth" feature for "Generic ESP32" board. I will push new version today.

PS. There is no need to include:

#define USE_EXPRESSION
#define SUPPORT_IF_STATEMENT

it is included by default by TC when "Rules" feature is selected (it is by default).

vampywiz17 commented 2 years ago

Thanks the info!

benzino77 commented 2 years ago

It's looks like docker images are already in the registry. Please pull new docker version of TasmoCompiler and let me know if you can do what you want (I think you need to put USE_OPENTHERM in Custom Parameters field, the rest is included in "Rules" and "Bluetooth" feature)

vampywiz17 commented 2 years ago

@benzino77

It seems work, great :) So, the "rules" include advanced rules and all BT features (BLE gateway, MI devices) include "bluetooth", right?

Edit:

something wrong:


lib/lib_div/OpenTherm-0.9.0/src/OpenTherm.h:32:20: error: redeclaration of 'WRITE'
  WRITE           = WRITE_DATA, // for backwared compatibility
                    ^
In file included from lib/libesp32_div/NimBLE-Arduino/src/NimBLEService.h:24:0,
                 from lib/libesp32_div/NimBLE-Arduino/src/NimBLEServer.h:26,
                 from lib/libesp32_div/NimBLE-Arduino/src/NimBLEDevice.h:35,
                 from /tmp/Tasmota/tasmota/xdrv_79_esp32_ble.ino:148:
lib/libesp32_div/NimBLE-Arduino/src/NimBLECharacteristic.h:33:5: note: previous declaration 'NIMBLE_PROPERTY WRITE'
     WRITE        =  BLE_GATT_CHR_F_WRITE,
     ^
Compiling .pio/build/firmware/lib411/ESP32-HomeKit/esp_hap_controllers.c.o
Archiving .pio/build/firmware/lib5da/libLITTLEFS.a
Compiling .pio/build/firmware/lib411/ESP32-HomeKit/esp_hap_database.c.o
Compiling .pio/build/firmware/lib411/ESP32-HomeKit/esp_hap_ip_services.c.o
Compiling .pio/build/firmware/lib411/ESP32-HomeKit/esp_hap_keystore.c.o
Compiling .pio/build/firmware/lib411/ESP32-HomeKit/esp_hap_main.c.o
*** [.pio/build/firmware/src/tasmota.ino.cpp.o] Error 1
========================= [FAILED] Took 40.50 seconds =========================

Environment    Status    Duration
-------------  --------  ------------
firmware       FAILED    00:00:40.503
==================== 1 failed, 0 succeeded in 00:00:40.503 ====================
Finished. Exit code: 1.
benzino77 commented 2 years ago

So, the "rules" include advanced rules and all BT features (BLE gateway, MI devices) include "bluetooth", right?

Yes. You can find those information here. Bluetooth includes:

USE_BLE_ESP32
USE_MI_ESP32

and Rules includes:

USE_RULES
USE_EXPRESSION
SUPPORT_IF_STATEMENT

This error is not related to TC. You should ask Tasmota Dev Team why it is failing when USE_OPENTHERM is defined/included. You can reach them on Discord channel or via issues on github. This error could also be already fixed in current development version of Tasmota, but TasmoCompiler is not compatibile with this version yet (see #215).

benzino77 commented 2 years ago

I've updated FEATURES_DESC.md file. You can find features descriptions there.

vampywiz17 commented 2 years ago

@benzino77

now i try to build the firmware without Bluetooth feature and it working well ( of course include opentherm)

So it work separately, but same time is not....

barbudor commented 2 years ago

Your log file shows a symbol conflict between NimBLE and OpenTherm that has been solved a few days ago : : https://github.com/arendst/Tasmota/pull/13254 You need to build development branch

benzino77 commented 2 years ago

I just released new version (v7.0.0) of TasmoCompiler which should be fully compatible with Tasmota version v10.0.0.