diff --git a/homeassistant/components/network/__init__.py b/homeassistant/components/network/__init__.py
index 024075ba2c1e3624fd73f3affa0b8605a4097594..e8a2c4c80fd27aa74c1b20a8958aa8eef88ab7bd 100644
--- a/homeassistant/components/network/__init__.py
+++ b/homeassistant/components/network/__init__.py
@@ -4,22 +4,12 @@ from __future__ import annotations
 from ipaddress import IPv4Address, IPv6Address, ip_interface
 import logging
 
-import voluptuous as vol
-
-from homeassistant.components import websocket_api
-from homeassistant.components.websocket_api.connection import ActiveConnection
 from homeassistant.core import HomeAssistant, callback
 from homeassistant.helpers.typing import ConfigType
 from homeassistant.loader import bind_hass
 
 from . import util
-from .const import (
-    ATTR_ADAPTERS,
-    ATTR_CONFIGURED_ADAPTERS,
-    DOMAIN,
-    IPV4_BROADCAST_ADDR,
-    NETWORK_CONFIG_SCHEMA,
-)
+from .const import DOMAIN, IPV4_BROADCAST_ADDR
 from .models import Adapter
 from .network import Network
 
@@ -107,50 +97,11 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
 
     _LOGGER.debug("Adapters: %s", network.adapters)
 
-    websocket_api.async_register_command(hass, websocket_network_adapters)
-    websocket_api.async_register_command(hass, websocket_network_adapters_configure)
-
-    return True
-
-
-@websocket_api.require_admin
-@websocket_api.websocket_command({vol.Required("type"): "network"})
-@websocket_api.async_response
-async def websocket_network_adapters(
-    hass: HomeAssistant,
-    connection: ActiveConnection,
-    msg: dict,
-) -> None:
-    """Return network preferences."""
-    network: Network = hass.data[DOMAIN]
-    connection.send_result(
-        msg["id"],
-        {
-            ATTR_ADAPTERS: network.adapters,
-            ATTR_CONFIGURED_ADAPTERS: network.configured_adapters,
-        },
+    # Avoid circular issue: http->network->websocket_api->http
+    from .websocket import (  # pylint: disable=import-outside-toplevel
+        async_register_websocket_commands,
     )
 
+    async_register_websocket_commands(hass)
 
-@websocket_api.require_admin
-@websocket_api.websocket_command(
-    {
-        vol.Required("type"): "network/configure",
-        vol.Required("config", default={}): NETWORK_CONFIG_SCHEMA,
-    }
-)
-@websocket_api.async_response
-async def websocket_network_adapters_configure(
-    hass: HomeAssistant,
-    connection: ActiveConnection,
-    msg: dict,
-) -> None:
-    """Update network config."""
-    network: Network = hass.data[DOMAIN]
-
-    await network.async_reconfig(msg["config"])
-
-    connection.send_result(
-        msg["id"],
-        {ATTR_CONFIGURED_ADAPTERS: network.configured_adapters},
-    )
+    return True
diff --git a/homeassistant/components/network/websocket.py b/homeassistant/components/network/websocket.py
new file mode 100644
index 0000000000000000000000000000000000000000..77e01375b7549b99d51bbbd89ef375d4fa37e4b0
--- /dev/null
+++ b/homeassistant/components/network/websocket.py
@@ -0,0 +1,66 @@
+"""The Network Configuration integration websocket commands."""
+from __future__ import annotations
+
+import voluptuous as vol
+
+from homeassistant.components import websocket_api
+from homeassistant.components.websocket_api.connection import ActiveConnection
+from homeassistant.core import HomeAssistant, callback
+
+from .const import (
+    ATTR_ADAPTERS,
+    ATTR_CONFIGURED_ADAPTERS,
+    DOMAIN,
+    NETWORK_CONFIG_SCHEMA,
+)
+from .network import Network
+
+
+@callback
+def async_register_websocket_commands(hass: HomeAssistant) -> None:
+    """Register network websocket commands."""
+    websocket_api.async_register_command(hass, websocket_network_adapters)
+    websocket_api.async_register_command(hass, websocket_network_adapters_configure)
+
+
+@websocket_api.require_admin
+@websocket_api.websocket_command({vol.Required("type"): "network"})
+@websocket_api.async_response
+async def websocket_network_adapters(
+    hass: HomeAssistant,
+    connection: ActiveConnection,
+    msg: dict,
+) -> None:
+    """Return network preferences."""
+    network: Network = hass.data[DOMAIN]
+    connection.send_result(
+        msg["id"],
+        {
+            ATTR_ADAPTERS: network.adapters,
+            ATTR_CONFIGURED_ADAPTERS: network.configured_adapters,
+        },
+    )
+
+
+@websocket_api.require_admin
+@websocket_api.websocket_command(
+    {
+        vol.Required("type"): "network/configure",
+        vol.Required("config", default={}): NETWORK_CONFIG_SCHEMA,
+    }
+)
+@websocket_api.async_response
+async def websocket_network_adapters_configure(
+    hass: HomeAssistant,
+    connection: ActiveConnection,
+    msg: dict,
+) -> None:
+    """Update network config."""
+    network: Network = hass.data[DOMAIN]
+
+    await network.async_reconfig(msg["config"])
+
+    connection.send_result(
+        msg["id"],
+        {ATTR_CONFIGURED_ADAPTERS: network.configured_adapters},
+    )