❗️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
Re: Návod - Měření teploty na Mikrotiku
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
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íť...
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
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íť...
musim to zde napsat ale bohuzel jsem prisel na jednu dost zasadni vadu, script nechce vycitat záporné hodnoty 

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íť...
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
soubor:rrd_logger.pl
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
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íť...
jaky na to pouzivat teplomery ? ty od papoucha ?
0 x
ERnet tady, ERnet tam, ERnet vsude kam se podivam
jj presne ty.
0 x
ERnet tady, ERnet tam, ERnet vsude kam se podivam
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
- lwq
- Příspěvky: 1659
- Registrován: 19 years ago
- antispam: Ano
- Bydliště: MistyMountain
- Kontaktovat uživatele:
0 x
LWQ ... Vice na www.lwq.cz (treba GIOM 3000 atp.) ...
- lwq
- Příspěvky: 1659
- Registrován: 19 years ago
- antispam: Ano
- Bydliště: MistyMountain
- Kontaktovat uživatele:
Tak uz sem konecne vyplodil nejaky ten navod ... Je to docela prasarna, ale funguje to a o to jde ...
http://www.papouch.com/cz/shop/product/ ... -mikrotik/ - dole

http://www.papouch.com/cz/shop/product/ ... -mikrotik/ - dole
0 x
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.
edit: Jo ty to čteš přes vzdálenej terminal ale stejně to zvládnou dva scripty.
0 x
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.
Jsem PHPkář takže vše v PHP a vše tedy pohodlně dostupný pro web.
0 x
- lwq
- Příspěvky: 1659
- Registrován: 19 years ago
- antispam: Ano
- Bydliště: MistyMountain
- Kontaktovat uživatele:
hapi: jo ja sem taky PHPkar
... 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 ... 


0 x