Sida 1 av 1

hur ofta loggar ni räcker 1h i databasen?

Postat: 21 okt 2013, 16:24
av jansjo
Jag håller på att planera vad jag ska köpa och hur jag ska logga elmätare, vatten och temperatur.

funderar på hur ofta man bör logga resp spara i databasen.

Det kan ju vara kul att kunna se aktuell info "just nu" men jag antar att när man tittar bakåt typ igår och bakåt så bör det räcka med data sparat per timma - så att man kan se fluktuationer.

det andra jag funderar på är hur ofta man bör mäta - t ex varje 10 min och lagra i databasen och sedan summera ihop till 1 h. SÅ att eventuellt saknade data inte ger så stort fel.

Hur ofta mäter och lagrar ni ert data?

Re: hur ofta loggar ni räcker 1h i databasen?

Postat: 21 okt 2013, 18:45
av flyvert
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.

Re: hur ofta loggar ni räcker 1h i databasen?

Postat: 25 nov 2013, 10:13
av CDK2H
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!

Re: hur ofta loggar ni räcker 1h i databasen?

Postat: 26 nov 2013, 00:17
av flyvert
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:
Statistik.PNG
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.
Fjärrvärmestörning.png
Med timmedelvärden blir det inte lika detaljerat...
Fjärrvärmestörning - 1 hour.png
/f