diff --git a/src/data/hassio/supervisor.ts b/src/data/hassio/supervisor.ts index 55edd1cf9e..e08600098b 100644 --- a/src/data/hassio/supervisor.ts +++ b/src/data/hassio/supervisor.ts @@ -179,7 +179,10 @@ export const fetchHassioInfo = async ( }; export const fetchHassioLogs = async (hass: HomeAssistant, provider: string) => - hass.callApi("GET", `hassio/${provider}/logs`); + hass.callApi( + "GET", + `hassio/${provider.includes("_") ? `addons/${provider}` : provider}/logs` + ); export const setSupervisorOption = async ( hass: HomeAssistant, diff --git a/src/panels/config/logs/ha-config-logs.ts b/src/panels/config/logs/ha-config-logs.ts index 803cc7e3f0..1981a08a25 100644 --- a/src/panels/config/logs/ha-config-logs.ts +++ b/src/panels/config/logs/ha-config-logs.ts @@ -6,6 +6,7 @@ import { extractSearchParam } from "../../../common/url/search-params"; import "../../../components/ha-button-menu"; import "../../../components/search-input"; import { LogProvider } from "../../../data/error_log"; +import { fetchHassioSupervisorInfo } from "../../../data/hassio/supervisor"; import "../../../layouts/hass-subpage"; import "../../../layouts/hass-tabs-subpage"; import { haStyle } from "../../../resources/styles"; @@ -59,6 +60,8 @@ export class HaConfigLogs extends LitElement { @state() private _selectedLogProvider = "core"; + @state() private _logProviders = logProviders; + public connectedCallback() { super.connectedCallback(); if (this.systemLog && this.systemLog.loaded) { @@ -66,6 +69,13 @@ export class HaConfigLogs extends LitElement { } } + protected firstUpdated(changedProps): void { + super.firstUpdated(changedProps); + if (isComponentLoaded(this.hass, "hassio")) { + this._getInstalledAddons(); + } + } + private async _filterChanged(ev) { this._filter = ev.detail.value; } @@ -107,7 +117,7 @@ export class HaConfigLogs extends LitElement { p.key === this._selectedLogProvider )!.name} > @@ -116,7 +126,7 @@ export class HaConfigLogs extends LitElement { .path=${mdiChevronDown} > - ${logProviders.map( + ${this._logProviders.map( (provider) => html` ({ + key: addon.slug, + name: addon.name, + })), + ]; + } catch (err) { + // Ignore, nothing the user can do anyway + } + } + static get styles(): CSSResultGroup { return [ haStyle,