Restore disabled entities to the statistics table (#22411)

This commit is contained in:
karwosts 2024-10-29 07:43:02 -07:00 committed by GitHub
parent d175e84623
commit 7a36cf67e3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -11,7 +11,7 @@ import {
mdiUnfoldMoreHorizontal, mdiUnfoldMoreHorizontal,
} from "@mdi/js"; } from "@mdi/js";
import { HassEntity, UnsubscribeFunc } from "home-assistant-js-websocket"; import { HassEntity } from "home-assistant-js-websocket";
import { CSSResultGroup, LitElement, css, html, nothing } from "lit"; import { CSSResultGroup, LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators"; import { customElement, property, query, state } from "lit/decorators";
import { classMap } from "lit/directives/class-map"; import { classMap } from "lit/directives/class-map";
@ -33,7 +33,6 @@ import "../../../components/ha-dialog";
import { HaMenu } from "../../../components/ha-menu"; import { HaMenu } from "../../../components/ha-menu";
import "../../../components/ha-md-menu-item"; import "../../../components/ha-md-menu-item";
import "../../../components/search-input-outlined"; import "../../../components/search-input-outlined";
import { subscribeEntityRegistry } from "../../../data/entity_registry";
import { import {
StatisticsMetaData, StatisticsMetaData,
StatisticsValidationResult, StatisticsValidationResult,
@ -42,7 +41,6 @@ import {
updateStatisticsIssues, updateStatisticsIssues,
validateStatistics, validateStatistics,
} from "../../../data/recorder"; } from "../../../data/recorder";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles"; import { haStyle } from "../../../resources/styles";
import { HomeAssistant } from "../../../types"; import { HomeAssistant } from "../../../types";
import { showConfirmationDialog } from "../../lovelace/custom-card-helpers"; import { showConfirmationDialog } from "../../lovelace/custom-card-helpers";
@ -76,7 +74,7 @@ type DisplayedStatisticData = StatisticData & {
}; };
@customElement("developer-tools-statistics") @customElement("developer-tools-statistics")
class HaPanelDevStatistics extends SubscribeMixin(LitElement) { class HaPanelDevStatistics extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant; @property({ attribute: false }) public hass!: HomeAssistant;
@property({ type: Boolean }) public narrow = false; @property({ type: Boolean }) public narrow = false;
@ -107,8 +105,6 @@ class HaPanelDevStatistics extends SubscribeMixin(LitElement) {
@query("#sort-by-menu") private _sortByMenu!: HaMenu; @query("#sort-by-menu") private _sortByMenu!: HaMenu;
private _disabledEntities = new Set<string>();
private _toggleGroupBy() { private _toggleGroupBy() {
this._groupByMenu.open = !this._groupByMenu.open; this._groupByMenu.open = !this._groupByMenu.open;
} }
@ -612,25 +608,6 @@ class HaPanelDevStatistics extends SubscribeMixin(LitElement) {
} }
} }
public hassSubscribe(): UnsubscribeFunc[] {
return [
subscribeEntityRegistry(this.hass.connection!, (entities) => {
const disabledEntities = new Set<string>();
for (const confEnt of entities) {
if (!confEnt.disabled_by) {
continue;
}
disabledEntities.add(confEnt.entity_id);
}
// If the disabled entities changed, re-validate the statistics
if (disabledEntities !== this._disabledEntities) {
this._disabledEntities = disabledEntities;
this._validateStatistics();
}
}),
];
}
private async _validateStatistics() { private async _validateStatistics() {
const [statisticIds, issues] = await Promise.all([ const [statisticIds, issues] = await Promise.all([
getStatisticIds(this.hass), getStatisticIds(this.hass),
@ -641,24 +618,17 @@ class HaPanelDevStatistics extends SubscribeMixin(LitElement) {
const statsIds = new Set(); const statsIds = new Set();
this._data = statisticIds this._data = statisticIds.map((statistic) => {
.filter( statsIds.add(statistic.statistic_id);
(statistic) => !this._disabledEntities.has(statistic.statistic_id) return {
) ...statistic,
.map((statistic) => { state: this.hass.states[statistic.statistic_id],
statsIds.add(statistic.statistic_id); issues: issues[statistic.statistic_id],
return { };
...statistic, });
state: this.hass.states[statistic.statistic_id],
issues: issues[statistic.statistic_id],
};
});
Object.keys(issues).forEach((statisticId) => { Object.keys(issues).forEach((statisticId) => {
if ( if (!statsIds.has(statisticId)) {
!statsIds.has(statisticId) &&
!this._disabledEntities.has(statisticId)
) {
this._data.push({ this._data.push({
statistic_id: statisticId, statistic_id: statisticId,
statistics_unit_of_measurement: "", statistics_unit_of_measurement: "",