Controllo Consumi e Costi bolletta Elettrici (package)

Rifacendomi alla Guida Pzem per il monitoraggio dei consumi, realizzata dal nostro admin Enrico e prendendo spunto dall’idea del nostro utente Ste ho deciso di realizzare un package che tiene traccia dei KWh consumati nelle Fasce F1 ed F2 e dei relativi costi in bolletta. In particolare sarà possibile impostare il costo e l’ora di inizio delle varie fasce orarie ed attivare la tariffa week end e festivi che generalmente utilizza il costo al KWh della seconda Fascia, in questo modo il nostro package ci restituirà i valori dei consumi giornalieri e mensili per singola fascia, il costo ed i valori totali dei consumi.
Adesso andiamo al codice che dovete copiare ed incollare dentro un nuovo file con estensione .yaml e piazzarlo all’interno della cartella Package (se non sapete come fare potete prendere di riferimento la nostra guida sui Package), oppure potete scaricare direttamente il file consumo e costi.zip all’interno del quale troverete il file yaml.
Nota Bene: il sensore da utilizzare con utility_meter deve fornire il consumo totale in kWh e non in W. Se non possedete un sensore in kWh ma solo quello in W potete ricavarne uno da quello in W utilizzando il sensor integration.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 |
########## sensori monitor consumi ###### Cambia la voce sources in base al nome del tuo sensore che monitora i consumi ###### utility_meter: consumo_giornaliero: source: sensor.energia_totale cycle: daily tariffs: - f1 - f2 consumo_mensile: source: sensor.energia_totale cycle: monthly tariffs: - f1 - f2 ###### input number per costi ###### input_number: costo_f1: name: Costo Energia elettrica Fascia 1 min: 0.001 max: 0.500 unit_of_measurement: '€' initial: 0.162 mode: box icon: mdi:currency-eur costo_f2: name: Costo Energia elettrica Fascia 2 min: 0.001 max: 0.500 unit_of_measurement: '€' initial: 0.113 mode: box icon: mdi:currency-eur ########## input_boolean per tariffa weekend ###### input_boolean: tariffa_weekend: name: Tariffa Week-end/festivi icon: mdi:calendar-range ######## orari inizio F1 ed F2 ######### input_datetime: f1_ora_inizio: name: "Orario Inizio Fascia 1" has_date: false has_time: true initial: '08:00' f2_ora_inizio: name: "Orario Inizio Fascia 2" has_date: false has_time: true initial: '19:00' ###### sensore per giorni feriali e festivi ####### binary_sensor: - platform: workday name: giorni fascia elettrica country: IT ###### sensori vari ##### sensor: ####### sensore Pzem ##### metti qui il tuo senrore che rileva i consumi se non lo hai ancora configurato ###### # - platform: mqtt # name: "Energia Totale" # state_topic: "tele/contatore/SENSOR" # unit_of_measurement: "KWh" # value_template: "{{ value_json['ENERGY'].Total }}" - platform: template sensors: costo_consumo_oggi_f1: friendly_name_template: "Costo Consumo Oggi fascia 1" icon_template: mdi:currency-eur value_template: "{{((states.sensor.consumo_giornaliero_f1.state | float) * (states.input_number.costo_f1.state| float)) | round(2) }}" unit_of_measurement: '€' - platform: template sensors: costo_consumo_oggi_f2: friendly_name_template: "Costo Consumo Oggi fascia 2" icon_template: mdi:currency-eur value_template: "{{((states.sensor.consumo_giornaliero_f2.state | float) * (states.input_number.costo_f2.state| float)) | round(2) }}" unit_of_measurement: '€' - platform: template sensors: consumo_totale_oggi: friendly_name_template: " Consumo Oggi " icon_template: mdi:counter value_template: "{{((states.sensor.consumo_giornaliero_f1.state | float) + (states.sensor.consumo_giornaliero_f2.state | float)) | round(3) }}" unit_of_measurement: 'KWh' - platform: template sensors: costo_consumo_oggi_totale: friendly_name_template: "Costo Consumo Oggi" icon_template: mdi:currency-eur value_template: "{{((states.sensor.costo_consumo_oggi_f1.state | float) + (states.sensor.costo_consumo_oggi_f2.state| float)) | round(2) }}" unit_of_measurement: '€' - platform: template sensors: costo_consumo_mensile_f1: friendly_name_template: "Costo Consumo mensile fascia 1" icon_template: mdi:currency-eur value_template: "{{((states.sensor.consumo_mensile_f1.state | float) * (states.input_number.costo_f1.state| float)) | round(2) }}" unit_of_measurement: '€' - platform: template sensors: costo_consumo_mensile_f2: friendly_name_template: "Costo Consumo mensile fascia 2" icon_template: mdi:currency-eur value_template: "{{((states.sensor.consumo_mensile_f2.state | float) * (states.input_number.costo_f2.state| float)) | round(2) }}" unit_of_measurement: '€' - platform: template sensors: consumo_totale_mensile: friendly_name_template: "Consumo mensile" icon_template: mdi:counter value_template: "{{((states.sensor.consumo_mensile_f1.state | float) + (states.sensor.consumo_mensile_f2.state | float)) | round(3) }}" unit_of_measurement: 'KWh' - platform: template sensors: costo_consumo_mensile_totale: friendly_name_template: "Costo Consumo mensile" icon_template: mdi:currency-eur value_template: "{{((states.sensor.costo_consumo_mensile_f1.state | float) + (states.sensor.costo_consumo_mensile_f2.state| float)) | round(2) }}" unit_of_measurement: '€' ####### automazioni cambio fascia ########## automation: - alias: Cambio Tariffa F1 con festivi initial_state: on trigger: platform: template value_template: >- {{ states('sensor.time') == (states.input_datetime.f1_ora_inizio.attributes.timestamp | int | timestamp_custom('%H:%M', False)) }} condition: condition: and conditions: - condition: state entity_id: binary_sensor.giorni_fascia_elettrica state: 'on' - condition: state entity_id: input_boolean.tariffa_weekend state: 'on' action: - service: utility_meter.select_tariff data: entity_id: utility_meter.consumo_giornaliero tariff: f1 - service: utility_meter.select_tariff data: entity_id: utility_meter.consumo_mensile tariff: f1 - alias: Cambio Tariffa F2 con festivi initial_state: on trigger: platform: template value_template: >- {{ states('sensor.time') == (states.input_datetime.f2_ora_inizio.attributes.timestamp | int | timestamp_custom('%H:%M', False)) }} condition: condition: and conditions: - condition: state entity_id: binary_sensor.giorni_fascia_elettrica state: 'on' - condition: state entity_id: input_boolean.tariffa_weekend state: 'on' action: - service: utility_meter.select_tariff data: entity_id: utility_meter.consumo_giornaliero tariff: f2 - service: utility_meter.select_tariff data: entity_id: utility_meter.consumo_mensile tariff: f2 - alias: cambio tariffa f2 giorni festivi initial_state: 'on' trigger: platform: state entity_id: binary_sensor.giorni_fascia_elettrica to: 'off' condition: - condition: state entity_id: input_boolean.tariffa_weekend state: 'on' action: - service: utility_meter.select_tariff data: entity_id: utility_meter.consumo_giornaliero tariff: f2 - service: utility_meter.select_tariff data: entity_id: utility_meter.consumo_mensile tariff: f2 - alias: Cambio Tariffa F1 senza festivi initial_state: on trigger: platform: template value_template: >- {{ states('sensor.time') == (states.input_datetime.f1_ora_inizio.attributes.timestamp | int | timestamp_custom('%H:%M', False)) }} condition: - condition: state entity_id: input_boolean.tariffa_weekend state: 'off' action: - service: utility_meter.select_tariff data: entity_id: utility_meter.consumo_giornaliero tariff: f1 - service: utility_meter.select_tariff data: entity_id: utility_meter.consumo_mensile tariff: f1 - alias: Cambio Tariffa F2 senza festivi initial_state: on trigger: platform: template value_template: >- {{ states('sensor.time') == (states.input_datetime.f2_ora_inizio.attributes.timestamp | int | timestamp_custom('%H:%M', False)) }} condition: - condition: state entity_id: input_boolean.tariffa_weekend state: 'off' action: - service: utility_meter.select_tariff data: entity_id: utility_meter.consumo_giornaliero tariff: f2 - service: utility_meter.select_tariff data: entity_id: utility_meter.consumo_mensile tariff: f2 |
Non dimenticate di cambiare nei sensori utility meter il nome della sorgente in base al’ entity_id del vostro sensore che monitora i consumi:
1 2 3 4 5 6 7 |
utility_meter: consumo_giornaliero: source: metti qui l'entity id del sensore che legge i consumi cycle: daily tariffs: - f1 - f2 |
Se invece non avete ancora configurato il sensore addetto al controllo dei consumi troverai dentro il file un apposito spazio commentato dove poterlo aggiungere.
Se avete seguito la guida per il pzem ed avete usato le configurazioni della guida il package risulta pronto all’uso!!!
Configurazione Lovelace:
Per visualizzare il package su lovelace basta aggiungere questo codice nel vostro file ui-lovelace.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
- type: vertical-stack cards: - type: markdown content: > ## Consumi e costi - type: entities title: Parametri show_header_toggle: false entities: - entity: input_datetime.f1_ora_inizio name: Orario Fascia 1 - entity: input_number.costo_f1 name: Costo KWh Fascia 1 - entity: input_datetime.f2_ora_inizio name: Orario Fascia 2 - entity: input_number.costo_f2 name: Costo KWh Fascia 2 - entity: input_boolean.tariffa_weekend name: Attiva F2 e Tariffa Week end - type: entities title: Consumi e costi oggi show_header_toggle: false entities: - entity: sensor.consumo_giornaliero_f1 name: Consumo Fascia 1 - entity: sensor.costo_consumo_oggi_f1 name: Costo Fascia 1 - entity: sensor.consumo_giornaliero_f2 name: Consumo Fascia 2 - entity: sensor.costo_consumo_oggi_f2 name: Costo Fascia 2 - entity: sensor.consumo_totale_oggi name: Consumo Totale - entity: sensor.costo_consumo_oggi_totale name: Costo Totale - type: entities title: Consumi e costi mensile show_header_toggle: false entities: - entity: sensor.consumo_mensile_f1 name: Consumo Fascia 1 - entity: sensor.costo_consumo_mensile_f1 name: Costo Fascia 1 - entity: sensor.consumo_mensile_f2 name: Consumo Fascia 2 - entity: sensor.costo_consumo_mensile_f2 name: Costo Fascia 2 - entity: sensor.consumo_totale_mensile name: Consumo Totale - entity: sensor.costo_consumo_mensile_totale name: Costo Totale |
Per qualsiasi dubbio o per parlare del package potete fare riferimento alla discussione presente sul forum.
63 risposte
Ciao, intanto grazie per il post.
Ho inserito tutto e funziona, solo una domanda, il sensore “consumo totale” che cosa misura esattamente?
io ho inserito il sensore di una presa, e quindi ho inserito il consumo istantaneo misurato dalla presa in Kwatt ma ottengo dei numeri di spesa troppo alti. dove sbaglio?
grazie
i Wh sono la misura del consumo, i W sono la misura dell’assorbimento istantaneo, quindi hai creato un sensore di Wh che però fa il conto usando gli assorbimenti in W generando i numeri troppo alti. Correggi la configurazione del sensore e vedrai che farà il conto giusto.
Ok, in base alla guida di hassio il sensore deve essere in Kwh
Vediamo che succede 🙂
Ciao, devi metti il sensore che misura i kWh e non il consumo istantaneo
Ciao, è possibile mettere più sensori?
Ciao Marco, puoi aggiungere tutti i sensori che vuoi, ovviamente devi modificare il package prendendo di riferimento quello che già è scritto
[…] Consumi Tramite Modulo PZEM-004T, inoltre potrete sfruttare il package Controllo Consumi e Costi bolletta Elettrici.I Pzem verrà collegato alle seriale (TX e RX) di un Wemos D1 Mini (o di un qualsiasi ESP8266) che […]
ciao, il sensore sensor.energia_totale
Cosa ti da? I kwh totali da quando? Giornaglieri? Oppure totale da quando è partito il sensore?
Ogni quanto viene aggiornato?
Te lo chiedo perchè il sensore me lo sono fatto da solo, e i consumi ovviamente posso decidere io ogni quanto mandare e se cumulativi o orari. Ma non capisco come funzioni il sensore utility meter.
Ciao, per io sensore utility Meter puoi dare riferimento alla pagina ufficiale https://www.home-assistant.io/components/utility_meter/
ok, ho risolto, serve il cumulativo.
Ho installato il tuo package. Funziona quasi tutto.
Non fa lo switch tra le due tariffe.
Cercando di capire come mai, ho fatto un po’ di debug. Manca la definizione del sensore
sensor.time, usato nelle automazioni.
ok, ho risolto, serve il cumulativo.
Ho installato il tuo package. Funziona quasi tutto.
Non fa lo switch tra le due tariffe.
Cercando di capire come mai, ho fatto un po’ di debug. Manca la definizione del sensore
sensor.time, usato nelle automazioni.
Ciao, mi potresti spiegare come hai risolto il problema del cambio tariffa? Anche a me non effettua il cambio tra le due tariffe e mi viene calcolato tutto come F1. Comunque complimenti per il Package Mauro.
Salve, anche a me non avviene lo switch tra la fascia F1 e quella F2, in pratica mi viene conteggiato tutto come F1. Ho il sensor.time ma sembra non avere nessun effetto. Comunque complimenti per il package.
Per chi ha problemi, gi invito a scrivere sul forum in modo da riuscire a seguirvi tutti. Grazie
IL mio sensore shellyem mi da solo il consumo attuale in watt. Credo sia per questo che il vostro grafico mi da un numero esagerato di kwh che in realtà sono watt. avete una soluzione o una formula per modifica del vostro file yaml o del mio sensore shelly???
Con un sensor template gli fai calcolare i kWh (trovi la formula su web) oppure usi il component integer che ha la conversione già integrata nei vari conti di default
Ho creato un nuovo sensore che converte w in kwh con questa sintassi:
– platform: integration
source: sensor.consumo_attuale (nome mio shelly)
name: energy_spent
unit_prefix: k
round: 2
unit: kwh
Tutto funziona, ho anche provato ad aggiungere questo per vedere in lovelace se misurava bene i kwh:
utility_meter:
daily_energy:
source: sensor.energy_spent
Il problema arriva con la vostra configurazione
Nella vostra configurazione della guida inserisco chiaramente il nuovo sensore che rileva misurazioni in kwh: sensor.energy_spent
Il problema adesso é che in lovelace vedo esempio “consumo oggi 0.15 Kwh” quando in realtà dovrebbe essere 1.5kwh
Come mai? grazie
Scusatemi, mi sto sbagliando io, va benissimo un “consumo oggi 0.15kwh”, ho attivato il sensore 1 ora fa.
ciao Manuel, ho anche io uno shelly EM ma non so come fare per misurare i consumi in modo comprensibile.. mi diresti come hai fatto?
ho impostato nei sensor la piattaforma mqtt con power, reactive power e voltage e nel configuration file
utility_meter:
energy:
source: sensor.power_1
cycle: daily
ma non capisco bene i vari consumi
sensor.power_1 e’ W ( potenza) non energia?? Devi mettere KWh energia
Ciao, io ho fatto tutto, ma ho iniziato ed ha gia’ dei valori alti. Per azzerare il tutto e vedere se funziona, cosa devo fare?
Tra i servizi trovi utility_meter_reset
io non vedo il servizio, qualche idea? al momento sto cambiando nome ai sensori per aggirare il problema
Ultimamente non lo vedo nemmeno io, ma se lo richiami tramite uno script funziona
Salve a tutti sto provando ad integrare questo package nel mio hassio, ma niente non vedo i sensori, è un problema degli ultimi aggiornamenti ? O capita solo a me?
Ciao, mi sa che capita solo a te. Io uso il package ed ho l’ultima versione
Si si risolto, ho dovuto riavviare un paio di volte e dopo ho trovato tutti i sensori. Grazie per la risposta
Ciao, ho dato un’occhiata al progetto ed è molto meglio di quello trovato su inDomus, complimenti. Il problema che riscontro è che ad ogni riavvio di homeassistant (che devo effettuare per nuove implementazioni) , il totalizzatori mi incrementano dopo qualche secondo di un valore spropositato, che suppongo sia il totale incrementale dello shelly-em. Ad esempio, se allo spegnimento era a 100, dopo il riavvio lo trovo a 2100, che è impossibile. Mi tocca resettare i totalizzatori tutte le volte, perdendo così tutti i dati…
Ciao Stefano, quale sensore dello shelly stai utilizzando? Ho notato che con gli shelly è meglio calcolare i kWh tramite il sensore integration.
Ciao Mauro, grazie per avere risposto innanzitutto. I sensori che sto totalizzando sono TOTAL e TOTAL_RETURNED per il modello SHELLY-EM che forniscono un dato incrementale in w/h quindi lo divido per 1000 ottenendo i Kw/h.
Per il modello SHELLY1PM utilizzo il sensore POWER che fornisce un dato incrementale in w/min quindi lo divido per (60×1000) ottenendo i Kw/h. Attendo tua risposta e ti ringrazio.
Come ti ho scritto precedentemente usa il sensor integration di home assistant
Ciao Mauro, ho cercato su internet, ma non ho trovato nulla su sensor integration, potresti darmi delle dritte a riguardo? Grazie
https://www.home-assistant.io/integrations/integration/
Ciao a tutti.
Avendo la bolletta di casa che arriva ogni due mesi, c’è la possibilità di conteggiarne due invece di uno e poi azzerare il contatore?
Purtroppo no, utility Meter non prevede azzeramenti bimestrali
La documentazione dice che utility meter prevede anche il conteggio bimestrale.
cycle string REQUIRED
How often to reset the counter. Valid values are hourly, daily, weekly, monthly, bimonthly, quarterly and yearly. Cycle value bimonthly will reset the counter once in two months.
(https://www.home-assistant.io/integrations/utility_meter/#configuration)
Lo hanno inserito da poco, prima non c’era
Non funziona il passaggio da f1 ad f2… come posso risolvere?
ciao, mi accodo,
Non funziona il passaggio da f1 ad f2… come posso risolvere?
Il sensor.time lo hai?
adesso con il nuovo giorno sembra sia corretto…ma il contatore mensile è impazzito con i numeri di ieri…come si resetta???
grazieeeee
https://www.home-assistant.io/integrations/utility_meter/
si, lo ho.
Allora mi sa che va rivista l’automazione, con tutti i cambiamenti delle ultime versioni sarà cambiato qualcosa
Ho risolto grazie,
non so perché avevo sensor.time al posto di states(‘sensor.time’)
ciao a tutti e grazie anche per questo package…. ho uno shelly em con una sola pinza…. volevo capire quale entity del mi shelly em inserire alla voce source del consumo giornaliero e quale al consumo mensile…..non riesco a capire quale utilizzare….per il canale 1 ho energy —- energy returned —– power —– voltage…… poi ho 2 voci generali shellyem e overpowering…… grazieeeee
Buongiorno, il sensore che misura i w (potenza istantanea)
ti ringrazio moltissimo ma ho dei valori sballatissimi……qui non posso inserire foto per mostrare
Hai creato il sensore integration?
ho aggiunto questo in configuration
sensor:
– platform: integration
source: sensor.shellyem_e4552e_channel_1_energy
name: energy_spent
unit_prefix: k
round: 2
ma al riavvio i valori sono raddoppiati mi segna 24.251 w …….. boletta 3.900euro
Questo poi lo devi mettere nel package
Complimenti per la guida.
ho implementato questo package, modificato il mio sensore shellyem
daily_energy:
source: sensor.shelly_em_consumo
cycle: daily
tariffs:
– f1
– f2
solo che integrandolo nella cartella package praticamente non vedo nulla, tutti i sensori me li da non disponibili e sinceramente mi sto perdendo.
Per l’implementazione bisogna mettere il file in package e moficare il nome del sensore che raccoglie le info.
Hai seguito la guida per attivare i package?
Si, ho messo la configurazione in configuration.yaml
sulle entità ho questo messaggio “Questa entità (“sensor.costo_consumo_oggi_totale”) non ha un ID univoco, pertanto le sue impostazioni non possono essere gestite dall’Interfaccia Utente. Vedere” e nella UI mi da entità non disponibile
La prima parte è normale che sia così, mentre per il fatto che non è disponibile ti consiglio di entrare su telegram e vedo di aiutarti
salve,
complimenti per il lavoro svolto
Funziona tutto ma contabilizza tutto in F1 il sensor.time ho controllato e’ funzionante
il file .zip non è piu disponibile
il file .zip non è più disponibile
Ciao,
il file consumi e costi .zip non è disponibile per il download
grazie
Ciao Mauro,
dopo l’ultimo aggiornamento di ha viene riscontrato il seguente errore:
L’automazione “Cambio Tariffa F1 con festivi” (automation.cambio_tariffa_f1_con_festivi) ha un’azione che chiama un servizio sconosciuto: utility_meter.select_tariff.
gli ultimi aggiornamenti di HA impediscono di eseguire le automazioni che erano scritte per vecchie versioni di HA, ho provato a sistemarle e ho messo tutto qui: https://github.com/MicheleMercuri/mickmmm/blob/main/energy_bill_2022_pub
Ciao, ho utilizzato il tuo lavoro per provare a controllare i consumi. Purtroppo non riesco a capire perché i consumi mi vengono misurati solo nella fascia F1, alle 19:00 il sensore consumo_giornaliero f2 rimane in pausa mentre consumo_giornaliero f1 continua a collezionare dati. Dove potrei aver sbagliato?
Ciao, non riesco a capire perché il conteggio mensile è corretto, quello giornaliero è sballatissimo.
Il sensore sorgente è lo stesso.
giornaliero: 22.377,502 kWh
mensile: 0,488 kWh
Thomas