Unblocks the provisioning debug loop. The Shelly-over-BLE provision fails at the GATT connect, and the cause is inside the ESP's BLE stack — invisible from shelly-manager's side. The current INFO-level, no-OTA firmware means every ESP change needs a physical USB flash, which isn't sustainable.
ota: (esphome platform) so future config changes push over WiFi from the in-cluster ESPHome Device Builder. Set shelly_ble_proxy_ota_password in the dashboard secrets first.
logger DEBUG with esp32_ble_client=VERBOSE / esp32_ble_tracker,bluetooth_proxy=DEBUG so a connect attempt logs its progress and the actual failure reason (connect failed, reason=0x…).
One USB flash to bootstrap (unavoidable — current firmware has no OTA); after that every ESP iteration is a remote OTA push. Then I watch the DEBUG logs during a provision and we finally see why the BLE connect never completes.
Unblocks the provisioning debug loop. The Shelly-over-BLE provision fails at the GATT connect, and the cause is inside the ESP's BLE stack — invisible from shelly-manager's side. The current INFO-level, no-OTA firmware means every ESP change needs a physical USB flash, which isn't sustainable.
- **`ota:`** (esphome platform) so future config changes push over WiFi from the in-cluster ESPHome Device Builder. Set `shelly_ble_proxy_ota_password` in the dashboard secrets first.
- **logger DEBUG** with `esp32_ble_client=VERBOSE` / `esp32_ble_tracker,bluetooth_proxy=DEBUG` so a connect attempt logs its progress and the actual failure reason (`connect failed, reason=0x…`).
**One USB flash to bootstrap** (unavoidable — current firmware has no OTA); after that every ESP iteration is a remote OTA push. Then I watch the DEBUG logs during a provision and we finally see why the BLE connect never completes.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Provisioning a Shelly over BLE fails at the GATT connect and the cause is
inside the ESP's BLE stack — invisible from shelly-manager's side. To
diagnose and iterate without a USB re-flash per change:
* ota: (esphome platform) so future config changes push over WiFi from the
ESPHome Device Builder. Bootstrapping costs one USB flash; set
shelly_ble_proxy_ota_password in the dashboard secrets first.
* logger DEBUG with esp32_ble_client=VERBOSE / esp32_ble_tracker,
bluetooth_proxy=DEBUG, so a connect attempt logs its progress and the
failure reason.
Takes effect on the (one) USB re-flash; thereafter iterate remotely.
Co-Authored-By: Claude Bot <claude-bot@renner.uno>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Unblocks the provisioning debug loop. The Shelly-over-BLE provision fails at the GATT connect, and the cause is inside the ESP's BLE stack — invisible from shelly-manager's side. The current INFO-level, no-OTA firmware means every ESP change needs a physical USB flash, which isn't sustainable.
ota:(esphome platform) so future config changes push over WiFi from the in-cluster ESPHome Device Builder. Setshelly_ble_proxy_ota_passwordin the dashboard secrets first.esp32_ble_client=VERBOSE/esp32_ble_tracker,bluetooth_proxy=DEBUGso a connect attempt logs its progress and the actual failure reason (connect failed, reason=0x…).One USB flash to bootstrap (unavoidable — current firmware has no OTA); after that every ESP iteration is a remote OTA push. Then I watch the DEBUG logs during a provision and we finally see why the BLE connect never completes.
🤖 Generated with Claude Code
Provisioning a Shelly over BLE fails at the GATT connect and the cause is inside the ESP's BLE stack — invisible from shelly-manager's side. To diagnose and iterate without a USB re-flash per change: * ota: (esphome platform) so future config changes push over WiFi from the ESPHome Device Builder. Bootstrapping costs one USB flash; set shelly_ble_proxy_ota_password in the dashboard secrets first. * logger DEBUG with esp32_ble_client=VERBOSE / esp32_ble_tracker, bluetooth_proxy=DEBUG, so a connect attempt logs its progress and the failure reason. Takes effect on the (one) USB re-flash; thereafter iterate remotely. Co-Authored-By: Claude Bot <claude-bot@renner.uno>