Średnie zużycie dzienne prądu , gazu itp. + Prognoza zużycia na koniec miesiąca

Widgety tworzone przez użytkowników
Awatar użytkownika
dise
Posty: 790
Rejestracja: śr kwie 16, 2014 2:06 pm

Średnie zużycie dzienne prądu , gazu itp. + Prognoza zużycia na koniec miesiąca

Post autor: dise » pt sty 01, 2016 12:59 pm

Hejka, poniżej widget który pokazuje średnie zużycie dzienne gazu, prądu, wody Dodatkowo pokazuje prognozę na koniec miesiąca liczoną w sposób : ilość dni w miesiącu * średnie zużycie dzienne do tej pory.

Obrazek

Oczywiście linijki które zawierają nazwy baz sqlite musicie zmodyfikować odpowiednio pod siebie.

Kod: Zaznacz cały

$db = new PDO("sqlite:$root/db/gpio_17_elec.sql");
oraz

Kod: Zaznacz cały

$db = new PDO("sqlite:$root/db/wireless_192.168.1.2_gas.sql");

Kod: Zaznacz cały

<div class="panel-heading"><small>Average daily consumption this month/ estimated usage</small></div>

<table class="table table-responsive table-hover table-condensed">
<thead>
<th><small>Electricity</small></th>
<th><small>estimated</small></th>
<th><small>Gas</small></th>
<th><small>estimated</small></th>
<tr>
    <td>
 <span class="label label-info">
<?php
$root=$_SERVER["DOCUMENT_ROOT"];
$db = new PDO("sqlite:$root/db/gpio_17_elec.sql");
$rows = $db->query("select round(sum(value)/(julianday('now', 'localtime')- julianday('now','start of month')),2) from def where time >= date('now','start of month')");
$i = $rows->fetch(); 
echo $i['0'];
 ?>
<?php echo " kWh" ?>
<td><span class="label label-danger">
<?php 
$rows = $db->query(" select julianday ('now','start of month','+1 month','-1 day') - julianday('now','start of month','-1 day')");
$d = $rows->fetch(); 
echo $d['0']*$i['0'];
?><span></td>
</td>

</span>

    <td>

<span class="label label-info">
<?php
$db = new PDO("sqlite:$root/db/wireless_192.168.1.2_gas.sql");
$rows = $db->query("select round(sum(value)/(julianday('now', 'localtime')- julianday('now','start of month')),2) from def where time >= date('now','start of month')");
$i = $rows->fetch(); 
echo $i['0'];
?>
<?php echo " m3" ?>
<td>
<span class="label label-danger">
<?php echo $d['0']*$i['0']; ?></td>
<span/>
</td>


	    </span>
</tbody>
</table>

Ostatnio zmieniony pt sty 01, 2016 1:51 pm przez dise, łącznie zmieniany 1 raz.

Awatar użytkownika
hryst
Betatester
Posty: 736
Rejestracja: wt mar 25, 2014 8:52 am
Kontaktowanie:

Re: Średnie zużycie dzienne prądu , gazu itp. + Prognoza zużycia na koniec miesiąca

Post autor: hryst » pt sty 01, 2016 1:38 pm

dziękować, dodane kWh
--- działam na orange pi plus H3 ---

Awatar użytkownika
pimowo
Betatester
Posty: 4642
Rejestracja: czw lut 19, 2015 9:17 am
Lokalizacja: Wołów

Re: Średnie zużycie dzienne prądu , gazu itp. + Prognoza zużycia na koniec miesiąca

Post autor: pimowo » pt sty 01, 2016 1:44 pm

Super pomysł ;)
[email protected] HP MicroServer N54L, Raspberry Pi 3B, Raspberry Pi B+

Awatar użytkownika
pimowo
Betatester
Posty: 4642
Rejestracja: czw lut 19, 2015 9:17 am
Lokalizacja: Wołów

Re: Średnie zużycie dzienne prądu , gazu itp. + Prognoza zużycia na koniec miesiąca

Post autor: pimowo » ndz sie 20, 2017 10:49 pm

Od jakiegoś czasu sobie używam ten widget i w sumie brakuje mi jednej rzeczy... fajnie pokazuje prognozę zużycia na koniec miesiąca, ale czy można dodać ile było kWh/m3 jeden, dwa, trzy miesiące temu?
[email protected] HP MicroServer N54L, Raspberry Pi 3B, Raspberry Pi B+

Awatar użytkownika
pimowo
Betatester
Posty: 4642
Rejestracja: czw lut 19, 2015 9:17 am
Lokalizacja: Wołów

Re: Średnie zużycie dzienne prądu , gazu itp. + Prognoza zużycia na koniec miesiąca

Post autor: pimowo » ndz lut 18, 2018 8:30 pm

Nie znam się na PHP, ale troszkę zmieniłem kod Kolegi @dise aby widget bardziej pasował do NT :)

Kod który trzeba sobie wrzucić do widgetów:

Kod: Zaznacz cały

<table class="table">
  <thead>
    <tr>
      <th></th>
      <th>Counter</th>
      <th>AVG day</th>
      <th>Forecast</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><img src="media/ico/Lamp-icon.png"></td>
      <td><span class="label label-default">Electricity</span</td>
      <td><span class="label label-info">
        <?php
          $root=$_SERVER["DOCUMENT_ROOT"];
          $db = new PDO("sqlite:$root/db/usb_ttyUSB10_elec.sql");
          $rows = $db->query("select round(sum(value)/(julianday('now', 'localtime')- julianday('now','start of month')),2) from def where time >= date('now','start of month')");
          $i = $rows->fetch(); 
          echo $i['0'];
        ?>
        <?php echo " kWh"?>
      </span>
      </td>
      <td><span class="label label-danger">
        <?php 
          $rows = $db->query(" select julianday ('now','start of month','+1 month','-1 day') - julianday('now','start of month','-1 day')");
          $d = $rows->fetch(); 
          echo $d['0']*$i['0'];
        ?>
        <?php echo " kWh"?>
</span>
      </td>
    </tr>
    <tr>
      <td><img src="media/ico/water-icon.png"></td>
      <td><span class="label label-default">Water</span></td>
      <td><span class="label label-info">
        <?php
          $root=$_SERVER["DOCUMENT_ROOT"];
          $db = new PDO("sqlite:$root/db/usb_ttyUSB10_elec.sql");
          $rows = $db->query("select round(sum(value)/(julianday('now', 'localtime')- julianday('now','start of month')),2) from def where time >= date('now','start of month')");
          $i = $rows->fetch(); 
          echo $i['0'];
        ?>
        <?php echo " m3"?>
      </td>
      <td><span class="label label-danger">
        <?php 
          $rows = $db->query(" select julianday ('now','start of month','+1 month','-1 day') - julianday('now','start of month','-1 day')");
          $d = $rows->fetch(); 
          echo $d['0']*$i['0'];
        ?>
        <?php echo " m3"?>
      </td>
    </tr>
    <tr>
      <td><img src="media/ico/gas-icon.png"></td>
      <td><span class="label label-default">Gas</span></td>
      <td><span class="label label-info">
        <?php
          $root=$_SERVER["DOCUMENT_ROOT"];
          $db = new PDO("sqlite:$root/db/usb_ttyUSB10_elec.sql");
          $rows = $db->query("select round(sum(value)/(julianday('now', 'localtime')- julianday('now','start of month')),2) from def where time >= date('now','start of month')");
          $i = $rows->fetch(); 
          echo $i['0'];
        ?>
        <?php echo " m3"?>
      </td>
      <td><span class="label label-danger">
        <?php 
          $rows = $db->query(" select julianday ('now','start of month','+1 month','-1 day') - julianday('now','start of month','-1 day')");
          $d = $rows->fetch(); 
          echo $d['0']*$i['0'];
        ?>
        <?php echo " m3"?>
      </td>
    </tr>
  </tbody>
</table>
W kodzie trzeba sobie zmienić trzy liniki na swoje (baza liczników)

Kod: Zaznacz cały

$db = new PDO("sqlite:$root/db/usb_ttyUSB10_elec.sql");
*u mnie jest trzy razy ta sama baza ponieważ na tą chwilę mam w NT tylko licznik energii elektrycznej.
*liczników można oczywiście dodać więcej czy też może być ich mniej-wszystko zależy od naszych potrzeb :)

Moje wypociny wyglądają tak:
Zrzut ekranu z 2018-02-19 10-11-56.png
[email protected] HP MicroServer N54L, Raspberry Pi 3B, Raspberry Pi B+

ODPOWIEDZ

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość