From 18f10bb174f559f83ac6a7a5c113519a1d51d424 Mon Sep 17 00:00:00 2001 From: hermes Date: Wed, 9 Sep 2026 05:12:45 +0000 Subject: [PATCH] Fix: Complete dashboard rewrite - EXTRACT(EPOCH) for time, state ~ regex filter, timeInterval in datasource --- .../tecalor-dashboard-cm.yaml | 28 ++--- .../tecalor-dashboard.json | 108 ++++++------------ 2 files changed, 48 insertions(+), 88 deletions(-) diff --git a/homeassistant-observability/tecalor-dashboard-cm.yaml b/homeassistant-observability/tecalor-dashboard-cm.yaml index 8bf9180..194aaf3 100644 --- a/homeassistant-observability/tecalor-dashboard-cm.yaml +++ b/homeassistant-observability/tecalor-dashboard-cm.yaml @@ -38,7 +38,7 @@ data: "y": 0 }, "id": 14, - "title": "Temperatures", + "title": "Temperaturen", "panelType": "row", "type": "row" }, @@ -108,7 +108,7 @@ data: }, "format": "time_series", "rawQuery": true, - "rawSql": "SELECT\n last_changed AS time,\n state::float AS value,\n entity_id AS metric\nFROM recorder_states\nWHERE entity_id IN ('sensor.thzctl_vorlaufisttemp', 'sensor.thzctl_ruecklaufisttemp')\n AND $__timeFilter(last_changed)\nORDER BY last_changed", + "rawSql": "SELECT\n EXTRACT(EPOCH FROM s.last_changed) * 1000 as time,\n s.state::float as value,\n sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.thzctl_vorlaufisttemp', 'sensor.thzctl_ruecklaufisttemp')\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", "refId": "A" } ], @@ -181,7 +181,7 @@ data: }, "format": "time_series", "rawQuery": true, - "rawSql": "SELECT\n last_changed AS time,\n state::float AS value,\n entity_id AS metric\nFROM recorder_states\nWHERE entity_id IN ('sensor.tecalor_thz5_5_eco_heissgas_temp', 'sensor.tecalor_thz5_5_eco_olsumpftemperatur', 'sensor.tecalor_thz5_5_eco_invertertemperatur')\n AND $__timeFilter(last_changed)\nORDER BY last_changed", + "rawSql": "SELECT\n EXTRACT(EPOCH FROM s.last_changed) * 1000 as time,\n s.state::float as value,\n sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_heissgas_temp', 'sensor.tecalor_thz5_5_eco_olsumpftemperatur', 'sensor.tecalor_thz5_5_eco_invertertemperatur')\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", "refId": "A" } ], @@ -270,7 +270,7 @@ data: }, "format": "time_series", "rawQuery": true, - "rawSql": "SELECT\n last_changed AS time,\n state::float AS value,\n entity_id AS metric\nFROM recorder_states\nWHERE entity_id IN ('sensor.tecalor_thz5_5_eco_druck_hochdruck', 'sensor.tecalor_thz5_5_eco_druck_niederdruck', 'sensor.tecalor_thz5_5_eco_druck_heizkreis')\n AND $__timeFilter(last_changed)\nORDER BY last_changed", + "rawSql": "SELECT\n EXTRACT(EPOCH FROM s.last_changed) * 1000 as time,\n s.state::float as value,\n sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_druck_hochdruck', 'sensor.tecalor_thz5_5_eco_druck_niederdruck', 'sensor.tecalor_thz5_5_eco_druck_heizkreis')\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", "refId": "A" } ], @@ -343,7 +343,7 @@ data: }, "format": "time_series", "rawQuery": true, - "rawSql": "SELECT\n last_changed AS time,\n state::float AS value,\n entity_id AS metric\nFROM recorder_states\nWHERE entity_id IN ('sensor.tecalor_thz5_5_eco_verfluessiger_temp', 'sensor.tecalor_thz5_5_eco_speichersolltemp_tag')\n AND $__timeFilter(last_changed)\nORDER BY last_changed", + "rawSql": "SELECT\n EXTRACT(EPOCH FROM s.last_changed) * 1000 as time,\n s.state::float as value,\n sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_verfluessiger_temp', 'sensor.tecalor_thz5_5_eco_speichersolltemp_tag')\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", "refId": "A" } ], @@ -416,7 +416,7 @@ data: }, "format": "time_series", "rawQuery": true, - "rawSql": "SELECT\n last_changed AS time,\n state::float AS value,\n entity_id AS metric\nFROM recorder_states\nWHERE entity_id IN ('sensor.tecalor_thz5_5_eco_laufzeit_verdichter_heizen', 'sensor.tecalor_thz5_5_eco_laufzeit_verdichter_ww')\n AND $__timeFilter(last_changed)\nORDER BY last_changed", + "rawSql": "SELECT\n EXTRACT(EPOCH FROM s.last_changed) * 1000 as time,\n s.state::float as value,\n sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_laufzeit_verdichter_heizen', 'sensor.tecalor_thz5_5_eco_laufzeit_verdichter_ww')\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", "refId": "A" } ], @@ -501,7 +501,7 @@ data: }, "format": "time_series", "rawQuery": true, - "rawSql": "SELECT\n last_changed AS time,\n state::float AS value,\n entity_id AS metric\nFROM recorder_states\nWHERE entity_id IN ('sensor.tecalor_thz5_5_eco_el_energieaufnahme_ww_summe_mwh', 'sensor.tecalor_thz5_5_eco_el_energieaufnahme_heiz_summe_mwh')\n AND $__timeFilter(last_changed)\nORDER BY last_changed", + "rawSql": "SELECT\n EXTRACT(EPOCH FROM s.last_changed) * 1000 as time,\n s.state::float as value,\n sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_el_energieaufnahme_ww_summe_mwh', 'sensor.tecalor_thz5_5_eco_el_energieaufnahme_heiz_summe_mwh')\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", "refId": "A" } ], @@ -559,7 +559,7 @@ data: }, "format": "table", "rawQuery": true, - "rawSql": "SELECT state::float AS value, entity_id AS metric\nFROM recorder_states\nWHERE entity_id = 'sensor.tecalor_thz5_5_eco_el_energieaufnahme_ww_summe_mwh'\nORDER BY last_changed DESC LIMIT 1", + "rawSql": "SELECT EXTRACT(EPOCH FROM s.last_changed) * 1000 as time, s.state::float as value, sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_el_energieaufnahme_ww_summe_mwh'\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\nORDER BY s.last_changed DESC LIMIT 1", "refId": "A" } ], @@ -617,7 +617,7 @@ data: }, "format": "table", "rawQuery": true, - "rawSql": "SELECT state::float AS value, entity_id AS metric\nFROM recorder_states\nWHERE entity_id = 'sensor.tecalor_thz5_5_eco_el_energieaufnahme_heiz_summe_mwh'\nORDER BY last_changed DESC LIMIT 1", + "rawSql": "SELECT EXTRACT(EPOCH FROM s.last_changed) * 1000 as time, s.state::float as value, sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_el_energieaufnahme_heiz_summe_mwh'\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\nORDER BY s.last_changed DESC LIMIT 1", "refId": "A" } ], @@ -687,7 +687,7 @@ data: }, "format": "table", "rawQuery": true, - "rawSql": "SELECT state::float AS value, entity_id AS metric\nFROM recorder_states\nWHERE entity_id = 'sensor.tecalor_thz5_5_eco_firmware_version'\nORDER BY last_changed DESC LIMIT 1", + "rawSql": "SELECT EXTRACT(EPOCH FROM s.last_changed) * 1000 as time, s.state::float as value, sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_firmware_version'\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\nORDER BY s.last_changed DESC LIMIT 1", "refId": "A" } ], @@ -745,7 +745,7 @@ data: }, "format": "table", "rawQuery": true, - "rawSql": "SELECT state::float AS value, entity_id AS metric\nFROM recorder_states\nWHERE entity_id = 'sensor.tecalor_thz5_5_eco_laufzeit_verdichter_heizen'\nORDER BY last_changed DESC LIMIT 1", + "rawSql": "SELECT EXTRACT(EPOCH FROM s.last_changed) * 1000 as time, s.state::float as value, sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_laufzeit_verdichter_heizen'\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\nORDER BY s.last_changed DESC LIMIT 1", "refId": "A" } ], @@ -803,7 +803,7 @@ data: }, "format": "table", "rawQuery": true, - "rawSql": "SELECT state::float AS value, entity_id AS metric\nFROM recorder_states\nWHERE entity_id = 'sensor.tecalor_thz5_5_eco_laufzeit_verdichter_ww'\nORDER BY last_changed DESC LIMIT 1", + "rawSql": "SELECT EXTRACT(EPOCH FROM s.last_changed) * 1000 as time, s.state::float as value, sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_laufzeit_verdichter_ww'\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\nORDER BY s.last_changed DESC LIMIT 1", "refId": "A" } ], @@ -861,7 +861,7 @@ data: }, "format": "table", "rawQuery": true, - "rawSql": "SELECT state::float AS value, entity_id AS metric\nFROM recorder_states\nWHERE entity_id = 'sensor.tecalor_thz5_5_eco_raumsolltemp_tag'\nORDER BY last_changed DESC LIMIT 1", + "rawSql": "SELECT EXTRACT(EPOCH FROM s.last_changed) * 1000 as time, s.state::float as value, sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_raumsolltemp_tag'\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\nORDER BY s.last_changed DESC LIMIT 1", "refId": "A" } ], @@ -885,4 +885,4 @@ data: "uid": "tec-waermepumpe", "version": 1 } - + \ No newline at end of file diff --git a/homeassistant-observability/tecalor-dashboard.json b/homeassistant-observability/tecalor-dashboard.json index 23ed54c..c80ca3e 100644 --- a/homeassistant-observability/tecalor-dashboard.json +++ b/homeassistant-observability/tecalor-dashboard.json @@ -31,7 +31,7 @@ "y": 0 }, "id": 14, - "title": "Temperatures", + "title": "Temperaturen", "panelType": "row", "type": "row" }, @@ -70,7 +70,7 @@ } ] }, - "unit": "\u00b0C" + "unit": "°C" }, "overrides": [] }, @@ -83,11 +83,7 @@ "id": 2, "options": { "legend": { - "calcs": [ - "lastNotNull", - "max", - "min" - ], + "calcs": ["lastNotNull", "max", "min"], "displayMode": "table", "placement": "bottom", "showLegend": true @@ -105,11 +101,11 @@ }, "format": "time_series", "rawQuery": true, - "rawSql": "SELECT\n s.last_changed AS time,\n s.state::float AS value,\n sm.entity_id AS metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.thzctl_vorlaufisttemp', 'sensor.thzctl_ruecklaufisttemp')\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", + "rawSql": "SELECT\n EXTRACT(EPOCH FROM s.last_changed) * 1000 as time,\n s.state::float as value,\n sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.thzctl_vorlaufisttemp', 'sensor.thzctl_ruecklaufisttemp')\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", "refId": "A" } ], - "title": "Vorlauf & R\u00fccklauf Temperatur", + "title": "Vorlauf & Rücklauf Temperatur", "type": "timeseries" }, { @@ -147,7 +143,7 @@ } ] }, - "unit": "\u00b0C" + "unit": "°C" }, "overrides": [] }, @@ -160,11 +156,7 @@ "id": 3, "options": { "legend": { - "calcs": [ - "lastNotNull", - "max", - "min" - ], + "calcs": ["lastNotNull", "max", "min"], "displayMode": "table", "placement": "bottom", "showLegend": true @@ -182,11 +174,11 @@ }, "format": "time_series", "rawQuery": true, - "rawSql": "SELECT\n s.last_changed AS time,\n s.state::float AS value,\n sm.entity_id AS metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_heissgas_temp', 'sensor.tecalor_thz5_5_eco_olsumpftemperatur', 'sensor.tecalor_thz5_5_eco_invertertemperatur')\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", + "rawSql": "SELECT\n EXTRACT(EPOCH FROM s.last_changed) * 1000 as time,\n s.state::float as value,\n sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_heissgas_temp', 'sensor.tecalor_thz5_5_eco_olsumpftemperatur', 'sensor.tecalor_thz5_5_eco_invertertemperatur')\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", "refId": "A" } ], - "title": "Kesseltemperatur (Heissgas, \u00d6lsumpftemp, Inverter)", + "title": "Kesseltemperatur (Heissgas, Ölsumpftemp, Inverter)", "type": "timeseries" }, { @@ -253,11 +245,7 @@ "id": 4, "options": { "legend": { - "calcs": [ - "lastNotNull", - "max", - "min" - ], + "calcs": ["lastNotNull", "max", "min"], "displayMode": "table", "placement": "bottom", "showLegend": true @@ -275,7 +263,7 @@ }, "format": "time_series", "rawQuery": true, - "rawSql": "SELECT\n s.last_changed AS time,\n s.state::float AS value,\n sm.entity_id AS metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_druck_hochdruck', 'sensor.tecalor_thz5_5_eco_druck_niederdruck', 'sensor.tecalor_thz5_5_eco_druck_heizkreis')\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", + "rawSql": "SELECT\n EXTRACT(EPOCH FROM s.last_changed) * 1000 as time,\n s.state::float as value,\n sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_druck_hochdruck', 'sensor.tecalor_thz5_5_eco_druck_niederdruck', 'sensor.tecalor_thz5_5_eco_druck_heizkreis')\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", "refId": "A" } ], @@ -317,7 +305,7 @@ } ] }, - "unit": "\u00b0C" + "unit": "°C" }, "overrides": [] }, @@ -330,11 +318,7 @@ "id": 5, "options": { "legend": { - "calcs": [ - "lastNotNull", - "max", - "min" - ], + "calcs": ["lastNotNull", "max", "min"], "displayMode": "table", "placement": "bottom", "showLegend": true @@ -352,11 +336,11 @@ }, "format": "time_series", "rawQuery": true, - "rawSql": "SELECT\n s.last_changed AS time,\n s.state::float AS value,\n sm.entity_id AS metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_verfluessiger_temp', 'sensor.tecalor_thz5_5_eco_speichersolltemp_tag')\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", + "rawSql": "SELECT\n EXTRACT(EPOCH FROM s.last_changed) * 1000 as time,\n s.state::float as value,\n sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_verfluessiger_temp', 'sensor.tecalor_thz5_5_eco_speichersolltemp_tag')\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", "refId": "A" } ], - "title": "Verfl\u00fcssiger & Speichersoll", + "title": "Verflüssiger & Speichersoll", "type": "timeseries" }, { @@ -407,11 +391,7 @@ "id": 6, "options": { "legend": { - "calcs": [ - "lastNotNull", - "max", - "min" - ], + "calcs": ["lastNotNull", "max", "min"], "displayMode": "table", "placement": "bottom", "showLegend": true @@ -429,7 +409,7 @@ }, "format": "time_series", "rawQuery": true, - "rawSql": "SELECT\n s.last_changed AS time,\n s.state::float AS value,\n sm.entity_id AS metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_laufzeit_verdichter_heizen', 'sensor.tecalor_thz5_5_eco_laufzeit_verdichter_ww')\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", + "rawSql": "SELECT\n EXTRACT(EPOCH FROM s.last_changed) * 1000 as time,\n s.state::float as value,\n sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_laufzeit_verdichter_heizen', 'sensor.tecalor_thz5_5_eco_laufzeit_verdichter_ww')\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", "refId": "A" } ], @@ -496,11 +476,7 @@ "id": 7, "options": { "legend": { - "calcs": [ - "lastNotNull", - "max", - "min" - ], + "calcs": ["lastNotNull", "max", "min"], "displayMode": "table", "placement": "bottom", "showLegend": true @@ -518,7 +494,7 @@ }, "format": "time_series", "rawQuery": true, - "rawSql": "SELECT\n s.last_changed AS time,\n s.state::float AS value,\n sm.entity_id AS metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_el_energieaufnahme_ww_summe_mwh', 'sensor.tecalor_thz5_5_eco_el_energieaufnahme_heiz_summe_mwh')\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", + "rawSql": "SELECT\n EXTRACT(EPOCH FROM s.last_changed) * 1000 as time,\n s.state::float as value,\n sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id IN ('sensor.tecalor_thz5_5_eco_el_energieaufnahme_ww_summe_mwh', 'sensor.tecalor_thz5_5_eco_el_energieaufnahme_heiz_summe_mwh')\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\n AND $__timeFilter(s.last_changed)\nORDER BY s.last_changed", "refId": "A" } ], @@ -562,9 +538,7 @@ "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "calcs": ["lastNotNull"], "fields": "", "values": false }, @@ -578,7 +552,7 @@ }, "format": "table", "rawQuery": true, - "rawSql": "SELECT s.state::float AS value, sm.entity_id AS metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_el_energieaufnahme_ww_summe_mwh'\nORDER BY s.last_changed DESC LIMIT 1", + "rawSql": "SELECT EXTRACT(EPOCH FROM s.last_changed) * 1000 as time, s.state::float as value, sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_el_energieaufnahme_ww_summe_mwh'\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\nORDER BY s.last_changed DESC LIMIT 1", "refId": "A" } ], @@ -622,9 +596,7 @@ "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "calcs": ["lastNotNull"], "fields": "", "values": false }, @@ -638,7 +610,7 @@ }, "format": "table", "rawQuery": true, - "rawSql": "SELECT s.state::float AS value, sm.entity_id AS metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_el_energieaufnahme_heiz_summe_mwh'\nORDER BY s.last_changed DESC LIMIT 1", + "rawSql": "SELECT EXTRACT(EPOCH FROM s.last_changed) * 1000 as time, s.state::float as value, sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_el_energieaufnahme_heiz_summe_mwh'\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\nORDER BY s.last_changed DESC LIMIT 1", "refId": "A" } ], @@ -694,9 +666,7 @@ "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "calcs": ["lastNotNull"], "fields": "", "values": false }, @@ -710,7 +680,7 @@ }, "format": "table", "rawQuery": true, - "rawSql": "SELECT s.state::float AS value, sm.entity_id AS metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_firmware_version'\nORDER BY s.last_changed DESC LIMIT 1", + "rawSql": "SELECT EXTRACT(EPOCH FROM s.last_changed) * 1000 as time, s.state::float as value, sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_firmware_version'\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\nORDER BY s.last_changed DESC LIMIT 1", "refId": "A" } ], @@ -754,9 +724,7 @@ "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "calcs": ["lastNotNull"], "fields": "", "values": false }, @@ -770,7 +738,7 @@ }, "format": "table", "rawQuery": true, - "rawSql": "SELECT s.state::float AS value, sm.entity_id AS metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_laufzeit_verdichter_heizen'\nORDER BY s.last_changed DESC LIMIT 1", + "rawSql": "SELECT EXTRACT(EPOCH FROM s.last_changed) * 1000 as time, s.state::float as value, sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_laufzeit_verdichter_heizen'\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\nORDER BY s.last_changed DESC LIMIT 1", "refId": "A" } ], @@ -814,9 +782,7 @@ "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "calcs": ["lastNotNull"], "fields": "", "values": false }, @@ -830,7 +796,7 @@ }, "format": "table", "rawQuery": true, - "rawSql": "SELECT s.state::float AS value, sm.entity_id AS metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_laufzeit_verdichter_ww'\nORDER BY s.last_changed DESC LIMIT 1", + "rawSql": "SELECT EXTRACT(EPOCH FROM s.last_changed) * 1000 as time, s.state::float as value, sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_laufzeit_verdichter_ww'\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\nORDER BY s.last_changed DESC LIMIT 1", "refId": "A" } ], @@ -874,9 +840,7 @@ "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "calcs": ["lastNotNull"], "fields": "", "values": false }, @@ -890,7 +854,7 @@ }, "format": "table", "rawQuery": true, - "rawSql": "SELECT s.state::float AS value, sm.entity_id AS metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_raumsolltemp_tag'\nORDER BY s.last_changed DESC LIMIT 1", + "rawSql": "SELECT EXTRACT(EPOCH FROM s.last_changed) * 1000 as time, s.state::float as value, sm.entity_id as metric\nFROM states s JOIN states_meta sm ON s.metadata_id = sm.metadata_id\nWHERE sm.entity_id = 'sensor.tecalor_thz5_5_eco_raumsolltemp_tag'\n AND s.state ~ '^-?[0-9]+\\.?[0-9]*$'\nORDER BY s.last_changed DESC LIMIT 1", "refId": "A" } ], @@ -900,11 +864,7 @@ ], "refresh": "30s", "schemaVersion": 40, - "tags": [ - "homeassistant", - "tec", - "heat-pump" - ], + "tags": ["homeassistant", "tec", "heat-pump"], "templating": { "list": [] }, @@ -914,7 +874,7 @@ }, "timepicker": {}, "timezone": "browser", - "title": "Tecalor W\u00e4rmepumpe", + "title": "Tecalor Wärmepumpe", "uid": "tec-waermepumpe", "version": 1 -} \ No newline at end of file +}