From 135115b27ad415865458f20965b0e14253eba0ec Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 31 Aug 2026 09:49:50 +0200 Subject: feat: aggregate five Tasmota plugs with cost and daily history Proxy Tasmota energy JSON into Homepage's customapi widget, which can render JSON but cannot do arithmetic. Applies the tariff, sums across plugs, and records the per-day history the plugs do not keep. Plugs are fetched in parallel; sequential polling would stack five timeouts into a 25s hang. An offline plug is reported rather than counted as zero, so a dead sensor cannot read as "consumed nothing". Tasmota exposes only Today/Yesterday/Total, so each poll writes yesterday's finished kWh into SQLite keyed (day, plug), making repeat polls and restarts idempotent. Display strings are preformatted server-side: Homepage's locale formatting renders 1593 W as an ambiguous "1,593", and its widget has no columns, so pairing kWh with its cost in one value is what keeps the cards compact. --- homepage-settings.yaml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 homepage-settings.yaml (limited to 'homepage-settings.yaml') diff --git a/homepage-settings.yaml b/homepage-settings.yaml new file mode 100644 index 0000000..095b03b --- /dev/null +++ b/homepage-settings.yaml @@ -0,0 +1,21 @@ +# Merge this `layout:` block into Homepage's settings.yaml. +# +# The layout block controls rows. `style: row` + `columns:` puts a group's +# services side by side on one row; without it they stack in a column. +# Listing every group also fixes their order on the page, so groups you +# already have must appear here too, or they fall to the bottom. + +layout: + Consumi: + style: row + columns: 1 # single full-width card: the total gets its own row + Prese: + style: row + columns: 5 # the 5 plugs side by side on the row below + + # Your other groups go here too. Any group omitted from this block falls to + # the bottom of the page, so list them all in the order you want them shown: + # + # Nome Gruppo: + # style: row + # columns: 3 -- cgit v1.2.3