ESPHome is !secret compiled or lookup?

In ESPHome, if I use !secret (SSID/PW, etc) in a yaml code, will:

  1. the actual SSID/PW be compiled, or
  2. will it somehow lookup the users secrets when added?

Question is for selling units, and I would of course not want my secrets in the code, and would like theirs to be in there without having to provisioning. One reason I would like some SSID/PW in the code is that I want to use fast_connect, which requires SSID/PW.

I dont’t really understand how 2 would work since the device will obviously look for and connect to “my” before even connecting to anything.
So I assume my secrets are in the binary?

What are the best practice code to sell with ESPHome?

The secret is looked up then compiled.

How are they going to to connect to their wifi without provisioning?

Do they have to email you their credentials?

That would be a big red flag.

There’s no way you can have fast provisioning without configuration; everyone has their own wifi credentials that they’ll have to configure.

Your only options are to enable the captive portal and have them do a first time configuration after connecting to the device’s open portal, or have them do their own flashing with their credentials loaded.

… and yes, if you flash it with your own secrets loaded, those will be in the devices you send out to your clients.

Captive Portal — ESPHome