Sonoff Keeps Going Offline: Step-by-Step Repair Guide
If your Sonoff device drops off the network repeatedly, the root cause is almost always weak 2.4 GHz Wi‑Fi, a borderline power supply, or a firmware quirk that kills the connection after a few hours. Below is a repair flow that starts with the quickest checks and moves into deeper fixes. Pay attention to the branch points after each early step—they tell you whether to continue or jump ahead.
Quick Triage – What to Check First
Run through this checklist. Each item takes under a minute and eliminates the most common failure points.
- Wi‑Fi signal strength at the device location – open the eWeLink app or the device’s web interface and look for RSSI. Anything below -75 dBm is marginal. Move the Sonoff closer to the router or add a 2.4 GHz access point.
- Power supply output – a worn‑out USB adapter or loose screw terminal on a Sonoff Basic can cause brownouts that make the Wi‑Fi radio drop. Swap the adapter with a known‑good 5 V / 1 A unit for USB‑powered models, or tighten the AC terminals on hardwired units.
- Overheating – touch the casing after the device has been running for 30 minutes. If it’s uncomfortably hot, ventilation is blocked or the load exceeds the rating. Sonoff Basic (rated 10 A) and Sonoff S26 (16 A) are especially prone to thermal dropout when installed inside metal junction boxes.
- 2.4 GHz only – Sonoff devices cannot see 5 GHz networks. If your router broadcasts a combined SSID, the device may try to connect on the wrong band. Create a dedicated 2.4 GHz SSID for smart home gear.
- Firmware update pending – stock eWeLink firmware has known reconnect bugs in older builds. Check the app for an update or visit the device’s settings page.
Branch after the checklist:
If the device failed the signal check (RSSI below -80 dBm) but passed all others, skip to Step 3 (channel change) and consider adding a repeater. If the device passed signal but failed the power check (voltage drop or hot case), jump directly to Step 5 (power supply verification). This avoids wasting time on steps that won’t help.
Likely Causes – With Real Examples
1. Wi‑Fi Channel Congestion or Router Settings
Many home routers default to auto‑channel selection. If a neighbor’s router jumps onto the same channel, your Sonoff may lose sync. Evidence: with a Sonoff Mini on stock firmware, changing the router’s 2.4 GHz channel from “auto” to 1, 6, or 11 (whichever is least crowded) resolved repeated disconnects on a test network. Use a Wi‑Fi analyzer app to pick the cleanest channel.
2. IP Address Conflict or Short DHCP Lease
The device requests a new IP every time it reconnects. If the DHCP lease is set to a short duration (e.g., 1 hour), the Sonoff may drop offline when the lease expires. Fix: assign a static DHCP reservation in the router for the Sonoff’s MAC address. On a TP‑Link router, this is under “Address Reservation” → “Add New.” On a UniFi gateway, it’s in Networks → LAN → DHCP Reservations. Once assigned, the device no longer needs to renew, eliminating that failure mode.
3. eWeLink Cloud Dependency (Stock Firmware)
Stock Sonoff devices talk to eWeLink’s cloud before they respond locally. If the cloud server is slow or your internet goes down, the device appears offline in the app even though the Wi‑Fi chip is still connected. Evidence: users on the Sonoff subreddit report that switching to Tasmota or ESPHome firmware (which run MQTT locally) completely eliminates these phantom disconnects. If you can’t reflash, at least disable “auto‑restart” in the eWeLink device settings.
4. MQTT Broker Issues (Custom Firmware)
If you’ve flashed Tasmota or ESPHome, offline usually means the MQTT broker (Mosquitto, Home Assistant’s built‑in broker, etc.) is unreachable. Tasmota specific: go to the device’s web console and check `mqttstatus`. If it shows “MQTT not connected,” verify the broker IP and port. In Home Assistant with the Mosquitto add‑on, add‑on logs will show connection drops. Evidence: a Sonoff TH16 running Tasmota 12.4.0 dropped offline every 2 hours because the broker’s “persistent session” setting was disabled. Re‑enabling it stopped the drops.
Stock vs Custom Firmware – Quick Comparison
| Feature | Stock eWeLink Firmware | Tasmota / ESPHome (Custom) |
|---|---|---|
| Cloud dependency | Required for app control | None – fully local MQTT |
| Reconnect behavior | Known bugs in older builds; auto‑restart sometimes causes drops | Configurable MQTT persistence; no cloud timeout |
| Diagnostic tools | Only eWeLink app logs | Web console, MQTT topics, serial monitor |
| Common offline cause | Cloud server latency or lease expiration | Misconfigured broker IP or persistent session |
| Ease of fix | Hard reset + static IP + update | Check broker logs and enable persistent session |
Use this table to decide whether reflashing is worth the effort for your setup.
Step‑by‑Step Repair Flow
Follow these steps in order. After each step, test stability for at least 15 minutes. The branch after Step 1 and Step 2 will tell you whether to continue or skip ahead.
Step 1: Hard Reset and Re‑pair (Stock Firmware)
Press and hold the physical button on the Sonoff for 10 seconds until the LED blinks rapidly. This resets the Wi‑Fi credentials. Re‑pair through the eWeLink app. During pairing, place the device within 3 feet of the router to rule out signal issues.
Branch after Step 1:
If the device reconnects and stays online for 30 minutes but drops again, the issue is not the pairing – move to Step 2. If the device never pairs (LED stays solid or off after 5 minutes), the Wi‑Fi module may be dead. Skip to Escalation Signals.
Step 2: Assign a Static IP (Router Side)
Log into your router’s admin panel, find the DHCP reservation section, and add the Sonoff’s MAC address. If you don’t know the MAC, check the router’s “connected devices” list while the Sonoff is briefly online. Why this works: a static IP removes DHCP renewal as a failure point.
Branch after Step 2:
If the device drops offline exactly at the same time each day (every 1 hour or 24 hours), the lease was the cause. If drops are random, move to Step 3.
Step 3: Change the 2.4 GHz Wi‑Fi Channel
Use a free tool like Wi‑Fi Analyzer (Android) or inSSIDer to find the least crowded channel. Set your router’s 2.4 GHz band to that channel manually. Disable “auto” channel selection. Channel 11 is often preferred in dense urban areas because many routers default to 1 or 6.
Step 4: Update Firmware or Reflash
- Stock firmware: open the eWeLink app → device settings → “Firmware Update.” Install any pending update.
- Custom firmware: flash the latest Tasmota or ESPHome version via serial or OTA. For Tasmota, use the “Tasmotizer” tool on a PC. After flashing, follow the initial configuration wizard carefully.
Step 5: Verify Power Supply and Load
For USB‑powered models (Sonoff S26, Sonoff Micro), measure the voltage at the USB port with a multimeter while the device is running a load. If voltage drops below 4.75 V, the power adapter is marginal. Replace it. For hardwired units (Sonoff Basic, Sonoff TH), ensure the terminal screws are tight. Loose connections cause intermittent power loss that the Wi‑Fi chip cannot survive.
Step 6: Test Local Control (No Cloud)
If using custom firmware, send an MQTT command directly from a terminal:
CODEBLOCK_0
If the device responds, the problem is cloud‑side, not the hardware. For stock firmware, install the “eWeLink for Home Assistant” add‑on to bypass cloud calls, but that only works if the device stays connected to Wi‑Fi.
Escalation Signals – When to Stop DIY and Replace the Device
- The device casing is hot enough to be uncomfortable to touch for more than 5 seconds. This indicates internal component failure.
- The device stops responding entirely after a hard reset (LED never blinks). The Wi‑Fi module may be dead.
- You see flashing red/blue LED with no pattern change after 5 minutes of pairing. This often means a hardware fault in the ESP8266 chip.
- If the device is installed in a location with AC mains, and you smell burning or see discoloration on the casing — disconnect immediately. Have a qualified electrician inspect the wiring.
If you see any of these signs, stop DIY troubleshooting and replace the unit. No software fix will revive a damaged ESP chip or burned power section.
Success Check
After applying the steps above, monitor the device for 24 hours. In the eWeLink app (or MQTT logs for custom firmware), check that the last seen time is within the last 5 minutes. If the device stays online for a full day without a single drop, the fix is successful. If it still drops after 12‑24 hours, repeat Step 4 (firmware update) and Step 1 (reset). Persistent failures usually point to a hardware defect — replace the unit.
FAQ
Why does my Sonoff keep disconnecting from Wi‑Fi every few hours?
Most likely a DHCP lease timeout or channel congestion. Assign a static IP and lock the router to a single 2.4 GHz channel.
Can I use a Sonoff on a 5 GHz network?
No. All Sonoff devices use a 2.4 GHz ESP8266 or ESP32 chip. They cannot connect to 5 GHz SSIDs at all.
Will switching to Tasmota stop offline issues?
It removes cloud dependency, but you still need stable Wi‑Fi and a working MQTT broker. Many users report fewer dropouts after switching because they gain local control and better logging.
Applying these checks should resolve most offline problems. Persistent issues despite static IP and strong signal may indicate a hardware defect, in which case replacing the unit or switching to a Zigbee-based smart switch that does not rely on your home Wi‑Fi is a reliable solution.
Explore This Topic
- Back to Smart Home Troubleshooting
- Back to Device Connectivity & Offline Fixes
Related guides in this cluster:
- Govee Keeps Going Offline: Step-by-Step Repair Guide
- Aqara Keeps Going Offline: Step-by-Step Repair Guide
- Smart Light Keeps Going Offline Alexa: Step-by-Step Repair Guide
Smart home integrator and troubleshooting specialist with 8+ years of hands-on experience across Zigbee, Z-Wave, Wi-Fi, Matter, and Thread protocols. Works daily with Home Assistant, Alexa, Google Home, and Apple HomeKit ecosystems. Believes that no smart home problem should require a factory reset as the first step.
