Hi everyone, I have no idea how to approach this so I hope someone can provide insight and ideas/guidance!
I am running a HA Green for my HA setup, which I think is great. Its small, uses very little power and its nice having it separated in its own little box. It’s slow as all heck for building ESPHome stuff.
Is it possible to somehow configure ESPHome Device Builder to run on a separate server, but still be integrated into the HA Green setup? I’m looking for a setup where I would interact with it like I do now:
Start HA app on my iPhone
Upgrade ESPHome via that interface when updates are available
Upgrade ESPHome devices via that interface. And here make the change that it hands over the compilation step to a separate server that is faster (but non-critical)
Send back the compiled file to HA Green that then manages the update of the device
Total transparency and no perceived change of the current flow, only faster compilations being done outside of the HA Green.
Yes you can setup ESPHome on another device, and access your yaml and compiled files via Samba. The time you spend futzing around, keeping both up to date will probably be far more than waiting another 90 seconds on your humble Green however for a compile to complete.
Summary: If you’re asking, probably outside your scope to achieve it.
Hi Tor, yes there are several ways to use ESPHome.
I mainly use ESPHome Device Builder in Home Assistant … but my HA is running on a 2nd-hand PC rather more powerful than your HA Green. However I found that ESPHome Device Builder doesn’t let me debug what is happening during the ESP32’s on_boot - Device Builder has to wait until the network connection is established before it can start to receive any debug messages from the ESP.
I now also have ESPHome installed on my linux desktop PC - this is known as the ESPHome Command Line method. In fact, the Device Builder is just a fancy user interface in front of the ESPHome CLI.
I have found the CLI particularly convenient for setting up new ESPHome devices (since the initial installation requires a (USB or serial) cable anyway); and for seeing that early debug log via the USB cable before the wi-fi is established.
You would use your own preferred program/text editor, and the CLI lets you repeat previous commands you’ve given which saves me from my clumsy fingers.
For example the CLI command equivalent to Device Builder “Install” option for file s3-xx.yaml actually runs
esphome run s3-xx.yaml --device /dev/ttyUSB1 --upload_speed 115200
you can use your preferred terminal emulation program to display the debug log from the ESP32’s USB (or serial).
The only real disadvantage I have found is that I have two folders containing my ESPHome .yaml files (on my desktop PC and on HA server) and I can get confused as to which is the latest - but that’s because i choose to use both.
That’s why I wanted my HA Green to hand over the compilation step only and do so automatically.
I have had ESPHome set up manually on a Linux laptop when I flashed custom firmware on Shelly Plugs (the version where you have to flash with UART) so I am familiar. But that just ends up being a totally separate instance.
I want it integrated into my HA Green so it’s all managed in one place, and compilation only outside of the HA Green.
I don’t think I managed to make myself understood. I want HA Green to manage all files, kick off all actions and so on as it is today. However when I click install or update I want it to run the compilation step only on a separate machine, and never notice that that happens in the app.
Opportunity cost: Maybe by the time you configure this, you could have purchased a far more powerful computer and migrated your entire HomeAssistant ecosystem to it and do everything locally.
I look at it this way: I do all of my HA development on my laptop. Some of it is done via the HA UI. But even so, when I’m actually manipulating configuration settings I’m usually on the laptop, because the extra screen real estate, having my preferred text editor, the keyboard and the mouse make it much easier.
So it’s only natural that I do my ESPHome development there, too. Once I started using the ESPHome CLI I never looked back. My HA is now running on a machine perfectly capable of doing the complies, but why bother? I have the Builder app (add-on) installed in HA, but I never even start it any more.
I do synch my .yaml files between the laptop and HA, just in case. Even though I never use them on HA any more.
I’m doing something similar with compilation on my laptop. I am running esphome in docker. It provides the full gui with only one small limitation. I mapped the working directory to homeassistant, but I chickened out and created a subdirectory under the normal esphome working directory. The limitation is that esphome requires encrytion in order to install a wired usb device. That forces me to use web.esphome.io to do the first install. Not a big limitation. Over the air installs are as usual.
The upside is that compiling is lightning fast.
This doesn’ tick all the boxes. But it’s an option
You could run EPSHome in a Docker container on your more powerful separate server, and access the interface via an iFrame in HA which will appear on the left hand menu within HA like it did before.
The downside is you’d need to upgrade ESPHome separately.