Come leggere i dati direttamente dall'inverter SolarEdge?

Sfruttare l'energia solare incidente per produrre energia elettrica mediante effetto fotovoltaico,
Regole del forum
Parlare di un solo e singolo argomento per discussione, nella sezione più corretta e con un titolo chiaro e descrittivo, evitando i fuori tema | Evitare di citare tutto il testo di un precedente messaggio, ma lasciare solo il minimo indispensabile usando questo sistema | Utilizzare le unità di misura corrette, in particolare i kW per la potenza e i kWh per l'energia, di cui è spiegata la differenza qui | Leggere il regolamento completo che è visibile qui
MaxVe
★★★★ Esperto
Messaggi: 1690
Iscritto il: 26/07/2021, 15:27
Località: Veneto
Veicolo: Renault Zoe R135

Re: Come leggere i dati direttamente dall'inverter SolarEdge?

Messaggio da MaxVe »

Hai installato il Binding Modbus?

Se si vai su thing sul menù setting e dovresti trovare una lista di tutti i valori che non hai commentato sul file.
Se li trovi e sono "online" vuol dire che sei riuscito a connetterti all'inveter.
Ora cliccando su ogni oggetto trovi i canali a cui dovrai assegnare un item che non è altro che una variabile formatta. Li poi vedrai i vari valori.
In questo caso assegna una variabile numerica al canale "value as number" gli altri canali non servono
Se non sono stato chiaro questa sera vedo se riesco a metterti degli screenshot


Renault Zoe 135 Intens - Fotovoltaico Pannelli Rec Alpha 8,88 Kw Inverter SolarEdge con Ottimizzatori 6Kw e accumulo LG Chem Resu 10H - Climatizzazione casa Brofer HPU600

steff70
★★★★ Esperto
Messaggi: 1371
Iscritto il: 09/03/2022, 1:09

Re: Come leggere i dati direttamente dall'inverter SolarEdge?

Messaggio da steff70 »

Ci siamo.
Funziona. Leggo tutti i valori in tempo reale.

Per caso, sai se tutti i registri che sono presenti nel file .things sono tutti quelli disponibili o ce ne sono altri che nel file non sono definiti?
Per esempio la potenza prodotta dai singoli pannelli ?

EDIT: trovato questo, dove sono definiti più registri di quelli del file .things e se ne possono aggiungere altri.
https://knowledge-center.solaredge.com/ ... l-note.pdf
Da capire...

EDIT EDIT
vedo che per i vari "canali" ci sono sempre il valore numerico puro e il scale factor
In pratica, dal valore numerico del registro serve togliere tanti zeri quanto è lo scale factor
Da capire come eseguire l'operazione matematica
Fiat 132 anno 1978, 2500 cc Diesel
MaxVe
★★★★ Esperto
Messaggi: 1690
Iscritto il: 26/07/2021, 15:27
Località: Veneto
Veicolo: Renault Zoe R135

Re: Come leggere i dati direttamente dall'inverter SolarEdge?

Messaggio da MaxVe »

Ci sono altri registri in giro per la rete si trovano altri valori. Anche il file della sunspec è un buon punto di partenza.

Per calcolare il valore in Watt o kW fisso io ho creato degli altri items senza collegamento ad un thing e poi con le rules ogni secondo le valorizzo in base al coefficiente di scala. Nello stesso ciclo faccio le operazioni per il calcolo della produzione FV e dei consumi di casa.

Le regole si fanno con un file si testo con estensione .rules da mettere nella cartella rules.

rule "AC produzione Inverter"
when

Time cron "* * * ? * * *"
then
// Let modbus finish reading all registers
var Double power = (MDSolaredgePower.state as DecimalType).doubleValue
var Double SF = (MBSolaredgePowerFA.state as DecimalType).doubleValue
var Double DCpower = (MBSolaredgeDCPower.state as DecimalType).doubleValue
var Double batpower = (MBSolaredgeBatteryPower.state as DecimalType).doubleValue
var Double DCSF = (MBSolaredgeDCPowerPF.state as DecimalType).doubleValue
var Double HMpower = (MBSolaredgePowerHome.state as DecimalType).doubleValue
var Double HMSF = (MBSolaredgePowerHomePF.state as DecimalType).doubleValue
var Double result = power * Math::pow(10,SF)
var Double HMresult = -1 * HMpower * Math::pow(10,HMSF)
var Double power1 = (SolaredgeACPower.state as DecimalType).doubleValue
var Double power2 = (SolaredgeACRete.state as DecimalType).doubleValue
if (result < 0) {result = 0}
postUpdate(SolaredgeACPower, Math.round(result))
postUpdate(SolaredgeACRete, Math.round(HMresult))
var Double DCresult = (DCpower * Math::pow(10,DCSF)) + batpower
if (DCresult < 0) {DCresult = 0}
postUpdate(SolaredgeDCPower, Math.round(DCresult))
if (HMresult > 0) {postUpdate(SolaredgeACImport, Math.round(HMresult)) postUpdate(SolaredgeACexport, 0)}
if (HMresult < 0) {HMresult = -1 * HMresult
postUpdate(SolaredgeACexport, Math.round(HMresult)) postUpdate(SolaredgeACImport, 0)}
if (power1 < 0 ) { power1 = 0}
var Double COresult = power1 + power2
if (COresult < 0) {COresult = 0}
postUpdate(SolaredgeACConsumo, Math.round(COresult))

end

Il nome delle variabili va modificato in base al nome che hai dato tu.
Renault Zoe 135 Intens - Fotovoltaico Pannelli Rec Alpha 8,88 Kw Inverter SolarEdge con Ottimizzatori 6Kw e accumulo LG Chem Resu 10H - Climatizzazione casa Brofer HPU600
steff70
★★★★ Esperto
Messaggi: 1371
Iscritto il: 09/03/2022, 1:09

Re: Come leggere i dati direttamente dall'inverter SolarEdge?

Messaggio da steff70 »

MaxVe ha scritto: 10/02/2023, 8:08
Grazie del supporto
Ecco cosa ho io
2.jpg
2.jpg (10.75 KiB) Visto 715 volte
1.JPG
1.JPG (44.32 KiB) Visto 715 volte
Ultima modifica di steff70 il 14/02/2023, 8:53, modificato 1 volta in totale.
Fiat 132 anno 1978, 2500 cc Diesel
MaxVe
★★★★ Esperto
Messaggi: 1690
Iscritto il: 26/07/2021, 15:27
Località: Veneto
Veicolo: Renault Zoe R135

Re: Come leggere i dati direttamente dall'inverter SolarEdge?

Messaggio da MaxVe »

Mandami il nome delle 4 items create che ti imposto la regola. Fatta una poi ti sarà più chiaro fare anche le altre
Renault Zoe 135 Intens - Fotovoltaico Pannelli Rec Alpha 8,88 Kw Inverter SolarEdge con Ottimizzatori 6Kw e accumulo LG Chem Resu 10H - Climatizzazione casa Brofer HPU600

steff70
★★★★ Esperto
Messaggi: 1371
Iscritto il: 09/03/2022, 1:09

Re: Come leggere i dati direttamente dall'inverter SolarEdge?

Messaggio da steff70 »

devo aver fatto pasticcio... risposto di sopra
Fiat 132 anno 1978, 2500 cc Diesel
MaxVe
★★★★ Esperto
Messaggi: 1690
Iscritto il: 26/07/2021, 15:27
Località: Veneto
Veicolo: Renault Zoe R135

Re: Come leggere i dati direttamente dall'inverter SolarEdge?

Messaggio da MaxVe »

Devi creare l'item anche per i valori di scala.

Potresti nominarle
Power_from_Sun_SF
Power_to_the_Grid_SF

crei un file di testo .rules con questo

rule "AC produzione Inverter"
when
//Item MDSolaredgePower changed or Item MBSolaredgeDCPower changed or Item MBSolaredgePowerHome changed
Time cron "* * * ? * * *"
then

var Double power1 = (Power_from_Sun.state as DecimalType).doubleValue
var Double SF1 = (Power_from_Sun_SF.state as DecimalType).doubleValue
var Double power2 = (Power_to_the_Grid.state as DecimalType).doubleValue
var Double SF2 = (Power_to_the_Grid_SF.state as DecimalType).doubleValue

var Double result1 = power1 * Math::pow(10,SF1)
var Double result2 = -1 * power2 * Math::pow(10,SF2)

// in result1 e result2 hai i valori in Watt

// metto il risultato sul Item SolaredgeACPower che ho creato modifica il nome come preferisci
// il valore diventa negativo di notte perchè assorbe l'inverter e per facilitare le operazioni preferiscono che sia a 0 se vuoi valore negativo commenta
if (result1 < 0) {result1 = 0}
// la riga qui sopra
postUpdate(SolaredgeACPower, Math.round(result1))


// se vuoi solo avere il valore positivo e negativo nella stessa variabile usa la riga commentata e commenta gli IF
// postUpdate(SolaredgeACPowerMeter, Math.round(result2))
// se vuoi dividere per import e export usa quella qui sotto
// volendo puoi avere entrambi i dati se non commenti entrambi
if (result2 > 0) {postUpdate(SolaredgeACImport, Math.round(result2)) postUpdate(SolaredgeACexport, 0)}
if (result2 < 0) {result2 = -1 * result2
postUpdate(SolaredgeACexport, Math.round(result2)) postUpdate(SolaredgeACImport, 0)}


// se usi la prima opzione crea l'item con nome SolaredgeACPowerMeter
// se usi la seconda opzione crea l'item con nome SolaredgeACImport e SolaredgeACexport


in base a come hai impostato avrai i valori in Watt in questi Items
SolaredgeACPower
SolaredgeACPowerMeter
SolaredgeACImport
SolaredgeACexport
Ultima modifica di MaxVe il 15/02/2023, 16:58, modificato 1 volta in totale.
Renault Zoe 135 Intens - Fotovoltaico Pannelli Rec Alpha 8,88 Kw Inverter SolarEdge con Ottimizzatori 6Kw e accumulo LG Chem Resu 10H - Climatizzazione casa Brofer HPU600
steff70
★★★★ Esperto
Messaggi: 1371
Iscritto il: 09/03/2022, 1:09

Re: Come leggere i dati direttamente dall'inverter SolarEdge?

Messaggio da steff70 »

Niente... ho fatto come hai detto e non compaiono nuovi item.

Ho creato 2 nuovi item per i fattori di scala e caricato il file sotto /rules con nome solaredge.rules (l'altro era solaredge.things)
Ora sotto items vedo 4 oggetti: i due che già vedevo prima e i due fattori di scala ma non il risultato delle operazioni matematiche
Fiat 132 anno 1978, 2500 cc Diesel
MaxVe
★★★★ Esperto
Messaggi: 1690
Iscritto il: 26/07/2021, 15:27
Località: Veneto
Veicolo: Renault Zoe R135

Re: Come leggere i dati direttamente dall'inverter SolarEdge?

Messaggio da MaxVe »

Devi creare anche questi 4 items

SolaredgeACPower
SolaredgeACPowerMeter
SolaredgeACImport
SolaredgeACexport

Gli item non si creano con le regole si possono solo "usare". Devi sempre crearli precedentemente

In questi avrai i dati corretti. Quelli collegati al modbus sono "d'appoggio" per la lettura dei dati

I due items con il fattore di scala li hai nominati come sul file rules che ti ho postato?
Renault Zoe 135 Intens - Fotovoltaico Pannelli Rec Alpha 8,88 Kw Inverter SolarEdge con Ottimizzatori 6Kw e accumulo LG Chem Resu 10H - Climatizzazione casa Brofer HPU600
steff70
★★★★ Esperto
Messaggi: 1371
Iscritto il: 09/03/2022, 1:09

Re: Come leggere i dati direttamente dall'inverter SolarEdge?

Messaggio da steff70 »

Scusa ma gli ITEM che devono essere creati a cosa vanno LINKATI ?
Oppure li creo con il nome della variabile e basta
Fiat 132 anno 1978, 2500 cc Diesel

Rispondi

Torna a “Impianti Fotovoltaici”