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-services.yaml | 126 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 homepage-services.yaml (limited to 'homepage-services.yaml') diff --git a/homepage-services.yaml b/homepage-services.yaml new file mode 100644 index 0000000..2ee00e6 --- /dev/null +++ b/homepage-services.yaml @@ -0,0 +1,126 @@ +# Append to Homepage's services.yaml. Replaces the old single "Presa Tasmota" entry +# under "Other Local Services" - delete that one. +# +# Layout (total on its own row, the 5 plugs on the row below) is set in +# settings.yaml, not here. See homepage-settings.yaml. + +- Consumi: + - Totale: + icon: mdi-flash + href: http://127.0.0.1:8099/graph + description: Tutte le prese - consumo e costo + widget: + type: customapi + url: http://127.0.0.1:8099/total + refreshInterval: 10000 + display: list + mappings: + - field: power_fmt + label: Potenza attuale + - field: today_fmt + label: Oggi + - field: yesterday_fmt + label: Ieri + - field: last7_fmt + label: Ultimi 7 giorni + - field: last30_fmt + label: Ultimi 30 giorni + - field: total_fmt + label: Storico + - field: plugs_ok + label: Prese online + format: number + +- Prese: + - Condizionatore: + icon: mdi-air-conditioner + href: http://172.16.34.176/ + #description: NOUS A1T + widget: + type: customapi + url: http://127.0.0.1:8099/ac + refreshInterval: 10000 + display: list + mappings: + - field: power_fmt + label: Ora + - field: today_fmt + label: Oggi + - field: yesterday_fmt + label: Ieri + - field: total_fmt + label: Storico + + - Lavatrice: + icon: mdi-washing-machine + href: http://172.16.34.127/ + widget: + type: customapi + url: http://127.0.0.1:8099/washer + refreshInterval: 10000 + display: list + mappings: + - field: power_fmt + label: Ora + - field: today_fmt + label: Oggi + - field: yesterday_fmt + label: Ieri + - field: total_fmt + label: Storico + + - Lavastoviglie: + icon: mdi-dishwasher + href: http://172.16.34.149/ + widget: + type: customapi + url: http://127.0.0.1:8099/dishwasher + refreshInterval: 10000 + display: list + mappings: + - field: power_fmt + label: Ora + - field: today_fmt + label: Oggi + - field: yesterday_fmt + label: Ieri + - field: total_fmt + label: Storico + + - PC e NAS: + icon: mdi-server + href: http://172.16.34.118/ + description: UPS - PC, nodi Proxmox, NAS + widget: + type: customapi + url: http://127.0.0.1:8099/pc + refreshInterval: 10000 + display: list + mappings: + - field: power_fmt + label: Ora + - field: today_fmt + label: Oggi + - field: yesterday_fmt + label: Ieri + - field: total_fmt + label: Storico + + - Varie: + icon: mdi-power-socket-eu + href: http://172.16.34.186/ + description: friggitrice, forno pizza, ecc + widget: + type: customapi + url: http://127.0.0.1:8099/spare + refreshInterval: 10000 + display: list + mappings: + - field: power_fmt + label: Ora + - field: today_fmt + label: Oggi + - field: yesterday_fmt + label: Ieri + - field: total_fmt + label: Storico -- cgit v1.2.3