odesilani dat

Nepleť do toho soubory s koncovkou csv. Ty mají možná jinou strukturu, než o jaké se bavíme. Předávej data ze zařízení na server jako dosud a teprve na serveru se rozhoduj, jak ta data budeš ukládat.
Tak už ukládám do data.txt jak mi napsal Kit.
http://www.hrdlickovi.wz.cz/data.txt
To je totiž novinka, to jeho zařízení odesílá někam na internet už hotové soubory, podle jména by to mohl být nějaký denní souhrn - proto jsem chtěl jejich adresu
Moment, ty soubory vypadají velmi nadějně. Jsou tam všechny potřebné informace, které jsem sbíral cronem. Stačí je jen otevřít v PHP a přes AJAX dodat do prohlížeče. Můžeš kreslit grafy.
dobře ale kam pak s tím do toho grafu
http://www.hrdlickovi.wz.cz/graftesty.php

klikni na graf a podívej se na zdroják.
Ty soubory mám z jednoho serveru určeného pro sběr dat z mého zařízení.
Ale já už tam nic neposílám. Chci to mít u sebe.
portal.merenienergie.cz/csv/00890001D/S0_18092011.csv
z toho by graf namalovat šel
Ale jestli to bude dobré tak mohu opět začít posílat
Vždy ve 00:00 se mi vygeneruje soubor csv z celého dne.
Ale možná kecám, generuje se po každém zápisu
Tak potom to mozna zvladnu i ja.

Protože budu vlastne generovat graf ze souboru, kde je jasne daný čas a hodnota.
A časová osa mě nezajímá, protože se bude číst ze souboru.

Mám pravdu?
Ano, viz Kit:
Stačí je jen otevřít v PHP a přes AJAX dodat do prohlížeče. Můžeš kreslit grafy.
Tak si jen vybrat graf.

http://www.highcharts.com/demo/line-labels
Něco o Ajaxu je tady

http://www.highcharts.com/demo/line-ajax
Kit: kdyš jsou data pro vypsání grafu v javascriptu ve stránce zadána takto:
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
takže se v PHP udělá textový řetězec obsahující výše uvedený text a ten se pak vloží do těla skriptu třeba: <?php echo $textretezec; ?>
?
to Kit:

koukal jsem na tu Andoru:
mám registrovanou svou domenu 2.řádu.
Mám si u nich udělat webhosting?
ds: Tak nějak se to dělá. Nejsnáze tak, že se předávaný objekt zabalí do JSON například funkcí json_encode(). S takovým objektem si pak Javascript snadno poradí.

Jiří: Záleží jen na tobě, kde si uděláš webhosting. Jsem na Endoře teprve týden, nemám tedy dost zkušeností s kvalitou. Spíš to beru jako další území pro své experimenty. Nefunguje mi tam např. funkce highlight_file(), musel jsem hledat náhradní řešení. Ještě jsem ani neotestoval jejich databáze. Mají jich 7, podobně jako na WZ, ale kvalitou se mohou lišit.
Tak jsem ten graf nějak rozchodil, ale potřebuji opakovat tanto skript
stále dokola

<?php
$fd=FOpen ("teploty.txt","r");
$line=fgets($fd);
$arr=split(";",($line));
echo $arr[3];
FClose($fd);
?>
Kite, ještě prosím o radu

napsal jsi mi tento skript

<?php
header('Content-Type: text/html;charset=UTF-8');
$obsah=file_get_contents("http://109.80.22.31/xml.xml");
$xml = new SimpleXMLElement($obsah);
//echo "<ul>";
foreach(array('s0_2') as $meridlo) {
$result = $xml->xpath("/sds/snmp/$meridlo");
echo "<li>".$result[0]->act."</li>";
}
echo "</ul>\n";


?>

ale před zobrazeným číslem mi ti píše tečku.
Dá se odstranit? Díky
Ta tečka se dá odstranit buď v CSS nastylování m seznamu, anebo místo <ul> použiješ jinou vhodnou konstrukci HTML.

Pokud potřebuješ jen hodnotu z měřidla s0_2, tak můžeš cyklus zrušit. Tedy místo:

$xml = new SimpleXMLElement($obsah);
echo "<ul>";
foreach(array('s0_2') as $meridlo) {
$result = $xml->xpath("/sds/snmp/$meridlo");
echo "<li>".$result[0]->act."</li>";
}
echo "</ul>\n";

napíšeš jen:

$xml = new SimpleXMLElement($obsah);
$result = $xml->xpath("/sds/snmp/s0_2");
echo "<p>".$result[0]->act."</p>";

Chce to jen vybrat správnou značku HTML. V tomto případě jsem pro změnu dal <p>, ale když to bude položka tabulky, tak tam bude <td>.

XPath se prostě používá pro dotazy XML podobně jako SELECT se používá pro dotazy SQL. Samozřejmě jsou v tom odlišnosti, ale významově je to totéž.
Jde to díky.

Tak jsem si udělal ten hosting u Endory. Zkouším teď jak funguje databáze.
Cron už mi jde :-)
Kite prosím o pomoc

Napsal jsi mi tento skript


Skript pro periodický sběr dat

<?php
$obsah=file_get_contents("http://109.80.22.31/xml.xml");
$xml = new SimpleXMLElement($obsah);
$result = $xml->xpath('/sds/snmp/*/text');
$fd=fopen('data/data.csv','a');
$data=date('r');
foreach($result as $key => $val){
$data.=';'.$val[0];
}
fwrite($fd,$data."\n");
fclose($fd);
?>

potřeboval bych ho trochu upravit.

Tento pracuje jak má, ale potřebuji podobný
který zapisuje do souboru z xml tyto hodnoty:

<ntptime>1320782412</ntptime> a <temp_1>20.87</temp_1>

čas a teplotu jednoho teploměru, ale aby to vypadalo takto


[1320782412,20.87]
[1320782518,20.32]
..... stále pod sebe.

šlo by to? díky
To víš, že by to šlo. Pomocí metody xpath() si můžeš vybrat libovolný údaj. A výstup si také můžeš naformátovat jak budeš chtít.

<?php
$obsah=file_get_contents("http://109.80.22.31/xml.xml");
$xml = new SimpleXMLElement($obsah);
$ntptime = $xml->xpath('/sds/snmp/ntptime');
$temp_1 = $xml->xpath('/sds/snmp/temp_1');
$fd=fopen('data/data.csv','a');
$data=date('r');
fwrite($fd,"[{$ntptime[0]},{$temp_1[0]}]\n");
fclose($fd);
?>
děkuji za nakopnutí