mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 09:16:38 +00:00
Change logic for the new version handling (#7405)
This commit is contained in:
parent
0fcf0dcd18
commit
01b9a07320
@ -23,9 +23,9 @@ import { hassioStyle } from "../resources/hassio-style";
|
|||||||
class HassioAddonRepositoryEl extends LitElement {
|
class HassioAddonRepositoryEl extends LitElement {
|
||||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||||
|
|
||||||
@property() public repo!: HassioAddonRepository;
|
@property({ attribute: false }) public repo!: HassioAddonRepository;
|
||||||
|
|
||||||
@property() public addons!: HassioAddonInfo[];
|
@property({ attribute: false }) public addons!: HassioAddonInfo[];
|
||||||
|
|
||||||
@property() public filter!: string;
|
@property() public filter!: string;
|
||||||
|
|
||||||
@ -78,18 +78,18 @@ class HassioAddonRepositoryEl extends LitElement {
|
|||||||
.title=${addon.name}
|
.title=${addon.name}
|
||||||
.description=${addon.description}
|
.description=${addon.description}
|
||||||
.available=${addon.available}
|
.available=${addon.available}
|
||||||
.icon=${addon.installed && addon.installed !== addon.version
|
.icon=${addon.installed && addon.update_available
|
||||||
? mdiArrowUpBoldCircle
|
? mdiArrowUpBoldCircle
|
||||||
: mdiPuzzle}
|
: mdiPuzzle}
|
||||||
.iconTitle=${addon.installed
|
.iconTitle=${addon.installed
|
||||||
? addon.installed !== addon.version
|
? addon.update_available
|
||||||
? "New version available"
|
? "New version available"
|
||||||
: "Add-on is installed"
|
: "Add-on is installed"
|
||||||
: addon.available
|
: addon.available
|
||||||
? "Add-on is not installed"
|
? "Add-on is not installed"
|
||||||
: "Add-on is not available on your system"}
|
: "Add-on is not available on your system"}
|
||||||
.iconClass=${addon.installed
|
.iconClass=${addon.installed
|
||||||
? addon.installed !== addon.version
|
? addon.update_available
|
||||||
? "update"
|
? "update"
|
||||||
: "installed"
|
: "installed"
|
||||||
: !addon.available
|
: !addon.available
|
||||||
@ -104,7 +104,7 @@ class HassioAddonRepositoryEl extends LitElement {
|
|||||||
: undefined}
|
: undefined}
|
||||||
.showTopbar=${addon.installed || !addon.available}
|
.showTopbar=${addon.installed || !addon.available}
|
||||||
.topbarClass=${addon.installed
|
.topbarClass=${addon.installed
|
||||||
? addon.installed !== addon.version
|
? addon.update_available
|
||||||
? "update"
|
? "update"
|
||||||
: "installed"
|
: "installed"
|
||||||
: !addon.available
|
: !addon.available
|
||||||
|
@ -135,7 +135,7 @@ class HassioAddonInfo extends LitElement {
|
|||||||
|
|
||||||
protected render(): TemplateResult {
|
protected render(): TemplateResult {
|
||||||
return html`
|
return html`
|
||||||
${this._computeUpdateAvailable
|
${this.addon.update_available
|
||||||
? html`
|
? html`
|
||||||
<ha-card header="Update available! 🎉">
|
<ha-card header="Update available! 🎉">
|
||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
@ -609,15 +609,6 @@ class HassioAddonInfo extends LitElement {
|
|||||||
return this.addon?.state === "started";
|
return this.addon?.state === "started";
|
||||||
}
|
}
|
||||||
|
|
||||||
private get _computeUpdateAvailable(): boolean | "" {
|
|
||||||
return (
|
|
||||||
this.addon &&
|
|
||||||
!this.addon.detached &&
|
|
||||||
this.addon.version &&
|
|
||||||
this.addon.version !== this.addon.version_latest
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
private get _pathWebui(): string | null {
|
private get _pathWebui(): string | null {
|
||||||
return (
|
return (
|
||||||
this.addon.webui &&
|
this.addon.webui &&
|
||||||
|
@ -50,7 +50,7 @@ class HassioCardContent extends LitElement {
|
|||||||
`
|
`
|
||||||
: html`
|
: html`
|
||||||
<ha-svg-icon
|
<ha-svg-icon
|
||||||
class=${this.iconClass}
|
class=${this.iconClass!}
|
||||||
.path=${this.icon}
|
.path=${this.icon}
|
||||||
.title=${this.iconTitle}
|
.title=${this.iconTitle}
|
||||||
></ha-svg-icon>
|
></ha-svg-icon>
|
||||||
|
@ -52,22 +52,21 @@ class HassioAddons extends LitElement {
|
|||||||
.title=${addon.name}
|
.title=${addon.name}
|
||||||
.description=${addon.description}
|
.description=${addon.description}
|
||||||
available
|
available
|
||||||
.showTopbar=${addon.installed !== addon.version}
|
.showTopbar=${addon.update_available}
|
||||||
topbarClass="update"
|
topbarClass="update"
|
||||||
.icon=${addon.installed !== addon.version
|
.icon=${addon.update_available!
|
||||||
? mdiArrowUpBoldCircle
|
? mdiArrowUpBoldCircle
|
||||||
: mdiPuzzle}
|
: mdiPuzzle}
|
||||||
.iconTitle=${addon.state !== "started"
|
.iconTitle=${addon.state !== "started"
|
||||||
? "Add-on is stopped"
|
? "Add-on is stopped"
|
||||||
: addon.installed !== addon.version
|
: addon.update_available!
|
||||||
? "New version available"
|
? "New version available"
|
||||||
: "Add-on is running"}
|
: "Add-on is running"}
|
||||||
.iconClass=${addon.installed &&
|
.iconClass=${addon.update_available
|
||||||
addon.installed !== addon.version
|
|
||||||
? addon.state === "started"
|
? addon.state === "started"
|
||||||
? "update"
|
? "update"
|
||||||
: "update stopped"
|
: "update stopped"
|
||||||
: addon.installed && addon.state === "started"
|
: addon.state === "started"
|
||||||
? "running"
|
? "running"
|
||||||
: "stopped"}
|
: "stopped"}
|
||||||
.iconImage=${atLeastVersion(
|
.iconImage=${atLeastVersion(
|
||||||
|
@ -5,11 +5,11 @@ import {
|
|||||||
CSSResult,
|
CSSResult,
|
||||||
customElement,
|
customElement,
|
||||||
html,
|
html,
|
||||||
internalProperty,
|
|
||||||
LitElement,
|
LitElement,
|
||||||
property,
|
property,
|
||||||
TemplateResult,
|
TemplateResult,
|
||||||
} from "lit-element";
|
} from "lit-element";
|
||||||
|
import memoizeOne from "memoize-one";
|
||||||
import "../../../src/components/buttons/ha-progress-button";
|
import "../../../src/components/buttons/ha-progress-button";
|
||||||
import "../../../src/components/ha-card";
|
import "../../../src/components/ha-card";
|
||||||
import "../../../src/components/ha-svg-icon";
|
import "../../../src/components/ha-svg-icon";
|
||||||
@ -35,29 +35,30 @@ import { hassioStyle } from "../resources/hassio-style";
|
|||||||
export class HassioUpdate extends LitElement {
|
export class HassioUpdate extends LitElement {
|
||||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||||
|
|
||||||
@property({ attribute: false }) public hassInfo: HassioHomeAssistantInfo;
|
@property({ attribute: false }) public hassInfo?: HassioHomeAssistantInfo;
|
||||||
|
|
||||||
@property({ attribute: false }) public hassOsInfo?: HassioHassOSInfo;
|
@property({ attribute: false }) public hassOsInfo?: HassioHassOSInfo;
|
||||||
|
|
||||||
@property() public supervisorInfo: HassioSupervisorInfo;
|
@property({ attribute: false }) public supervisorInfo?: HassioSupervisorInfo;
|
||||||
|
|
||||||
@internalProperty() private _error?: string;
|
private _pendingUpdates = memoizeOne(
|
||||||
|
(
|
||||||
|
core?: HassioHomeAssistantInfo,
|
||||||
|
supervisor?: HassioSupervisorInfo,
|
||||||
|
os?: HassioHassOSInfo
|
||||||
|
): number => {
|
||||||
|
return [core, supervisor, os].filter(
|
||||||
|
(value) => !!value && value?.update_available
|
||||||
|
).length;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
protected render(): TemplateResult {
|
protected render(): TemplateResult {
|
||||||
const updatesAvailable: number = [
|
const updatesAvailable = this._pendingUpdates(
|
||||||
this.hassInfo,
|
this.hassInfo,
|
||||||
this.supervisorInfo,
|
this.supervisorInfo,
|
||||||
this.hassOsInfo,
|
this.hassOsInfo
|
||||||
].filter((value) => {
|
);
|
||||||
return (
|
|
||||||
!!value &&
|
|
||||||
(value.version_latest
|
|
||||||
? value.version !== value.version_latest
|
|
||||||
: value.version_latest
|
|
||||||
? value.version !== value.version_latest
|
|
||||||
: false)
|
|
||||||
);
|
|
||||||
}).length;
|
|
||||||
|
|
||||||
if (!updatesAvailable) {
|
if (!updatesAvailable) {
|
||||||
return html``;
|
return html``;
|
||||||
@ -65,9 +66,6 @@ export class HassioUpdate extends LitElement {
|
|||||||
|
|
||||||
return html`
|
return html`
|
||||||
<div class="content">
|
<div class="content">
|
||||||
${this._error
|
|
||||||
? html` <div class="error">Error: ${this._error}</div> `
|
|
||||||
: ""}
|
|
||||||
<h1>
|
<h1>
|
||||||
${updatesAvailable > 1
|
${updatesAvailable > 1
|
||||||
? "Updates Available 🎉"
|
? "Updates Available 🎉"
|
||||||
@ -76,26 +74,24 @@ export class HassioUpdate extends LitElement {
|
|||||||
<div class="card-group">
|
<div class="card-group">
|
||||||
${this._renderUpdateCard(
|
${this._renderUpdateCard(
|
||||||
"Home Assistant Core",
|
"Home Assistant Core",
|
||||||
this.hassInfo.version,
|
this.hassInfo!,
|
||||||
this.hassInfo.version_latest,
|
|
||||||
"hassio/homeassistant/update",
|
"hassio/homeassistant/update",
|
||||||
`https://${
|
`https://${
|
||||||
this.hassInfo.version_latest.includes("b") ? "rc" : "www"
|
this.hassInfo?.version_latest.includes("b") ? "rc" : "www"
|
||||||
}.home-assistant.io/latest-release-notes/`,
|
}.home-assistant.io/latest-release-notes/`
|
||||||
mdiHomeAssistant
|
|
||||||
)}
|
)}
|
||||||
${this._renderUpdateCard(
|
${this._renderUpdateCard(
|
||||||
"Supervisor",
|
"Supervisor",
|
||||||
this.supervisorInfo.version,
|
this.supervisorInfo!,
|
||||||
this.supervisorInfo.version_latest,
|
|
||||||
"hassio/supervisor/update",
|
"hassio/supervisor/update",
|
||||||
`https://github.com//home-assistant/hassio/releases/tag/${this.supervisorInfo.version_latest}`
|
`https://github.com//home-assistant/hassio/releases/tag/${
|
||||||
|
this.supervisorInfo!.version_latest
|
||||||
|
}`
|
||||||
)}
|
)}
|
||||||
${this.hassOsInfo
|
${this.hassOsInfo
|
||||||
? this._renderUpdateCard(
|
? this._renderUpdateCard(
|
||||||
"Operating System",
|
"Operating System",
|
||||||
this.hassOsInfo.version,
|
this.hassOsInfo,
|
||||||
this.hassOsInfo.version_latest,
|
|
||||||
"hassio/os/update",
|
"hassio/os/update",
|
||||||
`https://github.com//home-assistant/hassos/releases/tag/${this.hassOsInfo.version_latest}`
|
`https://github.com//home-assistant/hassos/releases/tag/${this.hassOsInfo.version_latest}`
|
||||||
)
|
)
|
||||||
@ -107,28 +103,22 @@ export class HassioUpdate extends LitElement {
|
|||||||
|
|
||||||
private _renderUpdateCard(
|
private _renderUpdateCard(
|
||||||
name: string,
|
name: string,
|
||||||
curVersion: string,
|
object: HassioHomeAssistantInfo | HassioSupervisorInfo | HassioHassOSInfo,
|
||||||
lastVersion: string,
|
|
||||||
apiPath: string,
|
apiPath: string,
|
||||||
releaseNotesUrl: string,
|
releaseNotesUrl: string
|
||||||
icon?: string
|
|
||||||
): TemplateResult {
|
): TemplateResult {
|
||||||
if (!lastVersion || lastVersion === curVersion) {
|
if (!object.update_available) {
|
||||||
return html``;
|
return html``;
|
||||||
}
|
}
|
||||||
return html`
|
return html`
|
||||||
<ha-card>
|
<ha-card>
|
||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
${icon
|
<div class="icon">
|
||||||
? html`
|
<ha-svg-icon .path=${mdiHomeAssistant}></ha-svg-icon>
|
||||||
<div class="icon">
|
</div>
|
||||||
<ha-svg-icon .path=${icon}></ha-svg-icon>
|
<div class="update-heading">${name} ${object.version_latest}</div>
|
||||||
</div>
|
|
||||||
`
|
|
||||||
: ""}
|
|
||||||
<div class="update-heading">${name} ${lastVersion}</div>
|
|
||||||
<div class="warning">
|
<div class="warning">
|
||||||
You are currently running version ${curVersion}
|
You are currently running version ${object.version}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-actions">
|
<div class="card-actions">
|
||||||
@ -138,7 +128,7 @@ export class HassioUpdate extends LitElement {
|
|||||||
<ha-progress-button
|
<ha-progress-button
|
||||||
.apiPath=${apiPath}
|
.apiPath=${apiPath}
|
||||||
.name=${name}
|
.name=${name}
|
||||||
.version=${lastVersion}
|
.version=${object.version_latest}
|
||||||
@click=${this._confirmUpdate}
|
@click=${this._confirmUpdate}
|
||||||
>
|
>
|
||||||
Update
|
Update
|
||||||
|
@ -25,13 +25,13 @@ class HassioPanelRouter extends HassRouterPage {
|
|||||||
|
|
||||||
@property({ type: Boolean }) public narrow!: boolean;
|
@property({ type: Boolean }) public narrow!: boolean;
|
||||||
|
|
||||||
@property({ attribute: false }) public supervisorInfo: HassioSupervisorInfo;
|
@property({ attribute: false }) public supervisorInfo?: HassioSupervisorInfo;
|
||||||
|
|
||||||
@property({ attribute: false }) public hassioInfo!: HassioInfo;
|
@property({ attribute: false }) public hassioInfo!: HassioInfo;
|
||||||
|
|
||||||
@property({ attribute: false }) public hostInfo: HassioHostInfo;
|
@property({ attribute: false }) public hostInfo: HassioHostInfo;
|
||||||
|
|
||||||
@property({ attribute: false }) public hassInfo: HassioHomeAssistantInfo;
|
@property({ attribute: false }) public hassInfo?: HassioHomeAssistantInfo;
|
||||||
|
|
||||||
@property({ attribute: false }) public hassOsInfo!: HassioHassOSInfo;
|
@property({ attribute: false }) public hassOsInfo!: HassioHassOSInfo;
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ class HassioRouter extends HassRouterPage {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@internalProperty() private _supervisorInfo: HassioSupervisorInfo;
|
@internalProperty() private _supervisorInfo?: HassioSupervisorInfo;
|
||||||
|
|
||||||
@internalProperty() private _hostInfo: HassioHostInfo;
|
@internalProperty() private _hostInfo: HassioHostInfo;
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ class HassioRouter extends HassRouterPage {
|
|||||||
|
|
||||||
@internalProperty() private _hassOsInfo?: HassioHassOSInfo;
|
@internalProperty() private _hassOsInfo?: HassioHassOSInfo;
|
||||||
|
|
||||||
@internalProperty() private _hassInfo: HassioHomeAssistantInfo;
|
@internalProperty() private _hassInfo?: HassioHomeAssistantInfo;
|
||||||
|
|
||||||
protected firstUpdated(changedProps: PropertyValues) {
|
protected firstUpdated(changedProps: PropertyValues) {
|
||||||
super.firstUpdated(changedProps);
|
super.firstUpdated(changedProps);
|
||||||
|
@ -108,8 +108,8 @@ class HassioHostInfo extends LitElement {
|
|||||||
<span slot="description">
|
<span slot="description">
|
||||||
${this.hostInfo.operating_system}
|
${this.hostInfo.operating_system}
|
||||||
</span>
|
</span>
|
||||||
${this.hostInfo.version !== this.hostInfo.version_latest &&
|
${this.hostInfo.features.includes("hassos") &&
|
||||||
this.hostInfo.features.includes("hassos")
|
this.hostInfo.update_available
|
||||||
? html`
|
? html`
|
||||||
<ha-progress-button
|
<ha-progress-button
|
||||||
title="Update the host OS"
|
title="Update the host OS"
|
||||||
|
@ -62,7 +62,8 @@ const ISSUES = {
|
|||||||
class HassioSupervisorInfo extends LitElement {
|
class HassioSupervisorInfo extends LitElement {
|
||||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||||
|
|
||||||
@property() public supervisorInfo!: HassioSupervisorInfoType;
|
@property({ attribute: false })
|
||||||
|
public supervisorInfo!: HassioSupervisorInfoType;
|
||||||
|
|
||||||
@property() public hostInfo!: HassioHostInfoType;
|
@property() public hostInfo!: HassioHostInfoType;
|
||||||
|
|
||||||
@ -85,7 +86,7 @@ class HassioSupervisorInfo extends LitElement {
|
|||||||
<span slot="description">
|
<span slot="description">
|
||||||
${this.supervisorInfo.version_latest}
|
${this.supervisorInfo.version_latest}
|
||||||
</span>
|
</span>
|
||||||
${this.supervisorInfo.version !== this.supervisorInfo.version_latest
|
${this.supervisorInfo.update_available
|
||||||
? html`
|
? html`
|
||||||
<ha-progress-button
|
<ha-progress-button
|
||||||
title="Update the supervisor"
|
title="Update the supervisor"
|
||||||
|
@ -2,78 +2,71 @@ import { HomeAssistant } from "../../types";
|
|||||||
import { hassioApiResultExtractor, HassioResponse } from "./common";
|
import { hassioApiResultExtractor, HassioResponse } from "./common";
|
||||||
|
|
||||||
export interface HassioAddonInfo {
|
export interface HassioAddonInfo {
|
||||||
name: string;
|
advanced: boolean;
|
||||||
slug: string;
|
|
||||||
description: string;
|
|
||||||
repository: "core" | "local" | string;
|
|
||||||
version: string;
|
|
||||||
state: "none" | "started" | "stopped";
|
|
||||||
installed: string | undefined;
|
|
||||||
detached: boolean;
|
|
||||||
available: boolean;
|
available: boolean;
|
||||||
build: boolean;
|
build: boolean;
|
||||||
advanced: boolean;
|
description: string;
|
||||||
url: string | null;
|
detached: boolean;
|
||||||
icon: boolean;
|
icon: boolean;
|
||||||
|
installed: boolean;
|
||||||
logo: boolean;
|
logo: boolean;
|
||||||
|
name: string;
|
||||||
|
repository: "core" | "local" | string;
|
||||||
|
slug: string;
|
||||||
|
stage: "stable" | "experimental" | "deprecated";
|
||||||
|
state: "started" | "stopped" | null;
|
||||||
|
update_available: boolean;
|
||||||
|
url: string | null;
|
||||||
|
version_latest: string;
|
||||||
|
version: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface HassioAddonDetails extends HassioAddonInfo {
|
export interface HassioAddonDetails extends HassioAddonInfo {
|
||||||
name: string;
|
|
||||||
slug: string;
|
|
||||||
description: string;
|
|
||||||
long_description: null | string;
|
|
||||||
auto_update: boolean;
|
|
||||||
url: null | string;
|
|
||||||
detached: boolean;
|
|
||||||
documentation: boolean;
|
|
||||||
available: boolean;
|
|
||||||
arch: "armhf" | "aarch64" | "i386" | "amd64";
|
|
||||||
machine: any;
|
|
||||||
homeassistant: string;
|
|
||||||
version_latest: string;
|
|
||||||
boot: "auto" | "manual";
|
|
||||||
build: boolean;
|
|
||||||
options: Record<string, unknown>;
|
|
||||||
network: null | Record<string, number>;
|
|
||||||
network_description: null | Record<string, string>;
|
|
||||||
host_network: boolean;
|
|
||||||
host_pid: boolean;
|
|
||||||
host_ipc: boolean;
|
|
||||||
host_dbus: boolean;
|
|
||||||
privileged: any;
|
|
||||||
apparmor: "disable" | "default" | "profile";
|
apparmor: "disable" | "default" | "profile";
|
||||||
devices: string[];
|
arch: "armhf" | "aarch64" | "i386" | "amd64";
|
||||||
auto_uart: boolean;
|
|
||||||
icon: boolean;
|
|
||||||
logo: boolean;
|
|
||||||
stage: "stable" | "experimental" | "deprecated";
|
|
||||||
changelog: boolean;
|
|
||||||
hassio_api: boolean;
|
|
||||||
hassio_role: "default" | "homeassistant" | "manager" | "admin";
|
|
||||||
startup: "initialize" | "system" | "services" | "application" | "once";
|
|
||||||
homeassistant_api: boolean;
|
|
||||||
auth_api: boolean;
|
|
||||||
full_access: boolean;
|
|
||||||
protected: boolean;
|
|
||||||
rating: "1-6";
|
|
||||||
stdin: boolean;
|
|
||||||
webui: null | string;
|
|
||||||
gpio: boolean;
|
|
||||||
kernel_modules: boolean;
|
|
||||||
devicetree: boolean;
|
|
||||||
docker_api: boolean;
|
|
||||||
audio: boolean;
|
|
||||||
audio_input: null | string;
|
audio_input: null | string;
|
||||||
audio_output: null | string;
|
audio_output: null | string;
|
||||||
services_role: string[];
|
audio: boolean;
|
||||||
|
auth_api: boolean;
|
||||||
|
auto_uart: boolean;
|
||||||
|
auto_update: boolean;
|
||||||
|
boot: "auto" | "manual";
|
||||||
|
changelog: boolean;
|
||||||
|
devices: string[];
|
||||||
|
devicetree: boolean;
|
||||||
discovery: string[];
|
discovery: string[];
|
||||||
ip_address: string;
|
docker_api: boolean;
|
||||||
ingress: boolean;
|
documentation: boolean;
|
||||||
ingress_panel: boolean;
|
full_access: boolean;
|
||||||
|
gpio: boolean;
|
||||||
|
hassio_api: boolean;
|
||||||
|
hassio_role: "default" | "homeassistant" | "manager" | "admin";
|
||||||
|
homeassistant_api: boolean;
|
||||||
|
homeassistant: string;
|
||||||
|
host_dbus: boolean;
|
||||||
|
host_ipc: boolean;
|
||||||
|
host_network: boolean;
|
||||||
|
host_pid: boolean;
|
||||||
ingress_entry: null | string;
|
ingress_entry: null | string;
|
||||||
|
ingress_panel: boolean;
|
||||||
ingress_url: null | string;
|
ingress_url: null | string;
|
||||||
|
ingress: boolean;
|
||||||
|
ip_address: string;
|
||||||
|
kernel_modules: boolean;
|
||||||
|
long_description: null | string;
|
||||||
|
machine: any;
|
||||||
|
network_description: null | Record<string, string>;
|
||||||
|
network: null | Record<string, number>;
|
||||||
|
options: Record<string, unknown>;
|
||||||
|
privileged: any;
|
||||||
|
protected: boolean;
|
||||||
|
rating: "1-6";
|
||||||
|
services_role: string[];
|
||||||
|
slug: string;
|
||||||
|
startup: "initialize" | "system" | "services" | "application" | "once";
|
||||||
|
stdin: boolean;
|
||||||
watchdog: null | boolean;
|
watchdog: null | boolean;
|
||||||
|
webui: null | string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface HassioAddonsInfo {
|
export interface HassioAddonsInfo {
|
||||||
|
@ -4,11 +4,12 @@ import { hassioApiResultExtractor, HassioResponse } from "./common";
|
|||||||
export type HassioHostInfo = any;
|
export type HassioHostInfo = any;
|
||||||
|
|
||||||
export interface HassioHassOSInfo {
|
export interface HassioHassOSInfo {
|
||||||
version: string;
|
board: "ova" | "rpi";
|
||||||
|
update_available: boolean;
|
||||||
|
version_cli_latest: string;
|
||||||
version_cli: string;
|
version_cli: string;
|
||||||
version_latest: string;
|
version_latest: string;
|
||||||
version_cli_latest: string;
|
version: string;
|
||||||
board: "ova" | "rpi";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const fetchHassioHostInfo = async (hass: HomeAssistant) => {
|
export const fetchHassioHostInfo = async (hass: HomeAssistant) => {
|
||||||
|
@ -1,19 +1,56 @@
|
|||||||
import { HomeAssistant, PanelInfo } from "../../types";
|
import { HomeAssistant, PanelInfo } from "../../types";
|
||||||
|
import { HassioAddonInfo, HassioAddonRepository } from "./addon";
|
||||||
import { hassioApiResultExtractor, HassioResponse } from "./common";
|
import { hassioApiResultExtractor, HassioResponse } from "./common";
|
||||||
|
|
||||||
export type HassioHomeAssistantInfo = any;
|
export type HassioHomeAssistantInfo = {
|
||||||
export type HassioSupervisorInfo = any;
|
arch: string;
|
||||||
|
audio_input: string | null;
|
||||||
|
audio_output: string | null;
|
||||||
|
boot: boolean;
|
||||||
|
image: string;
|
||||||
|
ip_address: string;
|
||||||
|
machine: string;
|
||||||
|
port: number;
|
||||||
|
ssl: boolean;
|
||||||
|
update_available: boolean;
|
||||||
|
version_latest: string;
|
||||||
|
version: string;
|
||||||
|
wait_boot: number;
|
||||||
|
watchdog: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type HassioSupervisorInfo = {
|
||||||
|
addons: HassioAddonInfo[];
|
||||||
|
addons_repositories: HassioAddonRepository[];
|
||||||
|
arch: string;
|
||||||
|
channel: string;
|
||||||
|
debug: boolean;
|
||||||
|
debug_block: boolean;
|
||||||
|
diagnostics: boolean | null;
|
||||||
|
healthy: boolean;
|
||||||
|
ip_address: string;
|
||||||
|
logging: string;
|
||||||
|
supported: boolean;
|
||||||
|
timezone: string;
|
||||||
|
update_available: boolean;
|
||||||
|
version: string;
|
||||||
|
version_latest: string;
|
||||||
|
wait_boot: number;
|
||||||
|
};
|
||||||
|
|
||||||
export type HassioInfo = {
|
export type HassioInfo = {
|
||||||
arch: string;
|
arch: string;
|
||||||
channel: string;
|
channel: string;
|
||||||
docker: string;
|
docker: string;
|
||||||
hassos?: string;
|
features: string[];
|
||||||
|
hassos: null;
|
||||||
homeassistant: string;
|
homeassistant: string;
|
||||||
hostname: string;
|
hostname: string;
|
||||||
logging: string;
|
logging: string;
|
||||||
maching: string;
|
machine: string;
|
||||||
|
operating_system: string;
|
||||||
supervisor: string;
|
supervisor: string;
|
||||||
|
supported: boolean;
|
||||||
supported_arch: string[];
|
supported_arch: string[];
|
||||||
timezone: string;
|
timezone: string;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user