rrdtool på Raspberry Pi

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
Oltronix
Inlägg: 502
Blev medlem: 10 december 2011, 21:24:38
Ort: Nynäs

rrdtool på Raspberry Pi

Inlägg av Oltronix »

Kör rrdtool på ett hallon med 5st DS1820. Jag får skumma nedåtgående staplar(värden) som jag inte förstår var de kommer ifrån. Se bild
Jag skriver ut värden innan och efter dessa lagras i rrd-databasen i en logfil för att hitta ev fel. Dock finns det inga konstiga värden i loggfilen att koppla till det nedåtgående staplarna.

Jag filterar värden i rrdtool som ligger utanför [-30C,30C] (tex DS:door:GAUGE:600:-30:40 ). Detta var nödvändigt när jag bara matade DS1820 med två trådar. Numera matar jag även 5V på Vdd. 1wire-bussen är c.a 25m. DS1820 läsfrekvens: var 5min

Någon som har något förslag eller sett något liknande? Jag har funderat på att kraften är för dålig vid skrivning i minnet. Det är även skummet att värden inte är väldigt stora/låga alt noll vid "felskrivning"

HW: Raspberry Pi model B, DS9490R, DS1820
OS: 2012-12-16-wheezy-Debian2
Applikationer: rrdtool, owfs
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Oltronix
Inlägg: 502
Blev medlem: 10 december 2011, 21:24:38
Ort: Nynäs

Re: rrdtool på Raspberry Pi

Inlägg av Oltronix »

För den som är nyfiken bifogar jag shell-koden

Kod: Markera allt

#!/bin/bash
#2013-02-14
cd /home/pi
database=database4
graph_f=log_h_4.png
date=`date`
stime=-1h
log_f=log44.txt
title="Alkarrgatan 4"
v_label="[deg C]"
hight=hhh
witdh=www

old_temp=0
door=0
staircase=0
basment=0
laundry_room=0

# Read data from sensors
old_temp_r=`cat /mnt/1wire/10.B69418000000/temperature`
door_r=`cat  /mnt/1wire/10.2F492F000800/temperature`
staircase_r=`cat /mnt/1wire/10.170908000800/temperature`
basement_r=`cat /mnt/1wire/10.40B20C000800/temperature`
laundry_room_r=`cat /mnt/1wire/10.2D412F000800/temperature`

# Format reading
old_temp=`echo $old_temp_r | cut -c -7`
door=`echo $door_r | cut -c -7`
staircase=`echo $staircase_r`
basement=`echo $basement_r`
laundry_room=`echo $laundry_room_r`

echo $old_temp_r,$door_r,$staircase_r,$basement_r,$laundry_room_r
echo $old_temp,  $door,  $staircase,  $basement,  $laundry_room
echo $date, $old_temp,  $door,  $staircase,  $basement,  $laundry_room \
 >> $log_f
# Update database
rrdtool update $database.rrd \
N:$old_temp:$door:$staircase:$basement:$laundry_room

# Create graphs
rrdtool graph $graph_f -y 1:1 -w 1000 -h 400 \
--vertical-label "$v_label" -t "$title $date" --start $stime \
DEF:old_temp=$database.rrd:old_temp:AVERAGE \
DEF:door=$database.rrd:door:AVERAGE \
DEF:staircase=$database.rrd:staircase:AVERAGE \
DEF:basement=$database.rrd:basement:AVERAGE \
DEF:laundry_room=$database.rrd:laundry_room:AVERAGE \
LINE1:old_temp#0000FF:"Old temp" \
LINE1:door#006600:"Door" \
LINE1:staircase#00FFFF:"Staircase" \
LINE1:basement#CC00FF:"Basement" \
LINE1:laundry_room#CC6600:"Laundry"

echo $old_temp,  $door,  $staircase,  $basement,  $laundry_room
echo $date, $old_temp,  $door,  $staircase,  $basement,  $laundry_room \

echo $old_temp,  $door,  $staircase,  $basement,  $laundry_room
echo $date, $old_temp,  $door,  $staircase,  $basement,  $laundry_room \
 >> $log_f

-------------------------------------------------------------------
rrdtool create database4.rrd --start N --step 300 \ # 300/60=5min
DS:old_temp:GAUGE:600:-30:40 \
DS:door:GAUGE:600:-30:40 \
DS:staircase:GAUGE:600:-30:40 \
DS:basment:GAUGE:600:-30:40 \
DS:laundry_room:GAUGE:600:-30:40 \
RRA:AVERAGE:0.5:1:12 \ #5min /1tim 60 min, 5*12=60
RRA:AVERAGE:0.5:1:288 \ #5min/24tim 1 dygn, 288/12=24 tim
RRA:AVERAGE:0.5:12:168 \ #1tim/vecka, 168/24=7d
RRA:AVERAGE:0.5:12:720 \ #1tim/månad, 720/24=30d
RRA:AVERAGE:0.5:288:365     #1dygn/ 1år
Användarvisningsbild
JimmyAndersson
Inlägg: 26680
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Re: rrdtool på Raspberry Pi

Inlägg av JimmyAndersson »

"Dock finns det inga konstiga värden i loggfilen att koppla till det nedåtgående staplarna."

Bara för att förtydliga:
Är det alltså normala temperaturer där? Så t.ex 7,5ºC i Basement finns alltså inte strax efter kl 19 i den loggfilen?



"Jag har funderat på att kraften är för dålig vid skrivning i minnet."

Hur har du kopplat 1wire-nätet till Pi'en?
Direkt till GPIO eller via t.ex 1Wire-expanson-modulen som m.nu säljer?



Av ren nyfikenhet:
Var det mycket jobb med att få Debian, OWFS och rrdtool att fungera?
(Är själv på gång att beställa lite grejer för att testa 1wire till Pi'en.)
Användarvisningsbild
Oltronix
Inlägg: 502
Blev medlem: 10 december 2011, 21:24:38
Ort: Nynäs

Re: rrdtool på Raspberry Pi

Inlägg av Oltronix »

Detta är löst. Ett programmeringsfel av mig förstås.....
Dock intressant exempel hur rrdtool fungerar. Det jag gjorde vara att skriva in ett "tomt" värde i databasen eller snarare ökade delningsfaktorn med 1 utan att skriva in ett vettigt värde i databasen. Jag använder ju bla "RRA:AVERAGE:0.5:1:12". när jag skapar databasen.

Jag använder inte GPIO utan USB och DS9490R. Kraften, 5V Vdd, till 1-wire-bussen kommer via Hallonet/USB/DS9490R.

Det var lätt att komma igång med med 1-wire på Hallonet. Jag hittade ett rrdtool-exempel som jag moddade. Läste lite av rddtool-dokumentationen.
http://owfs.org/index.php?page=garden

Det skulle vara spännande att använda även GPIOn. Jag har en DS2408 men min lödteknik när det gäller SO-kapslar är lika med noll.
Användarvisningsbild
JimmyAndersson
Inlägg: 26680
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Re: rrdtool på Raspberry Pi

Inlägg av JimmyAndersson »

"Dock intressant exempel hur rrdtool fungerar."

Definitivt. Kul att du löste det! :)


Hmm.. nu blev man ännu mer inspirerad att testa Pi'en.
Skriv svar