26

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

Co może być nie tak, że nie może utworzyć tego pliku?

27

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

Skrypt jest dobry. Strzelam że pod windowsem go robiłeś i masz niewłaściwe końce linii.

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

28

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

Robiłem to w edytorze vi

29

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

Mi się normalnie wykonuje.

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

30 (edytowany przez manguscik 2016-01-09 20:46:36)

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

Cezary mam pytanko korzystając z tego skryptu:

#!/bin/sh

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

cat > ${GNUPLOT_COMMAND} << __EOF__
set terminal png small size 800,500
set output '/wykres.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 '/dane.txt' using 2:3 t 'temperatura na zewnatrz' with lines lt 1
quit 
__EOF__

pobrać dane z pliku txt ale np aby pobrał tylko jakiś zakres danych np ostanie 24 godziny ?

Oto moj przykładowy plik z danymi

16-01-08 00:00:00    -10
16-01-08 01:00:00    -8
16-01-08 02:00:00    -5
16-01-08 03:00:00    -4
16-01-08 04:00:00    -2
16-01-08 05:00:00    0
16-01-08 06:00:00    1
16-01-08 07:00:00    2
16-01-08 08:00:00    3
16-01-08 09:00:00    4
16-01-08 10:00:00    4
16-01-08 11:00:00    5
16-01-08 12:00:00    6
16-01-08 13:00:00    7
16-01-08 14:00:00    5
16-01-08 15:00:00    5
16-01-08 16:00:00    4
16-01-08 17:00:00    3
16-01-08 18:00:00    3
16-01-08 19:00:00    4
16-01-08 20:00:00    3
15-01-08 21:00:00    2
16-01-08 22:00:00    1
16-01-09 23:00:00    0
16-01-09 00:00:00    0
16-01-09 01:00:00    -1
16-01-09 02:00:00    -2
16-01-09 03:00:00    -3
16-01-09 04:00:00    -6
16-01-09 05:00:00    -8
16-01-09 06:00:00    -9
16-01-09 07:00:00    -7
16-01-09 08:00:00    -6
16-01-09 09:00:00    -3
16-01-09 10:00:00    -2
16-01-09 11:00:00    0
16-01-09 12:00:00    2
16-01-09 13:00:00    3
16-01-09 14:00:00    4
16-01-09 15:00:00    3
16-01-09 16:00:00    2
16-01-09 17:00:00    1
16-01-09 18:00:00    0
16-01-09 19:00:00    -1
16-01-09 20:00:00    -2

Jak jest zakres godzin tylko z 1 dnia to nie ma problemu i nie wiem teraz jak zrobić aby wygenerować wykres z ostatnich 24h

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

31

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

Zrób sobie tak żeby były dane które chcesz. Przez tail -n 24  możesz sobie wyciąć określoną liczbę linię. Jeżeli zaś liczna jest zmienna bi nie masz danych z niektórych godzin to zostaje obróbka pliki perlem/sedem/awk  czy czym tam chcesz i umiesz. Zwykły skrypt.

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

32

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

zrobiłem to tak

#!/bin/sh

tail -n 25 dane.txt > dane24h.txt

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

cat > ${GNUPLOT_COMMAND} << __EOF__
set terminal png small size 800,500
set output '/wykres.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 '/dane24h.txt' using 2:3 t 'temperatura na zewnatrz' with lines lt 1
quit 
__EOF__

gnuplot ${GNUPLOT_COMMAND}
rm ${GNUPLOT_COMMAND}

ale mam teraz jeszcze problem z generowaniem wykresu a mianowicie oś Y z temperaturą jest dobrze wyskalowana a oś x z godziną nie jest opisana prawidłowo mam 00 12 00 12  co może być źle jeszcze

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

33

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

Więc zrób odpowiednie opcje gnuplota żeby rysował oś X dla każdej danej.

PS. Zrobisz > dane24h.txt czyli do bieżącego katalogu a odwołujesz się do /dane24h.txt czyli w głównym. Na pewno tak chciałeś?

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

34 (edytowany przez manguscik 2016-01-10 11:12:27)

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

Przeczytałem parę poradników i nadal nie wiem czemu on nie chce mi sczytać 2 kolmy z pliku dane.txt kóra wygląda tak:

16-01-09 02:00    -5
16-01-09 03:00    -4
16-01-09 04:00    -2
16-01-09 05:00    0
16-01-09 06:00    1
16-01-09 07:00    2
16-01-09 08:00    3
16-01-09 09:00    4
16-01-09 10:00    4
16-01-09 11:00    5
16-01-09 12:00    6
16-01-09 13:00    7
16-01-09 14:00    5
16-01-09 15:00    5
16-01-09 16:00    4
16-01-09 17:00    3
16-01-09 18:00    3
16-01-09 19:00    4
16-01-09 20:00    3
15-01-09 21:00    2
16-01-09 22:00    1

skrypt wygląda tak:

#!/bin/sh

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

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

gnuplot ${GNUPLOT_COMMAND}
rm ${GNUPLOT_COMMAND}

a wykres robi mi w ten sposób
Zdjęcia

Tą komendą set timefm został poinformowany o formacie
set format x "%H:%M" jest widoczny na wykresie
prawidłowo wskazany plik using 2:3 czyli kolumna 3 oś Y a kolumna 2 oś x a mimo wszystko źle opisuje oś.

Próbowałem na różne sposoby ale nie mogę sobie poradzić z tym opisem osi x


Oki problem rozwiązany błąd leżał po stronie set timefmt tak było "%Y-%m-%d %H:%M a kolumna 2 ma format %H:%M

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

35

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

Czy ten format danych dla gnuplota jest prawidłowy ?

70|2016-01-20 18:56:13|1013.49|-1.60|84.20|33.00|-4.60|21.00
71|2016-01-20 19:06:15|1013.64|-1.70|83.80|33.70|-4.50|21.00
72|2016-01-20 19:16:16|1013.70|-1.80|81.60|33.80|-4.40|21.00
73|2016-01-20 19:26:17|1013.67|-1.80|81.40|33.70|-4.40|21.00
74|2016-01-20 19:36:18|1013.62|-1.90|80.80|36.10|-4.30|21.00
75|2016-01-20 19:46:19|1013.61|-1.90|81.10|34.90|-4.30|21.20
76|2016-01-20 19:56:21|1013.68|-1.90|81.10|34.60|-4.30|21.30
77|2016-01-20 20:06:22|1013.71|-2.00|80.60|34.40|-4.30|21.40
78|2016-01-20 20:16:23|1013.77|-2.00|80.10|34.10|-4.10|21.40
79|2016-01-20 20:26:24|1013.86|-2.00|80.60|34.10|-4.20|21.40
80|2016-01-20 20:36:25|1013.81|-2.00|81.10|33.80|-4.30|21.30
81|2016-01-20 20:46:26|1013.96|-2.00|81.80|34.00|-4.40|21.30
82|2016-01-20 20:56:28|1014.06|-2.10|81.60|33.90|-4.40|21.30
83|2016-01-20 21:06:29|1014.08|-2.10|81.50|33.60|-4.40|21.30
84|2016-01-20 21:16:30|1014.08|-2.10|81.30|33.70|-4.20|21.20
85|2016-01-20 21:26:31|1014.13|-2.10|81.80|33.50|-4.30|21.20
86|2016-01-20 21:36:32|1014.19|-2.10|79.50|33.50|-4.00|21.20
87|2016-01-20 21:46:34|1014.22|-2.10|80.70|33.30|-4.20|21.10

Bo mając ten skrypt chcę wygenerować  wykres ciśnienia z kolumny 5 w stosunku do daty-czasu kolumna 3 

#!/bin/sh

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

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

gnuplot ${GNUPLOT_COMMAND}
rm ${GNUPLOT_COMMAND}

i wywala mi ten błąd:

root@OpenWrt:~# wykres.sh

plot '/mnt/dysk/meteo/dane.txt' using 3:5 t 'dane rzeczywiste' with lines lt 1
                                                                             ^
"/tmp/gnuplot_cmd", line 11: warning: Skipping data file with no valid points

plot '/mnt/dysk/meteo/dane.txt' using 3:5 t 'dane rzeczywiste' with lines lt 1
                                                                              ^
"/tmp/gnuplot_cmd", line 11: x range is invalid

O co mu chodzi przecie format daty jest dobry

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

36

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

| zamień na spacje, pewnie nie potrafi tego przetrawić w takiej formie.

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