odesilani dat

to Kit:

myslíš něco takového?
http://www.highcharts.com/studies/live-server.htm
Takže jsme si úspěšně odpověděli na položené otázky a z druhé vyplývá, že soubory nejsou shodné. Z toho tedy následně vyplývá, že musíš vytvořit ze svých opakovaně aktualizovaných souborů na adrese
http://109.80.22.31/xml.xml
takový XML soubor, který bude mít stejmou strukturu jako
http://www.hrdlickovi.wz.cz/data.xml

Pak se musí náhodné generování čísel - generuje to 10 čísel - nahradit načtením 10 čísel ze souboru.

Musíš tedy
1. vytvořit soubor se sadou dat (tedy třeba 10 sad hodnot - čas a teplota)
2. nahradit náhodné genrování hodnot načtení hodnot o teplotách ze souboru.
Vím co je třeba, ale nevím jak vytvořit soubor
http://www.hrdlickovi.wz.cz/data.xml

ten předchozí jsem si jen zkopíroval. Měl stále stejné hodnoty.
To bylo na zkoušku.

Ale ten nový by se měl aktualizovat.
Myslím tedy, že potřebuji nějaký skript, který přečte
http://109.80.22.31/xml.xml
a uloží jej na web, každých 10minut
Tak nějak. Jen s drobným detailem, že by se to asi neaktualizovalo po 1 s, ale méně často. V tomto případě bys mohl vystačt i bez databáze, ale při větším počtu současných přístupů by mohly nastat potíže.

Databáze má proti ukládání do souboru výhodu v tom, že řeší konkurenční přístupy a tzv. ACID.

Hlavně se přitom vyhni MySQL. Alespoň na WZ.
Obávám se, že to bude problém.
Na WZ nic takového jako opakované spouštění skriptů (CRON) není
Nějaký free CRON, který by volal ty skripty asi nebude umožňovat spouštění po 10 minutách (ostatně i na placeném hostingu mám CRON, který se spouští po dvou hodinách)
Možná by šlo na lokálně běžím PC nechat obnovovat stránku jednou za 10 minut, pro té příležitosti by se skript vždycky spustil, ale to je divné řešení

Myslel jsem si, že chceš přímo zapisovat data na server wz - o tom byla zhruba první stovka těchto příspěvků tady.
jojo do souboru txt zapisovat umím.

Mohu to samozřejmě vyčítat i ze stávajícího souboru teploty.txt
Do něj si posílám každou minutu nová data. Zatím jen teploty.
Samozřejmě mohu přidat spotřebu energií.....

Měl jsem za to, že pokud mám takhle již vše hotové v XML souboru, tak by to bylo lehčí.
Tak do grafu jsem misto nahodneho generování čísel použil skript od Kita

<?php
$fd=FOpen ("teploty.txt","r");
$line=fgets($fd);
$arr=split(";",($line));
echo $arr[1];
FClose($fd);

?>

Jde to, ale přečte to jen asi 12x a pak zase generuje čísla ?

http://www.hrdlickovi.wz.cz/graftesty.php
Zjistil jsem, že třeba na endora.cz je k dispozici cron. Ten by se k tomuto účelu možná dal využít, desetiminutové intervaly má v nabídce.

Nejjednodušší je samozřejmě zápis do souboru CSV. Tento formát má pro daný účel spoustu výhod, každých 10 minut se prostě na konec připíše další řádek s časovým údajem a naměřenými hodnotami. Čtení je také velmi jednoduché, funkci explode() už známe. Do 10000 záznamů asi nejlepší metoda, potom začne být nevýhodné čtení dat, která pro vykreslování grafu nepotřebujeme. Což nastane zhruba po dvou měsících. Řešení se nabízí: Každý měsíc (nebo raději každý den?) nový soubor. Četlo by se pak vždy ze dvou posledních dle potřeby. Bude to rychlé a efektivní.

XML se k tomuto účelu moc nehodí, protože s rostoucí velikostí souboru rostou i problémy. Musí se totiž celý načíst, aktualizovat a zase uložit. To je nepraktické. Daleko vhodnější je zmíněný CSV nebo databáze.
csv mám také 109.80.22.31/csv.csv

ale přijde mi, že je to to samé jako XML.
takhle zobrazuji svůj graf.

Kam mám zadat hodnotu teploměru z mého souboru?





<!DOCTYPE HTML>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Highcharts Example</title>


<!-- 1. Add these JavaScript inclusions in the head of your page -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript" src="highcharts.js"></script>


<!-- 1a) Optional: add a theme file -->

<script type="text/javascript"src="gray.js"></script>


<!-- 1b) Optional: the exporting module -->
<script type="text/javascript" src="exporting.js"></script>


<!-- 2. Add the JavaScript to initialize the chart on document ready -->
<script type="text/javascript">


Highcharts.setOptions({
global: {
useUTC: false
}
});

var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
defaultSeriesType: 'spline', //typ zobrazene krivky line, spline....
marginRight: 10, // prave odsazeni hodnot od zacatku grafu
events: {
load: function() {

// set up the updating of the chart each second
var series = this.series[0];
setInterval(function() {
var x = (new Date()).getTime(), // current time
y = Math.random();
series.addPoint([x, y], true, true); // posouváni grafu v ose X a Y true-posouva, false-neposouva
}, 2000); //cas nacitani novych hodnot v milisec
}
}
},
title: {
text: 'Teploty u Hrdličku' // nazev celeho grafu
},
xAxis: {
type: 'datetime',
tickPixelInterval: 300 // cas pro zobrazovani casu na spodni ose x pr.300=10 sec
},
yAxis: {
title: {
text: 'Teplota' // nazev svisle osy
},
plotLines: [{
value: 0,
width: 1, // tloustka cary spodni osy
color: '#808080' // barva cary spodni osy
}]
},
tooltip: {
formatter: function() {
return '<b>'+ this.series.name +'</b><br/>'+
Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) +'<br/>'+
Highcharts.numberFormat(this.y, 2);
}
},
legend: {
enabled: true //prida legendu k zobrazovanzm hodnotam
},
exporting: {
enabled: false
},
series: [{
name: 'Teplomer 1', // nazev legendy zobrazované teploty
data: (function() {
// generate an array of random data
var data = [],
time = (new Date()).getTime(),
i;

for (i = -10; i <= 0; i++) { //kolik posledních hodnot se má na grafu ukazovat
data.push({
x: time + i * 3000,
y: Math.random()
});
}
return data;
})()
}]
});


});

</script>

</head>
<body>


<!-- 3. Add the container -->
<div id="container" style="width: 1000px; height: 400px; margin: 0 auto"></div> <!-- velikost grafu -->


</body>
přidal jsem tam nějaké své popisky abych věděl co upravovat.

nebude to někde tady?

// generate an array of random data
var data = [],
time = (new Date()).getTime(),
i;

for (i = -10; i <= 0; i++) {
data.push({
x: time + i * 3000,
y: Math.random()
To bude ono. Cyklus musí nejspíš přečíst 10 hodnot ze souboru. Jestli to má být v javaskriptu, tak to neumím.
Zkusil jsem si zprovoznit cron na endora.cz. Zatím je tam jen pár hodnot, ale zdá se, že to v pohodě funguje:

http://hrdlickovi.tode.cz/
když změním -10 na třeba na -20 tak to ukazuje posledních 20 měření.
cron mi nic nerika.

Říkám si, že pokud už mám tohle, tak se toho pokusím držet.
Už jen dosadit ty vyčtené hodnoty z txt, do toho skriptu.

Vždy to načte jen pár měření a pak to zase měří náhodná čísla.
Cron je program, který umí pravidelně spouštět nějaké programy. Windows mají také něco podobného pod názvem "Plánovač úloh".
to Kit:

to co máš na stránkách.
Zmanená to, že si musím udělat soubor CSV na web a do něj se mi budou zapisovat data z XML?
CSV je v daném případě nejjednodušší řešení, ale není jediné možné. Na adrese
hrdlickovi.tode.cz/data/data.csv
se od nynějška shromažďují uvedeným skriptem data z tvých měření ve formátu CSV, ale může být i jiný. Pokud bych na stejném webu měl i aplikaci na vykreslování grafů v Javascriptu, fungovalo by to. Jen bych musel přizpůsobit formáty dat, ale pravidelný sběr je již vyřešen.
Když budeš zapisovat přimo do souboru na WZ není CRON potřeba.
Stačí když to bude textový soubor jako je teploty.txt
Jen ti musí být jasná jeho struktura vzhledem k pozdějšímu načítání.
Každý den bych udělal jeden soubor, podle systémového času při zápisu
CSV je označení pro soubor, kde jsou položky oddělené čárkou (comma separated value).
Mám soubory s koncovou csv. Přesně jak říkáš ty.
Každý den má jiný soubor.

jmenují se S0_26092011
S0_27092011
S0_28092011........

posílám data na jeden server, každých 15 minut (mohu až 5min.) a ten mi soubor CSV generuje. Mohu si je stahovat.
a adresa těch souborů je jaká?
A jak udělá bez cronu pravidelné čtení po deseti minutách?

Aha, to zařízení umí pravidelně každých 10 minut data ODESLAT. Tak v tom případě samozřejmě cron není zapotřebí.

S tím jedním souborem CSV denně souhlasím s jednou výhradou: Jedna databáze SQLite pro všechna data bude možná z dlouhodobého hlediska výhodnější, ale všechno má svůj čas.
třeba tento

portal.merenienergie.cz/csv/00890001D/S0_18092011.csv

z 18.9.2011
Kit: možná půjdou číst ty CSV: S0_27092011 - to by mohlo být nadějné