I completely agree, using ESPHome beats writing firmware from scratch, even though lots of Arduino libraries are available. But the flip side is that ESPHome is in active development with lots of contributors, so sometimes things don't work as you might expect. And if that happens, your only option is to spin up an IDE and dive into source code :) For example, during this project I had to fork an abandoned OpenTherm library and rewrite almost half of it, as well as contribute a couple of bugfixes to ESPHome itself. It was actually fun, and I expected something like that from the beginning, but such a sharp drop from a cliff when YAML config doesn't work, will be a surprise for most people :)