I recently got an M5Stack Dial and wanted to build a clean, highly responsive smart home controller. However, I quickly realized that building complex UI logic, multi-level menus, and security features entirely in ESPHome YAML becomes a massive "spaghetti code" nightmare very fast.
So, I completely rewrote the approach: I outsourced the entire "brain" and display logic into clean, object-oriented C++, while keeping ESPHome YAML strictly for hardware and API communication.
The result is Version 0.8.0 of my M5Stack Dial Framework. It feels incredibly snappy, looks professional, and comes with features you usually only see in commercial alarm or smart home terminals.
Github: