Documentation
[ampy.git] / html / currentjson_chunked.php
1 <?php
2 /*
3  * Experimental version that return chunked http response.
4  *
5  * Pulling the values is no longer needed as the one request will output
6  * the updates every 10 seconds.
7  */
8 require_once('config.php');
9
10 header("Content-Type: text/json");
11 header("Transfer-Encoding: chunked");
12 flush();
13
14
15 // Send chunk to browser
16 function send_chunk($chunk)
17 {
18         // The chunk must fill the output buffer or php won't send it
19         $chunk = str_pad($chunk, 4096);
20
21         printf("%x\r\n%s\r\n", strlen($chunk), $chunk);
22         flush();
23 }
24
25 while (True) {
26         $info=rrd_lastupdate(RRDFILE);
27         if ($info === FALSE)
28                 $result=[
29                         'last_update' => 'unknown',
30                         'watts' => 'unknown',
31                         'error' => rrd_error(),
32                 ];
33         else
34                 $result=[
35                         'last_update' => $info['last_update'],
36                         'watts' => $info['data'][0]
37                 ];
38         send_chunk(json_encode($result));
39         sleep(10);
40 }
41 ?>