dashboard icon indicating copy to clipboard operation
dashboard copied to clipboard

ESPHome Builder displays VISIT for non web server devices

Open Zoogara opened this issue 4 months ago • 4 comments

Version

2025.7.1

What type of installation are you using?

Home Assistant Add-on

Browser

Chrome

What happened?

Since upgrading to 2025.7 devices compiled under 2025.7 show VISIT in the devices status window:

Image

Note that devices compiled with previous version do not show the VISIT button. This means this may be an ESPHome issue rather than a Dashboard issue.

Sample yaml:

esphome:
  name: office

esp8266:
  board: nodemcuv2

wifi:
  ssid: 
  password: 
  output_power: 15dB
  
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: 
    password: 

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:


ota:
  - platform: esphome

safe_mode:

How to reproduce

Compile in 2025.7 and upload - visit dashboard.

Expected behavior

Devices without web_server: should not show VISIT.

Relevant log output


Screenshots

Image

Zoogara avatar Jul 19 '25 02:07 Zoogara

Same here.

captive_portal seems to be the culprit. Disabling it makes the "Visit" button disappear.

Chaoscontrol avatar Jul 20 '25 16:07 Chaoscontrol

Yep, agreed, I recently updated to 2025.7.4, and updated all my devices. They all now show the VISIT button, but it leads nowhere. Removing captive_portal removes the VISIT button.

I noted during the logs for compilation, these popped up:

Compiling .pioenvs/glass-cabinet/src/esphome/components/web_server/ota/ota_web_server.cpp.o
Compiling .pioenvs/glass-cabinet/src/esphome/components/web_server_base/web_server_base.cpp.o

VolubleRobin7 avatar Aug 03 '25 08:08 VolubleRobin7

web_server_base is required for the captive portal. Do you have ota enabled on the captive portal?

ssieb avatar Aug 03 '25 08:08 ssieb

I believe I do have OTA on the captive portal, I just don't have the web server enabled.

This is probably the relevant config section:

ota:
  platform: esphome
  password: !secret ota_password

wifi:
  ssid: !secret wifi_ssid 
  password: !secret wifi_password 
  fast connect: true
  ap:
    ssid: "Fallback Hotspot"
    password: !secret ap_password

captive_portal:

(Note that I copied that code block on my phone so it may not be 100% correct lol)

VolubleRobin7 avatar Aug 03 '25 08:08 VolubleRobin7

So the real issue here is that loaded_integrations in the storage json file that the dashboard uses contains web_server because of the captive portal OTA code, which lives under web_server/ota/....

I think we need to rework the loaded_integrations list of items in that json file to not include integrations where only a specidif platform is loaded. We can see the platforms in loaded_platforms.

jesserockz avatar Nov 09 '25 23:11 jesserockz

I think we can make this a bit simpler. web_port appears to only be set when web_server is truely configured

bdraco avatar Nov 10 '25 14:11 bdraco