Closed gCode72 closed 1 year ago
I only tested with the Arduino platform because then the crypto (AES) dependency is correctly resolved.
Could be that it's something missing in my component config but didn't yet tried to get it running on esp-idf.
It uses the same crypto dependency as https://esphome.io/components/sensor/dsmr.html not sure if that works with esp-idf.
Could be a starting point to get it to work
If I find some time I will look if I can use mbedtls/aes.h
Like in https://github.com/MarkEvens/AES-Encryption-ESP-IDF/blob/main/main/main.c
Hi Frans, that would be very kind. Thanks!
If I find some time I will look if I can use mbedtls/aes.h
Like in https://github.com/MarkEvens/AES-Encryption-ESP-IDF/blob/main/main/main.c
Hi there, any news on this?
Sorry not yet
@gCode72 could you test the dev branch? The arduino requirement for encryption is removed.
You can use this in the YAML to install the dev version:
external_components:
- source:
type: git
url: https://github.com/fsaris/EspHome-AwoX-BLE-mesh-hub
ref: dev
Hi Frans, Thanks for working on that. I got still build errors. Here is the log. I think my config file is correct.
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! Library Manager: Installing bblanchon/ArduinoJson @ 6.18.5 INFO Installing bblanchon/ArduinoJson @ 6.18.5 Unpacking [####################################] 100% Library Manager: ArduinoJson@6.18.5 has been installed! INFO ArduinoJson@6.18.5 has been installed! HARDWARE: ESP32 160MHz, 320KB RAM, 4MB Flash
^~~~
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/binary_sensor/automation.o
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/binary_sensor/binary_sensor.o
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/binary_sensor/filter.o
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/bluetooth_proxy/bluetooth_connection.o
src/esphome/components/awox_mesh/mesh_device.cpp: In member function 'virtual bool esphome::awox_mesh::MeshDevice::gattc_event_handler(esp_gattc_cb_event_t, esp_gatt_if_t, esp_ble_gattc_cb_param_t)':
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_REG_EVT' not handled in switch [-Werror=switch]
switch (event) {
^
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_UNREG_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_WRITE_CHAR_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_CLOSE_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_SEARCH_RES_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_READ_DESCR_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_WRITE_DESCR_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_PREP_WRITE_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_EXEC_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_ACL_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_CANCEL_OPEN_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_SRVC_CHG_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_ENC_CMPL_CB_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_CFG_MTU_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_ADV_DATA_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_MULT_ADV_ENB_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_MULT_ADV_UPD_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_MULT_ADV_DATA_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_MULT_ADV_DIS_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_CONGEST_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_BTH_SCAN_ENB_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_BTH_SCAN_CFG_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_BTH_SCAN_RD_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_BTH_SCAN_THR_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_BTH_SCAN_PARAM_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_BTH_SCAN_DIS_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_SCAN_FLT_CFG_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_SCAN_FLT_PARAM_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_SCAN_FLT_STATUS_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_ADV_VSC_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_REG_FOR_NOTIFY_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_UNREG_FOR_NOTIFY_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_CONNECT_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_READ_MULTIPLE_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_QUEUE_FULL_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_SET_ASSOC_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_GET_ADDR_LIST_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp:139:10: error: enumeration value 'ESP_GATTC_DIS_SRVC_CMPL_EVT' not handled in switch [-Werror=switch]
src/esphome/components/awox_mesh/mesh_device.cpp: In lambda function:
src/esphome/components/awox_mesh/mesh_device.cpp:533:48: error: comparison with string literal results in unspecified behavior [-Werror=address]
if (device->device_info->get_icon() != "") {
^~
src/esphome/components/awox_mesh/mesh_device.cpp:592:49: error: comparison with string literal results in unspecified behavior [-Werror=address]
if (device->device_info->get_model() == "") {
^~
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/bluetooth_proxy/bluetooth_proxy.o
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/esp32/core.o
In file included from src/esphome/components/awox_mesh/awox_mesh.h:15,
from src/esphome/components/awox_mesh/awox_mesh.cpp:7:
src/esphome/components/awox_mesh/mesh_device.h:42:20: warning: 'std::__cxx11::string esphome::awox_mesh::TextToBinaryString(std::cxx11::string)' defined but not used [-Wunused-function]
static std::string TextToBinaryString(std::string words) {
^~~~~~
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/esp32/gpio.o
src/esphome/components/awox_mesh/mesh_device.cpp: At global scope:
src/esphome/components/awox_mesh/mesh_device.cpp:55:22: warning: 'unsigned char esphome::awox_mesh::turn_off_bit(unsigned char, int)' defined but not used [-Wunused-function]
static unsigned char turn_off_bit(unsigned char value, int bit) {
^~~~
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/esp32/preferences.o
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/esp32_ble/ble.o
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/esp32_ble/ble_advertising.o
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/esp32_ble/ble_uuid.o
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/esp32_ble_client/ble_characteristic.o
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/esp32_ble_client/ble_client_base.o
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/esp32_ble_client/ble_service.o
src/esphome/components/awox_mesh/mesh_device.cpp: In member function 'std::cxx11::string esphome::awox_mesh::MeshDevice::device_state_as_string(esphome::awox_mesh::Device)':
src/esphome/components/awox_mesh/mesh_device.cpp:51:18: error: 'sprintf' writing a terminating nul past the end of the destination [-Werror=format-overflow=]
sprintf(value, "%02X%02X%02X", hex1, hex2, hex3);
^~~~~~
src/esphome/components/awox_mesh/mesh_device.cpp:51:10: note: 'sprintf' output 7 bytes into a destination of size 6
sprintf(value, "%02X%02X%02X", hex1, hex2, hex3);
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/esp32_ble_tracker/esp32_ble_tracker.o
src/esphome/components/awox_mesh/mesh_device.cpp: In member function 'void esphome::awox_mesh::MeshDevice::handle_packet(std::__cxx11::string&)':
src/esphome/components/awox_mesh/mesh_device.cpp:72:18: error: 'sprintf' writing a terminating nul past the end of the destination [-Werror=format-overflow=]
sprintf(value, "A4:C1:%02X:%02X:%02X:%02X", part3, part4, part5, part6);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/esphome/components/awox_mesh/mesh_device.cpp:72:10: note: 'sprintf' output 18 bytes into a destination of size 17
sprintf(value, "A4:C1:%02X:%02X:%02X:%02X", part3, part4, part5, part6);
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/esphome/components/awox_mesh/mesh_device.h:8,
from src/esphome/components/awox_mesh/mesh_device.cpp:6:
src/esphome/core/log.h:114:18: error: 'mesh_id' may be used uninitialized in this function [-Werror=maybe-uninitialized]
esp_log_printf_(ESPHOME_LOG_LEVEL_WARN, tag, __LINE__, ESPHOME_LOG_FORMAT(format), ##__VA_ARGS__)
^
src/esphome/components/awox_mesh/mesh_device.cpp:325:7: note: 'mesh_id' was declared here
int mesh_id, mode;
^~~~~~~
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/gpio/binary_sensor/gpio_binary_sensor.o
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/gpio/output/gpio_binary_output.o
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/json/json_util.o
Compiling .pioenvs/shelly-plus-1-eingang/src/esphome/components/logger/logger.o
cc1plus: some warnings being treated as errors
*** [.pioenvs/shelly-plus-1-eingang/src/esphome/components/awox_mesh/mesh_device.o] Error 1
================================================================================ [FAILED] Took 25.29 seconds ================================================================================
@gCode72 having the device functioning as switch, Bluetooth proxy and mesh hub will probably be to much.
It's known that the api:
and mqtt:
can result in rebooting of the device due to memory issues when running the mesh hub.
But that isn't the reason it doesn't build at all :)
Thanks for the hints. I will take that into account!
@gCode72 got it running now with framework esp-idf
Only logging is not working properly when connected by cable but that's probably some missing config on my side. Logging over wifi works properly
Hi Frans, It's compiling now, great job! Although I could not get it run on the device. After removing the api config entry (left only mqtt config) the device crashes with error about logger missing (sorry, did not save the log). Have to get if out of the wall first and flashed it by cable before I can retry.
Thanks so far!!
Hello,
I have compiled the firmware using the esp-idf
framework and it works well. I can't really say if there is any difference comparing it to the original arduino
framework. They say the esp-idf
framework should work better/faster with bluetooth, though. Will come back in a few days to let you know.
Thanks!
Hello @michalpulda, Great to hear that. Thank you for contributing! You mean, you have flashed your esp32 device, and it works? What kind of device do you use? I tried to flash a Shelly 1 Plus. But I can't really get it to work. Permanent reboot. At that point, I'am not sure if the Shelly is capable for all that. Could you maybe share your config file?
Regards!
Hi @gCode72, I'm using regular esp32 devkit (vroom). The config file is rather simple, nothing fancy:
substitutions:
name: "esp32u-ble-awox"
friendly_name: "ESP32U BLE Awox"
esphome:
name: "${name}"
friendly_name: "${friendly_name}"
esp32:
board: esp32dev
framework:
#type: arduino
type: esp-idf
wifi:
ssid: !secret wifi-ssid
password: !secret wifi-pass
use_address: 192.168.xxx.xxx
logger:
ota:
password: !secret ota-pass
mqtt:
broker: 192.168.xxx.xxx
username: !secret mqtt_user
password: !secret mqtt_password
external_components:
- source:
type: git
url: https://github.com/fsaris/EspHome-AwoX-BLE-mesh-hub
ref: dev # for esp-idf testing
esp32_ble_tracker:
scan_parameters:
active: false
awox_mesh:
mesh_name: !secret mesh_name
mesh_password: !secret mesh_password
address_prefix: A4:C1:38:56:C1:CD # bulb right next to the ESP32
device_info:
- product_id: 0x49
device_type: DIM
name: Bulb A60 Warm
model: ESMLm_w9w
manufacturer: EGLO
icon: mdi:lightbulb-outline
- product_id: 0x33
device_type: RGB
name: Spot 170
model: EGLOSpot 170/w
manufacturer: EGLO
icon: mdi:light-recessed
- product_id: 0x32
device_type: RGB
name: Spot 120
model: EGLOSpot 120/w
manufacturer: EGLO
icon: mdi:light-recessed
- product_id: 0x51
device_type: RGB
name: TriSpot 85
model: ETriSpot_85
manufacturer: EGLO
icon: mdi:light-recessed
- product_id: 0x85
device_type: PLUG
name: EGLO PLUG PLUS
model: SMPWBm10GEa
manufacturer: EGLO
icon: mdi:power-socket-de
switch:
- platform: restart
name: "${friendly_name} Restart"
binary_sensor:
- platform: status
name: "${friendly_name} Status"
can confirm, managed to build and flash using the config above. my device was already using esp-idf for other stuff and adding awox nearly doubled the firmware size. it took almost all the flash space of my Lilygo stick and took me a couple of tries to push it through the timeouts while doing OTA, but now everything works 👍
Hello everyone, I finally also get it work. Now it's working pretty good. Light become unavailable from time to time in HA.
But for me the issue regarding esp-idf framework is fixed.
Again, great work @fsaris. Thanks all who have contributed testing.
Regards!
Code is merged to the main branch
Hello The attached config file builds and runs on the shelly 1 plus pretty well, without the add of the awox line in the end.
When adding the awox part, taken from https://github.com/fsaris/EspHome-AwoX-BLE-mesh-hub/blob/main/awox-ble-mesh-hub.yaml, the the build crashes.
See ERROR_1 below.
When I replace the board framework type to arduino, then it's building, but of corse the image doesn't run on the shelly.
This happens on an iMac 10.15.7.
I tried also in esphome addon in HA and on a macbook. There I got this error in build.
See ERROR_2 below.
Is board framework type esp-idf not supported, or am I doing something wrong?
Home Assistant 2023.2.5 ESPHome 2023.2.4
ERROR_1: esphome run shelly_1_plus_bt_mqtt.yaml INFO Reading configuration shelly_1_plus_bt_mqtt.yaml... WARNING GPIO4 is a Strapping PIN and should be avoided. Attaching external pullup/down resistors to strapping pins can cause unexpected failures. See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins WARNING GPIO0 is a Strapping PIN and should be avoided. Attaching external pullup/down resistors to strapping pins can cause unexpected failures. See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins INFO Generating C++ source... INFO Compiling app... Processing shelly-plus-1 (board: esp32dev; framework: espidf; platform: platformio/espressif32 @ 5.2.0)
HARDWARE: ESP32 160MHz, 320KB RAM, 4MB Flash
CMake Error at .pioenvs/shelly-plus-1/CMakeFiles/git-data/grabRef.cmake:48 (file): file failed to open for reading (No such file or directory):
/Volumes/DatenHD/Giampiero/Documents/espHome/.esphome/build/shelly-plus-1/.pioenvs/shelly-plus-1/CMakeFiles/git-data/head-ref Call Stack (most recent call first): /Volumes/DatenHD/Giampiero/.platformio/packages/framework-espidf/tools/cmake/third_party/GetGitRevisionDescription.cmake:80 (include) /Volumes/DatenHD/Giampiero/.platformio/packages/framework-espidf/tools/cmake/third_party/GetGitRevisionDescription.cmake:90 (get_git_head_revision) /Volumes/DatenHD/Giampiero/.platformio/packages/framework-espidf/tools/cmake/build.cmake:67 (git_describe) /Volumes/DatenHD/Giampiero/.platformio/packages/framework-espidf/tools/cmake/build.cmake:175 (build_get_idf_git_revision) /Volumes/DatenHD/Giampiero/.platformio/packages/framework-espidf/tools/cmake/idf.cmake:50 (build_init) /Volumes/DatenHD/Giampiero/.platformio/packages/framework-espidf/tools/cmake/project.cmake:12 (include) CMakeLists.txt:2 (include)
fatal: Needed a single revision fatal: not a git repository: /Volumes/DatenHD/Giampiero/.platformio/packages/framework-espidf/components/openthread/openthread/../../../.git/modules/components/openthread/openthread
=================================================================================== [FAILED] Took 8.22 seconds ===================================================================================
ERROR_2: INFO Reading configuration /config/esphome/s11.yaml... WARNING GPIO4 is a Strapping PIN and should be avoided. Attaching external pullup/down resistors to strapping pins can cause unexpected failures. See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins WARNING GPIO0 is a Strapping PIN and should be avoided. Attaching external pullup/down resistors to strapping pins can cause unexpected failures. See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins INFO Generating C++ source... INFO Core config or version changed, cleaning build files... INFO Deleting /data/shelly-plus-1/.pioenvs INFO Deleting /data/shelly-plus-1/.piolibdeps INFO Compiling app... Processing shelly-plus-1 (board: esp32dev; framework: espidf; platform: platformio/espressif32 @ 5.2.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! Library Manager: Installing bblanchon/ArduinoJson @ 6.18.5 INFO Installing bblanchon/ArduinoJson @ 6.18.5 Unpacking [####################################] 100% Library Manager: ArduinoJson@6.18.5 has been installed! INFO ArduinoJson@6.18.5 has been installed! Library Manager: Installing rweather/Crypto @ 0.4.0 INFO Installing rweather/Crypto @ 0.4.0 Unpacking [####################################] 100% Library Manager: Crypto@0.4.0 has been installed! INFO Crypto@0.4.0 has been installed! HARDWARE: ESP32 160MHz, 320KB RAM, 4MB Flash
pragma once
Compiling /data/shelly-plus-1/.pioenvs/shelly-plus-1/src/esphome/components/awox_mesh/mesh_device.o In file included from src/esphome/components/awox_mesh/awox_mesh.cpp:7: src/esphome/components/awox_mesh/awox_mesh.h:8:10: fatal error: AES.h: No such file or directory
include
compilation terminated. *** [/data/shelly-plus-1/.pioenvs/shelly-plus-1/src/esphome/components/awox_mesh/awox_mesh.o] Error 1 src/esphome/components/awox_mesh/mesh_device.cpp:8:10: fatal error: AES.h: No such file or directory
include
compilation terminated. *** [/data/shelly-plus-1/.pioenvs/shelly-plus-1/src/esphome/components/awox_mesh/mesh_device.o] Error 1 ========================= [FAILED] Took 129.03 seconds =========================
shelly_1_plus_bt_mqtt_1.txt