Skip to main content
ESP32ESPHomeBluetoothiOS ShortcutsHome Assistant

A Connected Pomodoro on ESP32: When a Timer Takes Charge of Your Focus

2025

The ESP32 Pomodoro in action
The ESP32 Pomodoro in action

The timer running on the ESP32 screen

TL;DR : Connected Pomodoro

The Project:A physical cube that flips the entire Apple ecosystem into Focus mode.

Stack:ESP32, ESPHome, Bluetooth, iOS Shortcuts.

The Challenge:Hooking into iOS and macOS natively over Bluetooth, no custom app required.

The Result:One button press and every notification stops cold. Pure, instant focus.

Everyone has a Pomodoro timer on their phone. But a physical timer sitting on your desk, one that flips your iPhone and Mac into focus mode over Bluetooth the second you press it? That's a different game entirely.

01.The Problem

One distraction too many. That's all it took.

I was deep in a sprint on LINQA, my supplier management SaaS. One of those packed days where everything stacks up. A Slack ping here, a badly timed message there, and the thread of concentration snaps clean.

I was already using the Pomodoro method. 25 minutes of focus, short break, repeat. It works. But the problem was the trigger itself: starting a timer on the phone also means opening the door to notifications, to reflexive scrolling, to those thirty lost seconds that hide ten lost minutes.

This wasn't about discipline. It was about design. I needed a physical trigger. One gesture that handles everything else.

02.The Concept: An Object That Talks to Your Phone

The idea came naturally: a physical Pomodoro, sitting on my desk. One press to start it. And behind the scenes, my entire digital setup reconfigures on its own.

The brain of the thing: an ESP32 flashed through ESPHome. Why? Native integration with Home Assistant, built-in Bluetooth and Wi-Fi, 100% declarative YAML config. Not a single line of C++ to look after.

The flow: • I press the timer. The countdown shows up on the ESP32's screen • The module turns on its Bluetooth • My iPhone picks up the signal and fires an iOS Shortcut: the "Reduce Interruptions" focus mode kicks in • That mode syncs instantly to my Mac through Apple Continuity

One physical gesture. No app to open. No setting to fiddle with.

03.The Integration: The Invisible Chain

The most satisfying part of this project isn't the ESP32. It's the silent automation it sets off.

On the ESPHome side: the module's Bluetooth is exposed as a logical switch. Timer active, BLE on. Pomodoro done, BLE off. Binary logic, brutally effective.

On the iOS side: a shortcut runs automatically the moment the iPhone detects the ESP32's Bluetooth signal nearby. It turns on the "Reduce Interruptions" focus mode, a native Apple feature that mutes non-priority notifications and lets your contacts know you're busy. That focus mode syncs in real time with the Mac through iCloud. Without touching the keyboard.

When the Pomodoro ends? Bluetooth switches off, the iPhone loses the connection, the reverse shortcut turns off focus mode. Back to normal. The cycle can start over.

What I love about this setup: no fragile third-party service in the chain. The ESP32 talks to the iPhone, the iPhone talks to the Mac. Standard protocols across the board: BLE, iOS Shortcuts, Apple Continuity. Quiet, reliable, invisible.

Born from real frustration, during a real sprint. Built fast, with tools I know well, to solve one specific problem.

But this project points to something bigger: hardware and software, when they're well-orchestrated, create behaviors no single app can pull off on its own. A timer that reconfigures your Mac without you lifting a finger. It feels almost like magic. And yet it's just Bluetooth, YAML, and a handful of iOS Shortcut lines.

That's what keeps me going: take a daily friction and turn it into an object that thinks for me.