andbad / HA_PowerControl

Package per il controllo dei carichi elettrici tramite Home Assistant.
GNU General Public License v3.0
49 stars 7 forks source link

Idee per future versioni #2

Closed avvalex closed 2 years ago

avvalex commented 2 years ago

Ciao, complimenti per l'ottimo progetto!!! Ora che è uscito lo Shelly 4 pm pro mi è venuta voglia di sostituire il relè controllo carichi Vemer che possiedo, e che ho ampliato con HA. Il relè attualmente legge il consumo totale, e quando questo supera 3.9kwh comincia a staccare 3 carichi in ordine di priorità. Al termine dei distacchi comunque le letture di uno Shelly EM, che tiene conto anche della produzione del fotovoltaico (a differenza del Vemer), entro i 2 minuti concessi dal contatore, innescano una automazione per spegnere il climatizzatore (non togliendo corrente, ma col comando in HA), e infine se ancora non basta un'altra automazione spegne uno Shelly PM con connessa l'asciugatrice.

Ora, qualora ovviamente tu ne avessi voglia, credo potrebbe essere una idea per una V4 della tua automazione apportare le seguenti modifiche (se avessi le competenze ti aiuterei volentieri): 1) sicuramente la cosa più importante sarebbe dare la possibilità di usare come limite non un valore assoluto (es. 3.9 kWh) ma il numero restituito istante per istante da un sensore virtuale (nel mio caso 3,9kWh+prod. istantanea del fotovoltaico); 2) inserire la possibilità con un toggle di scegliere se riarmare i carichi in ordine inverso alla priorità di disarmo, oppure se riarmarli in ordine non predefinito, man mano che si libera lo spazio necessario; 3) permettere di impostare un valore di isteresi, ossia scegliere quanta potenza deve liberarsi oltre al carico da inserire; inoltre poter scegliere per quanto tempo la potenza non deve scendere sotto quel livello prima di procedere col riarmo; 4) permettere di spegnere carichi a seconda di condizioni diverse dal consumo (tipo il mio clima, che si spegne solo se è acceso, ma non ho un controllo sul suo carico, ho però lo stato dato dall'integrazione Daikin), e di conseguenza riarmare solo gli split che prima erano accesi, il tutto tramite comandi e non togliendo corrente. Intanto mi viene in mente questo. La cosa difficile non è tenere conto della produzione FV, ma impedire che in caso di nuvole ci sia un'attacca e stacca dei carichi, quando invece sarebbe preferibile che quelli differibili aspettassero il loro turno senza fare troppo pressing. Il relè, con relative istruzioni e logiche di funzionamento, è questo: https://www.vemer.it/it/catalogo/misura_e_controllo/rele_di_controllo/controllo_carichi/pc3r_ve467700

avvalex commented 2 years ago

Aggiungo: 5) Il sistema dovrebbe poter riuscire a dedurre il consumo dell'elettrodomestico distaccato anche verificando le differenza del consumo totale pre e post distacco, in caso i carichi siano controllati da dispositivi privi di lettura consumi; 6) se già non previsto, il Vemer ha anche un tempo impostabile oltre al quale i carichi iniziano comunque a essere reinseriti (ci sono situazioni strane, del tipo nell'istante in cui il Vemer stacca il forno qualcuno spegne il phon: il relè pensa di aver staccato 5 kW, per cui non riarmerebbe mai); questa opzione sarebbe necessaria qualora si implementasse quella di cui al punto 5, perché ovviamente in caso di letture puntuali per ciascun elettrodomestico non ci sarebbero fraintendimenti.

andbad commented 2 years ago

Sono tante cose, ti rispondo velocemente: 1- Mi sfugge il senso: mettiamo che hai 3kW sul contatore e 3kW di fotovoltaico. Tu inserirai un sensore di assorbimento sul cavo che esce dal contatore e imposti 3kW come potenza massima. Se il fotovoltaico produce 0, tu preleverai dal contatore e se superi 3kW lui stacca. Se il fotovoltaico produce 3 e tu assorbi mettiamo 4, dal contatore uscirà solo 1, quindi ben sotto il limite. Se assorbi 7, ad esempio, saranno 3 da FV e 4 dal contatore e, quindi, comincerà a staccare i carichi. Sbaglio? 2- I carichi vengono staccati solo se stanno assorbendo. Se il limite scende sotto soglia, comincia a riattivare i carichi staccati con maggiore priorità, sempre che la loro riattivazione non comporti un nuovo sforamento (con il valore "phantom"). Quindi è già così. 3- Il tempo di attesa è già presente (vedi "Minuti riattivazione"). QUanto al valore di isteresi, come lo chiami, ci devo ragionare. 4- Ci avevo pensato, anche io ho i condizionatori controllabili, ma ho notato che quando li spengo ci mettono un po' a farlo, continuando ad assorbire. Il distacco invece dev'essere più o meno immediato, per evitare che salti il contatore. Quindi Ho deciso di limitarmi ad uno switch. Anche perché, nella mia testa, se hai un sensore di potenza su un carico hai anche un interruttore. Però potrei anche ripensarci. 5- Per come ragiona il package, la trovo una cosa alquanto difficile: i carichi vengono scollegati solo se stanno assorbendo, ergo se non c'è un sensore che gli dice che sta assorbendo, lui non stacca. E quindi non potrebbe dedurre granché. 6- La situazione che citi non può verificarsi, perché il package sa quanta potenza ha staccato (ne tiene memoria nei sensori "phantom"). Essendo poco fattibile implementare quanto al punto 5, come giustamente fai notare.

By(t)e

avvalex commented 2 years ago

1) La mia situazione attuale è uno Shelly EM con una pinza montata dopo il generale, che legge solo il consumo, e una montata sulla produzione FV. Però ora che ci penso se creo un sensore template come differenza dei due posso vedere quando in realtà sto prelevando dalla rete, e usare quello come trigger quando sfora i 3,9 kWh (prelevati).... 2) Non è una opzione indispensabile, ma il mio relè Vemer, che è in attesa di riarmare il carico 3, se vede che il 3 non ci sta ma ci starebbe il 2, intanto riarma quello (diciamo che stacca in ordine, ma volendo si può scegliere che riattacchi il primo carico che ci sta, in qualsiasi ordine). 3) Perfetto 4) I miei Daikin, ad esempio, sono assolutamente istantanei 5) Per questo punto posso fare diversamente, ora leggo lo stato da HA, ma non ci metto molto a mettere anche un misuratore di consumo (Shelly PM ad esempio, o un altro EM), poi vuoi che non si riesca a creare un interruttore virtuale che azioni il comando climate on e off?

Mi sa che ci devo ragionare meglio e fare delle prove.... Intanto grazie mille!! Al massimo rompo come al solito su Indomus su Telegram....

andbad commented 2 years ago

1- Mmh, io farei il contrario, ovvero mettere la pinza a valle del contatore e fare un template con somma tra contatore e FV per consumo totale. Ma è uguale. :) 2- Dovrebbe già agire così. Dovrei fare delle prove. 4-5 Si, certo. Che forse è anche una soluzione più elegante.

By(t)e

smarcotutti commented 2 years ago

Ciao andband, mi trovo in difficoltà, anche io ho shelly EM. Per l'esattezza ne ho 2 con 2 pinze ognuno per minitorare 4 piani del medesimo contatore. Riesco ad inserire il sensore singolo (1 di qualsiasi dei 4 canali) ma vorrei fare un gruppo per fare la somma di tutte i 4 canali per avere il consumo totale del contatore. come devo fare? sto impazzendo

andbad commented 2 years ago

Semplice. Crei un sensore così:

  - platform: template
    sensors:
      potenza_totale
        unit_of_measurement: 'W'
        value_template: >
          {{ states('sensor.potenza_piano_1')|int + 
             states('sensor.potenza_piano_2')|int + 
             states('sensor.potenza_piano_3')|int + 
             states('sensor.potenza_piano_4')|int }}

Ovviamente a "sensor.potenza_piano_x" devi sostituire i 4 sensori che degli shelly EM. Nella configurazione poi inserirai il sensore "potenza_totale" così creato.

By(t)e

smarcotutti commented 2 years ago

grazie!

r0b3rt74 commented 2 years ago

Ciao andbad e complimenti per il package! Veramente ben fatto! Ho un solo problema: se la presa smart che ha priorità più alta nel distacco è offline (ce l'ho attaccata al ferro da stiro e la inserisco solo quando in uso), non funziona il distacco di tutti gli altri carichi in cascata. Hai idea di come poter risolvere? Grazie

andbad commented 2 years ago

Grazie per i complimenti. Riguardo il tuo problema, devo fare qualche test e probabilmente qualche modifica per includere un ulteriore check. Puoi aprire un issue apposito, così non mi dimentico? Grazie.

By(t)e