Problem with ESPhome device builder

Not sure what’s happening here:

  • My ESPhome device builder and Home Assistant core and supervisor versions are current. I use Home Assistant OS on Home Assistant Green.

  • ESPhome was working fine until recently. I had installed a ESP-WROOM device prior as a Bluetooth proxy and everything was A-OK.

  • Recently though, I wanted to add a D1-mini and then the troubles started piling up.

I prepared the device for first use on Web-ESPhome, then flashed it wirelessly in device builder and everything seemed fine. Once it’s connected to my computer, it appears on the home assistant device builder web UI and shows up as “online”. However, when I click “visit”, I get this:

# This site can’t be reached

**D1-mini.local** refused to connect.

(I checked my router and it shows the device as connected to WIFI and it has a IP address, so that’s not the problem)

I tried everything else in the book I could think of including:

  • updating and reflashing the device in device builder: no dice

  • exporting the image and flashing it in Web-ESP:no good

  • then, I chose to “UPDATE ALL” in device builder and it got even worse because that broke my bluetooth proxy so bad that it would no longer even open its serial port for connection.

  • I eventually fixed that by resetting the ESP32-WROOM completely with the manufacturer’s bootloader. Then, I re-prepared it for first use in Web-ESPhome and flashed it wirelessly in device builder (which worked fine as far as I can tell) and now it does the same thing as the D1 mini (i.e. it connects and shows as “online” in ESPhome web UI) but when I click visit, I get the same “refused to connect” message.

  • Finally, I restarted ESPhome: that didn’t work, so I deleted ESPhome and re-installed it: and that also didn’t work…

… and this is where I am now : AT A LOSS! :frowning_face:

If anyone can provide any help, I’d appreciate it greatly!

1 Like

UPDATE: I was able to restore the Bluetooth proxy… using esphome.io

I ALSO TRIED: using esphome.io to configure the D1-mini as an “Empty ESPHome device”. Seems to work but:

  • it doesn’t connect to WIFI after ESPhome is installed
  • Instead, it advertizes its own WIFI network in available WIFI networks …

Further update: I connected to the D1-mini WIFI web page and I did set the WIFI credentials there. It worked somewhat coz it connects to my local WIFI and ESPhome discovers it, but when I try to add it, it says that it needs to be configured. When I try to configure it, all ESPhome does is create a barebone yaml config file for it and is unable to do anything with it.

Here’s the YAML file in question:

esphome:
  name: esphome-web-16f4d8
  friendly_name: ESPHome Web 16f4d8
  min_version: 2025.5.0
  name_add_mac_suffix: false

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
- platform: esphome

wifi:

p.s. If the D1-mini is not compatible, it would be nice to have that info appearing somewhere instead of simply hinting that basically all 8266 and ESP32 devices are compatible with ESPhome… That would save people like me A LOT of wasted time and frustration…

It could be your AP instead.
Try to restart the AP or the wireless router, if you use such one instead.

The d1-mini is fine. You won’t be able to “visit” the device unless web_server: is included in the yaml. There is a reported bug in GitHub for the visit button appearing when web server is not configured.

You can add web_server: to the yaml and do an OTA update, but it’s not something I would leave permanently configured on a D1-MINI as it uses heaps of RAM.

It looks like an mDNS issue. Can you resolve D1-mini.local?

It is because you don’t have a web page on your D1-mini to connect to. That is what the “Visit” link does, go to the esp device’s web page.

You two beat me to it.

I leave the web_server active on all my ESPHome devices, even ESP8266’s. I don’t use it much, but I’ve never had a problem with it, so I just leave it. It’s handy after doing updates to make sure everything is working.

1 Like

Thanks guys!.. But this is documented where?

I thought ESPhome was installing a basic WEB server interface on all devices and that you could connect to it to check on the devices. Obviously, that’s not the case with the D1-mini or at least it’s not easy to figure out… and I guess it’s probably the same with all 8266s?

I will mark this as the solution but let the record show that I’m far from happy with the whole ESPhome experience. My advice would be to stay clear of 8266 devices period for lack of proper documentation.

See the comment from @CaptTom above. And if you READ the documentation for web_server - it tells you on the first line all about possible performance issues on ESP8266:

Your mileage may vary - it depends what else you do with the device and what other components you add.

Nope - it’s optional. Some devices don’t need it - why put a web interface on a device that you are purely going to control or read from HA.

ESPHome is open source - if you think the documentation needs improving do a PR on Github and contribute back to the community.

1 Like

I have an ESP8266 with 12 entities, including binary sensors on GPIO pins, temperature sensors, a WiFi signal strength sensor and one button. I also run the web server on it. It compiles showing plenty of headroom:

  RAM:   [====      ]  42.0% (used 34400 bytes from 81920 bytes)
  Flash: [====      ]  44.6% (used 456925 bytes from 1023984 bytes)

It’s never acted like it was memory constrained, even when using the web interface.

No doubt it’s possible that the web server component could put some configurations over the edge. I’m just saying it hasn’t happened to me yet.

I could certainly live without that option, I just haven’t yet found the need to.

3 Likes