Skip to content

Commit

Permalink
Add logarithmic scale option to History graph card
Browse files Browse the repository at this point in the history
  • Loading branch information
wittypluck committed Nov 13, 2023
1 parent d110d8d commit 78df6d6
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 4 deletions.
6 changes: 5 additions & 1 deletion src/components/chart/state-history-chart-line.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ export class StateHistoryChartLine extends LitElement {

@property({ type: Number }) public chartIndex?;

@property({ type: Boolean }) public logarithmicScale = false;

@state() private _chartData?: ChartData<"line">;

@state() private _entityIds: string[] = [];
Expand Down Expand Up @@ -78,7 +80,8 @@ export class StateHistoryChartLine extends LitElement {
!this.hasUpdated ||
changedProps.has("showNames") ||
changedProps.has("startTime") ||
changedProps.has("endTime")
changedProps.has("endTime") ||
changedProps.has("logarithmicScale")
) {
this._chartOptions = {
parsing: false,
Expand Down Expand Up @@ -132,6 +135,7 @@ export class StateHistoryChartLine extends LitElement {
}
},
position: computeRTL(this.hass) ? "right" : "left",
type: this.logarithmicScale ? "logarithmic" : "linear",
},
},
plugins: {
Expand Down
3 changes: 3 additions & 0 deletions src/components/chart/state-history-charts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ export class StateHistoryCharts extends LitElement {

@property({ type: Boolean }) public isLoadingData = false;

@property({ type: Boolean }) public logarithmicScale = false;

private _computedStartTime!: Date;

private _computedEndTime!: Date;
Expand Down Expand Up @@ -159,6 +161,7 @@ export class StateHistoryCharts extends LitElement {
.names=${this.names}
.chartIndex=${index}
.clickForMoreInfo=${this.clickForMoreInfo}
.logarithmicScale=${this.logarithmicScale}
@y-width-changed=${this._yWidthChanged}
></state-history-chart-line>
</div> `;
Expand Down
1 change: 1 addition & 0 deletions src/panels/lovelace/cards/hui-history-graph-card.ts
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ export class HuiHistoryGraphCard extends LitElement implements LovelaceCard {
.showNames=${this._config.show_names !== undefined
? this._config.show_names
: true}
.logarithmicScale=${this._config.logarithmic_scale || false}
></state-history-charts>
`}
</div>
Expand Down
1 change: 1 addition & 0 deletions src/panels/lovelace/cards/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@ export interface HistoryGraphCardConfig extends LovelaceCardConfig {
hours_to_show?: number;
title?: string;
show_names?: boolean;
logarithmic_scale?: boolean;
}

export interface StatisticsGraphCardConfig extends LovelaceCardConfig {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ const cardConfigStruct = assign(
hours_to_show: optional(number()),
refresh_interval: optional(number()), // deprecated
show_names: optional(boolean()),
logarithmic_scale: optional(boolean()),
})
);

Expand All @@ -47,6 +48,11 @@ const SCHEMA = [
},
],
},
{
name: "logarithmic_scale",
required: false,
selector: { boolean: {} },
},
] as const;

@customElement("hui-history-graph-card-editor")
Expand Down Expand Up @@ -100,8 +106,18 @@ export class HuiHistoryGraphCardEditor
fireEvent(this, "config-changed", { config });
}

private _computeLabelCallback = (schema: SchemaUnion<typeof SCHEMA>) =>
this.hass!.localize(`ui.panel.lovelace.editor.card.generic.${schema.name}`);
private _computeLabelCallback = (schema: SchemaUnion<typeof SCHEMA>) => {
switch (schema.name) {
case "logarithmic_scale":
return this.hass!.localize(
`ui.panel.lovelace.editor.card.history-graph.${schema.name}`
);
default:
return this.hass!.localize(
`ui.panel.lovelace.editor.card.generic.${schema.name}`
);
}
};

static styles: CSSResultGroup = css`
ha-form {
Expand Down
3 changes: 2 additions & 1 deletion src/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -4971,7 +4971,8 @@
},
"history-graph": {
"name": "History graph",
"description": "The History graph card allows you to display a graph for each of the entities listed."
"description": "The History graph card allows you to display a graph for each of the entities listed.",
"logarithmic_scale": "Logarithmic scale"
},
"statistics-graph": {
"name": "Statistics graph",
Expand Down

0 comments on commit 78df6d6

Please sign in to comment.