Läsa in data till RRD
Postat: 05 feb 2014, 20:44
Nu kommer jag och ber om hjälp och råd igen. (Raspbian wheezy, owfs och RRDTool)
I RRDTool How To finns en liten kodsnutt för att läsa in tempdata från EN sensor till EN RRD fil.
Nu funderar jag på hur man kan utveckla den på något bra sätt. Jag hade tänkt mig att på lämpligt sätt läsa in sensor info i en array (el. snarare en matris) för att sedan loopa igenom detta med minimalt med kod. Så här tänkte jag:
# 1-WIRE ENHETER
# Rökgas temp DS: SmokeTemp RRD: SmokeTemp.rrd ID: 30.164FB5120000 Type: "/TypeK"
# Pann temp DS: BoilerTemp RRD: BoilerTemp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Panna-in temp DS: BoilerInTemp RRD: BoilerInTemp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Ack-retur temp DS: AckReturnTemp RRD: AckReturnTemp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Radiator retur temp DS: RadiatorInTemp RRD: RadiatorInTemp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Radiator fram temp DS: RadiatorOutTemp RRD: RadiatorOutTemp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Acktank 1 (översta) DS: Ack1Temp RRD: Ack1Temp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Acktank 2 DS: Ack2Temp RRD: Ack2Temp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Acktank 3 DS: Ack3Temp RRD: Ack3Temp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Acktank 4 (nedersta) DS: Ack4Temp RRD: Ack4Temp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# i="Räknare för loop (antal temp sensorer)
(Rökgasgivaren är den enda jag just nu har det exakta Id numret till)
Men nu lästa jag på nätet att bash inte hanterar matriser.
jag vet att detta borde vara väldigt basic men snälla, hjälp en VÄLDIGT ringrostig programmerare på traven; måste jag gå över till perl (som jag inte heller behärskar) eller hur fixa på galant sätt?
I RRDTool How To finns en liten kodsnutt för att läsa in tempdata från EN sensor till EN RRD fil.
Kod: Markera allt
#!/bin/bash
OutsideTempSensor="10.51777C010800"
RRDDataDirectory="/home/anders/rrddata/"
RRDDataFile="outside_temp.rrd"
# Get temps form OWFS
OutsideTemp=`cat /mnt/1wire/$OutsideTempSensor/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f", $1}'`
#Update RRD database
rrdtool update $RRDDataDirectory$RRDDataFile N:$OutsideTemp
echo $OutsideTemp
# 1-WIRE ENHETER
# Rökgas temp DS: SmokeTemp RRD: SmokeTemp.rrd ID: 30.164FB5120000 Type: "/TypeK"
# Pann temp DS: BoilerTemp RRD: BoilerTemp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Panna-in temp DS: BoilerInTemp RRD: BoilerInTemp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Ack-retur temp DS: AckReturnTemp RRD: AckReturnTemp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Radiator retur temp DS: RadiatorInTemp RRD: RadiatorInTemp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Radiator fram temp DS: RadiatorOutTemp RRD: RadiatorOutTemp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Acktank 1 (översta) DS: Ack1Temp RRD: Ack1Temp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Acktank 2 DS: Ack2Temp RRD: Ack2Temp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Acktank 3 DS: Ack3Temp RRD: Ack3Temp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# Acktank 4 (nedersta) DS: Ack4Temp RRD: Ack4Temp.rrd ID: 28.xxxxxxxxxxxx Type: Null
# i="Räknare för loop (antal temp sensorer)
(Rökgasgivaren är den enda jag just nu har det exakta Id numret till)
Men nu lästa jag på nätet att bash inte hanterar matriser.
jag vet att detta borde vara väldigt basic men snälla, hjälp en VÄLDIGT ringrostig programmerare på traven; måste jag gå över till perl (som jag inte heller behärskar) eller hur fixa på galant sätt?