Allow OpenThread and WiFi components simultaneously on ESP32-C6 (convert Error to Warning) #3465
Unanswered
estockda
asked this question in
Component enhancements
Replies: 1 comment
-
|
🏷️ I've automatically added the |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Component name
openthread
Link to component documentation on our website
https://esphome.io/components/openthread/
Describe the enhancement
Current behavior: Currently, the openthread component includes a strict validation check that prevents compilation if the wifi component is also present in the configuration. It raises a hard cv.Invalid error: "Component openthread cannot be used together with component wifi".
Desired Behavior: I would like this validation to be downgraded from an Error to a Warning, or alternatively, validatable via a configuration flag (e.g., allow_coexistence: true).
While I understand this check exists because simultaneous radio usage on single-radio chips (like the ESP32-C6) can cause network instability, a hard block prevents legitimate "Rescue Mode" architectures where WiFi is kept disabled by default and only enabled briefly for recovery operations.
Use cases
This enhancement is critical for single-radio Thread devices (like the ESP32-C6) that are installed in semi-permanent locations (e.g., behind wall switches or inside junction boxes).
I am building a Thread Router (FTD) using a Shelly EM Mini Gen 4. If the Thread network credentials change, or if a configuration error disconnects the device from the mesh, the device effectively becomes bricked until it can be re-flashed via UART.
While I can physically reach the device to press a button (e.g., by removing a wall plate), it's not as easy to remove the device entirely. Removing it requires shutting off the breaker, disconnecting high-voltage wiring, opening the device casing, and attaching UART probes to small test pads, etc.
I want to configure the device with WiFi disabled on boot so it runs purely on OpenThread during normal operation. However, I need the ability to manually trigger a "Rescue Mode" via the physical button. This would temporarily enable WiFi to allow for an OTA update or API access to fix the configuration, saving me from the time-consuming process of physical removal and UART flashing.
Anything else?
Relevant Hardware:
Example of the desired "Rescue Mode" configuration:
YAML:
Beta Was this translation helpful? Give feedback.
All reactions