Analysis updated 2026-05-18
Control smart home lights and thermostats with a physical dial instead of a phone app.
Display a clock, weather, and now-playing music info on a small desk device.
Build and 3D print a custom enclosure for a dedicated Home Assistant remote.
| jasionf/smart-home-button | redteamfortress/phantomkiller | jasonlam08/cursor_agent_status_light | |
|---|---|---|---|
| Stars | 173 | 170 | 178 |
| Language | C++ | C++ | C++ |
| Setup difficulty | hard | hard | hard |
| Complexity | 3/5 | 4/5 | 3/5 |
| Audience | vibe coder | researcher | vibe coder |
Figures from each repo's GitHub metadata at analysis time.
Requires an M5Stack Dial V1.1, ESPHome tooling, and editing YAML files with your Home Assistant entity IDs.
Smart Home Button is firmware for a small round device called the M5Stack Dial, which has a rotary knob, a touch screen, and a front button. The project turns this device into a physical control panel for Home Assistant, a popular home automation system. Instead of unlocking your phone and opening an app every time you want to dim a light or skip a track, you twist the dial or tap the screen on the device sitting on your desk. The firmware is built using ESPHome, a platform for programming smart home devices, and LVGL, a library for drawing user interfaces on small screens. The round 240x240 display shows a series of pages you can swipe between. The clock page shows the time, date, and weather data from your Home Assistant setup. The light page controls the device's own LED ring. The AC page adjusts your air conditioner's target temperature and power. The music page shows the current track, album art, playback progress, and volume controls. There is also a countdown timer and a small fridge status page for tracking food freshness. Setting it up requires flashing the firmware to the device via USB using the ESPHome command-line tool. You configure it by editing two YAML files: one for Wi-Fi credentials and one for your Home Assistant entity IDs, which are the internal names Home Assistant uses for each device and sensor. After the first flash, future updates can be sent wirelessly over your local network. The project is designed for M5Stack Dial V1.1 specifically. The repository also includes 3D-printable files for an enclosure if you want to build one. Customizing which features appear on each page mainly involves editing the page YAML files. The README includes notes on known limitations, such as album art needing to stay small because the hardware has limited memory, and some air conditioner integrations requiring additional mapping for fan speed and swing controls.
Firmware that turns the M5Stack Dial, a small round knob device, into a physical control panel for Home Assistant smart home dashboards.
Mainly C++. The stack also includes C++, ESPHome, LVGL.
Not stated in the README.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly vibe coder.
This repo across BitVibe Labs
Verify against the repo before relying on details.