From 060e4c0f7cdfebb72055d83dada4129a0f699f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Wiedemann?= Date: Mon, 1 Feb 2021 12:29:34 +0000 Subject: [PATCH] feat: Support for auto-entities --- README.md | 18 +++++++++++++++++- src/apexcharts-card.ts | 29 +++++++++++++++++------------ 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index eb8c466..4e8b17d 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ However, some things might be broken :grin: - [Aggregating data](#aggregating-data) - [Compare data from today with yesterday](#compare-data-from-today-with-yesterday) - [Change the line thickness](#change-the-line-thickness) + - [Use apexcharts-card auto-entities](#use-apexcharts-card-auto-entities) ## Installation @@ -503,4 +504,19 @@ series: series: - entity: sensor.temperature - entity: sensor.humidity - ``` \ No newline at end of file + ``` + +### Use apexcharts-card auto-entities + +This requires the [auto-entities card](https://github.com/thomasloven/lovelace-auto-entities) + +```yaml +type: custom:auto-entities + filter: + include: + - entity_id: sensor.temperature* + options: + entity: this.entity_id + card: + type: custom:apexcharts-card +``` diff --git a/src/apexcharts-card.ts b/src/apexcharts-card.ts index aaea3e3..9b93190 100644 --- a/src/apexcharts-card.ts +++ b/src/apexcharts-card.ts @@ -202,27 +202,32 @@ class ChartsCard extends LitElement { } public setConfig(config: ChartCardExternalConfig) { + const configDup = JSON.parse(JSON.stringify(config)); + if (configDup.entities) { + configDup.series = configDup.entities; + delete configDup.entities; + } const { ChartCardExternalConfig } = createCheckers(exportedTypeSuite); - ChartCardExternalConfig.strictCheck(config); - if (config.update_interval) { - this._interval = validateInterval(config.update_interval, 'update_interval'); + ChartCardExternalConfig.strictCheck(configDup); + if (configDup.update_interval) { + this._interval = validateInterval(configDup.update_interval, 'update_interval'); } - if (config.graph_span) { - this._graphSpan = validateInterval(config.graph_span, 'graph_span'); + if (configDup.graph_span) { + this._graphSpan = validateInterval(configDup.graph_span, 'graph_span'); } - if (config.span?.offset) { - this._offset = validateOffset(config.span.offset, 'span.offset'); + if (configDup.span?.offset) { + this._offset = validateOffset(configDup.span.offset, 'span.offset'); } - if (config.span?.end && config.span?.start) { + if (configDup.span?.end && configDup.span?.start) { throw new Error(`span: Only one of 'start' or 'end' is allowed.`); } - config.series.forEach((serie, index) => { + configDup.series.forEach((serie, index) => { if (serie.offset) { this._seriesOffset[index] = validateOffset(serie.offset, `series[${index}].offset`); } }); - if (config.update_delay) { - this._updateDelay = validateInterval(config.update_delay, `update_delay`); + if (configDup.update_delay) { + this._updateDelay = validateInterval(configDup.update_delay, `update_delay`); } this._config = mergeDeep( @@ -232,7 +237,7 @@ class ChartsCard extends LitElement { useCompress: false, show: { loading: true }, }, - JSON.parse(JSON.stringify(config)), + configDup, ); if (this._config) {