diff --git a/homeassistant/components/esphome/__init__.py b/homeassistant/components/esphome/__init__.py
index f985394c8e967d9dd81faafaaebd0aaee0573838..8965e5b99600dfbf5b2c0824139a8098469ee8c1 100644
--- a/homeassistant/components/esphome/__init__.py
+++ b/homeassistant/components/esphome/__init__.py
@@ -328,9 +328,13 @@ def _async_setup_device_registry(
     sw_version = device_info.esphome_version
     if device_info.compilation_time:
         sw_version += f" ({device_info.compilation_time})"
+    configuration_url = None
+    if device_info.webserver_port > 0:
+        configuration_url = f"http://{entry.data['host']}:{device_info.webserver_port}"
     device_registry = dr.async_get(hass)
     device_entry = device_registry.async_get_or_create(
         config_entry_id=entry.entry_id,
+        configuration_url=configuration_url,
         connections={(dr.CONNECTION_NETWORK_MAC, device_info.mac_address)},
         name=device_info.name,
         manufacturer="espressif",
diff --git a/homeassistant/components/esphome/manifest.json b/homeassistant/components/esphome/manifest.json
index 4b54a4d788305002dba806a53324d4398b469384..247c78abb92d2ecfe2555d7848bde79d05051b3e 100644
--- a/homeassistant/components/esphome/manifest.json
+++ b/homeassistant/components/esphome/manifest.json
@@ -3,7 +3,7 @@
   "name": "ESPHome",
   "config_flow": true,
   "documentation": "https://www.home-assistant.io/integrations/esphome",
-  "requirements": ["aioesphomeapi==10.1.0"],
+  "requirements": ["aioesphomeapi==10.2.0"],
   "zeroconf": ["_esphomelib._tcp.local."],
   "codeowners": ["@OttoWinter", "@jesserockz"],
   "after_dependencies": ["zeroconf", "tag"],
diff --git a/requirements_all.txt b/requirements_all.txt
index 230d901957bc757a1f15c5321c8ea6c0459f41db..e102cea4f0bd0b28127263cbf5b1a203c526e429 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -161,7 +161,7 @@ aioeagle==1.1.0
 aioemonitor==1.0.5
 
 # homeassistant.components.esphome
-aioesphomeapi==10.1.0
+aioesphomeapi==10.2.0
 
 # homeassistant.components.flo
 aioflo==0.4.1
diff --git a/requirements_test_all.txt b/requirements_test_all.txt
index 045c5bff5cec3f8ae149b701032b827f238b263d..c6eed5d97a6efc7c46b9aad8b97ed62bad7b94cc 100644
--- a/requirements_test_all.txt
+++ b/requirements_test_all.txt
@@ -109,7 +109,7 @@ aioeagle==1.1.0
 aioemonitor==1.0.5
 
 # homeassistant.components.esphome
-aioesphomeapi==10.1.0
+aioesphomeapi==10.2.0
 
 # homeassistant.components.flo
 aioflo==0.4.1