How I Remotely Hard-Reset My Raspberry Pis

By ๐Ÿ‘ค DANIEL SAMSON, ๐Ÿค– CO-AUTHORED-BY: CLAUDE OPUS 4.7 <NOREPLY@ANTHROPIC.COM> ยท 2026-06-01

Raspberry Pis are brilliant until one locks up hard. No SSH, no ping, no graceful reboot โ€” the only fix is pulling the power and plugging it back in. That's fine when the Pi is on your desk; it's useless when it's in a rack in another room, or when you're not home at all. I wanted a way to hard power-cycle any of my Pis remotely.

So I bought 20x Shelly Plus Plug UK โ€” 13A smart Wi-Fi sockets with power metering, custom schedules, and a 3000W max. Thanks to pack of 5 offer on Amazon and I saved over ยฃ400. Two things made them the right tool: they don't need the cloud to work, and they expose a well-documented local HTTP API.

shellyplusuk.png

Why Shelly

  • No cloud required. Everything works on your LAN with the manufacturer's servers switched off entirely.

  • Documented local API. Every action is a plain HTTP endpoint, so it's trivial to script.

  • Power metering. Each plug reports watts, voltage, and current โ€” which turned out to be useful well beyond just switching power on and off.

Setup: keep it off the cloud

1. Don't connect them to your main network first

Each Shelly out of the box creates its own Wi-Fi access point called something like shellyplugus-XXXXXX or ShellyPlug-S-XXXXXX. You connect to that AP from your phone or laptop to configure it โ€” no internet needed at this stage.

2. Per-device setup

Connect to the Shelly's AP, then open http://192.168.33.1 in a browser. You'll land on the device's local web UI. For each Shelly:

  • Wi-Fi settings: Set it to join your WiFi network. Disable AP mode afterwards โ€” it switches over once it connects.

  • Bluetooth: Disable if you don't need it โ€” smaller attack surface.

  • Static IP or DHCP reservation: Either set a static IP, or note the MAC and add a reservation on your router. You want predictable IPs so you can find them later.

  • Disable AP: Find the Cloud toggle in settings and disable Wi-Fi access point. So you have to use your WiFi network instead to access them.

3. After setup

With cloud off, you can still control each Shelly via:

  • The local web UI at http://<ip-of-shelly> โ€” works fully offline.

  • The local HTTP API โ€” every action has a URL endpoint, scriptable from anywhere on the LAN.

Power-cycling a Pi remotely

With the plugs reachable over a stable local API, the rest was straightforward. I built a small power-management text user interface (TUI) app called Zeus that lists my Raspberry Pis and gives each one a hard reset button โ€” under the hood it just cuts power at the Shelly, waits, and switches it back on. When a Pi wedges itself, I no longer have to walk over to it; I open the app and bounce it.

zeus-tui.jpg

Each Pi runs off an official Raspberry Pi 27W USB-C adapter, so the plug is only ever switching a known, well-behaved load โ€” no surprises on the power side.

Monitoring with Prometheus and Grafana

Because every Shelly reports its own power metrics, I scrape them with shelly exporter into Prometheus and built a Grafana dashboard that tracks, per plug:

  • Power (watts)

  • Voltage (volts)

  • Current (amps)

power-grafana.jpg

It's oddly satisfying to watch a Pi's draw spike on boot and settle into its idle baseline โ€” and genuinely useful for spotting a device that's drawing more than it should, or one that's quietly died.

Worth it?

Completely. Twenty cloud-free smart plugs, a stable local API, a one-click remote reset for every Pi, and a dashboard that tells me what each one is doing โ€” all without anything phoning home. Exactly the kind of boring infrastructure that just works.

server_backplane_with_shelly_plus.jpg