Online teplomery: Porovnání verzí

Z HKfree wiki
Skočit na navigaci Skočit na vyhledávání
Řádek 35: Řádek 35:
 
soucastky sezenete vsude mozne (GES apod) cca za 20-40Kc,
 
soucastky sezenete vsude mozne (GES apod) cca za 20-40Kc,
 
cidla se daji objednat jako vzorky zdarma na [http://maximic.com/ http://www.maxim-ic.com/] (chce to zvladat aspon zaklady anglictiny)
 
cidla se daji objednat jako vzorky zdarma na [http://maximic.com/ http://www.maxim-ic.com/] (chce to zvladat aspon zaklady anglictiny)
 +
 +
== Jak vypisovat hodnoty do grafu (rrdtool) ==
 +
Asi by to nekoho mohlo zajimat, tak se pokusim sem sepsat dva, tri skripty ktery zajistuji vykreslovani hodnoty teploty do grafu...
 +
 +
poprosim jen nekoho kdo s tim vic umi, aby doplnil kresleni vice cidel do jednoho obrazku
 +
 +
Predpokladame ze mame nainstalovan digitemp
 +
Nejprve si vytvorime databazi rrd, je jedno kde.
 +
<bash>
 +
#!/bin/sh
 +
rrdtool create teplota.rrd -s 60 \
 +
        DS:teplota:GAUGE:600:U:U  \
 +
        RRA:AVERAGE:0.5:1:600 \
 +
        RRA:AVERAGE:0.5:6:700 \
 +
        RRA:AVERAGE:0.5:24:775 \
 +
        RRA:AVERAGE:0.5:288:797 \
 +
        RRA:MIN:0.5:1:600 \
 +
        RRA:MIN:0.5:6:700 \
 +
        RRA:MIN:0.5:24:775 \
 +
        RRA:MIN:0.5:288:797 \
 +
        RRA:MAX:0.5:1:600 \
 +
        RRA:MAX:0.5:6:700 \
 +
        RRA:MAX:0.5:24:775 \
 +
        RRA:MAX:0.5:288:797
 +
</bash>
 +
 +
Jako dalsi bude potreba skript, ktery nam bude cist hodnotu z digitempu a bude nam ji ukladat do rrd databaze
 +
<bash>
 +
#!/bin/sh
 +
RRDTOOL=/usr/bin/rrdtool  #cesta k rrdtoolu
 +
RRD=/root/temp/digitemp-3.3.2/rrd/teplota.rrd  #cesta k databazovemu souboru
 +
START=`date +%s`
 +
 +
cd /root/temp/digitemp-3.3.2  #kvuli zmene adresare pro spousteni digitempu (absolutni cesta mi hazi chyby, nechapu... kazdy podle sebe)
 +
 +
        TEMP=`./digitemp_DS9097 -q -t0 -o"%.2C"`  #precteni hodnoty
 +
        $RRDTOOL update $RRD "$START:$TEMP"  #ulozeni do rrd databaze
 +
</bash>
 +
 +
a nyni uz muzeme vesele generovat grafy
 +
<bash>
 +
#!/bin/sh
 +
WIDTH=600
 +
HEIGHT=250
 +
RRDTOOL=/usr/bin/rrdtool
 +
STATS_DIR=/root/temp/digitemp-3.3.2/rrd
 +
PLOSS_STATS="$STATS_DIR/teplota.rrd"
 +
PLOSS_GRAPH1="$STATS_DIR/temp1h.png"
 +
PLOSS_GRAPH6="$STATS_DIR/temp6h.png"
 +
PLOSS_GRAPH24="$STATS_DIR/temp1d.png"
 +
PLOSS_GRAPH1W="$STATS_DIR/temp1w.png"
 +
PLOSS_GRAPH1M="$STATS_DIR/temp1m.png"
 +
PLOSS_GRAPH1Y="$STATS_DIR/temp1y.png"
 +
 +
$RRDTOOL graph $PLOSS_GRAPH1 \
 +
    --title 'Teplota na pude u routeru - posledni hodina' \
 +
    --start 'end-1h' \
 +
    --end  'now-1min' \
 +
    --unit '°C' \
 +
    --alt-autoscale \
 +
    --vertical-label '°C' \
 +
    --imgformat    'PNG' \
 +
    --width=$WIDTH \
 +
    --height=$HEIGHT \
 +
    "DEF:pl=$PLOSS_STATS:teplota:AVERAGE" \
 +
    "CDEF:mpl=pl,UN,0,pl,IF" \
 +
    "LINE2:mpl#ff0000:Teplota" \
 +
    "GPRINT:mpl:AVERAGE:prumerna teplota=%.1lf°C" \
 +
    "GPRINT:mpl:MAX:maximalni teplota=%.1lf°C"\
 +
    "GPRINT:mpl:MIN:minimalni teplota=%.1lf°C\\n"
 +
 +
$RRDTOOL graph $PLOSS_GRAPH6 \
 +
    --title 'Teplota na pude u routeru - poslednich 6 hodin' \
 +
    --start 'end-6h' \
 +
    --end  'now-1min' \
 +
    --unit '°C' \
 +
    --alt-autoscale \
 +
    --vertical-label '°C' \
 +
    --imgformat    'PNG' \
 +
    --width=$WIDTH \
 +
    --height=$HEIGHT \
 +
    "DEF:pl=$PLOSS_STATS:teplota:AVERAGE" \
 +
    "CDEF:mpl=pl,UN,0,pl,IF" \
 +
    "LINE2:mpl#ff0000:Teplota" \
 +
    "GPRINT:mpl:AVERAGE:prumerna teplota=%.1lf°C" \
 +
    "GPRINT:mpl:MAX:maximalni teplota=%.1lf°C"\
 +
    "GPRINT:mpl:MIN:minimalni teplota=%.1lf°C\\n"
 +
 +
$RRDTOOL graph $PLOSS_GRAPH24 \
 +
    --title 'Teplota na pude u routeru - posledni den' \
 +
    --start 'end-24h' \
 +
    --end  'now-1min' \
 +
    --unit '°C' \
 +
    --alt-autoscale \
 +
    --vertical-label '°C' \
 +
    --imgformat    'PNG' \
 +
    --width=$WIDTH \
 +
    --height=$HEIGHT \
 +
    "DEF:pl=$PLOSS_STATS:teplota:AVERAGE" \
 +
    "CDEF:mpl=pl,UN,0,pl,IF" \
 +
    "LINE2:mpl#ff0000:Teplota" \
 +
    "GPRINT:mpl:AVERAGE:prumerna teplota=%.1lf°C" \
 +
    "GPRINT:mpl:MAX:maximalni teplota=%.1lf°C"\
 +
    "GPRINT:mpl:MIN:minimalni teplota=%.1lf°C\\n"
 +
 +
$RRDTOOL graph $PLOSS_GRAPH1W \
 +
    --title 'Teplota na pude u routeru - posledni tyden' \
 +
    --start 'end-1w' \
 +
    --end  'now-1min' \
 +
    --unit '°C' \
 +
    --alt-autoscale \
 +
    --vertical-label '°C' \
 +
    --imgformat    'PNG' \
 +
    --width=$WIDTH \
 +
    --height=$HEIGHT \
 +
    "DEF:pl=$PLOSS_STATS:teplota:AVERAGE" \
 +
    "CDEF:mpl=pl,UN,0,pl,IF" \
 +
    "LINE2:mpl#ff0000:Teplota" \
 +
    "GPRINT:mpl:AVERAGE:prumerna teplota=%.1lf°C" \
 +
    "GPRINT:mpl:MAX:maximalni teplota=%.1lf°C"\
 +
    "GPRINT:mpl:MIN:minimalni teplota=%.1lf°C\\n"
 +
 +
$RRDTOOL graph $PLOSS_GRAPH1M \
 +
    --title 'Teplota na pude u routeru - posledni mesic' \
 +
    --start 'end-1m' \
 +
    --end  'now-1min' \
 +
    --unit '°C' \
 +
    --alt-autoscale \
 +
    --vertical-label '°C' \
 +
    --imgformat    'PNG' \
 +
    --width=$WIDTH \
 +
    --height=$HEIGHT \
 +
    "DEF:pl=$PLOSS_STATS:teplota:AVERAGE" \
 +
    "CDEF:mpl=pl,UN,0,pl,IF" \
 +
    "LINE2:mpl#ff0000:Teplota" \
 +
    "GPRINT:mpl:AVERAGE:prumerna teplota=%.1lf°C" \
 +
    "GPRINT:mpl:MAX:maximalni teplota=%.1lf°C"\
 +
    "GPRINT:mpl:MIN:minimalni teplota=%.1lf°C\\n"
 +
 +
$RRDTOOL graph $PLOSS_GRAPH1Y \
 +
    --title 'Teplota na pude u routeru - posledni rok' \
 +
    --start 'end-1y' \
 +
    --end  'now-1min' \
 +
    --unit '°C' \
 +
    --alt-autoscale \
 +
    --vertical-label '°C' \
 +
    --imgformat    'PNG' \
 +
    --width=$WIDTH \
 +
    --height=$HEIGHT \
 +
    "DEF:pl=$PLOSS_STATS:teplota:AVERAGE" \
 +
    "CDEF:mpl=pl,UN,0,pl,IF" \
 +
    "LINE2:mpl#ff0000:Teplota" \
 +
    "GPRINT:mpl:AVERAGE:prumerna teplota=%.1lf°C" \
 +
    "GPRINT:mpl:MAX:maximalni teplota=%.1lf°C"\
 +
    "GPRINT:mpl:MIN:minimalni teplota=%.1lf°C\\n"
 +
 +
/usr/bin/convert -geometry 20% $STATS_DIR/temp1w.png $STATS_DIR/thumb-temp1w.png  #zmenseni obrazku pro nahled
 +
cp $STATS_DIR/thumb-temp1w.png /var/www/hotsanic/teplota
 +
cp $STATS_DIR/temp1h.png /var/www/hotsanic/teplota
 +
cp $STATS_DIR/temp6h.png /var/www/hotsanic/teplota
 +
cp $STATS_DIR/temp1d.png /var/www/hotsanic/teplota
 +
cp $STATS_DIR/temp1w.png /var/www/hotsanic/teplota
 +
cp $STATS_DIR/temp1m.png /var/www/hotsanic/teplota
 +
cp $STATS_DIR/temp1y.png /var/www/hotsanic/teplota
 +
</bash>
 +
 +
Ted uz jen podle sveho gusta uvlozit do crontab patricne radky, restartovat cron a uz to meri...
 +
 +
*/1 * * * * root /root/temp/digitemp-3.3.2/pl.sh
 +
*/10 * * * * root /root/temp/digitemp-3.3.2/rrd/diagrams.sh
 +
 +
Hodnoty jdou do minusu uplne v pohode.
 +
Uvitam dalsi vylepseni od ostatnich.

Verze z 27. 1. 2006, 17:37

Online teplomery v HKFfree

Slatina

Svinary

Kukleny

OliAP - centrum města

Labská I

Orca AP - Prazske predmesti

AP Winterova

Jak postavit teplomer

soucastky sezenete vsude mozne (GES apod) cca za 20-40Kc, cidla se daji objednat jako vzorky zdarma na http://www.maxim-ic.com/ (chce to zvladat aspon zaklady anglictiny)

Jak vypisovat hodnoty do grafu (rrdtool)

Asi by to nekoho mohlo zajimat, tak se pokusim sem sepsat dva, tri skripty ktery zajistuji vykreslovani hodnoty teploty do grafu...

poprosim jen nekoho kdo s tim vic umi, aby doplnil kresleni vice cidel do jednoho obrazku

Predpokladame ze mame nainstalovan digitemp Nejprve si vytvorime databazi rrd, je jedno kde. <bash>

  1. !/bin/sh

rrdtool create teplota.rrd -s 60 \

       DS:teplota:GAUGE:600:U:U  \
       RRA:AVERAGE:0.5:1:600 \
       RRA:AVERAGE:0.5:6:700 \
       RRA:AVERAGE:0.5:24:775 \
       RRA:AVERAGE:0.5:288:797 \
       RRA:MIN:0.5:1:600 \
       RRA:MIN:0.5:6:700 \
       RRA:MIN:0.5:24:775 \
       RRA:MIN:0.5:288:797 \
       RRA:MAX:0.5:1:600 \
       RRA:MAX:0.5:6:700 \
       RRA:MAX:0.5:24:775 \
       RRA:MAX:0.5:288:797

</bash>

Jako dalsi bude potreba skript, ktery nam bude cist hodnotu z digitempu a bude nam ji ukladat do rrd databaze <bash>

  1. !/bin/sh

RRDTOOL=/usr/bin/rrdtool #cesta k rrdtoolu RRD=/root/temp/digitemp-3.3.2/rrd/teplota.rrd #cesta k databazovemu souboru START=`date +%s`

cd /root/temp/digitemp-3.3.2 #kvuli zmene adresare pro spousteni digitempu (absolutni cesta mi hazi chyby, nechapu... kazdy podle sebe)

       TEMP=`./digitemp_DS9097 -q -t0 -o"%.2C"`  #precteni hodnoty
       $RRDTOOL update $RRD "$START:$TEMP"   #ulozeni do rrd databaze

</bash>

a nyni uz muzeme vesele generovat grafy <bash>

  1. !/bin/sh

WIDTH=600 HEIGHT=250 RRDTOOL=/usr/bin/rrdtool STATS_DIR=/root/temp/digitemp-3.3.2/rrd PLOSS_STATS="$STATS_DIR/teplota.rrd" PLOSS_GRAPH1="$STATS_DIR/temp1h.png" PLOSS_GRAPH6="$STATS_DIR/temp6h.png" PLOSS_GRAPH24="$STATS_DIR/temp1d.png" PLOSS_GRAPH1W="$STATS_DIR/temp1w.png" PLOSS_GRAPH1M="$STATS_DIR/temp1m.png" PLOSS_GRAPH1Y="$STATS_DIR/temp1y.png"

$RRDTOOL graph $PLOSS_GRAPH1 \

   --title 'Teplota na pude u routeru - posledni hodina' \
   --start 'end-1h' \
   --end   'now-1min' \
   --unit '°C' \
   --alt-autoscale \
   --vertical-label '°C' \
   --imgformat     'PNG' \
   --width=$WIDTH \
   --height=$HEIGHT \
   "DEF:pl=$PLOSS_STATS:teplota:AVERAGE" \
   "CDEF:mpl=pl,UN,0,pl,IF" \
   "LINE2:mpl#ff0000:Teplota" \
   "GPRINT:mpl:AVERAGE:prumerna teplota=%.1lf°C" \
   "GPRINT:mpl:MAX:maximalni teplota=%.1lf°C"\
   "GPRINT:mpl:MIN:minimalni teplota=%.1lf°C\\n"

$RRDTOOL graph $PLOSS_GRAPH6 \

   --title 'Teplota na pude u routeru - poslednich 6 hodin' \
   --start 'end-6h' \
   --end   'now-1min' \
   --unit '°C' \
   --alt-autoscale \
   --vertical-label '°C' \
   --imgformat     'PNG' \
   --width=$WIDTH \
   --height=$HEIGHT \
   "DEF:pl=$PLOSS_STATS:teplota:AVERAGE" \
   "CDEF:mpl=pl,UN,0,pl,IF" \
   "LINE2:mpl#ff0000:Teplota" \
   "GPRINT:mpl:AVERAGE:prumerna teplota=%.1lf°C" \
   "GPRINT:mpl:MAX:maximalni teplota=%.1lf°C"\
   "GPRINT:mpl:MIN:minimalni teplota=%.1lf°C\\n"

$RRDTOOL graph $PLOSS_GRAPH24 \

   --title 'Teplota na pude u routeru - posledni den' \
   --start 'end-24h' \
   --end   'now-1min' \
   --unit '°C' \
   --alt-autoscale \
   --vertical-label '°C' \
   --imgformat     'PNG' \
   --width=$WIDTH \
   --height=$HEIGHT \
   "DEF:pl=$PLOSS_STATS:teplota:AVERAGE" \
   "CDEF:mpl=pl,UN,0,pl,IF" \
   "LINE2:mpl#ff0000:Teplota" \
   "GPRINT:mpl:AVERAGE:prumerna teplota=%.1lf°C" \
   "GPRINT:mpl:MAX:maximalni teplota=%.1lf°C"\
   "GPRINT:mpl:MIN:minimalni teplota=%.1lf°C\\n"

$RRDTOOL graph $PLOSS_GRAPH1W \

   --title 'Teplota na pude u routeru - posledni tyden' \
   --start 'end-1w' \
   --end   'now-1min' \
   --unit '°C' \
   --alt-autoscale \
   --vertical-label '°C' \
   --imgformat     'PNG' \
   --width=$WIDTH \
   --height=$HEIGHT \
   "DEF:pl=$PLOSS_STATS:teplota:AVERAGE" \
   "CDEF:mpl=pl,UN,0,pl,IF" \
   "LINE2:mpl#ff0000:Teplota" \
   "GPRINT:mpl:AVERAGE:prumerna teplota=%.1lf°C" \
   "GPRINT:mpl:MAX:maximalni teplota=%.1lf°C"\
   "GPRINT:mpl:MIN:minimalni teplota=%.1lf°C\\n"

$RRDTOOL graph $PLOSS_GRAPH1M \

   --title 'Teplota na pude u routeru - posledni mesic' \
   --start 'end-1m' \
   --end   'now-1min' \
   --unit '°C' \
   --alt-autoscale \
   --vertical-label '°C' \
   --imgformat     'PNG' \
   --width=$WIDTH \
   --height=$HEIGHT \
   "DEF:pl=$PLOSS_STATS:teplota:AVERAGE" \
   "CDEF:mpl=pl,UN,0,pl,IF" \
   "LINE2:mpl#ff0000:Teplota" \
   "GPRINT:mpl:AVERAGE:prumerna teplota=%.1lf°C" \
   "GPRINT:mpl:MAX:maximalni teplota=%.1lf°C"\
   "GPRINT:mpl:MIN:minimalni teplota=%.1lf°C\\n"

$RRDTOOL graph $PLOSS_GRAPH1Y \

   --title 'Teplota na pude u routeru - posledni rok' \
   --start 'end-1y' \
   --end   'now-1min' \
   --unit '°C' \
   --alt-autoscale \
   --vertical-label '°C' \
   --imgformat     'PNG' \
   --width=$WIDTH \
   --height=$HEIGHT \
   "DEF:pl=$PLOSS_STATS:teplota:AVERAGE" \
   "CDEF:mpl=pl,UN,0,pl,IF" \
   "LINE2:mpl#ff0000:Teplota" \
   "GPRINT:mpl:AVERAGE:prumerna teplota=%.1lf°C" \
   "GPRINT:mpl:MAX:maximalni teplota=%.1lf°C"\
   "GPRINT:mpl:MIN:minimalni teplota=%.1lf°C\\n"

/usr/bin/convert -geometry 20% $STATS_DIR/temp1w.png $STATS_DIR/thumb-temp1w.png #zmenseni obrazku pro nahled cp $STATS_DIR/thumb-temp1w.png /var/www/hotsanic/teplota cp $STATS_DIR/temp1h.png /var/www/hotsanic/teplota cp $STATS_DIR/temp6h.png /var/www/hotsanic/teplota cp $STATS_DIR/temp1d.png /var/www/hotsanic/teplota cp $STATS_DIR/temp1w.png /var/www/hotsanic/teplota cp $STATS_DIR/temp1m.png /var/www/hotsanic/teplota cp $STATS_DIR/temp1y.png /var/www/hotsanic/teplota </bash>

Ted uz jen podle sveho gusta uvlozit do crontab patricne radky, restartovat cron a uz to meri...

*/1 * * * * root /root/temp/digitemp-3.3.2/pl.sh
*/10 * * * * root /root/temp/digitemp-3.3.2/rrd/diagrams.sh

Hodnoty jdou do minusu uplne v pohode. Uvitam dalsi vylepseni od ostatnich.