Nuovo Controllo Carichi

.
Argomento: package
Livello: Novizio (Novizio,Esperto, Pro)
Difficoltà: Bassa (Bassa, Media, Alta)
Home Assistant:v. 0.116.2
Intoduzione
Con gli utltimi aggiornamenti di Home Assistant il vecchio package controllo carichi ha smesso di funzionare, per cui ho deciso di scriverne uno da capo o quasi. Il nuovo package rispecchia le funzioni del primo, ma questa volta ho deciso di snellire il codice togliendo tutta la parte di configurazione da frontend e ricorrere al file secret. Per quanto riguarda i principi di funzionamento e le modalità di distacco del contatore vi rimando al precedente articolo.
Requisiti
Installazione
Per effettuare l’installazione basta scaricare il file controllo_carichi.zip e copiare il file controllo_carichi.yaml dentro la cartella package di Home Assistant.
Dopo di che aprite il vostro file secret ed inserite i seguenti parametri modificandoli con i vostri:
################ Controllo Carichi ##################
#mettere direttamente l'entity_id
sensore_potenza_totale: sensor.contatore_potenza
#### Inserire la lista come in questo esempio usando i friendly name.
#### Inserire solo entità che fanno parte dei domini climate e switch
#### lasciando la voce nessuno.
carichi_controllati: [
"Nessuno",
"boiler",
"Clima De longhi",
"Zephir Zel 12000",
"Presa Lavatrice",
"Presa Forno",
"Macchina Caffe"
]
come potete vedere le voci da aggiungere nel file secret sono soltanto due, nella prima andremo a scrivere l’entity_id del sensore che legge i consumi di tutta la casa, mente nella seconda inseriremo la lista dei carichi da spegnere utilizzando il friendly_name. Faccio presente che ho scelto di controllare soltanto le entità che fanno parte dei domini climate e switch, questo perchè reputo inutile e controproducente andare a spegnere dei carichi minori tipo lampadine o Smart Tv.
Configurazione Notifiche
Il package è già pronto per inviare le notifiche sfruttando il nostro centro notifiche. Se non lo utilizzate vi basterà modificare la action di due semplici automazioni, inserendo i vostri servizi di notifica:
- automation.notifica_accensione_carico_hub
- automation.notifica_spegnimento_carico_hub
Lovelace
All’interno del file Rar che avete scaricato in precedenza trovete il file Lovelace.yaml che contiene il codice per una card che usa i seguenti custom reperibili su hacs:
- banner-card
- paper-buttons-row
- hui-element
- state-switch
Se non siete amanti delle custom card, lascio di seguito la lista delle entità utili nel frontend in modo che possiate crearvi le vostre card personalizzate:
- automation.innesco_controllo_carichi
- automation.notifica_accensione_carico_hub
- automation.notifica_spegnimento_carico_hub
- automation.accensione_ultimo_carico_spento
- sensor.potenza
- sensor.ultimo_carico
- sensor.data_ultimo_intervento
- input_select.selettore_kw_contatore
- input_number.tempo_intervento
- input_select.carico_1
- input_select.carico_2
- input_select.carico_3
- input_select.carico_4
- input_select.carico_5
- input_select.carico_6
- input_select.carico_7
- input_select.carico_8
- input_select.carico_9
- input_select.accensione_automatica_caric
- input_select.esclusione_1_riaccensione
- input_select.esclusione_2_riaccensione
Funzionalità e settaggi
- Selettore kW Contatore: Qui andiamo ad inserire la potenza contrattuale del nostro contatore, in modo da settare le soglie di intervento del controllo carichi. Le opzioni previste sono 3kW, 4.5kw, 6Kw e 10kW
- Tempo D’intervento: con questo parametro decidiamo in quanto tempo il controllo carichi interviene dopo il superamento della soglia imposta dal nostro contatore
- Carico Priorità 1-2-3-4-5-6-7-8-9: Un semplice input_select che permette di scegliere le priorità dei carichi precedentemente inseriti nel nostro file secret
- Accensione ultimo carico spento: Attiva o disattiva la funzione di accensione del carico che è stato spento per ultimo
- Soglia Accensione Carico(w): indica il valore sotto il quale deve essere sceso il consumo istantaneo per poter accendere l’ultimo carico spento
- Escluso dalla riaccensione: Permette di escludere due carichi dalla riaccensione automatica.
Vi lascio le immagini della scheda lovelace dove potete vedere tutte le impostazioni appena descritte:



Note di funzionamento
Il package è stato realizzato in maniera tale da intervenire al superamento delle soglie consentite dal contatore, una volta avviata la procedura di distacco verrà effettuato un controllo ogni 30 secondi, fino a quando il valore non sarà rientrato sotto la soglia, spegnendo i carichi nell’ordine da noi impostato.
Per poter funzionare correttamente gli switch vanno tenuti spenti quando l’elettrodomestico non è in uso, questo perchè il package tiene presente lo stato dello switch. Per cui se uno switch è in “on” ma il relativo elettrodomestico in realtà è spento per il controllo carichi e come se l’elettrodomestico fosse acceso e di conseguenza lo switch verrà spento. Questa scelta è legata al mio progetto di domotica, avendo notato che ogni elettrodomestico che rimane sotto tensione ha un minimo di consumo ho deciso di lasciare l’alimentazione staccata quando non sono in funzione.
63 risposte
Ciao Mauro grazie mille per questo update.
Aggiungo solo un mio commento che spero possa essere utili a quelli nella mia situazione.
I miei switch sono in realtà dei sonoff Pow r2 normalmente accesi che controllano i carichi della cucina.
Per ovviare alle caratteristiche del tuo package ho creato dei template switch che sono accesi solo se il carico è sopra un valore soglia 🙂
Ottima soluzione, come spiego nell’articolo ho fatto una scelta nel mio progetto di domotica ed i nostri lavori sono frutto di questo, li condividiamo con la speranza che le persone li apprezzino e li prendano come base , modificandoli, per il loro progetto
mi puoi mandare un esempio
Su cosa?
scusami.. volevo sapere come ha fatto Marco a creare un template switch..
tutto qui.
Ciao volevo sapere come hai creato i template switch…
puoi farmi vedere un esempio??
Trovi tutto qui: https://www.home-assistant.io/integrations/switch.template/
Marco, soluzione molto utile, potresti pubblicare un esempio del tuo template switch per chi non è molto pratico?
grazie mille
Buongiorno Mauro grazie mille per packing! ho seguito le istruzioni, ma per qualche ragione, il controllo carichi non spegne il carico una volta raggiunta la soglia. ho provato sia con switch MQTT che Tuya, riducendo anche le soglie inserite nel package a 199W. il controllo Carichi segnala l’ultimo intervento, ma di fatto non spegne il carico. Hai un idea di quale potrebbe essere il problema? grazie mille.
Secret scritto in maniera errata
Ciao Mauro,
Sono Ezio ed apprezzo molto il tuo lavoro. Anche io ho creato dei binary_sensor che si accendono quando il carico supera una certa soglia di assorbimento. Ovviamente posso farlo poichè ho delle prese smart con power monitor. Pertanto, in fase di spegnimento dell’elettrodomestico invece di interrogare lo switch della presa smart, interroga il binary_sensor.
Funziona tutto alla grande
Ciaooooooooo
Ciao Ezio, fa piacere ricevere i complimenti e mi fa ancora più piacere quando gli utilizzatori so ingegnano per migliorarlo. Grazie e ciao
Ezio, Mauro, potete fare un esempio su come modificare lo yaml per interrogare un switch template per poi spegnere uno switch fisico. Ecco l’esempio del template switch che ho utilizzato.
switch:
– platform: template
switches:
lavatricexcc:
value_template: “{{ states(‘sensor.lavatrice’)|float > 20 }}”
turn_on:
service: switch.turn_on
data:
entity_id: switch.lavatricexcc
turn_off:
service: switch.turn_off
data:
entity_id: switch.lavatricexcc
Grazie.
Da quello che vedo hai in problema con i nomi, lo switch che vuoi comandare si chiama switch.lavatricexc ed allo switch template hai dato lo stesso nome
Mauro mi sono accoro dell’errore, grazie. modificato e sistemato.
In realtà la mia domanda è un’altra. esempio:
– ho un sensor.lavatrice che legge il carico in watt
– ho uno switch.lavatrice che spegne effettivamente la presa della lavatrice.
Normalmente la persa della lavatrice è sempre accesa perché ci sono anche altri carichi collegati, e quindi mi serve sempre accesa.
– creo un template switch (switch.lavatricexcc) che si posiziona in on o off in base al carico del sensor.lavatrice.
Il controllo carichi a questo punto dovrebbe leggere lo stato del template switch (switch.lavatricexcc), ma in realtà spegnere lo switch reale (switch.lavatrice).
Come devo modificare lo yaml del controllo carichi per fare questo?
E’ giusto il mio ragionamento o sbaglio qualcosa?
Grazie mille per il supporto
Non devi modificare niente, nel secret del controllo carichi metti direttamente lo switch template
Grazie mille!
Buongiorno a tutti. Ho appena installato la nuova versione del controllo carichi, anche se a me la vecchia non dava problemi su HA, come sempre il lavoro fatto è ottimo anzi sembra anche più facile installarla rispetto alla precedente.
Vorrei solo capire se, a livello di notifiche, è possibile oltre che gestirle in autonomia modificando l’action delle automazioni, usare sia google home mini sia telegram come notifiche.
Io ho modificato l’automazione ma ho inserito solo il servizio tts.google.say.
Come posso aggiungere anche il servizio per telegram?
Grazie e ancora complimenti per il lavoro fatto
Ti basta aggiungere anche il servizio per le notifiche telegram
Ciao e complimenti per l’ottimo lavoro … avewvo installata la prima versione ora sto agiornando a questa … non riesco pero a trovare su HACS il componente custom: state-switch… devo fare qualcosa sulla configurazione di hacs?
grazie!
Non devi fare niente, dovrebbe essere già lì. Se non lo trovi puoi sempre usare una card standard. Grazie per i complimenti
Salve a tutti , non riesco a creare dei switch che si attivano oltre una soglia minima di carico , dagli esempi messi prima non funziona lo switch , il valore del template passa a true o false ma lo switch non passa a On o Off .
Siccome per il mio impianto e’ impossibile staccare la spina in caso di elettrodomestico spento mi tornerebbe molto utile questo discorso .
qualcuno puo’ passarmi la config degli switch?
grazie mille
Ho questo problema postato anche su telegram ma non ho ricevuto risposta. In pratica ho impostato come ultimo carico da distaccare un gruppo di climatizzatori usando la funzione gruppo dell’entità climate. La gestione carichi mi disattiva tranquillamente il gruppo di fancoil in caso di sovraccarico tuttavia pur essendo l’ultimo della lista non me li riattiva presumo perché essendo un gruppo di climatizzatori non hanno un entità sensore abbinata. Come posso ovviare a questa problematica? Per me è importante far riattivare il gruppo di condizionatori o resterei senza riscaldamento globale. Grazie e complimenti per l’ottimo lavoro
Ti avevo risposto su telegram chiedendo più informazioni, ma sei sparito. Come prima cosa il controllo carichi è stato pensato per funzionare con i domini climate e switch, per cui sembra strano che spenga un entità del dominio group. In ogni caso ti pongo nuovamente la domanda fatta sul gruppo telegram accendendo il gruppi manualmente i condizionatori si accendono? (Ti invito a continuare su telegram eventualmente)
Grazie mille per il progetto l’ho installato e funziona tutto alla perfezione ora mi studierò il problema degli switch dal momento che ho delle spine Meross e non le posso staccare del tutto.
Trovo il progetto estremamente intelligente soprattutto nella parte che riguarda il distacco progressivo degli elementi con possibilità di stabilire delle priorità e l’esclusione di altri.
Ciao Mauro,
scusa la domanda, forse banale, ma sono nuovo con il linguaggio yaml, che tra l’altro mi pare ostico…. Ho installato il tuo package e sono riuscito ad impostarlo per le mie esigenze, anche utilizzando switch template. In realtà ho dovuto scrivere nel secrets.yaml le entità senza doppi apici, cosa sbaglio ? Anche perchè, come ti dicevo, ho cercato di capire il tuo ciclo di ricerca dell’ entity_id, ma ho difficoltà, hai qualche tutorial da consigliare ?
Grazie mille per la disponibilità
Ciao, dipende da come hai scritto il secret gli apici non sono necessari. Tutorial non saprei, ma puoi leggere la documentazione ufficiale di home assistant e quella di jinja
Ciao Mauro, complimenti!
Ho installato stasera HA 2020.12.0 e non funziona più il tuo fondamentale package (insieme a tanti altri). In generale il problema in lovelace è relativo ai “Custom element doesn’t exist”. Peccato di gioventù della nuova realise HA o problema di retrocompatibilità pyton?
Ciao Filippo, non ho ancora installato la nuova versione di ha, ma da quello che leggo parli solo di Lovelace per cui nulla ti vieta di crearti delle card diverse
Buongiorno Mauro, grazie per condividere la tua esperienza.
Ho configurato le card, anche quslche notifica ma quando inserisco il tuo package poi sulla verifica mi trovo: “expected dict for dictionary value @ data[‘packages’][‘lovelace’][‘type’]”
Allora tutti i type mi sembrano installato ovvero le card.
Puoi darmi un aiutino per favore?
Buongiorno Walter, dove hai inserito le card?
Ciao Mauro ti confermo che il tuo package funziona alla grande!
una domanda: perchè riparte automaticamente solo l’ultimo carico spento? non c’è un modo per far ripartire automaticamente anche quelli che sono stati fermati prima?
grazie e buon fine 2020
L’ho pensato così per le mie esigenze, ma puoi sempre modificarlo come più ti piace
Ho guardato il codice del tuo package ma è al sopra delle mie capacità Mi indicheresti su quale parte dovrei lavorare?
Grazie!
Non è una cosa semplice da fare, bisogna creare un sistema che memorizzi tutti i cari ho spenti e li riaccenda piano piano al di sotto della soglia impostata
Salve,
non riesco a scaricare il file zip
Ciao e complimenti per il lavoro fatto…..non riesco a gestire i switch….nel secrets yaml ho inserito così :
################ Controllo Carichi ##################
#mettere direttamente l’entity_id
sensore_potenza_totale: sensor.shelly_em_assorbimento_ch2
#### Inserire la lista come in questo esempio usando i friendly name.
#### Inserire solo entità che fanno parte dei domini climate e switch
#### lasciando la voce nessuno.
carichi_controllati: [
“Nessuno”,
“switch.bagno_giornaliero_relay_0”,
“switch.forno_relay_0”,
“################ Controllo Carichi ##################
#mettere direttamente l’entity_id
sensore_potenza_totale: sensor.shelly_em_assorbimento_ch2
#### Inserire la lista come in questo esempio usando i friendly name.
#### Inserire solo entità che fanno parte dei domini climate e switch
#### lasciando la voce nessuno.
carichi_controllati: [
“Nessuno”,
“switch.bagno_giornaliero_relay_0”,
“switch.forno_relay_0”,
“switch.forno_a_microonde_relay_0”,
]
Ho provato anche a eliminare “switch.” ma nulla …dove che sbaglio ???
Il problema sono le virgolette ” che causa del sito sono errate devono essere come quelle che ho scritto qui sopra (forse). Se usi notepad++ non avrai di queste sorprese. Ho sistemato l’articolo solo da poco x questo motivo.
quindi? quali sarebbero le ” giuste da usare?
Cancella quelle che hai messo tramite copia e incolla e riscrivile
Ho sistemato l’articolo le puoi copiare da lì ora
Ciao Mauro , Complimenti per il tuo lavoro , mi chiamo Giovanni sono un appassionato ma molto alle prime armi con HA , volevo sapere che cosa dovrei modificare per inserire due controlli carichi , poiché uno mi controlla il contatore del fornitore ed uno lo userei per avere un pò di potenza in più (rispesto ai miei 4,5 kw) sfruttando il fotovoltaico impostandolo a 6kw con distacchi più veloci , ps ho la sezione adeguata della montante (6mmq)x 15 mt di lunghezza e sia il quadro a monte che il quadro in casa mi permettono di arrivare tranquillamente a 5,5kw (25A ), ho già fatto varie prove duplicando il tuo package ma purtroppo mi genera errori , ti ringrazio in anticipo dell’eventuale aiuto che mi offriresti
Non capisco dove sta il tuo problema… Se il sensore che legge l’assorbimento totale e posizionato in maniera da leggere quello che effettivamente sta erogando il contatore non avrai nessun problema. Devi soltanto tenere impostato il controllo carichi per 4.5kw
forse mi sono spiegato male , fotovoltaico eroga 1500w e il mio contatore 4500 cosi ho a disposizione 6kw e se uso il sensore del contatore il sistema cade a 4,5kw, può stare in piedi solo se metto 6 kw, ma allo stesso tempo 6 kw ed il fotovoltaico mi da 0w ed uso sempre il sensore del contatore mi scatterebbe poiché supero i 4,5kw per questo vorrei due controllo carichi uno lo uso a 4,5 e misuro il contatore ed uno lo metto a 6kw ed uso un sensore che misura la somma di enel+fotovoltaico, cosi facendo ho la protezione contro il distacco su tutte e due i fronti sia se supero la potenza erogata dal contatore sia se supero la potenza ammissibile per l’impianto
.
Provo a spiegarmi meglio, se tu nel controllo carichi misuri il solo assorbimento del contatore non avrai nessun problema. Ad esempio in casa hai apparecchiature accese per 5kw di cui 1.5kw li sta dando il solare i restanti 3.5kw li sta dando il contatore. Per cui se il sensore che legge i dati del contatore sta leggendo 3.5kw ( ed il contatore e da 4.5) il controllo carichi non interviene (visto che previene il distaccamento del contatore che è ancora dentro i limiti) con questa logica tu puoi pure usare 50kw se il tuo solare e in grado di produrne 45
ho capito quello che tu mi stai dicendo però se controllo solo l’uscita del contatore mi stacca il generale magnetotermico in casa (6 kw) poiché il mio fotovoltaico potrebbe generare anche 4 kw (quindi potenzialmente avrei 8,5 kw ) quindi la mia automazione funziona per il contatore , ma non funziona per il magnetotermico che protegge la linea da 6 kw che dopo un po mi scatterebbe nonostante il contatore eroghi 4,5kw (per questo mi serviva un secondo controllo carichi)
Tralasciando il discorso quadro, non entro nei dettagli… A questo punto ti fai un sensore che somma l’assorbimento dal solare + quello dal contatore
Avevo già fatto questo tipo di scelta ma non può funzionare quando il fotovoltaico non genera io arriverei a 6kw senza che mi stacchi le utenze non necessarie nonostante io superi la fornitura elettrica del contatore , devo avere per forza due tipi di misurazione uno che tenga conto della fornitura (ed evito il distacco enel) ed uno del totale che evita il distacco del generale, per questo avevo chiesto il secondo controllo carichi
Questo perché il quadro è calibrato male e non puoi usare il controllo carichi per come deve funzionare… La soluzione corretta rimane leggere quello che eroga il contatore, in pratica il mio primo consiglio… mettere due package ti crea solo casini… In ogni se vuoi avventurarti devi solo cambiare nome alle entità che genera il package ad esempio aggiungendo alla fine un semplice _bis
il quadro e le sue protezioni sono corrette , già predisposto per poter avere a monte anche una fornitura da 6 kw (sezioni montanti e magnetotermici suddivisi per zona e utilizzatori ) ho provato a cambiare i nomi alle entità generate ma genera errori , ti ringrazio per la pazienza. buona serata
Perdonami ma da professionista del settore ti dico che non sono corrette, se tu hai un possibile prelievo di 8kw tra solare ed Enel il quadro è l’impianto deve essere tarato per quel valore non per 6kw. Tornando al package la strada è quella che ti ho indicato, senza sapere che errori ti dà la convalida è un po’ difficile provare ad aiutarti
Perdonami se insisto sul quadro , ma visto che non esiste normativa (vado a memoria e non ne ho l’assoluta certezza) che impone la dimensione del quadro sulla fornitura , ma la impone sulla protezione per quanto riguarda le sezioni del trasporto (e di questo sono certo), il quadro in questione è corretto , anche se avessi 8kw sul quadro a protezione avrei sempre lo stesso problema , il contatore non scatta se misuro solo il contatore ,(poiché il valore e tarato sui 8 kw) oppure se misuro la somma rischierei che scatti il contatore poiché io ho un valore molto più elevato per l’attivazione dell’automazione. comunque più provo a modificare di nuovo il package , grazie mille
Libero di insistere, ma progetto impianto da oltre 20 anni, il punto è questo: il controllo carichi deve impedire il distacco del contatore, per farlo devi prendere la misura erogata dal contatore. Poi tu sei libero come ti dicevo si usare anche 6kw (4 solare + 2 contatore) . Se poi mi sollevi l’obiezione che così non puoi tirare gli ipotetici 8kw ( 4 contatore + 4 solare) il problema viene da come è progettato il quadro, Anche senza controllo carichi non ti permette di farlo.
Buonasera a tutti e complimenti Mauro per il tuo lavoro è per averlo condiviso con tutti. Ho installato il controllo carichi sul mio HA, ho un pzem sul contatore e uno shelly pm alla lavastoviglie e uno shelly plug alla lavatrice. Ho configurato due template switch che si attivano quando l’assorbimento di ogni elettrodomestico supera i 100w. Fin qui tutto bene.. solo che quando supero i 3kw arriva la notifica ma lo script non stacca i due template switch e quindi ovviamente non spegne gli elettrodomestici..
Grazie per i complimenti, avrai sbagliato qualcosa nel secret
Grazie Mauro per la risposta, in effetti stavo ricontrollando il file secret e mi sono accorto che ho inserito l’entry ID e non il friendly name dei carichi da staccare (cioè dei template switch) potrebbe essere questo il problema?
Certo che il problema è quello.
Grazie ancora stasera cambio e provo! … E complimenti ancora!
Ciao Mauro allora ho provato ho sostituito l’ID con il friendly name ma non sembra funzionare, quando supero la soglia non stacca niente questo il mio file secret.yaml:
################ Controllo Carichi ##################
#mettere direttamente l’entity_id
sensore_potenza_totale: sensor.potenza_ist
#### Inserire la lista come in questo esempio usando i friendly name.
#### Inserire solo entità che fanno parte dei domini climate e switch
#### lasciando la voce nessuno.
carichi_controllati: [
“Nessuno”,
“LavatriceS”,
“LavastoviglieS”
]
Virgolette errate, cancellale e riscrivile
Grazie Mauro!
Ciao.ho inserito il file nella cartella package ma non capisco perchè mi da errore quando convalido la configurazione.
Error loading /config/configuration.yaml: Secret carichi_controllati not defined
Non hai messo i dati nel secret