diff --git a/src/data/update.ts b/src/data/update.ts
index 1818f3d4d7..8976e66f36 100644
--- a/src/data/update.ts
+++ b/src/data/update.ts
@@ -31,8 +31,12 @@ export const updateUsesProgress = (entity: UpdateEntity): boolean =>
supportsFeature(entity, UPDATE_SUPPORT_PROGRESS) &&
typeof entity.attributes.in_progress === "number";
-export const updateCanInstall = (entity: UpdateEntity): boolean =>
- entity.state === BINARY_STATE_ON &&
+export const updateCanInstall = (
+ entity: UpdateEntity,
+ showSkipped = false
+): boolean =>
+ (entity.state === BINARY_STATE_ON ||
+ (showSkipped && Boolean(entity.attributes.skipped_version))) &&
supportsFeature(entity, UPDATE_SUPPORT_INSTALL);
export const updateIsInstalling = (entity: UpdateEntity): boolean =>
diff --git a/src/panels/config/core/ha-config-section-updates.ts b/src/panels/config/core/ha-config-section-updates.ts
index 0853566da3..6a2c0ca399 100644
--- a/src/panels/config/core/ha-config-section-updates.ts
+++ b/src/panels/config/core/ha-config-section-updates.ts
@@ -1,11 +1,14 @@
+import "@material/mwc-list/mwc-list-item";
+import { mdiDotsVertical } from "@mdi/js";
import { HassEntities } from "home-assistant-js-websocket";
import { css, html, LitElement, PropertyValues, TemplateResult } from "lit";
-import { customElement, property } from "lit/decorators";
+import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
import { computeStateDomain } from "../../../common/entity/compute_state_domain";
import { caseInsensitiveStringCompare } from "../../../common/string/compare";
import "../../../components/ha-alert";
import "../../../components/ha-bar";
+import "../../../components/ha-button-menu";
import "../../../components/ha-metric";
import { updateCanInstall, UpdateEntity } from "../../../data/update";
import "../../../layouts/hass-subpage";
@@ -20,11 +23,14 @@ class HaConfigSectionUpdates extends LitElement {
@property({ type: Boolean }) public narrow!: boolean;
+ @state() private _showSkipped = false;
+
private _notifyUpdates = false;
protected render(): TemplateResult {
const canInstallUpdates = this._filterUpdateEntitiesWithInstall(
- this.hass.states
+ this.hass.states,
+ this._showSkipped
);
return html`
@@ -34,6 +40,22 @@ class HaConfigSectionUpdates extends LitElement {
.narrow=${this.narrow}
.header=${this.hass.localize("ui.panel.config.updates.caption")}
>
+