Villanyorabol kinyert adataimat szeretnem megjeleniteni Grafanaban.
A cel az, hogy napi, heti illetve havi bontasban lassam a felhasznalast (kWh-ban).
Igy nez ki a mar nagyjabol formazott adathalmazom:
ts val
2022-05-07 17:06:58 004139.17
2022-05-07 17:12:32 004139.19
2022-05-07 17:18:06 004139.20
2022-05-07 17:29:13 004139.21
2022-05-07 17:34:47 004139.22
2022-05-07 17:40:21 004139.23
2022-05-07 17:45:55 004139.24
2022-05-07 17:51:29 004139.25
2022-05-07 17:57:03 004139.28
2022-05-07 18:02:37 004139.31
2022-05-07 18:08:11 004139.33
2022-05-07 18:13:45 004139.35
2022-05-07 18:19:19 004139.38
2022-05-07 18:24:52 004139.44
2022-05-07 18:30:25 004139.60
Ha jol gondolkozom, akkor ahhoz hogy egy napi bontast lassak, ki kene szamolni az orankenti fogyasztast (lehetne kisebb interval is, hogy egy oran belul tobb datapointom legyen, de szerintem felesleges).
Es akkor a grafikonon az X tengely az idopont: 0 ora, 1 ora, 2 ora, 23 oraig (vagy masnap 0-ig...?) az Y tengely pedig a max-min deltak az adott oraban.
Ugye a nulladik oraban a delta mindig 0 lenne, viszont 1 oranal mar az elso oraban mert legkisebb es legnagyobb ertek kulonbseget kene megjeleniteni es igy tovabb...
Addig jutottam, hogy le tudtam kerdezni az adott oraban a legkisebb es legnagyobb ertekeket, de az osszeboronalas mar nem ment.
Ez a kovetkezo keppen nez ki:
A tabla DDL-je:
create table ts_string
(
id integer not null,
ts bigint not null,
val text,
ack boolean,
_from integer,
q integer,
primary key (id, ts)
);
A legkisebb ertek az adott oraban:
select distinct on (1) date_trunc('hour',to_timestamp(ts/1000)), val from ts_string where id = 2 order by 1,2 asc;
A legnagyobb ertek az adott oraban:
select distinct on (1) date_trunc('hour',to_timestamp(ts/1000)), val from ts_string where id = 2 order by 1,2 desc;
Ugye ezt a ket erteket kene kivonni egymasbol es lekorlatozni az adathalmazt a mai napra, azaz majus 7. 00:00-tol 23:59-ig.
Talan valahogy a date_trunc-os datum alapjan kene GROUP BY-olni es akkor a min_val es max_val aliasu selecteket kivonni egymasbol, de a teljes megoldasig nem jutottam.
Ha segit itt egy kis raw data a ts_string tablabol:
id,ts,val,ack,_from,q
2,1651943218419,004139.17,true,1,0
2,1651943552309,004139.19,true,1,0
2,1651943886315,004139.20,true,1,0
2,1651944553927,004139.21,true,1,0
2,1651944887804,004139.22,true,1,0
2,1651945221732,004139.23,true,1,0
2,1651945555690,004139.24,true,1,0
2,1651945889426,004139.25,true,1,0
2,1651946223444,004139.28,true,1,0
2,1651946557211,004139.31,true,1,0
2,1651946891028,004139.33,true,1,0
2,1651947225136,004139.35,true,1,0
2,1651947559034,004139.38,true,1,0
2,1651947892582,004139.44,true,1,0
2,1651948225906,004139.60,true,1,0
2,1651948559496,004139.81,true,1,0
2,1651948892947,004140.03,true,1,0
2,1651949226157,004140.26,true,1,0