dimarsaba Inserito: 28 luglio Segnala Inserito: 28 luglio Salve so bene che altre volte se ne è discusso ma io vorrei sottoporre ai più esperti la mia idea di alimantare lo scaldabagno con l'eccesso del fotovoltaico anzichè incremenatare l'autoconsumo con le batterie che al momento non ho possibilità di spesa. Premesso che ho un impianto da 4 kw in V conto energia (ho anche un altro impianto separato dal primo di 6 kw), premesso che i contatori produzione e consumo sono purtroppo lontani idem dicasi lo scaldabagno e quindi sarà gestito il tutto in wi-fi, l'impianto che avevo pensato, utilizzando gli shelly, sarà quella seguire e vorrei avere conforto alla bontà della mia idea, passo a spiegarla: Sistema per Autoconsumo FV con Scaldabagno ⚙️ Obiettivo Utilizzare l’eccesso di energia prodotta dal tuo impianto fotovoltaico per alimentare automaticamente lo scaldabagno elettrico, senza mandare energia in rete. Componenti usati: Shelly 3EM Misura la produzione FV, il consumo della casa e il flusso di energia verso/rete. È il "cervello" che calcola quando c’è energia in eccesso. Shelly Dimmer 0-10V PM Riceve il comando dal 3EM e regola la potenza inviata al boiler (tramite segnale 0-10V). Modulo Regolatore TRIAC compatibile 0-10V Modula la tensione alla resistenza del boiler in base al segnale del Dimmer. Collegamenti principali I 3 morsetti TA del Shelly 3EM vanno posizionati così: TA1: Su cavo che va alla casa → misura scambio con la rete. TA2: Su cavo che viene dall’inverter FV, dopo il contatore di produzione → misura la produzione. TA3: Facoltativo (es. linea boiler, o lasciato libero). Il Shelly 3EM e il Shelly Dimmer sono collegati alla rete Wi-Fi locale, comunicano senza cloud. Funzionamento logico Il TA1 misura se stai esportando energia in rete. Quando esporti (ad esempio stai producendo 2000W e consumando solo 500W), lo script LUA nel 3EM: Calcola il surplus (1500W) Invia un segnale proporzionale al Shelly Dimmer 0-10V Il Dimmer regola la potenza del boiler in tempo reale per usare solo l’eccesso. Vantaggi Non serve Home Assistant né cloud Sistema completamente automatico Utilizza il 100% della produzione FV in eccesso Tutto il controllo avviene in locale Per il controllo locale sullo shelly 3EM: Script LUA Questo script viene caricato nel Shelly 3EM e gestisce automaticamente l’attivazione modulata dello scaldabagno in base all’energia in eccesso (cioè l’energia che stai esportando verso la rete, rilevata dal TA1). Che ne pensate? Ho solo il dubbio sulla scelta del "Modulo regolatore TRIAC compatibile 0-10V", mi venica consigliato per limitare la spesa e per l'uso da fare questi: Fasizi AC 220V 4000W Regolatore di Tensione elettronico SCR ad Alta Potenza Regolatore di velocità del termostato dimmer (su Amazon) oppure Regolatori di tensione ad alta potenza professionali 4000W 220V regolatore di velocità SCR regolatore di tensione elettronico regolatore termostato HR (su Alibaba) A voi l'ardua sentenza.
dimarsaba Inserita: 28 luglio Autore Segnala Inserita: 28 luglio 2 ore fa, Simone Baldini ha scritto: Se lo script funziona va bene. Lo script dovrebbe essere questo se non ho sbagliato a copiare: -- CONFIGURAZIONE BASE local update_interval = 10 -- secondi tra ogni controllo local max_power = 2500 -- potenza massima della resistenza (in Watt) local dimmer_ip = "192.168.1.50" -- IP del tuo Shelly Dimmer 0-10V PM -- FUNZIONE PER INVIARE IL SEGNALE AL DIMMER function set_dimmer_power(power) -- Calcolo percentuale da 0 a 100 in base alla potenza max local percent = math.floor((power / max_power) * 100) percent = math.max(0, math.min(percent, 100)) -- limiti -- Invia comando al dimmer via HTTP http.get("http://" .. dimmer_ip .. "/settings/light/0?brightness=" .. percent) end -- LOOP PRINCIPALE PERIODICO function main_loop() local em_data = em_data or shelly.get_data() -- Prende potenza del TA1 (fase marrone, scambio rete) local scambio_watt = em_data[1].power -- Se esporta energia (valore negativo), attiva il dimmer if scambio_watt < -100 then -- soglia minima per evitare fluttuazioni local surplus = math.abs(scambio_watt) set_dimmer_power(surplus) else -- Nessun surplus → spegne il boiler set_dimmer_power(0) end end -- SCHEDULAZIONE shelly.schedule(main_loop, update_interval) ma interessa anche un giudizio sulla bontà del regolatore di tensione o magari avere un consiglio tecnico migliore
dimarsaba Inserita: 29 luglio Autore Segnala Inserita: 29 luglio (modificato) @ Simone Baldini Qualcuno miponeva dubbi sull'utilizzo del regolatore di tensione in quanto quello in questione del progetto nasce per la regolazione dei motori elettrici quindi carichi induttivi, e mi diceva di una soluzione basat su Triac ma quest'ultimi creano disturbi EMI, ho cercato di capire e credo non proprio una delle migliori soluzioni, mi indicheresti la soluzione migliore per ovviare a questi dubbi? Oppure quanto al progetto quello esposto va bene? Modificato: 29 luglio da dimarsaba
omaccio Inserita: 29 luglio Segnala Inserita: 29 luglio CTR-X/D, Regolatori per resistenze elettriche, monofase 230 V AC / bifase 400 V AC - ITK forse qualcosa del genere...
dimarsaba Inserita: 29 luglio Autore Segnala Inserita: 29 luglio 5 ore fa, omaccio ha scritto: CTR-X/D, Regolatori per resistenze elettriche, monofase 230 V AC / bifase 400 V AC - ITK forse qualcosa del genere... Potrebbe ma non essendo esperto non saprei risponderti e poi il costo?
Simone Baldini Inserita: 30 luglio Segnala Inserita: 30 luglio Sarebbe meglio avere piu' resistenze da far lavorare in cascata. Non sono esperto di qiesti regolatori. Altrimenti dovresti far invervenire solo quando supera la soglia della potenza piena della resistenza.
dimarsaba Inserita: 30 luglio Autore Segnala Inserita: 30 luglio Forse ho trovato la soluzione ma ho bisogno di conferme ovvero Controllo di un carico resistivo ad alta potenza mediante: shelly 3 EM > shelly pro dimmer 0/1-10v PM > relè a stato solido (ssr) info da “kb.shelly.cloud”
mgaproduction Inserita: 31 luglio Segnala Inserita: 31 luglio Questione davvero molto interessante. In pratica puoi comandare lo shelly (ne uso diversi anch'io, tra cui proprio anche un 3EM) per attivarsi in enne condizioni diverse. Io farei solo una piccola modifica e metterei, nel calcolo : -- Se esporta energia (valore negativo), attiva il dimmer anche un tempo minimo di funzionamento, proprio per essere sicuro di evitare fluttuazioni. Si sa mai che per enne motivi diversi, si attiva l'accensione ma poi si spegne dopo i 10 secondi che hai impostato come tempo di controllo. Meglio farlo stare acceso per un pò consecutivamente, che rischiare di fargli fare degli on/off...
dimarsaba Inserita: 31 luglio Autore Segnala Inserita: 31 luglio 7 minuti fa, mgaproduction ha scritto: Questione davvero molto interessante. In pratica puoi comandare lo shelly (ne uso diversi anch'io, tra cui proprio anche un 3EM) per attivarsi in enne condizioni diverse. Io farei solo una piccola modifica e metterei, nel calcolo : -- Se esporta energia (valore negativo), attiva il dimmer anche un tempo minimo di funzionamento, proprio per essere sicuro di evitare fluttuazioni. Si sa mai che per enne motivi diversi, si attiva l'accensione ma poi si spegne dopo i 10 secondi che hai impostato come tempo di controllo. Meglio farlo stare acceso per un pò consecutivamente, che rischiare di fargli fare degli on/off... Ottima osservazione quella delle fluttuazioni, nubi o cielo velato per x tempo etc. etc. comunque l'unico grande problema che ho riscontrato, chiesto ache in altri forum, è il regolatore di tensione, quelli citati mi sembrano non proprio adatti, non è che sia un esperto ma mi sono avvalso di altre voci, quindi da quelli citati sono passato ai Relè Solidi, leggevo il progetto con Raspberry su altro forum ed usano un SSR solido ma il loro modello è un off/on e me non serve ma serve un SSR adatto alla modulazione con ingresso analogico e dopo svariati giri sul web penso che uno dei prodotti di maggior valenza qualità prezzo sia il PSSR-40A su Damen CNC, ha tutte le caratteristiche richieste l'unico neo è l'input sarebbe 2-10V e non 0-10V ma non credo di essere un problema, il rischio è di acquistare prodotti non certificati ad un prezzo inferiore e il sol fatto di esserci citato 0-10V non vuol dire che sia reale. Se la cosa la vedi interessate ti invito magari a commentare altri dubbi o spiegazioni. Ciao
mgaproduction Inserita: 1 agosto Segnala Inserita: 1 agosto Per me il progetto è molto interessante (anche perchè ho tutta casa domotizzata con Shelly e Sonoff) ed ho installato HA su un raspberry e quindi tutto ciò che è inerente queste cose, suscita inevitabilmente il mio interesse. Onestamente non ero nemmeno a conoscenza di poter mandare degli script agli Shelly... Ma per ritornare in tema, sul discorso dei relè non ti so dire molto di più. Io banalmente, mi fosse mai venuta in mente questa idea, mi sarei limitato ad un on/off perchè ho il sistema di accumulo e quindi per me sarebbe tutto molto più semplice : accenderei nelle ore centrali, dove la produzione è maggiore MA PURTROPPO l'introito GSE minore e quindi sarebbe di tutto guadagno consumare prioritariamente la corrente di quelle fasce orarie piuttosto che regalargliela a tutti gli effetti.
mgaproduction Inserita: 1 agosto Segnala Inserita: 1 agosto (modificato) 17 ore fa, dimarsaba ha scritto: uno dei prodotti di maggior valenza qualità prezzo sia il PSSR-40A su Damen CNC, ha tutte le caratteristiche richieste l'unico neo è l'input sarebbe 2-10V e non 0-10V ma non credo di essere un problema, Io però non vedo questa differenza nella descrizione. Riporto testualmente e ti invito a leggere bene : https://www.damencnc.com/en/proportional-solid-state-relay-single-phase-0-10v-pssr-40a/a4809 in pratica ovunque scrive Vin 0-10, seppur possa trarre in inganno la foto che stampiglia sul relè un bel 2-10 anzichè 0-10. Ma il tutto si spiega leggen do meglio una frase descrittiva che ti riporto : "The output voltage is proportional to the input voltage. Keep in mind there is a deadzone between 0 and 2V, where the relais does not react" quindi la fascia in IN 0-2V è inefficace per l'output, il relè non funziona in questa fascia di IN Ne deduco che volontariamente descrivono che va da 0 a 10 ma altrettanto volontariamente stampigliano 2-10 in quanto la fascia 0-2 non attiva un bel nulla Modificato: 1 agosto da mgaproduction
dimarsaba Inserita: 1 agosto Autore Segnala Inserita: 1 agosto 1 ora fa, mgaproduction ha scritto: Per me il progetto è molto interessante (anche perchè ho tutta casa domotizzata con Shelly e Sonoff) ed ho installato HA su un raspberry e quindi tutto ciò che è inerente queste cose, suscita inevitabilmente il mio interesse. Onestamente non ero nemmeno a conoscenza di poter mandare degli script agli Shelly... Ma per ritornare in tema, sul discorso dei relè non ti so dire molto di più. Io banalmente, mi fosse mai venuta in mente questa idea, mi sarei limitato ad un on/off perchè ho il sistema di accumulo e quindi per me sarebbe tutto molto più semplice : accenderei nelle ore centrali, dove la produzione è maggiore MA PURTROPPO l'introito GSE minore e quindi sarebbe di tutto guadagno consumare prioritariamente la corrente di quelle fasce orarie piuttosto che regalargliela a tutti gli effetti. Guarda neanche io sapevo degli script ma la cosa è fattibile all’interno dello Shelly via web c’è la voce script, devo ringraziare il mio tutor ….. chatgpt 😁 che me lo ha fatto scoprire e per la verità lo script di cui sopra è frutto della sua interpretazione che ovviamente farò controllare da qualcuno più esperto esperto.
dimarsaba Inserita: 1 agosto Autore Segnala Inserita: 1 agosto (modificato) 1 ora fa, mgaproduction ha scritto: Io però non vedo questa differenza nella descrizione. Riporto testualmente e ti invito a leggere bene : https://www.damencnc.com/en/proportional-solid-state-relay-single-phase-0-10v-pssr-40a/a4809 in pratica ovunque scrive Vin 0-10, seppur possa trarre in inganno la foto che stampiglia sul relè un bel 2-10 anzichè 0-10. Ma il tutto si spiega leggen do meglio una frase descrittiva che ti riporto : "The output voltage is proportional to the input voltage. Keep in mind there is a deadzone between 0 and 2V, where the relais does not react" quindi la fascia in IN 0-2V è inefficace per l'output, il relè non funziona in questa fascia di IN Ne deduco che volontariamente descrivono che va da 0 a 10 ma altrettanto volontariamente stampigliano 2-10 in quanto la fascia 0-2 non attiva un bel nulla Lo avevo letto anch’io he non è 0-10 ed in realtà 2-10 il problema di fondo è un solo, siamo sicuri che le cinesate che vendono prodotti a pochi € siano reali? Non è che la stampigliatura in realtà non corrisponde a verità? L’azienda, da info web, è seria e vende prodotti con marchio europeo quindi una parvenza di serietà ci sarebbe, se trovi un prodotto che costa meno e che abbia le stesse caratteristiche ben venga sono qui e poi i primi 20% di energia che non viene immessa a quanti watt corrispondono? Forse saranno né più e ne meno di qualche centinaio di watt avrà una grande valenza questa perdita? Modificato: 1 agosto da dimarsaba
mgaproduction Inserita: 1 agosto Segnala Inserita: 1 agosto Credo che tu stia cavillando in modo esagerato su questi primi 2V di soglia di accesso. Non essendo un relè da saldare (visti i morsetti a vite), nulla ti vieta di comprarlo e provarlo e se non va o va male...lo rimandi indietro nei primi 14gg.
dimarsaba Inserita: 1 agosto Autore Segnala Inserita: 1 agosto 15 minuti fa, mgaproduction ha scritto: Credo che tu stia cavillando in modo esagerato su questi primi 2V di soglia di accesso. Non essendo un relè da saldare (visti i morsetti a vite), nulla ti vieta di comprarlo e provarlo e se non va o va male...lo rimandi indietro nei primi 14gg. Infatti non devo cavillare l’unica cosa che dovevo stare attento nell’acquisto di un ssr era la differenza che la stragrande maggioranza erano del tipo in/off quindi non adatti allo scoop invece questo, che come qualità/prezzo, va bene e non è un on/off ma un progressivo analogico ed è quello che servirà dovrò provare quando si avrà il tutto, il mio postare questa idea era avere una sorta di beneplacito da chi è più esperto di me ho molta esperienza idraulica ma poca sull’elettricità ma mi piace la domotica.
camp1 Inserita: 1 agosto Segnala Inserita: 1 agosto A me sembra che basterebbe un solo TA, ovvero posizionato semplicemente sul punto di allaccio alla rete, ovvero prima del contatore di scambio. Così ti misura la potenza immessa in rete e ti può generare il segnale necessario ad accendere il boiler in modo proporzionale alla potenza rilevata. Fermo restando che i dimmer a triac non sono molto precisi, ad esempio dare un segnale del 30% NON è detto che faccia arrivare al boiler una tensione efficace del 30% rispetto al valore nominale, che in ogni caso non significa far assorbire al boiler il 30% della sua potenza nominale essendo potenza e tensione legate da una dipendenza quadratica. Io propenderei più per una soluzione on/off, ovvero quando rilevo che sto immettendo in rete una potenza maggiore o uguale all'assorbimento del boiler lo accendo, e poi ricontrollo ogni minuto
dimarsaba Inserita: 1 agosto Autore Segnala Inserita: 1 agosto @ camp1 Non sapevo sulla precisione dei dimmer quindi per come tu dici lo saranno anche idimmer della shelly? Poi per quanto riguarda alla soluzione on/off ipotizzando uno shelly EM di controllo, collegarvi uno shelly 1 che comanda un relè e attraverso delle scene in EM do i comandi di on/off? Non saprei come organizzare la scena ma ci si potrebbe studiare
dimarsaba Inserita: 1 agosto Autore Segnala Inserita: 1 agosto @ camp1 dalla tua osservazione penso di poter riuscire a gestire il tutto con uno shelly EM = due shelly plus 2M + due relé e con un struttra script lUA nelle shelly EM con un Duty Cycle si dovrebbe riuscire a gestire lo scaldabagno in 4 step => 300 watt => 600 => 900 watt => 1200 watt, proveremo appena pronto tutto il progetto ve lo in pasto e vediamo.
camp1 Inserita: 2 agosto Segnala Inserita: 2 agosto Valuterei anche la possibilità di utilizzare la misurazione che già fa il ta associato all'inverter, quasi tutti ormai hanno delle uscite programmabili per attivare carichi ausiliari, batterie, generatori esterni, etc, magari anche il tuo ha una morsettiera dove potresti prelevare già pulito il segnale che ti serve
dimarsaba Inserita: 2 agosto Autore Segnala Inserita: 2 agosto 25 minuti fa, camp1 ha scritto: Valuterei anche la possibilità di utilizzare la misurazione che già fa il ta associato all'inverter, quasi tutti ormai hanno delle uscite programmabili per attivare carichi ausiliari, batterie, generatori esterni, etc, magari anche il tuo ha una morsettiera dove potresti prelevare già pulito il segnale che ti serve Sì in effetti c’è il misuratore (Afore Aton) ma non saprei come collegare agli Shelly la cosa poi ho delle distanze tra tutti i componenti non facilmente raggiungibili con cavi (canaline piccole - distanze oltre i 20 mt etc) a parte che sembra avere solo l’uscita batterie ma non ho approfondito più di tanto. comunque penso di aver finito tutto il progetto e l’ho creato a step, come tu indicavi, in una forma molto semplice nei componenti (Shelly em > Shelly 2 plus > SSR solido > resistenza) gli step saranno gestiti dallo script LUA inserito nello Shelly EM il tutto gestito in locale senza appoggio cloud Shelly, lo EM comunicherà con lo 2 plus via wi fi con indirizzo fisso. appena completato le varie verifiche magari pubblicherò tutto il progetto incluso lo script che vorrò fare verificare da qualcuno più esperto.
dimarsaba Inserita: 2 agosto Autore Segnala Inserita: 2 agosto Allora finita la progettazione di tutto, sperando di non essere peulente nella mia idea, volevo comunque ringraziare camp1 che attraverso il suo consiglio ho inserito gli step utilizzando gli script LUA che girano su Shelly e snellendo praticamente la parte tecnica elettrica, che per chi come me e deficitario e che sa solo collegare due fili potrebbe essere più semplice, il post è un pò lungo ma, se funziona, ne vale la pena, ovviamente settimana prosima copmprerò il necessario dopo aver fatto valutare loscript da qualcuno esperto e poi farò sapere: 📘 Analisi Analitica Completa – Progetto Gestione Intelligente Boiler Solare (Locale) 1. Obiettivo del Progetto Realizzare un sistema intelligente, autonomo e completamente locale, per gestire il riscaldamento di un boiler elettrico da 100 litri, utilizzando solo il surplus fotovoltaico proveniente da un impianto da 4kW, con lo scopo di: Massimizzare l’autoconsumo dell’energia prodotta Evitare prelievi dalla rete elettrica Ottimizzare il comfort termico Rimanere indipendenti da cloud, app esterne o controller domotici 2. Dati Tecnici di Contesto 📍 Posizione geografica: Sant’Egidio del Monte Albino (SA) 📐 Coordinate: 40°xx′xx″N 14°xx′xx″E ☀️ Esposizione FV: 5° inclinazione, orientamento sud, senza ombre ⚡ Impianto fotovoltaico: 4kW con inverter Aton Afore ibrido da 5kW 💧 Boiler: 100 litri, resistenza da 1200W con termostato meccanico 🧊 Coibentazione: assente (verrà aggiunta: lana di roccia + rivestimento riflettente) 👤 Persone: 3 utenti, docce serali a giorni alterni (~1,5/giorno) 🍽️ Lavastoviglie: collegata ad acqua calda, uso giornaliero 3. Architettura del Sistema Shelly EM → misura produzione FV e consumi casa Shelly Plus 2PM → comanda un relè a stato solido (SSR) verso il boiler SSR → gestisce la resistenza senza usura, montato su dissipatore Comunicazione → HTTP locale da EM a 2PM, senza cloud o MQTT Script LUA → gira sullo Shelly EM, che prende le decisioni 4. Strategia PWM a 6 Step Simula potenze medie diverse tramite duty-cycle variabile: 0 0% 0 W -100 W 1 16% ~190 W -300 W 2 33% ~400 W -500 W 3 50% ~600 W -750 W 4 75% ~900 W -1000 W 5 100% 1200 W -1250 W 5. Isteresi e Chattering Ogni step ha soglia ON e OFF diversa L’isteresi (es: ON a -750W, OFF a -500W) evita continue commutazioni (chattering) Migliora la stabilità e allunga la vita utile dei dispositivi 6. Gestione Annuvolamenti ⚠️ Spegnimento immediato se la produzione scende sotto 10W 🧠 Se la potenza misurata dal 2PM è ≈0W (boiler spento), viene disattivato il ciclo PWM Protegge da accensioni inutili in condizioni meteorologiche instabili 7. Blocco Notturno Intelligente ✅ Niente orari fissi (es. 20:00) 🌙 Il blocco si attiva se la produzione FV < 10W → garantisce adattabilità stagionale Non serve aggiornare orari o configurazioni mensili 8. Logica Stagionale (ENEA / PVGIS) 📅 Lo script rileva il mese corrente In inverno (nov-feb): soglie PWM più permissive, per usare anche bassi surplus In estate (mag-ago): soglie più restrittive, per evitare sprechi Tutto locale, senza meteo esterno 9. Sicurezza e Componenti Consigliati ⚠️ Dissipatore tipo HS-25 per SSR, con pasta termica ⚡ Fusibile FF da 10A per protezione circuito 🔌 Relè SSR AC compatibile con 1200W 🔍 Script lavora in sicurezza con verifica del carico reale 10. Risultati Attesi ✅ Autonomia completa del sistema ✅ Niente consumo da rete per il boiler ✅ Nessuna connessione esterna ✅ Comfort termico garantito anche in inverno ✅ Sistema espandibile con logging, dashboard o adattamenti futuri 11. Allocazione dello Script – Shelly EM vs Plus 2PM 🔄 Inizialmente si era valutato di far girare lo script sullo Shelly Plus 2PM per minimizzare la latenza. 📉 Tuttavia, questa soluzione è stata scartata per le seguenti ragioni: ❌ Il 2PM non può accedere alla produzione FV né al consumo totale ❌ Non può calcolare il surplus energetico reale ❌ Non può fare controllo logico autonomo ✅ Il Shelly EM, invece: Legge produzione e consumi in tempo reale Calcola il surplus Decide quale step PWM applicare Invoca il comando HTTP sul 2PM, che si comporta da esecutore 👉 Questa architettura garantisce massima affidabilità e controllo locale. 📜 Script LUA Completo – Boiler PWM 6 Step (EM → 2PM) - Locale, Commentato e Semplificato -- ██████████████████████████████████████████████████ ████████ -- ███ CONFIGURAZIONE INIZIALE -- ██████████████████████████████████████████████████ ████████ local plus2pm_ip = "192.168.1.10" -- Inserisci qui l'IP del tuo Shelly Plus 2PM local channel = 0 -- Uscita da usare (0 o 1, dipende da come hai collegato il relè) -- Definizione della potenza per ogni step PWM (approssimata su 1200W) local potenza_step = { 0, 190, 400, 600, 900, 1200 } -- Soglie base per accensione e spegnimento (estate) local soglia_on = { -100, -300, -500, -750, -1000, -1250 } -- attiva step se surplus scende sotto questo valore local soglia_off = { 100, -150, -300, -500, -750, -1000 } -- spegne step se surplus risale sopra questo valore -- ███ Rileva il mese per gestire la modalità stagionale local mese = tonumber(os.date("%m")) local inverno = (mese == 11 or mese == 12 or mese <= 2) -- Se siamo in inverno, rendiamo le soglie più permissive (usiamo anche poco surplus) if inverno then soglia_on = { -50, -150, -300, -500, -750, -1000 } soglia_off = { 50, -50, -150, -300, -500, -750 } end -- ██████████████████████████████████████████████████ ████████ -- ███ FUNZIONE: invia comando PWM al Plus 2PM -- ██████████████████████████████████████████████████ ████████ function attiva_step(step) -- Disattiva tutto se step è 0 if step == 0 then http.get("http://"..plus2pm_ip.."/rpc/Switch.Set?id="..channel.."&on=false") return end -- Attiva il canale per alcuni secondi in base allo step (PWM simulato) local durata_sec = step -- 1 sec per step 1, 2 sec per step 2, ecc. http.get("http://"..plus2pm_ip.."/rpc/Switch.Set?id="..channel.."&on=true") tmr.delay(durata_sec * 1000000) -- pausa attiva in microsecondi http.get("http://"..plus2pm_ip.."/rpc/Switch.Set?id="..channel.."&on=false") end -- ██████████████████████████████████████████████████ ████████ -- ███ FUNZIONE PRINCIPALE: controllo continuo -- ██████████████████████████████████████████████████ ████████ function controlla_boiler() -- Rileva produzione (PV) e consumo casa local produzione = em:get_inputs(1).a_act_power local consumo = em:get_inputs(2).a_act_power local surplus = produzione - consumo -- █ Blocca tutto se produzione quasi nulla (es: notte o cielo coperto) if produzione < 10 then attiva_step(0) return end -- █ Verifica quale step attivare in base al surplus for i = #potenza_step, 1, -1 do if surplus <= soglia_on[i] then attiva_step(i) -- attiva step se il surplus è sufficiente return elseif surplus >= soglia_off[i] then attiva_step(i - 1) -- se il surplus è calato, torna allo step inferiore return end end -- █ Nessuna condizione soddisfatta → spegne tutto attiva_step(0) end -- ██████████████████████████████████████████████████ ████████ -- ███ TIMER: ripeti il controllo ogni 5 secondi -- ██████████████████████████████████████████████████ ████████ tmr.alarm(0, 5000, 1, controlla_boiler) 🧠 Lo script: Gira sullo Shelly EM Legge surplus in tempo reale Adatta soglie PWM in base al mese (stagioni) Blocca accensioni se non c'è produzione Evita accensioni inutili se il boiler non assorbe 📘 Guida Didattica allo Script Boiler PWM – Riga per Riga 🔹 CONFIGURAZIONE INIZIALE lua CopiaModifica local plus2pm_ip = "192.168.1.10"👉 Cos'è: l’indirizzo IP nella tua rete locale del Shelly Plus 2PM 👉 Serve per: inviare comandi ON/OFF al relè che accende il boiler. lua CopiaModifica local channel = 0👉 Cos'è: indica quale dei due canali del Plus 2PM stai usando (0 = primo canale) 👉 Serve per: accendere solo il canale giusto collegato al boiler. lua CopiaModifica local potenza_step = { 0, 190, 400, 600, 900, 1200 }👉 Cos'è: un elenco di “livelli di potenza stimata” per ogni step PWM 👉 Serve per: sapere quanta energia assorbe il boiler in ogni fase (dal minimo al massimo). lua CopiaModifica local soglia_on = { -100, -300, -500, -750, -1000, -1250 } local soglia_off = { 100, -150, -300, -500, -750, -1000 }👉 Cos’è: i valori di surplus energetico che determinano quando accendere o spegnere ciascuno step. 👉 Serve per: evitare che il sistema accenda/spegna continuamente per piccoli sbalzi (isteresi). 🔹 LOGICA STAGIONALE lua CopiaModifica local mese = tonumber(os.date("%m")) local inverno = (mese == 11 or mese == 12 or mese <= 2)👉 Cos'è: legge il mese attuale (01 = gennaio, 02 = febbraio, ecc.) 👉 Serve per: capire se siamo in inverno. Se sì, userà logica più permissiva. lua CopiaModifica if inverno then soglia_on = { -50, -150, -300, -500, -750, -1000 } soglia_off = { 50, -50, -150, -300, -500, -750 } end👉 Cos’è: modifica le soglie se siamo in inverno, così da utilizzare più facilmente anche poco surplus, che è tipico dei mesi freddi. 🔹 FUNZIONE CHE ATTIVA IL PWM lua CopiaModifica function attiva_step(step)👉 Cos’è: una “funzione”, cioè un blocco di istruzioni da richiamare ogni volta che vuoi accendere o spegnere il boiler per una certa durata. lua CopiaModifica if step == 0 then http.get("http://"..plus2pm_ip.."/rpc/Switch.Set?id="..channel.."&on=false") return end👉 Serve per: spegnere completamente il boiler se lo step è 0. 👉 Si evita di inviare corrente quando non c’è abbastanza sole. lua CopiaModifica local durata_sec = step👉 Imposta la durata dell’accensione proporzionalmente allo step: step 1 = 1 secondo step 2 = 2 secondi … step 5 = 5 secondi lua CopiaModifica http.get("http://"..plus2pm_ip.."/rpc/Switch.Set?id="..channel.."&on=true") tmr.delay(durata_sec * 1000000) http.get("http://"..plus2pm_ip.."/rpc/Switch.Set?id="..channel.."&on=false")👉 Accende il boiler per pochi secondi, poi lo spegne. 👉 Questo “pulsare” in modo ciclico crea l’effetto PWM manuale, ossia potenza media ridotta. 🔹 FUNZIONE DI CONTROLLO PRINCIPALE lua CopiaModifica function controlla_boiler()👉 Inizia la funzione che controlla ogni 5 secondi cosa fare lua CopiaModifica local produzione = em:get_inputs(1).a_act_power local consumo = em:get_inputs(2).a_act_power local surplus = produzione - consumo👉 Legge quanta energia stai producendo, quanta ne stai consumando e calcola il surplus disponibile. lua CopiaModifica if produzione < 10 then attiva_step(0) return end👉 Se stai producendo quasi niente (es. è sera o brutto tempo), spegne tutto. lua CopiaModifica for i = #potenza_step, 1, -1 do👉 Fa un ciclo che va dallo step più alto a quello più basso, per capire quale step può essere attivato. lua CopiaModifica if surplus <= soglia_on[i] then attiva_step(i) return elseif surplus >= soglia_off[i] then attiva_step(i - 1) return end👉 Confronta il surplus con le soglie per decidere se aumentare o diminuire lo step attivo. lua CopiaModifica attiva_step(0)👉 Se nessuna condizione è valida, spegne il boiler (non c’è surplus sufficiente). 🔹 TIMER CICLICO lua CopiaModifica tmr.alarm(0, 5000, 1, controlla_boiler)👉 Avvia un timer che esegue la funzione controlla_boiler ogni 5 secondi, in automatico e all’infinito. ✅ In breve: ⚙️ Lo script legge quanto sole hai 🔋 Decide se hai surplus sufficiente 🔌 Accende il boiler in modo modulato 🧠 Si adatta alle stagioni 🌙 Si spegne di notte o con maltempo 🔁 Funziona da solo, in continuo
drn5 Inserita: 3 agosto Segnala Inserita: 3 agosto Beh..che dire? Complimenti per la spiegazione e per la condivisione in pieno spirito del forum.🤙
dimarsaba Inserita: 3 agosto Autore Segnala Inserita: 3 agosto 2 ore fa, drn5 ha scritto: Beh..che dire? Complimenti per la spiegazione e per la condivisione in pieno spirito del forum.🤙 Grazie tocca vedere solo se funziona ovviamente e qui avrei bisogno di aiuto tecnico sull’hardware e qualcuno sullo script LUA
mgaproduction Inserita: lunedì alle 10:20 Segnala Inserita: lunedì alle 10:20 Dunque, io suggerirei di eliminare i controlli stagionali. Non ne capisco l'utilità oltre ad aumentare la complicazione del tutto. Io mi limiterei a fare il controllo sull'immissione di corrente in rete : tot corrente si immette, allora parte l'accensione. Punto. Stop. Semplice e facile. Ma è solo un mio pensiero personale ovviamente, ma soprattutto complimenti per il lavorone 😀
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora