❗️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

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

Příspěvekod hafieror » 17 years ago

Ná základě diskuze viewtopic.php?f=7&t=1721&p=10209&hilit=m%C4%9B%C5%99en%C3%AD+teploty#p10209
nasměrování od kamarádů se mě podařilo udělat funkční řešení, jak dostat do grafu průběh teplot z teploměru pro seriový port http://www.papouch.com/shop/scripts/_de ... cislo=0038

Netvrdím, že moje řešení je nějaké ideální, ale funguje. Tak předem prosím rýpaly, co tu začnou vykřikovat, že je to blbě napsaný, ať buď ukáží svoji funkční verzi, nebo mlčí. Vyčítání funguje pouze z PC, z rb133 nefunguje viz diskuze uvedená výše a jinde jsme to zatím nezkoušel.

Pro vyčítání budete potřebovat linuxovej stroj s nainstalovaným expect, rrdtool, librrds-perl a 2 skripty:

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 5000
send \001
expect " "
send \0121


a rrd_logger.pl (co dělá tento soubor se mě neptejte, ten je staženej někde z netu a lehce upravenej)

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 Leiden temperature ",
                "-h", "200", "-w", "600",
                "-a", "PNG",
                "-v degrees C",

                "DEF:intemp=$rrd/logger.rrd:in-temp:AVERAGE",
                "LINE2:intemp#FF0000:Room    Temperature",
                "GPRINT:intemp:MIN:  Min\\: %2.lf",
                "GPRINT:intemp:MAX: Max\\: %2.lf",
                "GPRINT:intemp:AVERAGE: Avg\\: %4.1lf",
                "GPRINT:intemp:LAST: Current\\: %2.lf degrees C\\n";


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

# location of rrdtool databases
my $rrd = '/var/www/temp';
# location where the images should go
my $img = '/var/www/temp';

my $tempIN  = `/usr/local/bin/hafi_temp_dw.sh ip_adresa username heslo | grep + | cut -d C -f 1`;
print $tempIN;
chop($tempIN);
# 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:$tempIN";
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);
# Aktualni teplota se bude zapisovat do /tmp/neco.txt
my $teplota = $tempIN; $teplota = 0 + $teplota; `echo $teplota°C > /tmp/motyl.txt`  ;
# print $teplota;


První skript slouží pro vytažení teploty, druhý ho spustí a vygeneruje grafy. V druhém si upravte cesty k adresáři pro ukládání obrázků a rrd databáze a pak doplňte ip adresu, jméno a heslo pro přihlášení k mikrotiku.
Ještě je třeba zajistit pravidelné spouštění rrd_logger.pl třeba zapsáním řádku do cronu

Kód: Vybrat vše

*/5 *     * * *   root    /usr/local/bin/rrd_logger.pl >> /var/log/temp.log 2>&1


A teď kdyby se do toho pustil někdo znalejší a upravil skripty tak, aby existoval konfigurační soubor, kam by se psaly ip adresy mikrotiku v siti a grafy by se generovaly pro více mikrotiku za použití jednoho skriptu.

Pro ty co se s linuxem perou, tak vytvořeným skriptům musíte přiřadit atribut pro spouštění třeba

Kód: Vybrat vše

chmod +x soubor
0 x

michal.siman
Příspěvky: 1019
Registrován: 17 years ago
Bydliště: Plzeň-jih

Příspěvekod michal.siman » 17 years ago

muzu se zeptat na co to pouzivas ten teplomer? na mereni teploty mikrotiku a nebo na mereni venkovni teploty jako sluzby uzivatelum napr.?

ja bych chtel nabidnou uzivatelum nasi site na webu informaci o teplote, hodne lidi zajima kolik je a jak se teplota vyviji a bylo by zajimave sledovat to na ruznych castech mesta a v okolinich vesnicich.
0 x
Snazim se nejak zacit, budte na me prosim hodni, dekuji :-) az se neco naucim, ochotne poradim dalsim v rade ...

hafieror
Příspěvky: 616
Registrován: 18 years ago

Příspěvekod hafieror » 17 years ago

Pokud zavřeš počítač a spoustu apček do plechový skříně někam na komín, tak je dobrý vědět co se tam děje a případně skříň osadit nějakým větrákem.
0 x

michal.siman
Příspěvky: 1019
Registrován: 17 years ago
Bydliště: Plzeň-jih

Příspěvekod michal.siman » 17 years ago

hafieror píše:Pokud zavřeš počítač a spoustu apček do plechový skříně někam na komín, tak je dobrý vědět co se tam děje a případně skříň osadit nějakým větrákem.

aho, to chapu a souhlasim, jen me zajimalo jestli to pozivas na tohle nebo jako mereni teploty venkovni. diky
0 x
Snazim se nejak zacit, budte na me prosim hodni, dekuji :-) az se neco naucim, ochotne poradim dalsim v rade ...

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

Příspěvekod reset » 17 years ago

teplomery jsem zakoupil, pripojil na seriovy port, v biosu povolil serial1

Kód: Vybrat vše

> /system serial-terminal serial0
port is already in use


zkouseno na MKv2.9.27

nevite proc ?
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 » 17 years ago

tak jsem na to v zapeti prisel

Kód: Vybrat vše

/system console disable  <cislo portu>

vypnout seriovou konzoli pro ovladani MK
0 x
ERnet tady, ERnet tam, ERnet vsude kam se podivam

hafieror
Příspěvky: 616
Registrován: 18 years ago

Příspěvekod hafieror » 17 years ago

A nastavit rychlost 9600
0 x

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

Příspěvekod reset » 17 years ago

to se nastavuje kde ?
0 x
ERnet tady, ERnet tam, ERnet vsude kam se podivam

hafieror
Příspěvky: 616
Registrován: 18 years ago

Příspěvekod hafieror » 17 years ago

Kód: Vybrat vše

/system console
add disabled=yes port=serial0 term="vt102"


Kód: Vybrat vše

/port
set 0 baud-rate=9600 data-bits=8 flow-control=none name="serial0" parity=none \
    stop-bits=1
0 x

vencakubik
Příspěvky: 46
Registrován: 17 years ago
Kontaktovat uživatele:

Příspěvekod vencakubik » 17 years ago

Zakoupil jsem TM teploměry, připojil na RB532 s MK 3.9, zkoušel vše možné od vašeho návodu a prd.

[admin@MikroTik] > system console print
Flags: X - disabled, U - used, F - free
# PORT TERM
0 X serial0 vt102

[admin@MikroTik] > system serial-terminal serial0 ;
[Ctrl-A is the prefix key]

[Q - quit connection] [B - send break]
[A - send Ctrl-A prefix] [R - autoconfigure rate]

nastaveno rychlost na 9600 data bit 8, parity none, stop bit 1
0 x

hafieror
Příspěvky: 616
Registrován: 18 years ago

Příspěvekod hafieror » 17 years ago

Zřejmě má RB-532 stejně nestandardní seriový port jako RB-133 viz moje věta v první příspěvku

"Vyčítání funguje pouze z PC, z rb133 nefunguje viz diskuze uvedená výše a jinde jsme to zatím nezkoušel."
0 x

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

Příspěvekod reset » 17 years ago

problemy s com porty se resily tady
http://forum.ispforum.cz/viewtopic.php?f=7&t=1721&p=26283&hilit=teplota&sid=94f878c79be1c2b23530b7b7b26092b6&sid=94f878c79be1c2b23530b7b7b26092b6#p26283
RB masiny jsou sice fine, ale .... ma to dost much asi tak stejne jako MKv3rc10 (oficialni nazev MKv3.10)

Zkousel nekdo teplotni cislo na ALIX masinach ?
0 x
ERnet tady, ERnet tam, ERnet vsude kam se podivam

vencakubik
Příspěvky: 46
Registrován: 17 years ago
Kontaktovat uživatele:

Příspěvekod vencakubik » 17 years ago

Dobrá, jdu zkusit nainstalit nějakej PC.. :) a zkusim teploměr tam.
0 x

vencakubik
Příspěvky: 46
Registrován: 17 years ago
Kontaktovat uživatele:

Příspěvekod vencakubik » 17 years ago

Potvrzeno. Na PC funguje bez problémů.

[admin@MikroTik] > system serial-terminal serial0
[Ctrl-X is the prefix key]

+023.6C
[Q - quit connection] [B - send break]
[X - send Ctrl-X prefix] [A - autoconfigure rate]

Welcome back!
[admin@MikroTik] >
0 x

Laibir
Příspěvky: 369
Registrován: 18 years ago

Příspěvekod Laibir » 17 years ago

Nevíte někdo v čem přesně je problém proč to na RBčkách nejede? Nebo to nejede jen s 133 a 532?
0 x