1 Naposledy upravil: sidbin (2014-03-05 21:28:53)

Téma: SDS monitoring

Teplotních čidel mám víc, ale ty hlavní jsem si hodil na web do tabulky. Jde o dobrý rozcestník i pro mobil.
http://imageshack.com/a/img835/4075/nc3p.png
Po kliknutí na název čidla skočím do grafu (den, týden, 14 dní)
Multigraf je společný graf všech teplot
Systém je grafické znázornění kotelny a spol.
https://www.dropbox.com/s/v9osjokhfi8nmm5/multigraf.png

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

2

Re: SDS monitoring

Zveřejníš prosím i zdrojový kód? Díky

Kdo nic nezkusí, nic nezíská.

3

Re: SDS monitoring

Data ukádám po 15 minutách a dle toho mám vypočten počet hodnot, které se vytáhnou z DB pro graf.
používám pro zobrazování FLOT
Zpracování dat z DB do JSON pro tvorbu grafů: grafydatabaze.php

<?php
include "otevridb.php";

$num = $_GET["num"];


if (!$spojeni)
  {
  die('Could not connect: ' . mysql_error());
  }
else
{

    mysql_select_db("DB", $con);

    $result = mysql_query("SELECT * FROM jmeno_DB ORDER BY `index` DESC LIMIT " . $num);
    //date_default_timezone_set("Europe/Prague");

while ($row = mysql_fetch_array($result))
{
    try
    {
        $temp_array["Datetime"] = strtotime($row["index"]." UTC")*1000;
        $temp_array["temp01"] = $row["temp01"];        //Studena kotel
        $temp_array["temp02"] = $row["temp02"];        //Tepla kotel
       //atd.....

        $return[] = $temp_array;
    }
    catch (Exception $e) {
        echo 'Caught exception: ',  $e->getMessage(), "\n";
    }
}

$output = json_encode($return);

mysql_close($con);
echo $output;
}
?>

tohle tvoří grafy:

<html>       
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>      
<script language="javascript" type="text/javascript" src="/flot/jquery.flot.min.js"></script>      
<script language="javascript" type="text/javascript" src="/flot/jquery.flot.time.min.js"></script>      
<script type="text/javascript">
    function initGraphs(number){
    $.get("/grafydatabaze.php",{num:number}, function (data) {
            var data2 = eval( data );
            var temps02 = [];
            
            for (var i=0; i<data2.length; i++)
            {
                 temps02.push([data2[i].Datetime, data2[i].temp02]);
                 
            }
            $.plot($("#topnavoda"), [{label: "Topná voda", data:temps02}], {series: {lines: {show: true}, color: "red"}, xaxis: {mode: "time"}});
            
        });
    }
    $(function(){
        $(initGraphs(100));
        $("#reloadButton").click(function(){initGraphs($("input[name=\"pocet\"]:checked").val())});
    });
    </script>        
  <div>Topná voda:         
    <input type="radio" name="pocet" value="100" checked>Den         
    <input type="radio" name="pocet" value="700">týden         
    <input type="radio" name="pocet" value="1400">14 dní
    <input type="radio" name="pocet" value="3000">31 dní         
    <input type="submit" id="reloadButton" value="Refresh">       
  </div>            
  <div id="topnavoda" style="width:100%;height:400px;background-color:#FFF;">  
  </div>       
            </body>     
</html>
nějaké ukázky kódu zde: http://forum.merenienergie.cz//viewtopic.php?id=552

4

Re: SDS monitoring

Toto je multigraf, na grafu spojuje více teplotních čidel s možností volby-
Opět potřebuje k funkci předchozí /grafydatabaze.php

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<html>

<script language="javascript" type="text/javascript" src="/js/jquery-1.10.2.min.js"></script>      
<script language="javascript" type="text/javascript" src="/js/jquery.flot.min.js"></script>      
<script language="javascript" type="text/javascript" src="/js/jquery.flot.time.min.js"></script>   
<script language="javascript" type="text/javascript" src="/js/excanvas.min.js"></script>
    
    
    <script type="text/javascript">
    var dataset={};
    $(function(){
        $.get("/grafydatabaze.php",{num:"700"}, function (data) {            //vytažení 700 poslednich dat php z mysql do json
            var data2 = eval( data );                                 //vyhodnocení....data????
            var venku = [];                                         //venku
            var zatepleni = [];                                         //zatepleni
          var solar = [];                                         //solar
      var bojler = [];                                         //bojler
      var topna = [];                                           // topna voda
      var vratna = [];                                        //studena topna
        //function dataset2(added) {
                 
        for (i = 0; i < data2.length; i++) {                        //cyklus, zkontroluje 700 načtených hodnot DB
         {
                 venku.push([data2[i].Datetime, data2[i].temp04]);              //data z teplot, doplnit čas !!!!!  Datetime
                 zatepleni.push([data2[i].Datetime, data2[i].temp08]); 
         solar.push([data2[i].Datetime, data2[i].temp06]);
         bojler.push([data2[i].Datetime, data2[i].temp09]);
         topna.push([data2[i].Datetime, data2[i].temp02]);
         vratna.push([data2[i].Datetime, data2[i].temp01]);
               }
         }
        
         dataset = {"venku":venku, "zatepleni":zatepleni, "solar":solar, "bojler":bojler, "topna":topna, "vratna":vratna};
         ToggleSeries();
         });
                
                
                    var options = {                              // nastavení grafu
                                 series: {
                                 lines: {                         // linky
                                 show: true,
                                 
                                 },
    
                                },
                          grid: {                             // mřížka
                                 //hoverable: true,
                                 //clickable: true,
                                 tickColor: "#eaebec",
                                 borderWidth: 1
                                },
                         colors: ["#b086c3", "#ea701b"],
                                //tooltip: true,                    // popis hodnot na grafu při najetí kurzorem
                                //tooltipOpts: {
                                //defaultTheme: false
                                //},
                         legend: {                             // popis linek
                                  position: 'nw',
                                  labelBoxBorderColor: "#000000",
                                  container: $("#area-chart #legendPlaceholderArea"),
                                  noColumns: 0
                                  },
                    
                          xaxis: {mode: "time"}                   // časová osa
                       };
            
                function ToggleSeries() {                     // vyběr zdrojů dat
                    var d = [];
                    $("#area-chart input").each(function () {
                        if ($(this).is(":checked")) {
                            var seqence = $(this).attr("id");
                            d.push({
                                label: seqence,
                                data: dataset[seqence]
                            });
                        }
                    });
                    $.plot($("#area-chart #area-chartContainer"), d, options);     // tvorba grafu, nazev, d = vybrané data , plus nastavení vzhledu grafu
                }
                $("#area-chart input").change(function () {
                    ToggleSeries();
                });
        
    //});
    });
    </script>

            <div class="row-fluid">
                <div class="span12">
                    <div class="content-widgets">
                        <div>
                            <div class="widget-header-block">
                                
                            </div>
                            <div>
                                <div id="area-chart">
                                    <div class="clearfix">
                                        <form class="form-horizontal chart-control">
                                            <div class="control-group pull-left">
                                                <label class="control-label">Výběr teplot:</label>
                                                <div class="controls">
                                                    <label class="checkbox inline">
                                                    <input type="checkbox" id="venku" checked>
                                                    Venku</label>
                                                    <label class="checkbox inline">
                                                    <input type="checkbox" id="zatepleni" checked>
                                                    Zateplení</label>
                          <label class="checkbox inline">
                                                    <input type="checkbox" id="solar" checked>
                                                    Solár</label>
                          <label class="checkbox inline">
                                                    <input type="checkbox" id="bojler" checked>
                                                    Bojlér </label>
                          <label class="checkbox inline">
                                                    <input type="checkbox" id="topna" checked>
                                                    Topná voda</label>
                                                  <label class="checkbox inline">
                                                    <input type="checkbox" id="vratna" checked>
                                                    Vratná voda</label>
                                                </div>
                                            </div>
                                        </form>
                                        <div id="legendPlaceholderArea" class="pull-right">
                                        </div>
                                    </div>
                                    <div id="area-chartContainer" style="width: 100%;height:300px;" class="clearfix">
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

    </body>
    </html>   

Toto počítá dobu běhu soláru:
Do databáze se ukádá čas soby chodu čerpadla v minutách a ten stále roste. Stejným způsobem dělám grafy pro spotřebu plynu, elektřiny:
solDB.php:

<?php
include "open_db.php";
 
$result = mysql_query("SELECT x . *
FROM jmeno_DB AS x
JOIN (
 
SELECT MIN( `index` ) AS pulnoc
FROM jmeno_DB
WHERE `dobasolar`
GROUP BY DATE( `index` )
) AS y ON x.`index` = y.pulnoc

UNION ALL (
 
SELECT *
FROM jmeno_DB
WHERE `dobasolar`
ORDER BY `index` DESC
LIMIT 1
)
ORDER BY `index` DESC
LIMIT 31" );
 
if (!$result) {
    die('Error: ' . mysql_error());
}
//echo "Zpracování DB<br>\n";
 
 
$aktualni = mysql_fetch_assoc($result);
if (!$aktualni) {
    die('Error: ' . mysql_error());
}
//echo "Vypočteno:<br>\n";
 
 

 
$solar = $aktualni['dobasolar'];
$datum = $aktualni['index'];
 

$json = array(); #Definování nového pole pro pozdější převod do JSON

while ($pulnoc = mysql_fetch_assoc($result)) {

  //echo $pulnoc['index'] ." , ". (Round(($solar - $pulnoc['dobasolar']),3)) . "<br>\n";
  //$json[$pulnoc['index']] = (Round(($solar - $pulnoc['dobasolar']),3)); #Plnění pole
  $json[]=Array((strtotime($pulnoc['index']." UTC")*1000), (Round(($solar - $pulnoc['dobasolar'])/60,1)));     // delim 6ti, proc? mamm delit 60ti sekundama
  $solar = $pulnoc['dobasolar'];
  $datum = $pulnoc['index'];
  
}
$json2['label']='Solar doba chodu';
$json2['data']=$json;
echo json_encode($json2);

//$json = json_encode($json); #Převedení pole do JSON
//var_dump($json); #Výpis JSON pro kontrolu výsledku
?>

Toto vytvoří sloupcový graf hodnot za jeden den :

<html>       
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head> 
<body>
<script language="javascript" type="text/javascript" src="/js/jquery-1.10.2.min.js"></script>      
<script language="javascript" type="text/javascript" src="/js/jquery.flot.min.js"></script>      
<script language="javascript" type="text/javascript" src="/js/jquery.flot.time.min.js"></script>       
<script type="text/javascript">
$(document).ready(function(){
 $.ajax({
                url: "/solDB.php",
                method: 'GET',
                dataType: 'json',
                success: pokudjeprijato
            });
            
   function pokudjeprijato(data) {
        var length = data.length;
        var data2 = [ data ];
        $.plot($("#solar"), data2,{series: {bars: {show: true}, color: "blue"}, bars:  { align: "center", barWidth: 24*3600*1000}, xaxis: {mode: "time", monthNames: ["led", "únr", "bře", "dub", "kvě", "čvn", "čvc", "srp", "zář", "říj", "lis", "pro"]} //popis osy češtině
        });

    }
});            
</script>        
  <div>solár doba chodu:         
  </div>            
  <div id="solar" style="width:100%;height:400px;background-color:#FFF;">  
  </div>       
  </body>     
</html>
nějaké ukázky kódu zde: http://forum.merenienergie.cz//viewtopic.php?id=552

5

Re: SDS monitoring

Již jsem to přepracoval krapet jinak, těch tabulek mám několik.
Kotelna, solár, místnosti, meteostanice........atd.
Toto je například tabulka solár, počítá spotřebu dnes (pulnoc až aktuální čas), spotřebu za týden (posledních 7 dní, zvažuji, ale změnu na posledních 7 dní od pondělka), čas schodu soláru dnes, rezervu, teploty.

<?php
include "open_db.php";

 // načte data z dnesniho dne   pulnoc:
$data0000=mysql_fetch_assoc(mysql_query("SELECT s02,s03,dobasolar  FROM jmeno_DB WHERE UNIX_TIMESTAMP(`index`) > UNIX_TIMESTAMP( CURDATE() )  ORDER BY `index` LIMIT 1"));
//nacte hodnoty tyden zpet:
$data7=mysql_fetch_assoc(mysql_query("SELECT s02 FROM jmeno_DB WHERE UNIX_TIMESTAMP(`index`) > UNIX_TIMESTAMP( CURDATE() - INTERVAL 7 DAY  )  ORDER BY `index` LIMIT 1"));
//nacte hodnoty  aktualni
$data=mysql_fetch_assoc(mysql_query("SELECT * FROM jmeno_DB ORDER BY `index` DESC LIMIT 1"));
//proměnné z $data ....
$time = $data["rec_time"];
$temp06 = $data["temp06"];           //solar

$temp09 = $data["temp09"];          //bojler

$dobasolar = $data["dobasolar"];                // doba chodu solaru aktualni, zatim v sekundach  
$dobasolar0000 = $data0000["dobasolar"];       // doba chodu solaru hodnota pulnoc, zatim v sekundach
// $dobasolar2 = $dobasolar/60;        // prepocet na minuty
$dobasolarmin = Round(($dobasolar -$dobasolar0000) /60, 0);  // oba chodu solaru prepocet na minuty a zaokrouhleni 

$s02 = $data["s02"];           //aktualní
$s020000 = $data0000["s02"];         // pulnoc dnes
$dness022 = Round($s02 - $s020000, 2);  // solar aktualní rozdíl dnes a zaokrouhleni na 2 desetina cisla

$s027 = $data7["s02"];         // tyden zpět
$tydens0272 = Round($s02 - $s027, 2);  // solar aktualní rozdíl za tyden a zaokrouhleni na 2 desetina cisla

$s03 = $data["s03"];         //plyn aktualni
$s030000 = $data0000["s03"];      //plyn  pulnoc
//$dness03 = $s03 - $s030;
$dness032 = Round($s03 - $s03000, 2);    // plyn dnes a zaokrouhleni na 2 desetina cisla


include "close_db.php";

//if ($temp06 = 85) $temp06 = chyba;
//if ($temp06 > 185) $temp06 = odpojeno;
//if($temp00 == 200):
//    $temp00 = chyba;
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta name="viewport" content="width=device-width,initial-scale=1">    <!-- nastavení pro přizpůsobení mobilní verze webu -->
<link rel="icon" type="image/png" href="favicon.ico" /> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="tablestyle.css" rel="stylesheet">
<title>Teploměr</title>


</head>

<body>
<br>
<table cellspacing='0'> <!-- cellspacing='0' is important, must stay -->
<tr><th></th><th>Hodnota</th></tr>
<tr><td><a href="/S02.php">Spotřeba solár dnes</a></td><td><div class="s02"><?php echo $dness022; ?>kWh</div></td></tr>
<tr><td><a href="/spotrebagrafsol.php">Spotřeba solár týden</a></td><td></div><div class="tydens0272"><?php echo $tydens0272; ?>kWh</td></tr>
<tr><td><a href="/dobagrafsol.php">Běh soláru dnes</a></td><td><div class="temp08"><?php echo $dobasolarmin; ?>min</div></td></tr>
<tr><td><a href="">Solár nahoře</a></td><td><div class="s03">XX.XX°C</div></td></tr>
<tr><td><a href="/gr06.php">Solár čerpadlo</a></td><td><div class="temp06"><?php echo $temp06; ?>°C</div></td></tr>
<tr><td><a href="/gr09.php">Bojlér nahoře</a></td><td><div class="temp09"><?php echo $temp09; ?>°C</div></td></tr>
<tr><th><div class="aktualizovano">Aktulizováno:</th><th><?php echo $time; ?></div></th></tr>
</table>
<br>
<br>
<br>

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

6

Re: SDS monitoring

Rozhodl jsem se přidat pár drobností, které nově delší dobu používám. Jde o holé PHP je to potřeba obbalit nějakou tabulkou.
Maximální a minimální teploty za týden, 14dní,měsíc,rok:
omezeno pod 85st, ptorože je to chybová hláška čidla.

<?php

include "opendb.php";

$max_7 = mysql_fetch_assoc(mysql_query("SELECT *
FROM jmenoDB
WHERE temp04 <85
AND UNIX_TIMESTAMP( `index` ) > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 7
DAY )
ORDER BY temp04 DESC
LIMIT 1 " )); 
$datum_max_7 = $max_7["index"];
$temp04_max_7 = $max_7["temp04"];

$max_14 = mysql_fetch_assoc(mysql_query("SELECT *
FROM jmenoDB
WHERE temp04 <85
AND UNIX_TIMESTAMP( `index` ) > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 14
DAY )
ORDER BY temp04 DESC
LIMIT 1 " )); 
$datum_max_14 = $max_14["index"];
$temp04_max_14= $max_14["temp04"];

$max_31 = mysql_fetch_assoc(mysql_query("SELECT *
FROM jmenoDB
WHERE temp04 <85
AND UNIX_TIMESTAMP( `index` ) > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 31
DAY )
ORDER BY temp04 DESC
LIMIT 1 " )); 
$datum_max_31 = $max_31["index"];
$temp04_max_31 = $max_31["temp04"];

$max_365 = mysql_fetch_assoc(mysql_query("SELECT *
FROM jmenoDB
WHERE temp04 <85
AND UNIX_TIMESTAMP( `index` ) > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 365
DAY )
ORDER BY temp04 DESC
LIMIT 1 " )); 
$datum_max_365 = $max_365["index"];
$temp04_max_365 = $max_365["temp04"];

$min_7 = mysql_fetch_assoc(mysql_query("SELECT *
FROM jmenoDB
WHERE temp04 <85
AND UNIX_TIMESTAMP( `index` ) > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 7
DAY )
ORDER BY temp04 ASC                                                                        
LIMIT 1 " )); 

$datum_min_7 = $min_7["index"];
$temp04_min_7 = $min_7["temp04"]; 

$min_14 = mysql_fetch_assoc(mysql_query("SELECT *
FROM jmenoDB
WHERE temp04 <85
AND UNIX_TIMESTAMP( `index` ) > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 14
DAY )
ORDER BY temp04 ASC
LIMIT 1 " )); 

$datum_min_14 = $min_14["index"];
$temp04_min_14 = $min_14["temp04"];

$min_31 = mysql_fetch_assoc(mysql_query("SELECT *
FROM jmenoDB
WHERE temp04 <85
AND UNIX_TIMESTAMP( `index` ) > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 31
DAY )
ORDER BY temp04 ASC
LIMIT 1 " )); 

$datum_min_31 = $min_31["index"];
$temp04_min_31 = $min_31["temp04"];

$min_365 = mysql_fetch_assoc(mysql_query("SELECT *
FROM jmenoDB
WHERE temp04 <85
AND UNIX_TIMESTAMP( `index` ) > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 365
DAY )
ORDER BY temp04 ASC
LIMIT 1 " )); 

$datum_min_365 = $min_365["index"];
$temp04_min_365 = $min_365["temp04"];

include "close_db.php";

?> 

Pak to vkládám: $datum_max_7;    $temp04_max_7;

Tato stránka vypisuje poruchy čidel z DB pokud teplota v DB překročí 84st (85 je chybová hláška DS1820)

<?php

include "open_db.php";

$dotaz="SELECT * FROM jmenoDB WHERE `temp00`> 84 or  `temp01`> 84 or `temp02`> 84 or `temp03`> 84 or `temp04`> 84 or `temp05`> 84 or `temp06`> 84 or `temp07`> 84 or `temp08`> 84 or `temp09`> 84 or `temp10`> 84 or `temp11`> 84 or `temp12`> 84 ORDER BY `index` DESC LIMIT 10"; 

$vysledek = MySQL_Query($dotaz); // provedení sql dotazu 

 while ($zaznam = MySQL_Fetch_Array($vysledek)):
 
?>

<tbody>
<td><?echo $zaznam["index"]?></td><td>

<?if ($zaznam["temp00"] >84): ?><b>T00</b>
<?php endif;?>
<?if ($zaznam["temp01"] >84): ?><b>T01</b>
<?php endif;?>
<?if ($zaznam["temp02"] >84): ?><b>T02</b>
<?php endif;?>
<?if ($zaznam["temp03"] >84): ?><b>T03</b>
<?php endif;?>
<?if ($zaznam["temp04"] >84): ?><b>T04</b>
<?php endif;?>
<?if ($zaznam["temp05"] >84): ?><b>T05</b>
<?php endif;?>
<?if ($zaznam["temp06"] >84): ?><b>T06</b>
<?php endif;?>
<?if ($zaznam["temp07"] >84): ?><b>T07</b>
<?php endif;?>
<?if ($zaznam["temp08"] >84): ?><b>T08</b>
<?php endif;?>
<?if ($zaznam["temp09"] >84): ?><b>T09</b>
<?php endif;?>
<?if ($zaznam["temp10"] >84): ?><b>T10</b>
<?php endif;?>
<?if ($zaznam["temp11"] >84): ?><b>T11</b>
<?php endif;?>
<?if ($zaznam["temp12"] >84): ?><b>T12</b>
<?php endif;?>
</td></tr><tr>
<?php
 endwhile;
?> 
nějaké ukázky kódu zde: http://forum.merenienergie.cz//viewtopic.php?id=552

7 Naposledy upravil: sidbin (2016-11-21 22:05:30)

Re: SDS monitoring

Spotřeba u plynu od zůčtování:
$datazauctovani=mysql_fetch_assoc(mysql_query("SELECT plyn FROM tabulka WHERE `index` > '2016-03-08 00:00:00'  ORDER BY `index` LIMIT 1"));
Z mysql vyberu první záznam v den kdy začíná nová fakturace, následně to odečítám od současného stavu počitadla a pak zaokrouhluji na dvě desetiná místa.
Musel jsem popřesouvat ostatní teploty na další kartu, už větší počet řádku dělat nechci, z 5 jsem přešel na 7 a pro mobil je to akorát. Stejně počítám i spotřebu soláru od fakturace, ale bohužel ji nemám celou, přecházel jsem na druhé SDS a rozdělil tabulku mysql na dvě.
Ukázka karty topení:
http://www.imgup.cz/images/2016/11/21/pln1.png

Pokud je levný tarif, tak se na kartě elektřina mění v tabulce položka VT a NT. SDS zapisuje stav vstupu 0 nebo 255, pokud je 0 tak je drahý tarif a položka v tabulce je červená s nápisem VT_Drahý.
<?php
if ($tarif == 0)             // podmínka pro nízký a drahý proud
  echo $tarifX = "<b><span style='color: red'>VT_Drahý</span></b>";      // musí být nastavena 0, protože jen ta je jistá ve výsledku (jinak 1-255)
else
  echo $tarifX = "<b><span style='color: green'>NT_Levný</span></b>";
http://www.imgup.cz/images/2016/11/21/tarf.png


?>

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

8

Re: SDS monitoring

Takže přidáno měření větru:
lepší asi bude použít časovaní 1s a ne wait.
http://forum.merenienergie.cz//viewtopic.php?id=848
finální výpočet provádím před uložením do DB, SDS odešle počet pulsů. Dělím dvěma (počet pulsů na otáčku) a 4ma (počet měření na průměr), následně násobím 2,4 což je konstanta 1ot/s = 2,4km/hod

mereni_vetru
{
 ram[10] = sys[495];
 wait(1000);
 ram[20] = sys[495] - ram[10];
 wait(5000);
 ram[11] = sys[495];
 wait(1000);
 ram[21] = sys[495] - ram[11];
 wait(5000);
 ram[12] = sys[495];
 wait(1000);
 ram[22] = sys[495] - ram[12];
 wait(5000);
 ram[13] = sys[495];
 wait(1000);
 ram[23] = sys[495] - ram[13];

 ram[30] = ram[20] + ram[21] + ram[22] + ram[23];
 ram[31] = ram[30];
 ram[10] = 0;
 ram[11] = 0;
 ram[12] = 0;
}
nějaké ukázky kódu zde: http://forum.merenienergie.cz//viewtopic.php?id=552

9

Re: SDS monitoring

Další drobná blbůstka. Byl  tu větší elektřiny výpadek elektřiny a tak jsem si přidal info o starém čase, hodnoty v tabulce nejsou tedy "aktuální" (aktuální  znamená do 15minut, tedy do intervalu odeslání z SDS)
Pokud je čas od posledních nahraných dat většínež 15,5 minut (15minut + rezerva pro druhý pokus SDS), tak zčervená + přidá !!. Proměnná "time" se načte z DB spolu s daty do tabulky.

http://www.imgup.cz/images/2017/08/13/spatny_cas.png

$datum_aktualni = StrFTime("%H:%M:%S", Time());

$ts_jedna = strtotime($datum_aktualni);     //převede aktuální datum na sekundy od 1970
$ts_dva = strtotime($time);        //převede datum z DB na sekundy od 1970

$rozdil_casu = $ts_jedna-$ts_dva;

if ($rozdil_casu < 930)         // pokud je čas větší než 15,5 minuty   
  echo $testX = "$time";     //normální zobrazení
else 
  echo $testX = "<span style='color: red'>!!$time!!</span>";      // informace o poruše
nějaké ukázky kódu zde: http://forum.merenienergie.cz//viewtopic.php?id=552