Internet outages are one of the most silent reasons why everything around you can suddenly stop working, and you won’t figure out why until you either walk over to your router or check the connection on your PC. And more than the buffering or disconnects, it’s the uncertainty. Your video call drops, and you’re left wondering whether your router, ISP, or that Ethernet cable you’ve been meaning to replace is at fault.
I built a $10 ESP32 powered internet alarm that constantly showed my internet connection’s status and notified me instantly, but as it turns out, a 1.13-inch OLED display is extremely easy to miss. So I upgraded it, and now my outage alarm is unmissable.
The cheapest parts made the biggest difference
An ESP32, an LED strip, and a few spare components were all I needed to get started
I have been using two daisy-chained 12V LED strips as ambient lighting in my office for years now. They’re bright enough, cycle through colors, and work just fine with the Magic Home Wi-Fi controller that came in the box. Hook them up to Home Assistant, and you can even get offline control.
That said, I wasn’t a fan of the default controller and wanted more control. So I decided to make my own using an ESP32 C3 Supermini I had lying around, and now my LED strips can do things Philips Hue can’t. Including pulling double duty as a doorbell indicator, print start and stop indicator for my 3D printer, and of course, an internet outage alarm.
The hardware itself is surprisingly affordable and rather easy to wire up. The whole build revolves around an ESP32 DevKit V1 board, and three IRLZ44N N-channel MOSFETs — one per channel — powered by the original 12V 1.5A supply. Since cheaper LED strips often run on 12V channels, MOSFETs are important to allow the ESP32’s 3.3V GPIO pins to control their respective channels.
Wiring involved connecting the IRLZ44N drain pins to the LED strip’s color channels, source pins to a common ground rail (which the ESP32 connects to as well), and the gate pins to three PWM pins on the ESP32. I also wired in a LM2596 buck converter to power the ESP32 from the same source.
- Brand
-
Espressif
- Connectivity Features
-
Wi-Fi, Bluetooth
ESP32 is a low-cost microcontroller with built-in Wi-Fi and Bluetooth, widely used for IoT projects and DIY electronics.
ESPHome did the hard work for me
A few lines of YAML turned simple hardware into a reliable outage detector
ESPHome is one of the best options for using ESP32s as smart home interfaces. The add-on uses YAML for configuration, and with its latest version, YAML is almost optional thanks to the graphical interface. The ESPHome configuration handles RGB lights with ease, and the same logic applies here. I created three outputs in the YAML, one per GPIO pin, and handled the PWM dimming for each channel at 1,000Hz. The RGB light platform ties them together and exposes a single color-capable light entity to Home Assistant.
The configuration even saves the LED strips’ last state and returns to it after a power cycle rather than blasting full white at you every time. There’s also the color_interlock: true flag to prevent Home Assistant from simultaneously activating the color picker and the color temperature sliders, which otherwise can cause unexpected behavior on an RGB-only strip with no white channel.
- OS
-
Windows, macOS, Linux, Raspberry Pi
- Developer
-
Open Home Foundation
- Price model
-
Free, Open-source
A self-hosted, open-source smart home platform that lets you control, automate, and unify all your devices locally without relying on the cloud.
You’ll build it in an afternoon
This internet alarm is simple enough for beginners, yet useful enough to keep forever
Home Assistant has a built-in internet connectivity checker that works via UPnP and should automatically be discovered on your device’s page. Once added, it exposes data such as download and upload speeds, data received, data sent, packet information, external IP address, and, of course, a WAN status binary sensor as individual entities in your Home Assistant setup.
Creating an automation from this is as simple as heading to the Automations & scenes tab in Home Assistant, selecting the WAN Status sensor as a trigger, and using its status change from Connected to Disconnected, Unavailable, or Unknown, to flash my LED strips a particular color — any automations that I depend on fire regardless of the internet connection, and this one in particular, works precisely when the internet doesn’t.
No more asking, “Is it me or my ISP?”
Instant visual alerts mean I know the moment my internet connection drops
So now, when my internet dies, my wall quite literally screams about it in bright red. This little ESP32-C3, three MOSFETs, and a buck converter turned a dumb RGB strip into a genuinely useful status indicator I can’t miss even if I’m away from my desk.
The best part is that everything runs locally and costs barely a coffee in parts. No cloud, no subscription, no mystery outages. Just a tiny board, some thoughtful design choices, a couple of Wi-Fi tweaks, and Home Assistant quietly making sure I always know when my connection has gone dark.