1

Temat: A może by tak kolejne How-To-Do?

Podejrzewam, że ta temperatura nie tylko jest mierzona, ale i przetwarzana na OpenWRT?

Jeśli tak to może ktoś by się pokusił zrobić i opsać taki mały loggerek z wyświetlaniem na WWW?

Ja osobiście chętnie bym widział pliki csv jako źródło dla programu obsługującego trendy.

Z góry dziękuję.
Wojtek

2

Odp: A może by tak kolejne How-To-Do?

Tak, openwrt to przetwarza. Z pliku tekstowego, akurat rozdzielanego spacją. A z tego generowany jest wykres jak na http://eko.one.pl/temp.html przez gnuplot, dokładnie tak jak opisane jest to na stronie.

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

3

Odp: A może by tak kolejne How-To-Do?

Tak znalazłem taki zapis:

Dane już mamy, więc wystarczy już tylko je obrobić (php, gnuplot, rddtool) i użyć je tam gdzie potrzeba. Można użyć np. mrtg, rrdtool czy php i robić np. takie wykresy.

Przyznam, że z trudem i dużą pomocą Kochanego Administratora i jego wszechpomocnej strony postawiłem Kamikaze na WL500 z sambąi ftp-em.

Nie mniej jednak przegryzienie się przez powyższy zapis czuję zę ponab moje siły.

Stąd i prośba.

Pzodrawiam

Wojtek

4

Odp: A może by tak kolejne How-To-Do?

Bo powinieneś udać się na stronę gnuplot i zobaczyć przykłady. Przecież nie jest to jakaś wiedza tajemna. Plik z temperaturą jest generowany w /tmp/temp.txt. A skrypt robiący wykres to w najprostszej wersji:

#!/bin/sh

GNUPLOT_COMMAND="/tmp/gnuplot_cmd"
touch ${GNUPLOT_COMMAND}

cat > ${GNUPLOT_COMMAND} << __EOF__
set terminal png small size 800,500
set output '/tmp/temp.png'
set title "Wykres temperatury"
set xlabel "godzina"
set timefmt "%Y-%m-%d %H:%M:%S"
set xdata time
set ylabel "temperatura °C"
set format x "%H"
set grid
set key left
plot '/tmp/temp.txt' using 1:3 t 'dane rzeczywiste' with lines lt 1
quit 
__EOF__

gnuplot ${GNUPLOT_COMMAND}
rm ${GNUPLOT_COMMAND}

I masz png z wykresem. gnuplot dostępny jest z optware, resztę trzeba oskrytować wg woli. Jak masz php to można to w php zrobić.

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

5

Odp: A może by tak kolejne How-To-Do?

Odkopię trochę temat bo mam problem, a mianowicie posiadam WR1043 i na nim digitemp-a, który odkłada logi do pliku.
Chciałem teraz zrobić z tego wykresy więc zainstalowałem gnuplota.
I tu pojawił się problem bo przy próbie uruchomienia

root@Gargus:~$ /usr/bin/gnuplot
/usr/bin/gnuplot: can't load library 'libintl.so.8'

więc chciałem doinstalować libintl ale on już niby jest, ale co widać w poniższym niestety go niema.

root@Gargus:~$ opkg install libintl
Package libintl (2) installed in root is up to date.

root@Gargus:~$ ls /lib
ar71xx.sh               libdl.so.0              libuClibc-0.9.30.1.so
config                  libgcc_s.so.1           libuci.so
firewall                libm-0.9.30.1.so        libuci.so.12012009
firmware                libm.so.0               libutil-0.9.30.1.so
firstboot               libnsl-0.9.30.1.so      libutil.so.0
functions               libnsl.so.0             modules
ld-uClibc-0.9.30.1.so   libpthread-0.9.30.1.so  network
ld-uClibc.so.0          libpthread.so.0         preinit
libc.so.0               libresolv-0.9.30.1.so   upgrade
libcrypt-0.9.30.1.so    libresolv.so.0          wifi
libcrypt.so.0           librt-0.9.30.1.so
libdl-0.9.30.1.so       librt.so.0

root@Gargus:~$ ls /usr/lib
common.awk                     libgthread-1.2.so.0
crda                           libgthread-1.2.so.0.0.10
directfb-1.4-0                 libgthread-2.0.so
dnsspoof.hosts                 libgthread-2.0.so.0
dsniff.magic                   libgthread-2.0.so.0.2600.1
dsniff.services                libip4tc.so
ebtables                       libip4tc.so.0
gargoyle                       libip4tc.so.0.0.0
gargoyle_firewall_util         libip6tc.so
iptables                       libip6tc.so.0
libblkid.so.1                  libip6tc.so.0.0.0
libblkid.so.1.0                libiptbwctl.so
libbluetooth.so.2              libiptbwctl.so.1
libbluetooth.so.2.11.2         libiptc.so
libcairo.so                    libiptc.so.0
libcairo.so.2                  libiptc.so.0.0.0
libcairo.so.2.10800.8          libjpeg.so.62
libcom_err.so.2                libjpeg.so.62.0.0
libcom_err.so.2.1              libmenu.so
libcrypto.so.0.9.8             libmenu.so.5
libcurses.so                   libmenu.so.5.7
libcyassl.so                   libncurses.so
libcyassl.so.0                 libncurses.so.5
libcyassl.so.0.0.0             libncurses.so.5.7
libdirect-1.4.so.0             libnet.so.0
libdirect-1.4.so.0.2.0         libnet.so.0.0.0
libdirect.so                   libnids.so.1.18
libdirectfb-1.4.so.0           libnl-tiny.so
libdirectfb-1.4.so.0.2.0       libntfs-3g.so.79
libdirectfb.so                 libntfs-3g.so.79.0.0
libe2p.so.2                    libpanel.so
libe2p.so.2.3                  libpanel.so.5
libebtc.so                     libpanel.so.5.7
libericstools.so               libpango-1.0.so
libericstools.so.1             libpango-1.0.so.0
libevent-1.4.so.2              libpango-1.0.so.0.2600.0
libevent-1.4.so.2.1.3          libpangocairo-1.0.so
libewget.so                    libpangocairo-1.0.so.0
libewget.so.1                  libpangocairo-1.0.so.0.2600.0
libexpat.so.1                  libpangoft2-1.0.so
libexpat.so.1.5.2              libpangoft2-1.0.so.0
libext2fs.so.2                 libpangoft2-1.0.so.0.2600.0
libext2fs.so.2.4               libpcap.so
libfontconfig.so.1             libpcap.so.1.0
libfontconfig.so.1.3.0         libpcap.so.1.0.0
libform.so                     libpcsclite.so.1
libform.so.5                   libpcsclite.so.1.0.0
libform.so.5.7                 libpixman-1.so
libfreetype.so.6               libpixman-1.so.0
libfreetype.so.6.4.0           libpixman-1.so.0.16.2
libfusion-1.4.so.0             libpng.so.3
libfusion-1.4.so.0.2.0         libpng.so.3.44.0
libfusion.so                   libpng12.so.0
libgd.so.2                     libpng12.so.0.44.0
libgd.so.2.0.0                 libssl.so.0.9.8
libgdbm.so.3                   libuClibc++-0.2.2.so
libgdbm.so.3.0.0               libuClibc++.so.0
libgio-2.0.so                  libusb-0.1.so.4
libgio-2.0.so.0                libusb-0.1.so.4.4.4
libgio-2.0.so.0.2600.1         libusb.so
libglib-1.2.so.0               libusbpp-0.1.so.4
libglib-1.2.so.0.0.10          libusbpp-0.1.so.4.4.4
libglib-2.0.so                 libusbpp.so
libglib-2.0.so.0               libuuid.so.1
libglib-2.0.so.0.2600.1        libuuid.so.1.2
libgmodule-1.2.so.0            libwrap.so.0
libgmodule-1.2.so.0.0.10       libwrap.so.0.7.6
libgmodule-2.0.so              libxtables.so
libgmodule-2.0.so.0            libxtables.so.4
libgmodule-2.0.so.0.2600.1     libxtables.so.4.0.0
libgnokii.so                   libz.so
libgnokii.so.3                 libz.so.1
libgnokii.so.3.5.0             libz.so.1.2.3
libgobject-2.0.so              opkg
libgobject-2.0.so.0            pango
libgobject-2.0.so.0.2600.1     pppd

Proszę o podpowiedź co jeszcze doinstalować aby mieć tą biblioteke?

I jeszcze jedno pytanie gdzie umieścić ten skrypt robiący wykresy, aby był widziany z zew przez www w katalogu głównym www?

6

Odp: A może by tak kolejne How-To-Do?

Z katalogu z którego zabrałeś gnuplot weź także sam pakiet libintl, wydobądź z niego bibliotekę i dodaj ja do /lib. Pakiet który jest w systemie (obecnie w "nowym" Backfire) jest pusty po prostu - zależności są spełnione, ale pliku nie ma. Nowe buildy pakietów nie będą od niego już zależały.

Skrypt umieść sobie gdzie chcesz; rezultat jego wykonania cię interesuje i docelowo ma się znaleźć w katalogu głównym serwera www.

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

7

Odp: A może by tak kolejne How-To-Do?

Widzę, że Cezary miał znowu chwilkę czasu smile i napisał kilka nowych skryptów do wyświetlania pomiarów w gnuplocie wykresy i tu moje pytanie-prośba, czy możesz je udostępnić forumowiczom???
Znalazłem już kilka ładnych opisów co i jak trzeba zrobić, aby wyświetlić to co się chce i w jakiej formie, ale nie powiem, że były by one pomocne w innych naszych pomysłach (mam na myśli wzór-porównanie na podstawie Twoich wypocin ) smile

8

Odp: A może by tak kolejne How-To-Do?

Tzn co? Wszystko jest takie samo jak było.

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

9 (edytowany przez migos 2011-04-17 13:38:47)

Odp: A może by tak kolejne How-To-Do?

Kurcze jakiś czas nie były dostęne wykresy i chyba dlatego wydawało mi się, że coś zmieniłeś smile
Tak czy siak prośba o pokazanie skryptu Twojego z tej stronki, bo jakoś jeszcze nie do końca sobie z gnuplotem radze. sad Fajnie to wygląda. Wiem, że to wiedza nie tajemna, ale jeszcze dużo nauki przedemną, a był by to znowy kolejny przykład do nauki i swoich przemyśleń wink

Acha i jeszcze jedno pytanko czy jest możliwość wyświetlania wykresów z zew pliku txt (zamieszczonego na stronie) nieściągając go na routerek, bo tego się nie doszukałem?

10

Odp: A może by tak kolejne How-To-Do?

Przecież masz go w 4 poście. Wyświetlanie kilku linii to po prostu kolejne linie z plot.

gnuplot nie zna url, musisz to mieć lokalnie.

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

11

Odp: A może by tak kolejne How-To-Do?

OK, ale to jest tylko wyświetlanie jednej temp na wykresie, a mnie chodziło o wyświetlanie różnic, max min itp. (coś na twój wzór) bo kilka wykresów na jednym już mam, a z wyświetlaniem w cyfrach mam problem stąd moja prośba o skrypt.

12

Odp: A może by tak kolejne How-To-Do?

Różnica to odczytanie z danych pierwszej i ostatniej wartości. Wyświetlanie później tego to set label "tu tekst do dopisania". Naprawdę manuala od gnuplota nie czytałeś...

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

13

Odp: A może by tak kolejne How-To-Do?

Nadeszła zima i troche więcej czasu mam więc powrócę do wykresów.
W gnuplocie chce aktualizować linie

set label "teraz 31.58" at graph 0.9,0.1 right

Aktualizację robie poprzez

sed -i -e 's|teraz [0-9][0-9].[0-9][0-9]|teraz 10.13|' /dwor.sh

ale gdy chcę podmienić temp 3 cyfrowę albo ujemną to już sed mi tego nie wykonuje nie mogę dojść w jaki sposób mam to zrobić
Gdzie popełniam błąd?

14

Odp: A może by tak kolejne How-To-Do?

Mała podpowiedź: sed 's/[0-9]\{1,3\}/x/g  zamieni 1,2 lub 3 wystąpienia cyfr na x.

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

15

Odp: A może by tak kolejne How-To-Do?

W wykresie chciałbym zmienić nazwy osi x i wydawało mi się to proste poprzez
set xtics ("Niedziela" Sunday, "Poniedzialek" Monday, "Wtorek" Tuesday, "Sroda" Wednesday, "Czwartek" Thursday, "Piatek" Friday, "Sobota" Saturday)
Niestety chyba nie do końca zrozumiałem zasade zmian Gnuplota
Czy oprócz set xtics któraś z lini musi być też zmieniona?

16

Odp: A może by tak kolejne How-To-Do?

Ja po prostu locale mam na polskie ustawione.

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

17

Odp: A może by tak kolejne How-To-Do?

tzn...
Nie robisz tego gnuplotem?

18

Odp: A może by tak kolejne How-To-Do?

gnuplotem

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

19

Odp: A może by tak kolejne How-To-Do?

Niestety nadal nie rozumię co Masz na myśli (locale) sad

20

Odp: A może by tak kolejne How-To-Do?

W linuksie jest takie pojęcie - ustawienie ich powoduje że system odzywa sie do Ciebie po polsku czy w innym języku który ustawisz. Większość programów które oczywiście mają tłumaczenia automatycznie pod to polegają i piszą w tym samym języku.

PS. Ale nie w OpenWrt - ono nie obsługuje tego.

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

21

Odp: A może by tak kolejne How-To-Do?

Więc w moim przypadku pozostaje tylko podmianka set xtics ("Niedziela" Sunday, .....
ale gdzie popełniam błąd Jesteś w stanie podpowiedzieć? bo narazie lipa

22

Odp: A może by tak kolejne How-To-Do?

http://t16web.lanl.gov/Kawano/gnuplot/tics-e.html

Tu mówią o pozycji, nie nazwach, więc 1,2,3,4 itd.

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

23

Odp: A może by tak kolejne How-To-Do?

Dokładnie to już też czytałem ale gnuplot się wywala
W ten sposób chciałem podmienić

set xtics ("Niedziela" 7, "Poniedzialek" 1

Zapis w pliku też już zmieniłem dla prób

Thursday Jun 2012-06-28 14:42:11 21.25
na
4 Jun 2012-06-28 14:52:11 21.81

z której kolumny miał czytać (....using 3:5...) też zmieniałem i.. sad
dlatego stwierdziłem że czegoś jeszcze w tym nie zrozumiałem dlatego proszę o pomoc

24

Odp: A może by tak kolejne How-To-Do?

Dla danych numerycznych działa. Jak masz

1 3
2 5
3 4

i zrobisz set xtics ("Niedziela" 1, "Poniedzialek" 2)

to podmienia 1/2 na niedziela/poniedziałek.

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

25

Odp: A może by tak kolejne How-To-Do?

Również chciałem przedstawiś wykres temp na wykresie więc

opkg update
opkg install gnuplot

stworzyłem plik pomiar.sh
o zawartości:
#!/bin/sh

GNUPLOT_COMMAND="/tmp/gnuplot_cmd"
touch ${GNUPLOT_COMMAND}

cat > ${GNUPLOT_COMMAND} << __EOF__
set terminal png small size 800,500
set output '/tmp/temp.png'
set title "Wykres temperatury"
set xlabel "godzina"
set timefmt "%Y-%m-%d %H:%M:%S"
set xdata time
set ylabel "temperatura °C"
set format x "%H"
set grid
set key left
plot '/tmp/temp.txt' using 1:3 t 'dane rzeczywiste' with lines lt 1
quit
__EOF__

gnuplot ${GNUPLOT_COMMAND}
rm ${GNUPLOT_COMMAND}



potem

chmod 755


i coś nie działa mówi że w 5 lini jakiś byk

BusyBox v1.19.4 (2012-06-20 14:04:41 CEST) multi-call binary.

Usage: touch [-c] FILE [FILE]...

Update the last-modified date on the given FILE[s]

        -c      Don't create files

/bin/pomiar.sh: line 5: can't create : nonexistent directory

        G N U P L O T
        Version 4.6 patchlevel 0    last modified 2012-03-04
        Build System: Linux mips

        Copyright (C) 1986-1993, 1998, 2004, 2007-2012
        Thomas Williams, Colin Kelley and many others

        gnuplot home:     http://www.gnuplot.info
        faq, bugs, etc:   type "help FAQ"
        immediate help:   type "help"  (plot window: hit 'h')

Terminal type set to 'unknown'
gnuplot>


Co mam nie tak?