❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz

Návod - Měření teploty na Mikrotiku

Návody a problémy s konfigurací.
hafieror
Příspěvky: 616
Registrován: 18 years ago

Re: Návod - Měření teploty na Mikrotiku

Příspěvekod hafieror » 15 years ago

První skript by měl vyhodit teplotu do hodnoty, tak pak nemůže být problém to do mysql dostat, ať už jen z řádku, nebo pomocí php.
0 x

Uživatelský avatar
okoun
Příspěvky: 6980
Registrován: 16 years ago
antispam: Ano
Bydliště: Mordor

Příspěvekod okoun » 15 years ago

a můžeš mi prosím napsat, kam mám přesně doplnit IP, jméno a heslo:

Kód: Vybrat vše

#!/usr/bin/expect
set username [lindex $argv 1]
set password [lindex $argv 2]
spawn telnet [lindex $argv 0]
expect "Login:"
send "$username\r"
expect "Password:"
send "$password\r"
expect "> "
send "/system serial-terminal serial0\r"
expect "+"
set timeout 5000
send \001
expect " "
send \0121
0 x
Povoláním ISP není jen připojovat lidi k internetu, ale také jim dokázat vysvětlit, že bez pořádné investice do HW nelze udělat kvalitní přípojku a domácí síť...

Uživatelský avatar
okoun
Příspěvky: 6980
Registrován: 16 years ago
antispam: Ano
Bydliště: Mordor

Příspěvekod okoun » 15 years ago

tak jsem postupoval podle návodu, všechno funguje, ale do grafu se furt zapisuje 0 C. v logu u mikrotiku je zaznamenané korektní přihlášení a odhlášení. pokud v mikrotiku napíšu příkaz na serial0 tak se teplota ukáže. nevíte kde by mohla být chyba?

graf je na: http://78.102.11.184
0 x
Povoláním ISP není jen připojovat lidi k internetu, ale také jim dokázat vysvětlit, že bez pořádné investice do HW nelze udělat kvalitní přípojku a domácí síť...

Uživatelský avatar
okoun
Příspěvky: 6980
Registrován: 16 years ago
antispam: Ano
Bydliště: Mordor

Příspěvekod okoun » 15 years ago

musim to zde napsat ale bohuzel jsem prisel na jednu dost zasadni vadu, script nechce vycitat záporné hodnoty :cry:
0 x
Povoláním ISP není jen připojovat lidi k internetu, ale také jim dokázat vysvětlit, že bez pořádné investice do HW nelze udělat kvalitní přípojku a domácí síť...

Uživatelský avatar
okoun
Příspěvky: 6980
Registrován: 16 years ago
antispam: Ano
Bydliště: Mordor

Příspěvekod okoun » 15 years ago

zasílám upravený a hlavně funkční script
je třeba nainstalovat balíčky, které jsou napsány v prvním příspěvku

opravil jsem:
1. formát teploty již korektně zobrazen (+012.6) dříve bylo například (....+012.6)
2. ošetřen výpadek teplotního čidla tak aby hodnota stále držela na poslední naměřené
3. teploměr ukazuje i pod nulu

soubor:hafi_temp_dw.sh

Kód: Vybrat vše

#!/usr/bin/expect
set username [lindex $argv 1]
set password [lindex $argv 2]
spawn telnet [lindex $argv 0]
expect "Login:"
send "$username\r"
expect "Password:"
send "$password\r"
expect "> "
send "/system serial-terminal serial0\r"
expect "."
set timeout 9000
send \001
expect " "
send \0121


soubor:rrd_logger.pl

Kód: Vybrat vše

#!/usr/bin/perl
#
use RRDs;

sub CreateGraph
{

        my $rrd = $_[1];
        my $img = $_[2];

        RRDs::graph "$img/logger-$_[0].png",
                "--lazy",
                "-s -1$_[0]",
                "-t Teplota nekde ",
                "-h", "170", "-w", "500",
                "-a", "PNG",
                "-v stupne C",

                "DEF:intemp=$rrd/logger.rrd:in-temp:AVERAGE",
                "LINE2:intemp#66cc00:Cidlo1    Teplota",
                "GPRINT:intemp:MIN:  Min\\: %2.lf",
                "GPRINT:intemp:MAX: Max\\: %2.lf",
                "GPRINT:intemp:AVERAGE: Pru\\: %4.1lf",
                "GPRINT:intemp:LAST: Aktualni\\: %2.lf stupne C\\n";


        if ($ERROR = RRDs::error) { print "$0: unable to generate $_[0] graph: $ERROR\n"; }
}

# location of rrdtool databases
my $rrd = '/cesta kde maji byt obrazky';
# location where the images should go
my $img = '/cesta kde maji byt obrazky';

my $tempIN  = `/kde se nachazi soubor/hafi_temp_dw.sh ipadresa jmeno heslo | grep [0-9]C | cut -d C -f 1`;
chop($tempIN);



# $tempIN =~ /^(.*)([\+\-]\d+\.\d+)C?$/;
 $tempIN =~ /^(.*)([+-]\d+\.\d+)C?$/;

my $teplota1=$2;
if ($teplota1 >0 or $teplota1 < 0){



open (RW,">/kde se nachazi aktualni teplota/aktualni.txt") or die "nemohu otevrit soubor aktualni";
print RW $teplota1;
close RW;
}
else
{open (R,"/kde se nachazi aktualni teplota/aktualni.txt") or die "nemohu otevrit soubor aktualni";
$teplota1=<R>;
close R;
}


# if rrdtool database doesn't exist, create it
if (! -e "$rrd/logger.rrd")
        {
                print "creating rrd database ...\n";
                RRDs::create "$rrd/logger.rrd",
                        "-s 300",
                        "DS:in-temp:GAUGE:600:-20:100",
#                       "DS:out-temp:GAUGE:600:-20:100",
                        "RRA:AVERAGE:0.5:1:576",
                        "RRA:AVERAGE:0.5:6:672",
                        "RRA:AVERAGE:0.5:24:732",
                        "RRA:AVERAGE:0.5:144:1460";
        }
# insert value into rrd
RRDs::update "$rrd/logger.rrd", "-t", "in-temp", "N:$teplota1";
if ($ERROR = RRDs::error) { print "$0: unable to update $rrd/logger.rrd: $ERROR\n"; }

# create graphs
&CreateGraph("day",$rrd,$img);
&CreateGraph("week",$rrd,$img);
&CreateGraph("month",$rrd,$img);
&CreateGraph("year",$rrd,$img);

print $2



musite tedy mit 3 soubory: hafi_temp_dw.sh, rrd_logger.pl, aktualni.txt

cron zůstává stejný

odzkoušeno na routerboardu s os 3.xx
0 x
Povoláním ISP není jen připojovat lidi k internetu, ale také jim dokázat vysvětlit, že bez pořádné investice do HW nelze udělat kvalitní přípojku a domácí síť...

Uživatelský avatar
reset
Příspěvky: 2902
Registrován: 17 years ago
Bydliště: intERnet

Příspěvekod reset » 15 years ago

jaky na to pouzivat teplomery ? ty od papoucha ?
0 x
ERnet tady, ERnet tam, ERnet vsude kam se podivam


Uživatelský avatar
reset
Příspěvky: 2902
Registrován: 17 years ago
Bydliště: intERnet

Příspěvekod reset » 15 years ago

jj presne ty.
0 x
ERnet tady, ERnet tam, ERnet vsude kam se podivam

ef
Příspěvky: 615
Registrován: 19 years ago

Příspěvekod ef » 15 years ago

Nevím si už rady z výstupem. Skript který tu uvádíte my vyplivne nesmysl ve tvaru ^[[?6c^[[24;3R. Nevíte jak to obelstít? Testováno na MK 3.30 a 4.4. Teplotu na terminálu v MK normálně vyčtu, ale vzdáleně nee. Děkuji za každé nakopnutí.
0 x

Uživatelský avatar
lwq
Příspěvky: 1659
Registrován: 19 years ago
antispam: Ano
Bydliště: MistyMountain
Kontaktovat uživatele:

Příspěvekod lwq » 13 years ago

0 x
LWQ ... Vice na www.lwq.cz (treba GIOM 3000 atp.) ...

Uživatelský avatar
lwq
Příspěvky: 1659
Registrován: 19 years ago
antispam: Ano
Bydliště: MistyMountain
Kontaktovat uživatele:

Příspěvekod lwq » 13 years ago

Tak uz sem konecne vyplodil nejaky ten navod ... Je to docela prasarna, ale funguje to a o to jde ... 8)

http://www.papouch.com/cz/shop/product/ ... -mikrotik/ - dole
0 x

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 13 years ago

hej, chlape, neni to moc složitý? tohle se dá udělat jednim scriptem na straně mkčka a druhym na straně serveru a třetí pro zobrazení dat na webu.

edit: Jo ty to čteš přes vzdálenej terminal ale stejně to zvládnou dva scripty.
0 x

Uživatelský avatar
lwq
Příspěvky: 1659
Registrován: 19 years ago
antispam: Ano
Bydliště: MistyMountain
Kontaktovat uživatele:

Příspěvekod lwq » 13 years ago

hapi: jak jinak to cist z serial0, kdyz to RouterOS neumi ? Nebo sem neco prehlednul ??? Tohle byla jedina rozumna moznost ... :mrgreen:
0 x

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 13 years ago

měl jsem to udělaný tak, že jsem si zpřístupnil seriak na telnet. Seriak jde přesměrovat do telnetu na kterej se připojíš vzdáleně. To jde udělat lehce. Ty loguješ data ze seriaku na disk. Já jsem měl php script kterej se napojil na telnet MKčka a poslal nějaký písmeno. To byl pokyn pro teploměr aby poslal teplotu která se přes seriak a telnet dostala do phpčka který to uložilo do rrd. Druhej script na webu pohodlně generoval jpgčka z rrd. Minimální zátěž pro RBčko (telnet) a neopotřebovává se nand paměť a navíc si vyčtu teplotu kdy chci já a ne kdy chce MKčko.

Jsem PHPkář takže vše v PHP a vše tedy pohodlně dostupný pro web.
0 x

Uživatelský avatar
lwq
Příspěvky: 1659
Registrován: 19 years ago
antispam: Ano
Bydliště: MistyMountain
Kontaktovat uživatele:

Příspěvekod lwq » 13 years ago

hapi: jo ja sem taky PHPkar :wink: ... ale tady je to jinak ... je tam jen TM_Mikrotik a RB411U pripojeny pres 3G Hua E1750, tedy bez verejky a zadneho dalsiho serveru, ktery by si na sahal napriklad pres sshko, jo special-login sem tam mel mnooo ... :mrgreen:
0 x