1

Temat: OWFS czy DigiTemp ?

Witam
Ogolnie zaczynam zabawe z owfs, ale widze, ze wiele osob uzywac digitemp. Czy moze mi ktos podac jakies plusy i miusy obu rozwiazan ?

Fantom

2

Odp: OWFS czy DigiTemp ?

digitemp w sumie jest prostym programem który odczytuje czujnik i wyświetla przetworzoną wrartość.

owfs też można do tego wykorzystać, choć samo w sobie jest bardziej całym systemem obsługi różnych czujników, prezentacji maksimum możliwych parametrów, wyświetlaniem tego na stronie itd.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: OWFS czy DigiTemp ?

Czyli przyszlosciowo lepiej uzyc owfs smile
Dzieki

Fantom

4

Odp: OWFS czy DigiTemp ?

A to jeszcze dopytam : gnuplot czy rrdtool ? Dane sa w rrd.

Fantom

5

Odp: OWFS czy DigiTemp ?

Jak chcesz w tym przypadku. Choć do gnuplota będziesz musiał specjalnie dane wyciągać.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

6 (edytowany przez Fantom 2011-12-15 11:03:47)

Odp: OWFS czy DigiTemp ?

No wlasnie widze, ale wkurza mnie brak usredniania na wykresie. A zmoe do bazy sql warto jednak zapisywac, bo mozna 'bardziej' z niej korzystac.

czyli ewentualnie rrdtool fetch i gnuplot moze chodzic ?

Fantom

7

Odp: OWFS czy DigiTemp ?

Masz punkty więc możesz trzasnąć sobie procedurkę która krzywą Beziera policzy...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: OWFS czy DigiTemp ?

osobiście z swoich doświadczeń polecam owfs i rrdtol. Zaczynałem od digitempa i gnuplota, ale przydał mi się w sumie tylko do temperatury. Owfs jest bardziej uniwersalny do róźnych czujników czy przetworników A/D. Zależy do czego chcesz to wykorzystać, warto najpierw sobie sprawdzić w źródłach owfs co obsługuje.

9

Odp: OWFS czy DigiTemp ?

Wg. mnie OWFS i rrdtool ewentualnie dygraphs.Testowałem Digitemp'a OWFS - bez porównania.

10

Odp: OWFS czy DigiTemp ?

To jeszcze prosze o mala pomoc w obsludze basha. Chcialbym generowac wydruk na jednym wykresie kilku temepratur, ale aby byly one automatycznie pobierane z jakiegos pliku z danymi (numer czujnika, nazwa itp). No i pbrac do jakiejs tablicy dane z pliku to ok, ale jak potem to uzyc w petli w generowaniu wydruku ??

  rrdtool graph ${home_temp}/$i.png \
        -A -s -$i -e now -a PNG -z -Y \
        -v "Temperatura °C" -t "$dat" -W "www" $gr \
        "DEF:ab1=${home}/plik.rrd:plik:AVERAGE" \
        "DEF:ab2=${home}/plik.rrd:plik:MIN" \
        "DEF:ab3=${home}/plik.rrd:plik:MAX" \

i te 3 ostatnie linijki musialy by byc w petli, czyli np dla 10 czujnikow zrobi sie tu 30 linijek (a nie jak 3 powyzej), ale kazda trojka bedzie miala inna nazwe, plik itp. Jak to zrobic ?? Jak stworzyc ten lanuch ?

Fantom

11 (edytowany przez Paco52327 2011-12-15 20:52:43)

Odp: OWFS czy DigiTemp ?

Na początek, bo muszę lecieć skorzystaj z crontab'a może, w razie jakiegoś błędu nie wywali ci skryptu tylko się raz nie uruchomi.Dodatkowo nie jakiś plik bazy danych tylko rrdtool create... już masz baze

12

Odp: OWFS czy DigiTemp ?

chodzi mi o sama idee wygenerowania takiego lancucha. Zrobi petle i w niej cos w stylu "lancuch = lanuch + 3 kolejne linijki" ?
A na koniec zrobic rrdtool $lancuch ?

Fantom

13 (edytowany przez Paco52327 2011-12-15 21:51:04)

Odp: OWFS czy DigiTemp ?

Po przeczytaniu kilka razy Twojego posta zajarzyłem, jak już musiała by być w pętli to całość.Może lepiej będzie ci skorzystać z gotowca.
Tu masz mój skrypt, który uruchamia cron co minutę dodając temperaturę do bazy i rysuje wykres na bieżąco, z różnych okresów do teraz.Dla 3 czujników ale to sobie obczaisz i dostosujesz dla siebie, może tak będzie łatwiej.

C1=/media/meteo/c1.rrd
C2=/media/meteo/c2.rrd
C3=/media/meteo/c3.rrd
TOOL='/usr/bin/rrdtool'
NOW=`date -u +%s`
NOWT=`date +%A,%t%d' '%B' '%Y' '%H:%M`
CSVD=`date +'%Y/%m/%d %H:%M'`
TEMPIN=`sed 's/^[ ]*//' /mnt/1wire/28.75F7B6020000/temperature`
TEMPOU=`sed 's/^[ ]*//' /mnt/1wire/28.9AD9B6020000/temperature`
TEMPCO=`sed 's/^[ ]*//' /mnt/1wire/28.0DD2B6020000/temperature`


$TOOL update $C1 $NOW:$TEMPIN;
$TOOL update $C2 $NOW:$TEMPOU;
$TOOL update $C3 $NOW:$TEMPCO;

rrdtool graph /var/www/temper/wyktemp.gif -t 'Wykres temperatur' \
-A -w 900 -h 400 --vertical-label 'Temperatura w °C' --end now -s end-1h \
-c CANVAS#000000 -c BACK#000000 -c FONT#FFFFFF \
DEF:temp_in=$C1:temp_in:AVERAGE \
DEF:temp_ou=$C2:temp_ou:AVERAGE \
DEF:temp_co=$C3:temp_co:AVERAGE \
LINE2:temp_in#0000FF:"W pokoju        " \
GPRINT:temp_in:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_in:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_in:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_in:AVERAGE:"średnia %2.2lf °C     \n" \
LINE2:temp_ou#00FF00:"Na zewnątrz     " \
GPRINT:temp_ou:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_ou:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_ou:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_ou:AVERAGE:"średnia %2.2lf °C     \n" \
LINE2:temp_co#FF0000:"Na piecu        " \
GPRINT:temp_co:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_co:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_co:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_co:AVERAGE:"średnia %2.2lf °C     \n" \

rrdtool graph /var/www/temper/wyktemp1day.gif -t 'Wykres całego dnia' \
-A -w 900 -h 400 --vertical-label 'Temperatura w °C' --end now -s end-1day \
-c CANVAS#000000 -c BACK#000000 -c FONT#FFFFFF \
DEF:temp_in=$C1:temp_in:AVERAGE \
DEF:temp_ou=$C2:temp_ou:AVERAGE \
DEF:temp_co=$C3:temp_co:AVERAGE \
LINE2:temp_in#0000FF:"W pokoju        " \
GPRINT:temp_in:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_in:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_in:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_in:AVERAGE:"średnia %2.2lf °C     \n" \
LINE2:temp_ou#00FF00:"Na zewnątrz     " \
GPRINT:temp_ou:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_ou:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_ou:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_ou:AVERAGE:"średnia %2.2lf °C     \n" \
LINE2:temp_co#FF0000:"Na piecu        " \
GPRINT:temp_co:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_co:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_co:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_co:AVERAGE:"średnia %2.2lf °C     \n" \

rrdtool graph /var/www/temper/wyktemp1week.gif -t 'Wykres całego tygodnia' \
-A -w 900 -h 400 --vertical-label 'Temperatura w °C' --end now -s end-1week \
-c CANVAS#000000 -c BACK#000000 -c FONT#FFFFFF \
DEF:temp_in=$C1:temp_in:AVERAGE \
DEF:temp_ou=$C2:temp_ou:AVERAGE \
DEF:temp_co=$C3:temp_co:AVERAGE \
LINE2:temp_in#0000FF:"W pokoju        " \
GPRINT:temp_in:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_in:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_in:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_in:AVERAGE:"średnia %2.2lf °C     \n" \
LINE2:temp_ou#00FF00:"Na zewnątrz     " \
GPRINT:temp_ou:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_ou:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_ou:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_ou:AVERAGE:"średnia %2.2lf °C     \n" \
LINE2:temp_co#FF0000:"Na piecu        " \
GPRINT:temp_co:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_co:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_co:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_co:AVERAGE:"średnia %2.2lf °C     \n" \

rrdtool graph /var/www/temper/wyktemp1month.gif -t 'Wykres całego miesiąca' \
-A -w 900 -h 400 --vertical-label 'Temperatura w °C' --end now -s end-1month \
-c CANVAS#000000 -c BACK#000000 -c FONT#FFFFFF \
DEF:temp_in=$C1:temp_in:AVERAGE \
DEF:temp_ou=$C2:temp_ou:AVERAGE \
DEF:temp_co=$C3:temp_co:AVERAGE \
LINE2:temp_in#0000FF:"W pokoju        " \
GPRINT:temp_in:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_in:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_in:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_in:AVERAGE:"średnia %2.2lf °C     \n" \
LINE2:temp_ou#00FF00:"Na zewnątrz     " \
GPRINT:temp_ou:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_ou:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_ou:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_ou:AVERAGE:"średnia %2.2lf °C     \n" \
LINE2:temp_co#FF0000:"Na piecu        " \
GPRINT:temp_co:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_co:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_co:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_co:AVERAGE:"średnia %2.2lf °C     \n" \

rrdtool graph /var/www/temper/wyktemp1year.gif -t 'Wykres roczny' \
-A -w 900 -h 400 --vertical-label 'Temperatura w °C' --end now -s end-12month \
-c CANVAS#000000 -c BACK#000000 -c FONT#FFFFFF \
DEF:temp_in=$C1:temp_in:AVERAGE \
DEF:temp_ou=$C2:temp_ou:AVERAGE \
DEF:temp_co=$C3:temp_co:AVERAGE \
LINE2:temp_in#0000FF:"W pokoju        " \
GPRINT:temp_in:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_in:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_in:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_in:AVERAGE:"średnia %2.2lf °C     \n" \
LINE2:temp_ou#00FF00:"Na zewnątrz     " \
GPRINT:temp_ou:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_ou:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_ou:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_ou:AVERAGE:"średnia %2.2lf °C     \n" \
LINE2:temp_co#FF0000:"Na piecu        " \
GPRINT:temp_co:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_co:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_co:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_co:AVERAGE:"średnia %2.2lf °C     \n" \

mv -f /var/www/temper/wyktemp.gif /var/www/temper/kowyktemp.gif
mv -f /var/www/temper/wyktemp1day.gif /var/www/temper/kowyktemp1day.gif
mv -f /var/www/temper/wyktemp1week.gif /var/www/temper/kowyktemp1week.gif
mv -f /var/www/temper/wyktemp1month.gif /var/www/temper/kowyktemp1month.gif
mv -f /var/www/temper/wyktemp1year.gif /var/www/temper/kowyktemp1year.gif 

14 (edytowany przez Fantom 2011-12-15 22:02:47)

Odp: OWFS czy DigiTemp ?

No wlasnie. Dlugi tekst w generowaniu kazdego wykresu. Docelowo rozwiaznaie ok, ale jak jestem w trkacie budowy sieci dopiero to masakra. Dolaczam kolejne termometry i musze dopisywac sporo liniejk w roznych miejscach. chcialbym to zautomatyzowac wpisujac tylko w jednym pliku numer i nazwe czujnika. W generowaniu rrd to juz mam i uzywam. Ale w generowaniu graphow juz mam problem. Jak to zrobic w petli ?

choc widze, ze mozna to zroic ladniej niz ja mailem. Bo ja robilem tak :
        "DEF:ab1=${home}/plik.rrd:plik:AVERAGE" \
        "DEF:ab2=${home}/plik.rrd:plik:MIN" \
        "DEF:ab3=${home}/plik.rrd:plik:MAX" \
        GPRINT:ab2:MIN:" %5.2lf °C" \
        GPRINT:ab3:MAX:" %5.2lf °C" \
        GPRINT:ab1:AVERAGE:" %5.2lf °C" \
        GPRINT:ab1:LAST:" %5.2lf °C" \

A ty masz tak :

DEF:temp_in=$C1:temp_in:AVERAGE \
GPRINT:temp_in:LAST:"aktualna %2.2lf °C    " \
GPRINT:temp_in:MIN:"minimalna %2.2lf °C    " \
GPRINT:temp_in:MAX:"maksymalna %2.2lf °C    " \
GPRINT:temp_in:AVERAGE:"średnia %2.2lf °C     \n" \

Czyli w sumie na kazdym czujniku 2 linijki mniej. Czyli tak mozna ? Ze robic jednego DEf a potem po dwukropku jakby zmieniac na MIN, MAX itp w GPRINT ?

Fantom

15 (edytowany przez Paco52327 2011-12-15 22:00:56)

Odp: OWFS czy DigiTemp ?

I brać wartości z wielu baz rrd?

16 (edytowany przez Fantom 2011-12-15 22:16:30)

Odp: OWFS czy DigiTemp ?

Tak. Ale nazwa bazy tez zapisana w tym pliku konfiguracyjnym i pobrana na poczatku do tablicy do pamieci.

Tak dla przykladu robie rozne wykresy w stosunku do dlugosci pokazania :

for i in 24h 7d 5w 1y
do
  rrdtool graph katalog/$i.png -A -s -$i ........

Czyli zamiast pisac 4 rozne wykresy po 50 liniejk kazdy, robi sie to w petli, a przekazany parametr mowi o tym jaki to wykres pod wzgledem dlugosci cxasu czy nazwy pliku jaka powstanie.

Fantom

17 (edytowany przez Paco52327 2011-12-15 22:24:15)

Odp: OWFS czy DigiTemp ?

Tak nie do końca przemyślane ale... pętla for i np.:
for (( i=1; $i == 10; i++ )) ; do
done
gdzie "i" jest nazwa bazy rdd i zmieniasz ilość pętli dla każdej nowej bazy +1.
poprzedni post urodził się w trakcie pisania mojego ;]

18

Odp: OWFS czy DigiTemp ?

Ale jak stworzyc ten lanuch miedzy 'do' a 'done' ? Jak to uzyc dla tak dlugiego lancucha ? Bo na logike przed petla powinienm dac np rrdtool graph ... a ta petla powinna mi dorobic reszte parametrow dla tego.

Fantom

19

Odp: OWFS czy DigiTemp ?

I trzeba wziąć pod uwagę fakt że za każdą pętlą musi się zmieniać kolor :s

20

Odp: OWFS czy DigiTemp ?

No to tez mozna byc zapisac w pliku konfiguracyjnym. Ale ciagle nie wiem jak ten caly lanuch stworzyc.

Fantom

21

Odp: OWFS czy DigiTemp ?

Sprawdzałeś jak się zachowa rrdtool jak ma 2 bazy tygodniowe i dołączy się świeżą czy wykres bez wartości wstecz się narysuje, bo w teorii nie powinno być linii do czasu pierwszej wartości świeżej bazy.

22

Odp: OWFS czy DigiTemp ?

Moze dla uproszczenia zastosowac OWFS i TEMPLOGGERD ?

MV411+ HP T5500 z R52 + AA + OWFS + TEMPLOGGERD + MP00202
A0ZP = Absolutnie Zerowa Znajomość Pingwina. Nie byliśmy sobie przedstawieni.

23

Odp: OWFS czy DigiTemp ?

Paco52327 napisał/a:

Sprawdzałeś jak się zachowa rrdtool jak ma 2 bazy tygodniowe i dołączy się świeżą czy wykres bez wartości wstecz się narysuje, bo w teorii nie powinno być linii do czasu pierwszej wartości świeżej bazy.

Jak dolaczam kolejne bazy, to poczatek rysowania jest np od polowy, a poprzednie sa wczesniej. Tu problemu nie ma.

Fantom