1 Naposledy upravil: tomas_f1 (2013-02-26 12:01:41)

Téma: Monitorování na vlastním webu

Zdravím,
tak po urputném boji jsem také rozchodil vše co jsem potřeboval (chtěl). Podívejte se na
http://temp.protom.biz
Je to moje prvotvorba. Přizpůsobil jsem to i mobilním telefonům. Efektní je zapnutí fullscreenu.
Sdělte mi i své názory. Díky.

2 Naposledy upravil: TiborTeam (2013-02-26 12:51:26)

Re: Monitorování na vlastním webu

Jednoduché a hezké !
V tom tabulkovém výpisu si můžeš upravit hodnoty ať máš všechny s desetinou ....

$temp00 = str_pad($temp00, 2, "0", STR_PAD_RIGHT); 

doplnim nuly do des. mista - 26.5 udělá 26.50  anebo z 26 udělá 26.00

Jenom co mi padlo do oka :-))

SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

3

Re: Monitorování na vlastním webu

OK. Vypadá to lépe. Použil jsem ale toto:
number_format($row['TEMP_T1'],2,`.`,` `)
Tvůj tip mi nuly pouze přilepil bez ohledu na desetinnou čárku, takže z čísla 2 bylo rázem 200 namísto 2.0
Díky za tip!

Ještě si zkuste "přizoovovat" graf. To je teda práce tvůrce knihovny js, nikoli moje, ale je to docela dobrý.

4 Naposledy upravil: TiborTeam (2013-02-26 13:40:07)

Re: Monitorování na vlastním webu

aha :-) sorry, já nemám bez desetin ... :-)

Co to je za grafologa ??? tvůrce grafu .... Nějaký odkaz ?

SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

5

Re: Monitorování na vlastním webu

Shodou okolnosti jsem se včera vrátil ke skoro rok odloženým pokusům s vlastní stránkou s php.
Nedaří se mi ale vůbec nic. zkouším posílat dvě hodnoty na server ( http_get(195,95,205,110, 'krevla','/welcome.php?', '&tep=', sys[313], '&nap=', sys[433]);) ale nejsem schopen je ani zobrazit. Myslím si, že dělám nějakou základní chybu. Zřídil jsem si server host.sk jen na tyto pokusy.
Byl by jste někdo (když vám pošlu přístupové údaje) mi nastavit alespoň zobrazení těch dvou hodnot, které tam posílám - abych mohl na něčem začít stavět.

6 Naposledy upravil: tomas_f1 (2013-02-26 14:08:52)

Re: Monitorování na vlastním webu

Hodnoty zjišťuji tímto způsobem:

$a = file_get_contents("http://IPADRESA:PORT/temp2.htm"); To jako aktuální hodnoty. Do DB je čtu z XML.

Přes http_get jsem to nepochopil....

7

Re: Monitorování na vlastním webu

Tak to je také cesta zkusím to.
Přesto bych rád rozlousnul http_get. Může nastat krátkodobý jev, který dotazem přes file_get_contents nezastihnu, ale program, když jej vyhodnotí, tak jej může okamžitě odeslat přes http_get.

tomas_f1 napsal:

Hodnoty zjišťuji tímto způsobem:

$a = file_get_contents("http://IPADRESA:PORT/temp2.htm"); To jako aktuální hodnoty. Do DB je čtu z XML.

Přes http_get jsem to nepochopil....

8 Naposledy upravil: TiborTeam (2013-02-26 16:10:56)

Re: Monitorování na vlastním webu

Večer tady hodím ukázku na http_get ....
Jenom v rychlosti ...
http_get(195,95,205,110, 'krevla','/welcome.php?', '&tep=', sys[313], '&nap=', sys[433]);
nezobrazí hodnoty !!!
welcome.php musí zpracovat vstupní údaje a uložit např. do SQL anebo *.txt ...
Já to dělám do obou ... v txt jenom poslední hodnoty v jednom řádku .....

SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

9

Re: Monitorování na vlastním webu

Vím, že to musím zpracovat s php skriptem, ale nedaří se a nedaří se ....

Budu se těšit na večerní ukázku.
Díky.

10

Re: Monitorování na vlastním webu

Tak to se taky těším.... smile

11

Re: Monitorování na vlastním webu

Jestli to pomůže, tak já používám:
http_get(192,168,1,80,'192.168.1.80','/vytapeni/data2.php?d1=',ram[50],'&d2=',ram[51],'&d3=',ram[52],'&d4=',ram[53],'&d5=',ram[54],'&d6=',ram[55]);

a v data2.php to čtu přes:
$raw_udaje["aTeplota"] = htmlspecialchars($_GET['d1'], ENT_QUOTES, "UTF-8");
$raw_udaje["zTopna"] = htmlspecialchars($_GET['d2'], ENT_QUOTES, "UTF-8");
$raw_udaje["zpateckaT"] = htmlspecialchars($_GET['d3'], ENT_QUOTES, "UTF-8");
$raw_udaje["bojlerT"] = htmlspecialchars($_GET['d4'], ENT_QUOTES, "UTF-8");
$raw_udaje["aTopna"] = htmlspecialchars($_GET['d5'], ENT_QUOTES, "UTF-8");
$raw_udaje["venkovniT"] = htmlspecialchars($_GET['d6'], ENT_QUOTES, "UTF-8");

a nemám sebemenší problém. Už mi to tak běží přes rok.

12 Naposledy upravil: TiborTeam (2013-02-27 07:42:00)

Re: Monitorování na vlastním webu

Takže základ je jasný, odesílám z SDS ... já mám místní server, takže místní IP:

http_get(10,0,0,22, '10.0.0.22','/lihen/datatxt.php?temp00=', sys[310],'&temp01=', sys[311],'&otoc=', sys[231],'&topeni=', sys[232],'&otocz=', sys[144],'&otocdd=', sys[64]);

v datatxt.php mám tohle, trošku zkrátím, vynechám nějaké to formátovaní, atd....

<?php $_SERVER["PHP_SELF"]?>
<?php
$raw_udaje["temp00"] = htmlspecialchars($_GET['temp00'], ENT_QUOTES, "UTF-8");
$raw_udaje["temp01"] = htmlspecialchars($_GET['temp01'], ENT_QUOTES, "UTF-8");
$raw_udaje["otoc"] = htmlspecialchars($_GET['otoc'], ENT_QUOTES, "UTF-8");
$raw_udaje["topeni"] = htmlspecialchars($_GET['topeni'], ENT_QUOTES, "UTF-8");
$raw_udaje["otocz"] = htmlspecialchars($_GET['otocz'], ENT_QUOTES, "UTF-8");
$raw_udaje["otocdd"] = htmlspecialchars($_GET['otocdd'], ENT_QUOTES, "UTF-8");

//*********** u teplot posunu des. tecku *******************
$temp00 = $raw_udaje["temp00"]/100;
$temp01 = $raw_udaje["temp01"]/100;

//*********** pokud je chyba cidla ukládám 200 *************
if ($temp00 > 200) $temp00 = 200;
if ($temp01 > 200) $temp01 = 200;

//*********** tady tvorim vlastni TIMESTAMP / muze se pouzit i SQL timestamp *****
$rec_time = date("H:i:s");
$rec_date = date("Y-m-d"); // datum
$in01 = date("Y");
$in02 = date("m");
$in03 = date("d");
$in04 = date("H");
$in05 = date("i");
$in06 = date("s");
$index = $in01.$in02.$in03.$in04.$in05.$in06;

//*********** otviram db **********************
include "open_db.php";

//*********** vkladam do db **********************
$result = mysql_query("INSERT INTO `lihen` ( `index` ,`rec_date` , `rec_time` , `temp00`, `temp01`, `otoc`, `topeni`, `otocz` , `otocdd`)
     VALUES ('$index', '$rec_date', '$rec_time', '$temp00', '$temp01', '$otoc', '$topeni', '$otocz',  '$otocdd')");

//*********** zaviram db **********************
include "close_db.php";

// *********** a jeste ulozim posledni zaznam do txt ******
$filename = "data.txt";
 $file=fopen($filename, "w");
 if ($file)
 {
    $textline = $index.";".$rec_date.";".$rec_time.";".$temp00.";".$temp01.";".$otoc.";".$topeni.";".$otocz.";".$otocdd."\n";
    $text=fwrite($file,$textline);
 }
 if ($file) { fclose($file); };

?>

Tabulku v db dělám ručně, stejně txt ve složce. U txt souboru nezapomenout upravit atributy pro zápis !
Ukládání do txt jde udělat i jiným způsobem ale toho je na webu hafo ... Google to ví :-)
Pokud jsem na něco zapoměl, tak se ptejte ... anebo ještě někdo doplní :-)

SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

13

Re: Monitorování na vlastním webu

Tak to ja jsem v PHP ještě vetší amatér než jste doufal:
myslím si že:
odeslání z programu je jasné,
ve všech  příručkách se píše o deklarování proměnné což tady nevím kde je?
předpokládám, že do proměnné: $raw_udaje["temp00"] se načte teplota temp00 - což je sys 310
dále se tato podělená 100 uloží do proměnné $temp00
plus podmínka při vadném čidle
následuje časové razítko - to jsem zatím nepochopil
pak se otevře databáze, kterou jsem vytvořil (ale nevím jak ) ručně někde na servru
vložím do DB a zavřu ji
pak je tam uloženi do txt (to je ekvivalentní uložení v textové podobě???)

Možná jsem něco pochopil a něco ne, ale co mi nejvíc vadí je,že já nejsem schopen dostat údaje z proměných do nějakého html, které mi je zobrazí.
Zkoušel jsem nějaké výpočty s php kdy vkládám číslaa potvrzuji tlačítkem, tak to mi šlo, ale zobrazit data odeslaná z sds se mi nedaří. Proto jsem toužil po nějakém úplně triviálním příkladu s jednou hodnotou, minimální grafikou, ale úplně kompletním i s tím jak se to ukládá do adresáře na servru ..., abych to pochopil a mohl začít tvořit své stránky.
Díky za ochotu.

14 Naposledy upravil: TiborTeam (2013-02-28 09:42:19)

Re: Monitorování na vlastním webu

Krevla: příručka je dobrá jako poslední záchrana :-)))) a koukám, že to bude na delší dopisování :-)
Takže ješte jednou, poloraficky :-)
Pokud chceš z SDS odesílat data a někde zobrazit, tak musí být tahle cesta ....
SDS posílá ----> PHP zpracuje a uloží ----> DB nebo txt ----> PHP nebo HTML vytahuje z DB/txt a zobrazuje
První tři body jsem popsal ....
Další možnost je šahat z HTML/PHP do SDS a číst data z xml, txt, atd .... jak psal tomas_f1

Ty proměnné jsi pochopil dobře .... htmlspecialchars je podstatě překlad do čitelné podoby pro html a vyhození různých znaků ... nevím přesnou definici, najdeš na google ....

Časové razítko vyhoď z hlavy, nepotřebuješ .... ale do DB bys měl dát nějakou hodnotu která bude jedinečná a pokaždé jiná. Jde použít i jiné metody převodu data a času, např. getTimestamp() nebo mktime() .....

Pokud budu mít chvilku, tak ti tady hodím i php na vytvoření DB ....

Do txt to nemusíš vůbec ukládat, je to opravdu jenom jako ekvivalent a navíc .... můžeš si vybrat jestli db nebo txt.

Chvilka už se našla :-) tak tady je php na vytvoření tabulky která má tady název data_sds
Předpokládám existenci nějaké databáze a přístupu. Pro jistotu tady dám i php na open/close DB

createtable.php

<?php
include "open_db.php";

mysql_query("CREATE TABLE IF NOT EXISTS `data_sds` (
  `index` int(11) NOT NULL auto_increment,
  `rec_date` date NOT NULL,
  `rec_time` time NOT NULL,
  `temp00` float NOT NULL,
  `temp01` float NOT NULL,
  PRIMARY KEY  (`index`),
  KEY `aindex` (`index`)
)")
or die("Nelze vykonat definiční dotaz: " . mysql_error());

echo "Tabulka byla vytvořena.";

include "close_db.php";
?>

open_db.php

<?php
$db_host="localhost";            // adresa na ktere je dostupna databaze MySQL, necha se localhost
$db_uzivatel="jmeno";            // uzivatelske jmeno pro pristup k databazi, dle webhostingu
$db_heslo="heslo";                // uzivatelske heslo pro pristup k databazi, dle webhostingu
$db_jmeno="mojedatabaze";            // nazev databaze, dle webhostingu

@$spojeni = mysql_connect($db_host, $db_uzivatel, $db_heslo);
if (!$spojeni):
  echo $fch."Nelze se připojit k databázi".$fe;
  exit;
endif;

@$dbsel = mysql_select_db($db_jmeno);
if (!$dbsel):
  echo $fch."Nelze nastavit databázi " . $db_jmeno.$fe;
  exit;
endif;
?>

close_db.php

<?php
mysql_Close();
?>
SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

15

Re: Monitorování na vlastním webu

Krevla: možná bude jednodušší když mi pošleš do zprávy přístup na ftp a udělám ti tam demo program ....

SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

16

Re: Monitorování na vlastním webu

Včera jsem posla pristup .

TiborTeam napsal:

Krevla: možná bude jednodušší když mi pošleš do zprávy přístup na ftp a udělám ti tam demo program ....

17

Re: Monitorování na vlastním webu

Jo, promiň, vůbec se nedívám tady na messages :-) Jak bude chvilka, tak se na to podívám !!!

SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

18

Re: Monitorování na vlastním webu

Velice pěkné - jak funkčně tak graficky.
Díky SDS a spoustě šikovných lidí bude v Česku nejlépe monitorované počasí.

19 Naposledy upravil: sidbin (2013-03-24 11:00:39)

Re: Monitorování na vlastním webu

Ten web je hezky udělaný.

Chtěl jsem zkusit menší test interního webu v SDS, ale narazil jsem na omezené možnosti SDS (script na získáni hodnot z XML, obrázek jsem musel uložit na jiný web a tahat ho do SDS)
Test pozicování v SDS: http://img827.imageshack.us/img827/4359/sdsweb3.jpg
Takže bych rád přešel na normální webstránky.

Takže odešlu
http_get(IP, 'adresa','/datatxt.php?temp00=', sys[310]);

Na webu je datatxt.php zpracuje do databáze mysql.
Tabulku "data_sds" v php_admin jsem si již vytvořil (zatím 3 sloupce)
Ja je pak načtu do toho obrázku a pomocí CSS naformátuju?


//edit:
Zkusil jsem ten datatxt.php, plus ten zbytek
Bohužel pokud zkusím ručně adresu http://adresawebu/datatxt.php?temp00=23 tak se data do databáze nenačtou
V mysql není žádný záznam
nasleduje jen výpis:

200) $temp00 = 200; if ($temp01 > 200) $temp01 = 200; //*********** tady tvorim vlastni TIMESTAMP / muze se pouzit i SQL timestamp ***** $rec_time = date("H:i:s"); $rec_date = date("Y-m-d"); // datum $in01 = date("Y"); $in02 = date("m"); $in03 = date("d"); $in04 = date("H"); $in05 = date("i"); $in06 = date("s"); $index = $in01.$in02.$in03.$in04.$in05.$in06; //*********** otviram db ********************** include "open_db.php"; //*********** vkladam do db ********************** $result = mysql_query("INSERT INTO `lihen` ( `index` ,`rec_date` , `rec_time` , `temp00`, `temp01`, `otoc`, `topeni`, `otocz` , `otocdd`) VALUES ('$index', '$rec_date', '$rec_time', '$temp00', '$temp01', '$otoc', '$topeni', '$otocz', '$otocdd')"); //*********** zaviram db ********************** include "close_db.php"; // *********** a jeste ulozim posledni zaznam do txt ****** $filename = "data.txt"; $file=fopen($filename, "w"); if ($file) { $textline = $index.";".$rec_date.";".$rec_time.";".$temp00.";".$temp01.";".$otoc.";".$topeni.";".$otocz.";".$otocdd."\n"; $text=fwrite($file,$textline); } if ($file) { fclose($file); }; ?>

nějaké ukázky kódu zde: http://forum.merenienergie.cz//viewtopic.php?id=552

20 Naposledy upravil: TiborTeam (2013-03-24 12:20:36)

Re: Monitorování na vlastním webu

No tak lidi ... alespoň si přepište proměnné :-) ... ukládáš data ze solárka do tabulky lihen :-)))
Existuje tabulka ? má správné položky ????
Script na vytvoření tabulky:
Index vynechat !!! tady si ho SQL tvoří sám !!!!
A vymazat / upravit ostatní položky (otoc, topeni....)

<?php

include "open_db.php";

mysql_query("CREATE TABLE IF NOT EXISTS `lihen` (
  `index` int(11) NOT NULL auto_increment,
  `rec_date` date NOT NULL,
  `rec_time` time NOT NULL,
  `temp00` float NOT NULL,
  `temp01` float NOT NULL,
  PRIMARY KEY  (`index`),
  KEY `aindex` (`index`)
)")
or die("Nelze vykonat definiční dotaz: " . mysql_error());

echo "Tabulka byla vytvořena.";

include "close_db.php";

?>
SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

21 Naposledy upravil: sidbin (2013-03-24 21:13:55)

Re: Monitorování na vlastním webu

No vytvořil jsem databázi ručně:
http://img11.imageshack.us/img11/420/databaze1.png

když zkusím zadat jen adresu s jednou teplotou, tak to zase hodí předchozí chybu


// nakonec jsem to rozjel a konečně to zapisuje do toho TXT souboru

20130324200921;2013-03-24;20:09:21;0;2.55;2.55;2.55;2.55;2.55

nějaké ukázky kódu zde: http://forum.merenienergie.cz//viewtopic.php?id=552

22

Re: Monitorování na vlastním webu

Tabulku máš sdsko ... přepsal jsi INSERT INTO `lihen` na INSERT INTO `sdsko` ? Když tak mi pošli datatxt.php do mailu ...

SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

23

Re: Monitorování na vlastním webu

No, zatím jsem se v testovaní dopracoval sem:
http://sdsko.wz.cz/web.php

Jen reším problém jak získat z databáze první hodnotu aktuálního dne po půlnoci. :-)

nějaké ukázky kódu zde: http://forum.merenienergie.cz//viewtopic.php?id=552

24

Re: Monitorování na vlastním webu

Teď nevím jak jsi měl název tabulky, ale asi takhle ...
Rec_date dej aktuální/dnešní "date" a vylimituj na 1 ....

SELECT * FROM `sdsko` WHERE `rec_date` = '2013-04-05' ORDER BY `index` ASC LIMIT 0 , 1
SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

25

Re: Monitorování na vlastním webu

Nakonec funguje toto:
Vezme první záznam z dadabáze po půlnoci (pro výpočet spotřeby energii "dnes")

SELECT *  FROM data_sds2 WHERE UNIX_TIMESTAMP(`index`) > UNIX_TIMESTAMP( CURDATE() )  ORDER BY `index` LIMIT 1
nějaké ukázky kódu zde: http://forum.merenienergie.cz//viewtopic.php?id=552