2 Tage
# http://oss.oetiker.ch/rrdtool/tut/rrd-beginners.en.html # https://www.heise.de/make/artikel/Kurvenzeichner-2714517.html # # DS:variable_name:DST:heartbeat:min:max # RRA:CF:xff:step:rows # RRA:AVERAGE:0.5:5:60 1 PDP => 1 CDP ( 1 Minuten) : 60 CDP ( 1h ) # RRA:AVERAGE:0.5:1:1440 1 PDP => 1 CDP ( 1 Minuten) : 1440 CDP ( 1 Tag ) # RRA:AVERAGE:0.5:2:1440 2 PDP => 1 CDP ( 2 Minuten) : 1440 CDP ( 2 Tage ) # RRA:AVERAGE:0.5:7:1440 7 PDP => 1 CDP ( 7 Minuten) : 1440 CDP ( 1 Woche ) # RRA:AVERAGE:0.5:30:1440 30 PDP => 1 CDP (30 Minuten) : 1440 CDP ( 30 Tage ) rrdtool create pluggit.rrd \ --start 1487350621 \ --step 60 \ DS:T1:GAUGE:600:-40:80 \ DS:T2:GAUGE:600:-40:80 \ DS:T3:GAUGE:600:-40:80 \ DS:T4:GAUGE:600:-40:80 \ DS:RPM1:GAUGE:600:0:5000 \ DS:RPM2:GAUGE:600:0:5000 \ RRA:AVERAGE:0.5:5:60 \ RRA:AVERAGE:0.5:1:1440 \ RRA:AVERAGE:0.5:2:1440 \ RRA:AVERAGE:0.5:7:1440 \ RRA:AVERAGE:0.5:30:1440 \ RRA:MIN:0.5:5:60 \ RRA:MIN:0.5:1:1440 \ RRA:MIN:0.5:2:1440 \ RRA:MIN:0.5:7:1440 \ RRA:MIN:0.5:30:1440 \ RRA:MAX:0.5:5:60 \ RRA:MAX:0.5:1:1440 \ RRA:MAX:0.5:2:1440 \ RRA:MAX:0.5:7:1440 \ RRA:MAX:0.5:30:1440
<?php // // REF orig: http://www.puschin.de/index.php?print=&aktion=thema_anzeigen&menue_id=77&thema_id=195&faq_id=585 // require_once dirname(__FILE__) . '/phpmodbus-master/Phpmodbus/ModbusMaster.php'; #echo "T1 " . joshua_modbus_read(132); // T1 #echo "T2 " . joshua_modbus_read(134); // T2 #echo "T3 " . joshua_modbus_read(136); // T3 #echo "T4 " . joshua_modbus_read(138); // T4 #echo "Preheater " . joshua_modbus_read_uint(160) . "\n"; // Preheater #echo "RPM1 " . joshua_modbus_read(100); // RPM 1 #echo "RPM2 " . joshua_modbus_read(102); // RPM 2 #echo "Bypass " . joshua_modbus_read_uint(198) . "\n"; // Bypass echo time() . ":" . \ joshua_modbus_read(132) . ":" . \ joshua_modbus_read(134) . ":" . \ joshua_modbus_read(136) . ":" . \ joshua_modbus_read(138) . ":" . \ joshua_modbus_read(100) . ":" . \ joshua_modbus_read(102) . "\n"; function joshua_modbus_read($register) { $modbus = new ModbusMaster("XXX.XX.XX.XXX", "TCP"); $recData = $modbus->readMultipleRegisters(0, $register, 2); //print_r($recData); $values = array_chunk($recData, 4); foreach($values as $bytes) return PhpType::bytes2float($bytes); $modbus->disconnect; } function joshua_modbus_read_uint($register) { $modbus = new ModbusMaster("XXX.XX.XX.XXX", "TCP"); $recData = $modbus->readMultipleRegisters(0, $register, 20); //print_r($recData); $values = array_chunk($recData, 4); foreach($values as $bytes) return PhpType::bytes2unsignedInt($bytes); // $modbus->disconnect; }
#!/usr/bin/bash /usr/bin/php /STICK/pluggit/poller.php | sed -e 's/ /:/g' | while read ii do rrdtool update /STICK/pluggit/pluggit.rrd ${ii} echo "${ii}" >> /STICK/pluggit/plogger.log done
#!/usr/bin/bash # /STICK/pluggit # RRD=/STICK/pluggit/pluggit.rrd LT=LINE2 DT=`date +"%H:%M %d.%m.%Y"` for p in -8h -16h -1d -2d -7d -30d do ODI=/srv/http/pluggit TTT=`echo ${p} | sed -e 's/\-//g'` ODF=${ODI}/pluggit${TTT}.png rrdtool graph ${ODF} --start "${p}" --title "Pluggit Lueftung (${TTT}) - ${DT}" \ --vertical-label "Grad Celsius" \ --right-axis-label "rpm" \ --right-axis 100:0 \ --right-axis-format "%lg" \ -X 0 \ -a PNG -w 1024 -h 512 \ DEF:RPM1=${RRD}:RPM1:AVERAGE \ DEF:RPM2=${RRD}:RPM2:AVERAGE \ CDEF:sRPM1=RPM1,0.01,* \ CDEF:sRPM2=RPM2,0.01,* \ DEF:T1=${RRD}:T1:AVERAGE \ DEF:T2=${RRD}:T2:AVERAGE \ DEF:T3=${RRD}:T3:AVERAGE \ DEF:T4=${RRD}:T4:AVERAGE \ ${LT}:T1#0000ff:"Zuluft (Aussentemperatur)" \ ${LT}:T2#00ff00:"Zuluft (Raum)" \ ${LT}:T3#ff0000:"Abluft (Raum)" \ ${LT}:T4#aa1010:"Abluft (nach Draussen)" \ ${LT}:sRPM1#aaaaaa:"Abluft (rpm)" \ ${LT}:sRPM2#080808:"Zuluft (rpm)" echo "RC=$? ${ODF}" done
*/1 * * * * /STICK/pluggit/update_pluggit_rrd.sh 0,30 * * * * /STICK/pluggit/graph_pluggit.sh >/dev/nullDie Graphen koennen auch manuell erzeugt werden, per /STICK/pluggit/graph_pluggit.sh.
2 Tage
8 h
16 h
1 Tag
7 Tage
30 Tage