Bluetooth Proxy Ready-Made Project aborting
izenn opened this issue · 8 comments
using the web interface i uploaded the bluetooth-proxy to my device and it goes into a boot/abort loop. I've used this device and cable before for this project, i was going to update it to the current version before i put it back in service. I've also downloaded the YAML and compiled/uploaded it with esphome on the cli via serial as well as the esphome dashboard as an OTA update and got the same results
hardware is an esp32 d1 mini
[14:06:14]E (11474) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
[14:06:14]E (11474) task_wdt: - loopTask (CPU 1)
[14:06:14]E (11474) task_wdt: Tasks currently running:
[14:06:14]E (11474) task_wdt: CPU 0: IDLE0
[14:06:14]E (11474) task_wdt: CPU 1: IDLE1
[14:06:14]E (11474) task_wdt: Aborting.
[14:06:14]
[14:06:14]abort() was called at PC 0x401372c4 on core 0
[14:06:14]
[14:06:14]
[14:06:14]Backtrace: 0x40082bfa:0x3ffbe3f0 0x40091ec9:0x3ffbe410 0x40097ed6:0x3ffbe430 0x401372c4:0x3ffbe4a0 0x400835f5:0x3ffbe4c0 0x401c644b:0x3ffbc780 0x40137a15:0x3ffbc7a0 0x400932a0:0x3ffbc7c0
WARNING Found stack trace! Trying to decode it
WARNING Decoded 0x40082bfa: panic_abort at /Users/adam/.platformio/packages/framework-espidf/components/esp_system/panic.c:408
WARNING Decoded 0x40091ec9: esp_system_abort at /Users/adam/.platformio/packages/framework-espidf/components/esp_system/esp_system.c:137
WARNING Decoded 0x40097ed6: abort at /Users/adam/.platformio/packages/framework-espidf/components/newlib/abort.c:46
WARNING Decoded 0x401372c4: task_wdt_isr at /Users/adam/.platformio/packages/framework-espidf/components/esp_system/task_wdt.c:176 (discriminator 3)
WARNING Decoded 0x400835f5: _xt_lowint1 at /Users/adam/.platformio/packages/framework-espidf/components/freertos/port/xtensa/xtensa_vectors.S:1118
WARNING Decoded 0x401c644b: cpu_ll_waiti at /Users/adam/.platformio/packages/framework-espidf/components/hal/esp32/include/hal/cpu_ll.h:183
(inlined by) esp_pm_impl_waiti at /Users/adam/.platformio/packages/framework-espidf/components/esp_pm/pm_impl.c:853
WARNING Decoded 0x40137a15: esp_vApplicationIdleHook at /Users/adam/.platformio/packages/framework-espidf/components/esp_system/freertos_hooks.c:63
WARNING Decoded 0x400932a0: prvIdleTask at /Users/adam/.platformio/packages/framework-espidf/components/freertos/tasks.c:4099
yaml:
substitutions:
name: esp32-bluetooth-proxy
friendly_name: Bluetooth Proxy
esphome:
name: ${name}
friendly_name: ${friendly_name}
min_version: 2024.6.0
name_add_mac_suffix: false
project:
name: esphome.bluetooth-proxy
version: "24.7.4.1"
esp32:
board: esp32dev
framework:
type: esp-idf
wifi:
ssid: Internal
password: "password"
api:
encryption:
key: key
logger:
improv_serial:
ota:
- platform: esphome
id: ota_esphome
- platform: http_request
id: ota_http_request
update:
- platform: http_request
id: update_http_request
name: Firmware
source: https://firmware.esphome.io/bluetooth-proxy/esp32-generic/manifest.json
http_request:
dashboard_import:
package_import_url: github://esphome/firmware/bluetooth-proxy/esp32-generic.yaml@main
esp32_ble_tracker:
scan_parameters:
# We currently use the defaults to ensure Bluetooth
# can co-exist with WiFi In the future we may be able to
# enable the built-in coexistence logic in ESP-IDF
active: true
bluetooth_proxy:
active: true
button:
- platform: safe_mode
id: button_safe_mode
name: Safe Mode Boot
- platform: factory_reset
id: factory_reset_btn
name: Factory reset
I'm experiencing the same issue with the Voice Assistant project after updating to the latest version containing this PR. Not sure if it's important but my IoT VLAN has no access to Internet...
i just stripped the http OTA stuff out of the yaml and it is working now. Here's my yaml:
substitutions:
name: esp32-bluetooth-proxy
friendly_name: Bluetooth Proxy
esphome:
name: ${name}
friendly_name: ${friendly_name}
min_version: 2024.6.0
name_add_mac_suffix: false
project:
name: esphome.bluetooth-proxy
version: "24.7.4.1"
esp32:
board: esp32dev
framework:
type: esp-idf
wifi:
ssid: Internal
password: "password"
api:
encryption:
key: key
logger:
improv_serial:
ota:
- platform: esphome
id: ota_esphome
dashboard_import:
package_import_url: github://esphome/firmware/bluetooth-proxy/esp32-generic.yaml@main
import_full_config: false
esp32_ble_tracker:
scan_parameters:
# We currently use the defaults to ensure Bluetooth
# can co-exist with WiFi In the future we may be able to
# enable the built-in coexistence logic in ESP-IDF
active: true
bluetooth_proxy:
active: true
button:
- platform: safe_mode
id: button_safe_mode
name: Safe Mode Boot
- platform: factory_reset
id: factory_reset_btn
name: Factory reset
just as a note -- i use this to do the initial flash, but then when i add to the esphome web interface rather than clicking install, i click skip then copy/paste the yaml into the config so that future updates will use the correct settings (but there's probably a better way to do that)
When validate it, it says:
Component ota.http_request requires component http_request.
No quick fixes available
Maybe this has to do with the new way of listing in one of the latest updates, but this time I can't get it right.
This format seems to be validated OK, but don't know it that is right!?
ota:
- platform: esphome
id: ota_esphome
password: ba5214c7c802ea8c5ad44ffdieldoddodn
- platform: http_request
id: ota_http_request
remove
- platform: http_request
id: ota_http_request
also, you're going to want to change your password since you just posted it publically
Hi @izenn, does http_request not have a function for the 'Update:' part? Or is that the mistake that it is actually copied double while it is already in the 'update:' part?
btw. I already changed last characters in the password to show it here. But thank you for the tip😉
After delete those lines, I get this:
`Failed config
update.http_request: [source C:\temp\ESP\esphome-web-75a2f0.yaml-v2.yml:36]
Component update.http_request requires 'platform: http_request' in component 'ota'.
platform: http_request
id: update_http_request
name: Firmware
source: https://firmware.esphome.io/bluetooth-proxy/esp32-generic/manifest.json
Ok, found the right format!
Indeed it has to do with the new 'list requirements' in yaml for esphome, which is more stringent with nesting/indends.
Since 'Update:' is reliant on 'ota:' you should not have a different list indent.
ota:
- platform: esphome
id: ota_esphome
password: ba5214c7c802ea8c5ad44ff374dcf362
- platform: http_request
id: ota_http_request
update:
- platform: http_request
id: update_http_request
name: Firmware Update
source: https://firmware.esphome.io/bluetooth-proxy/esp32-generic/manifest.json
what it seems is that if you try to deploy on a device that does not have internet access but does have network access it will abort. if the device has full internet access then the ota/http_request portion is fine to be in there since it is able to hit the source url (and therefore not timing out) and the system will not go into the abort loop