CDK2H skrev:flyvert skrev:Råvärden var 60:e sekund
Råvärden äldre än en månad raderar jag.
Utöver råvärden räknar jag fram o lagrar:
1h medel
24h medel + min + max (de senare med aktuellt klockslag för toppen/botten)
7d medel + min + max (de senare med aktuellt klockslag för toppen/botten)
31d medel + min + max (de senare med aktuellt klockslag för toppen/botten)
Dvs man har en månad på sig att se dom snabba förloppen - sen blir det medelvärden.
Max/min är lätt att plotta in med Flot o motverkar till viss del tappet vid medelvärdesbildningen.
Har du lust att posta din kodning för hur det här är gjort? Det låter ju perfekt precis så jag skulle vilja ha de. Min graf ser ut något så här: att den hämtar/skriver ut info var 5:e minut med :AVARAGE: i den raden vad jag kan se, tar den då medelvärdet för var femte minut? För jag har inte hittat hur ofta data loggas, om det är varje minut eller vad det är. Vet inte riktigt vilken .pl eller .sh som ser det i guiden
http://wiki.temperatur.nu/index.php/OWF ... h_version)
Kanske rörigt men!
På den första tråden jag skapade kan du se tabellformatet (en gemensam tabell för samtliga sensorer o värden, varje sensor har ett ID, varje property per sensor ett ID, tex. mina inne o utegivare är EDS0068 som säljs på m.nu o dom ger fyra mätvärden styck)
http://www.temperatur.nu/forum/presenta ... t3093.html
Har för mig att jag skickade in mer info på någon annan tråd, t.ex. den om Flot som jag skrev på för några månader sen.
EDIT: http://www.temperatur.nu/forum/linux/be ... tml#p20740
Om jag bara rått räknar antalet rader efter nästan 3 månaders loggning (endast 1 månad om man skall räkna sedan sista sensorn kopplades in) blir antalet rader så här:
mysql> select distinct aggregate, period, count(*) from data group by aggregate, period;
+-----------+--------+----------+
| aggregate | period | count(*) |
+-----------+--------+----------+
| 1 | 1 | 725563 |
| 1 | 2 | 4880 |
| 2 | 2 | 23055 |
| 2 | 3 | 931 |
| 2 | 4 | 146 |
| 2 | 5 | 26 |
| 3 | 3 | 925 |
| 3 | 4 | 140 |
| 3 | 5 | 26 |
| 4 | 3 | 926 |
| 4 | 4 | 141 |
| 4 | 5 | 26 |
| 10 | 1 | 49400 |
| 11 | 1 | 49342 |
| 11 | 2 | 1897 |
| 11 | 3 | 79 |
| 11 | 4 | 12 |
| 11 | 5 | 48 |
+-----------+--------+----------+
Allt med "period" 1 (är råvärden, per minut). Om du lusläser mina tidigare trådar o inte minst stored proceduren förstår du varför det finns tvåsiffriga "aggregate" - 10 används för räknaren för elmätaren (som ger totala antalet pulser sen start)som jag specialbehandlar i skripten för att räkna ut
delta inte medel mellan två punkter - resultatet av deltaberäkningen sparar jag med aggregate 11) raderar jag fn efter 35 dagar.
Så här ser lagringen ut i min statistikbild:
Grön kurva är antalet rader i databasen och den planade ut för c:a två veckor sedan då antalet rådatavärden (fn c:a 725000 st) inte längre stiger eftersom jag raderar allt rådata äldre än 35 dagar varje natt.
Jag har bifogat en sql-fil som kompilerar in en procedur som heter updatehourdata. Observera att den kräver två hjälptabeller (sensors och properties) som jag hoppas du finner på någon annan tråd, säg till annars.
Proceduren är fortfarande i betastadie, t.ex. hanterar jag inte sommar/vintertidsskiften på något speciellt sätt. Sen finns säkert ett o annat att säga om min kod - men den fungerar för mig iaf.
Tack vare att jag loggar data varje minut (o sparar rådatat i c:a 1 månad) har jag den månaden på mig att kolla in de snabba förloppen, t.ex. som fjärrvärmeavbrottet i onsdags förra veckan.
Med timmedelvärden blir det inte lika detaljerat...
/f