FILE csv

Guide, Tips, Manuali
Rispondi
roosters
Messaggi: 2
Iscritto il: venerdì 25 novembre 2022, 7:01

venerdì 25 novembre 2022, 7:04

Ciao a tutti ho uno shelly collegato alla pdc di casa.
Mi va bene fondamnetalmente tutto ma da wificasa mi connetto allo shelly con ip e scarico i dati.
Posso chiederVi come riuscite voi a estrapolarli e capire in che modo possa creare un grafico della potenza attiva ogni 10 minuti?
sulle celle ho visto che non è la potenza reale attiva che vedo in real time...qualcuno sa aiutarmi?

grazie mille :mrgreen: :mrgreen:
Fabry
Messaggi: 24
Iscritto il: lunedì 9 gennaio 2023, 12:00

lunedì 9 gennaio 2023, 16:17

Il file CSV contiene i campi "Date/time UTC", "Active energy Wh (1)", "Returned energy Wh (1)", "Min V", "Max V" dove poi al posto di "(1)" ci sarà "(2)" se il file è quella della seconda pinza amper.

I consumi in Wattora (non kWh) sono il campo "Active energy Wh (1)" (o il campo "Active energy Wh (2)")
Il file contiene già i consuntivi ogni 10 min per tutto quello più vecchio di circa 2gg, mentre per i dati "entro 2gg" circa contiene consuntivi ogni minuto.
Quindi se vuoi i consuntivi ogni 10 min di tutto, devi sommare tra loro i campi che hanno i minuti diversi da 0

Ossia se leggi gli orari
12.10
12.20
12.30
...
i dati vanno già bene ai tuoi scopi, mentre se leggi
12.10
12.11
12.12
12.13
12.14
12.15
12.16
12.17
12.18
12.19
12.20
12.21
...
allora devi sommare a parità di decine di minuti (ossia devi sommare i valori "Active energy Wh (1)" per minuti da 12.10 a 12.19 e considerarlo come 12.10, poi fare lo stesso per i minuti da 12.20 a 12.29 da considerare come 12.20 e così via)

Ora come si fa questa cosa dipende dallo strumento che userai, potrebbe essere un database (es. sqlite) su cui hai importato il CSV, o un foglio di calcolo (es. Excel) su cui hai sempre importato il CSV
Nel caso usi Foglio Elettronico, ricordati di ordinare le righe tramite il campo "Date/time UTC" perché nel file CSV non sempre le righe escono già in ordine di data (a volte sono mischiate a gruppi).

Ah ultima "Date/time UTC" è la data ed orario in formato UTC.
Per avere la data ed ora italiana ci devi sommare + 1 ora o +2 ore a seconda se la data cade nel periodo di ora legale o in quello di ora solare.
Scomodo da fare a mano, meglio sperare che il software usato abbia una funzione adatta per fare lei la conversione di fuso orario rispettando correttamente i cambiamenti dati dall'ora legale.

Se si usa SQLITE allora le funzioni da usare sono date e time, esempio :
date([Date/time UTC], 'localtime') as [Date Local],
time([Date/time UTC], 'localtime') as [Time Local],
Che dal campo unico DataOra di tipo UTC ci tira fuori due campi separati uno per solo la data ed uno per solo l'orario, con gestione corretta sia del ns fuso orario che dell'applicazione dell'ora legale quando serve.
Fabry
Messaggi: 24
Iscritto il: lunedì 9 gennaio 2023, 12:00

lunedì 9 gennaio 2023, 16:49

E se volete anche le singole componenti della data potete usare la funzione strftime
strftime('%Y', [Date/time UTC], 'localtime') as [Year],
strftime('%m', [Date/time UTC], 'localtime') as [Month],
strftime('%d', [Date/time UTC], 'localtime') as [Day],
strftime('%H', [Date/time UTC], 'localtime') as [Hour],
strftime('%M', [Date/time UTC], 'localtime') as [Minute],
questo oltre a convertire la data ed ora da UTC a fuso locale (italiano se siamo con il sistema che ospita sqlite impostato su Italia, tedesco se lo abbiamo su Germania, e così via) e con supporto ora legale (del singolo Paese), ci dà campi separati (e testuali) per Anno, Mese, Giorno, Ora, Minuto semplificando poi gli eventuali filtri che volessimo fare.

Esempio se volessimo vedere sempre tutto con dettagli ogni 10 min (sistemando anche i record con dettaglia ogni singolo minuto) basterebbe fare una query tipo

select
Year,
Month,
Day,
Hour,
Minute,
sum([Active energy Wh]) / 1000 as kWh
from
vwEnergyLog
group by
Year,
Month,
Day,
Hour,
substr([Minute], 1, 1)

supponendo che "vwEnergyLog" sia una vista che punta alla tabella dove abbiamo importato i dati del CSV e che aggiunga i campi separati indicati sopra.
Fabry
Messaggi: 24
Iscritto il: lunedì 9 gennaio 2023, 12:00

lunedì 9 gennaio 2023, 16:59

Mentre se volessimo il consumo orario sarebbe:

select
Year,
Month,
Day,
Hour,
sum([Active energy Wh]) / 1000 as kWh
from
vwEnergyLog
group by
Year,
Month,
Day,
Hour

Il consumo (in kWh) è quello ora per ora, non è la media oraria della giornata.
Per ottenere quella dobbiamo calcolare il consumo giornaliero (query sopra in cui faccio sparire i campi Hour) e poi dividere per 24.
Ossia una cosa tipo :

select
Year,
Month,
Day,
sum([Active energy Wh]) / 1000 as kWh_DayTotal,
sum([Active energy Wh]) / 1000 / 24 as kWh_HourlyAverage
from
vwEnergyLog
group by
Year,
Month,
Day
peppermuz
Messaggi: 1
Iscritto il: lunedì 8 gennaio 2024, 23:39

giovedì 18 gennaio 2024, 15:53

Ciao,
non so se sei ancora attivo ma volevo chiederti se potevi spiegarmi se fosse possibile esportare i dati del consumo della pdc con frequenza di lettura di pochi minuti e non di 1h come invece mi da Shelly EM.
E' possibile?

Grazie mille
Fabry
Messaggi: 24
Iscritto il: lunedì 9 gennaio 2023, 12:00

giovedì 18 gennaio 2024, 16:22

Per esportare i dati devi collegarti direttamente al dispositivo (Browser Web sul PC e punti all'indirizzo, che devi sapere al più cercandolo sul router, del dispositivo)

Lì compare l'interfaccia Web interna allo Shelly e ci sono i due pulsanti per il download del CSV (due pulsanti, di fianco ai Wattora mostrati, perché Shelly EM ha due misuratori)

Poi il resto è già in parte spiegato dai commenti precedenti
Rispondi