diff --git a/src/panels/config/core/ha-config-network.ts b/src/panels/config/core/ha-config-network.ts index 6793673711..bded44d3d5 100644 --- a/src/panels/config/core/ha-config-network.ts +++ b/src/panels/config/core/ha-config-network.ts @@ -9,13 +9,14 @@ import { } from "lit"; import { customElement, property, state } from "lit/decorators"; import { isComponentLoaded } from "../../../common/config/is_component_loaded"; -import "../../../components/ha-network"; import "../../../components/ha-card"; import "../../../components/ha-checkbox"; +import "../../../components/ha-network"; import "../../../components/ha-settings-row"; +import { fetchNetworkInfo } from "../../../data/hassio/network"; import { - NetworkConfig, getNetworkConfig, + NetworkConfig, setNetworkConfig, } from "../../../data/network"; import { haStyle } from "../../../resources/styles"; @@ -73,7 +74,19 @@ class ConfigNetwork extends LitElement { private async _load() { this._error = undefined; try { - this._networkConfig = await getNetworkConfig(this.hass); + const coreNetwork = await getNetworkConfig(this.hass); + if (isComponentLoaded(this.hass, "hassio")) { + const supervisorNetwork = await fetchNetworkInfo(this.hass); + const interfaces = new Set( + supervisorNetwork.interfaces.map((int) => int.interface) + ); + if (interfaces.size) { + coreNetwork.adapters = coreNetwork.adapters.filter((adapter) => + interfaces.has(adapter.name) + ); + } + } + this._networkConfig = coreNetwork; } catch (err) { this._error = err.message || err; }