Hi there,
I am running in the exact same problem. Let me try to explain the way I see it:
If you use the name_add_mac_suffix: true, then the last three bytes of the mac-address is added to the name. So if the name for example is rgbct-bulb then the mDNS will be rgbct-bulb-102de4 for example. But if you try to upload new code via ota, it looks for rgbct-bulb.local (without the -102de4), which does not work. So this simply is broken, I guess.
The second problem with the name_add_mac_suffix is, that you can’t use the new name (with the added suffix) as a substitution, so all the devices will habe the same names in the entities list, which is a big mess if you have 20 bulbs for example all with the same name, because the mac is missing.
So I agree, it seems to be not well baked. But maybe there’s a magic trick how to hold that feature the right way?
A much better way would be to have a feature which adds the last three bytes of the MAC to a subsitution. On the other hand this would cause new problems, since the initial name of the device changes after the first upload, which then requires the use_address feature for wifi next time. So I refuse to use that feature as well.
I keep hoping for that, too. Whoever designed this must have had something useful in mind, so there is probably something I’m missing in how to use it.
I think I finally figured this out, and the answer is that you need a bit more server-side infrastructure (but maybe not a lot more) to use this seamlessly.
I recently looked at the ESPHome bluetooth proxy component. The demonstration site for this is reasonably slick: ESPHome Bluetooth Proxy You can flash the firmware directly from that website. After that, if you’d like to, you can “adopt” the flashed device into your local ESPHome dashboard.
I went through the process, and it was very painless. It’s not quite off-the-shelf consumer stuff, but it’s pretty darned close. I think the web site is just static pages with JavaScript doing the heavy lifting, but I haven’t dug into it.
So, my conclusion is that there is a reasonably thought-out mechanism for using this, but the documentation for how to put the pieces together is a bit light or missing, or maybe I just haven’t found it. Now that I have the example of the bluetooth proxy site, I’ll definitely consider this for future project possibilities.