Advertisement
ans4175

histsensor

Jan 3rd, 2015
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 15.38 KB | None | 0 0
  1. public function getHistsensor($id){
  2.         global $db;
  3.         $tgl = isset($_GET['tgl']) ? $_GET['tgl'] : date('Y-m-d');
  4.         $tglex = explode('-', $tgl);
  5.  
  6.         $nhari = date("t",strtotime("$tgl +1 days"));
  7.         $tipe = isset($_GET['tipe']) ? $_GET['tipe'] : 0;
  8.  
  9.         $sql = "select * from lantai where idgedung=$id";
  10.         $datalantai = $db->pdoQuery($sql)->results();
  11.         $gedung = array();
  12.         $gedung['lantai'] = array();
  13.         //iterasi lantai
  14.         if ($tipe==0){
  15.             //harian
  16.             for( $i=1; $i<= 24; $i++){
  17.                 if ($i%6==0)
  18.                     $label[] = str_pad($i,2,'0', STR_PAD_LEFT);
  19.                 else
  20.                     $label[] = "";
  21.             }
  22.         }else if ($tipe==1){
  23.             //bulanan
  24.             for( $i=1; $i<= $nhari; $i++)
  25.                 $label[] = str_pad($i,2,'0', STR_PAD_LEFT);
  26.         }else{
  27.             //tahunan
  28.             $label = array();
  29.         }
  30.         $gedung['label'] = $label;
  31.         foreach ($datalantai as $keylantai => $valuelantai) {
  32.             $lantai = array();
  33.             $sql = "select * from ruang where idlantai=".$valuelantai['idlantai'];
  34.             $dataruang = $db->pdoQuery($sql)->results();
  35.             $lantai = $datalantai[$keylantai];
  36.             $lantai['ruang'] = array();
  37.             foreach ($dataruang as $keyruang => $valueruang) {
  38.                 $ruang = array();
  39.                 $ruang = $valueruang;
  40.                 $idruang = $valueruang['idruang'];
  41.                 $ruang['powermeter'] = array();
  42.                 $ruang['okupansi'] = array();
  43.                 $ruang['temperatur'] = array();
  44.                 $ruang['kelembaban'] = array();
  45.                 $ruang['luminansi'] = array();
  46.                 if ($tipe==2){
  47.                     array_push($ruang['powermeter'],0);
  48.                     array_push($ruang['okupansi'],0);
  49.                     array_push($ruang['temperatur'],0);
  50.                     array_push($ruang['kelembaban'],0);
  51.                     array_push($ruang['luminansi'],0);
  52.                 }
  53.                 //harian
  54.                 if ($tipe==0){
  55.                     for ($m=0;$m<24;$m++){
  56.                         //perjam
  57.                         $t1 = date("Y-m-d H:i:s",strtotime("$tgl 00:00:00 +$m hours"));
  58.                         $t2 = date("Y-m-d H:i:s",strtotime("$tgl 00:00:00 +$m hours 59 minutes"));
  59.                         $sql = "select * from konsumsi_alat k inner join utilitas_pasang up on k.id_utilitaspasang = up.idutilitas_pasang where T2 >= '$t1'and T1 <= '$t2' and up.util_tipe < 6 and up.idruang = $idruang";
  60.                         $datasensor = $db->pdoQuery($sql)->results();
  61.                         $powermeter = 0;
  62.                         $okupansi = 0;
  63.                         $temperatur = 0;
  64.                         $kelembaban = 0;
  65.                         $luminansi = 0;
  66.                         $lenC = 0;
  67.                         $lenH = 0;
  68.                         $lenL = 0;
  69.                         foreach ($datasensor as $keysensor => $valuesensor) {
  70.                             switch ($valuesensor['util_tipe']){
  71.                                 case 1:
  72.                                     $powermeter += (float)$valuesensor['W'];
  73.                                     break;
  74.                                 case 2:
  75.                                     $okupansi += (int)$valuesensor['O'];
  76.                                     break;
  77.                                 case 3:
  78.                                     $temperatur += (float)$valuesensor['C'];
  79.                                     $lenC++;
  80.                                     break;
  81.                                 case 4:
  82.                                     $kelembaban += (float)$valuesensor['H'];
  83.                                     $lenH++;
  84.                                     break;
  85.                                 case 5:
  86.                                     $luminansi += (float)$valuesensor['L'];
  87.                                     $lenL++;
  88.                                     break;
  89.                                 default:
  90.                                     break;
  91.                             }
  92.                         }
  93.                         array_push($ruang['powermeter'],$powermeter);
  94.                         array_push($ruang['okupansi'],$okupansi);
  95.                         $nc = ($lenC > 0) ? $temperatur/$lenC : 0;
  96.                         array_push($ruang['temperatur'],$nc);
  97.                         $nh = ($lenH > 0) ? $kelembaban/$lenH : 0;
  98.                         array_push($ruang['kelembaban'],$nh);
  99.                         $nl = ($lenL > 0) ? $luminansi/$lenL : 0;
  100.                         array_push($ruang['luminansi'],$nl);
  101.                     }
  102.                 } else if ($tipe==1){
  103.                     for( $i=0; $i< $nhari; $i++){
  104.                         //perhari
  105.                         $tgl = $tglex[0].'-'.$tglex[1].'-'.'01';
  106.                         $m = $i*24;
  107.                         $t1 = date("Y-m-d H:i:s",strtotime("$tgl 00:00:00 +$m hours"));
  108.                         $t2 = date("Y-m-d H:i:s",strtotime("$tgl 23:59:59 +$m hours"));
  109.                         $sql = "select * from konsumsi_alat k inner join utilitas_pasang up on k.id_utilitaspasang = up.idutilitas_pasang where T2 >= '$t1'and T1 <= '$t2' and up.util_tipe < 6 and up.idruang = $idruang";
  110.                         $datasensor = $db->pdoQuery($sql)->results();
  111.                         $powermeter = 0;
  112.                         $okupansi = 0;
  113.                         $temperatur = 0;
  114.                         $kelembaban = 0;
  115.                         $luminansi = 0;
  116.                         $lenC = 0;
  117.                         $lenH = 0;
  118.                         $lenL = 0;
  119.                         foreach ($datasensor as $keysensor => $valuesensor) {
  120.                             switch ($valuesensor['util_tipe']){
  121.                                 case 1:
  122.                                     $powermeter += (float)$valuesensor['W'];
  123.                                     break;
  124.                                 case 2:
  125.                                     $okupansi += (int)$valuesensor['O'];
  126.                                     break;
  127.                                 case 3:
  128.                                     $temperatur += (float)$valuesensor['C'];
  129.                                     $lenC++;
  130.                                     break;
  131.                                 case 4:
  132.                                     $kelembaban += (float)$valuesensor['H'];
  133.                                     $lenH++;
  134.                                     break;
  135.                                 case 5:
  136.                                     $luminansi += (float)$valuesensor['L'];
  137.                                     $lenL++;
  138.                                     break;
  139.                                 default:
  140.                                     break;
  141.                             }
  142.                         }
  143.                         array_push($ruang['powermeter'],$powermeter);
  144.                         array_push($ruang['okupansi'],$okupansi);
  145.                         $nc = ($lenC > 0) ? $temperatur/$lenC : 0;
  146.                         array_push($ruang['temperatur'],$nc);
  147.                         $nh = ($lenH > 0) ? $kelembaban/$lenH : 0;
  148.                         array_push($ruang['kelembaban'],$nh);
  149.                         $nl = ($lenL > 0) ? $luminansi/$lenL : 0;
  150.                         array_push($ruang['luminansi'],$nl);
  151.                     }
  152.                 } else if ($tipe==2){
  153.                     for( $i=1; $i<= 12; $i++){
  154.                         $tgl = $tglex[0].'-'.$i.'-'.'01';
  155.                         $t1 = date("Y-m-d H:i:s",strtotime("$tgl 00:00:00"));
  156.                         $t2 = date("Y-m-d H:i:s",strtotime("$tgl 00:00:00 next month - 1 seconds"));
  157.                         $sql = "select * from konsumsi_alat k inner join utilitas_pasang up on k.id_utilitaspasang = up.idutilitas_pasang where T2 >= '$t1'and T1 <= '$t2' and up.util_tipe < 6 and up.idruang = $idruang";
  158.                         $datasensor = $db->pdoQuery($sql)->results();
  159.                         $powermeter = 0;
  160.                         $okupansi = 0;
  161.                         $temperatur = 0;
  162.                         $kelembaban = 0;
  163.                         $luminansi = 0;
  164.                         $lenC = 0;
  165.                         $lenH = 0;
  166.                         $lenL = 0;
  167.                         foreach ($datasensor as $keysensor => $valuesensor) {
  168.                             switch ($valuesensor['util_tipe']){
  169.                                 case 1:
  170.                                     $powermeter += (float)$valuesensor['W'];
  171.                                     break;
  172.                                 case 2:
  173.                                     $okupansi += (int)$valuesensor['O'];
  174.                                     break;
  175.                                 case 3:
  176.                                     $temperatur += (float)$valuesensor['C'];
  177.                                     $lenC++;
  178.                                     break;
  179.                                 case 4:
  180.                                     $kelembaban += (float)$valuesensor['H'];
  181.                                     $lenH++;
  182.                                     break;
  183.                                 case 5:
  184.                                     $luminansi += (float)$valuesensor['L'];
  185.                                     $lenL++;
  186.                                     break;
  187.                                 default:
  188.                                     break;
  189.                             }
  190.                         }
  191.                         array_push($ruang['powermeter'],$powermeter);
  192.                         array_push($ruang['okupansi'],$okupansi);
  193.                         $nc = ($lenC > 0) ? $temperatur/$lenC : 0;
  194.                         array_push($ruang['temperatur'],$nc);
  195.                         $nh = ($lenH > 0) ? $kelembaban/$lenH : 0;
  196.                         array_push($ruang['kelembaban'],$nh);
  197.                         $nl = ($lenL > 0) ? $luminansi/$lenL : 0;
  198.                         array_push($ruang['luminansi'],$nl);
  199.                     }
  200.                 }
  201.                 array_push($lantai['ruang'],$ruang);    
  202.             }
  203.             array_push($gedung['lantai'],$lantai);
  204.         }
  205.         $lantai = array();
  206.         $lantai['idlantai'] = 0;
  207.         $lantai['nama'] = "SEMUA";
  208.         $lantai['ruang'] = array();
  209.         $ruang = array();
  210.         $ruang['idruang'] = 0;
  211.         $ruang['nama'] = "SEMUA";
  212.         $ruang['powermeter'] = array();
  213.         $ruang['okupansi'] = array();
  214.         $ruang['temperatur'] = array();
  215.         $ruang['kelembaban'] = array();
  216.         $ruang['luminansi'] = array();
  217.         foreach ($gedung['lantai'][0]['ruang'][0]['powermeter'] as $urutan){
  218.             array_push($ruang['luminansi'],0);
  219.             array_push($ruang['kelembaban'],0);
  220.             array_push($ruang['temperatur'],0);
  221.             array_push($ruang['okupansi'],0);
  222.             array_push($ruang['powermeter'],0);
  223.         }
  224.         $nGCSensor = 0;
  225.         $nGHSensor = 0;
  226.         $nGLSensor = 0;
  227.         //SEMUA
  228.         foreach ($gedung['lantai'] as $l=>$subLantai) {
  229.             $nRuang = count($subLantai['ruang']);
  230.             //C
  231.             $sql = "select count(*) as nsensor from utilitas_pasang where util_tipe = 3 and idlantai = ".$subLantai['idlantai'];
  232.             $nCSensor = $db->pdoQuery($sql)->results();
  233.             $nCSensor = $nCSensor[0]['nsensor'];
  234.             //H
  235.             $sql = "select count(*) as nsensor from utilitas_pasang where util_tipe = 4 and idlantai = ".$subLantai['idlantai'];
  236.             $nHSensor = $db->pdoQuery($sql)->results();
  237.             $nHSensor = $nHSensor[0]['nsensor'];
  238.             //L
  239.             $sql = "select count(*) as nsensor from utilitas_pasang where util_tipe = 5 and idlantai = ".$subLantai['idlantai'];
  240.             $nLSensor = $db->pdoQuery($sql)->results();
  241.             $nLSensor = $nLSensor[0]['nsensor'];
  242.             //
  243.             $nGCSensor += $nCSensor;
  244.             $nGHSensor += $nHSensor;
  245.             $nGLSensor += $nLSensor;
  246.             $peruang = array();
  247.             $peruang['idruang'] = 0;
  248.             $peruang['nama'] = "SEMUA";
  249.             $peruang['jumlah_ruang'] = $nRuang;
  250.             $peruang['powermeter'] = array();
  251.             $peruang['okupansi'] = array();
  252.             $peruang['temperatur'] = array();
  253.             $peruang['kelembaban'] = array();
  254.             $peruang['luminansi'] = array();
  255.             foreach ($subLantai['ruang'][0]['powermeter'] as $urutan){
  256.                 array_push($peruang['luminansi'],0);
  257.                 array_push($peruang['kelembaban'],0);
  258.                 array_push($peruang['temperatur'],0);
  259.                 array_push($peruang['okupansi'],0);
  260.                 array_push($peruang['powermeter'],0);
  261.             }
  262.           foreach ($subLantai['ruang'] as $r=>$subRuang) {
  263.             foreach ($subRuang['powermeter'] as $elid=>$value) {
  264.                 $ruang['powermeter'][$elid] += $value;  //ini total atau rata2
  265.                 $peruang['powermeter'][$elid] += $value;  //ini total atau rata2
  266.             }  
  267.             foreach ($subRuang['okupansi'] as $elid=>$value) {
  268.                 $ruang['okupansi'][$elid] += $value;  //ini total atau rata2
  269.                 $peruang['okupansi'][$elid] += $value;  //ini total atau rata2
  270.             }  
  271.             foreach ($subRuang['temperatur'] as $elid=>$value) {
  272.                 $ruang['temperatur'][$elid] += $value;  //ini total atau rata2
  273.                 $peruang['temperatur'][$elid] += $value;  //ini total atau rata2
  274.             }  
  275.             foreach ($subRuang['kelembaban'] as $elid=>$value) {
  276.                 $ruang['kelembaban'][$elid] += $value;  //ini total atau rata2
  277.                 $peruang['kelembaban'][$elid] += $value;  //ini total atau rata2
  278.             }  
  279.             foreach ($subRuang['luminansi'] as $elid=>$value) {
  280.                 $ruang['luminansi'][$elid] += $value;  //ini total atau rata2
  281.                 $peruang['luminansi'][$elid] += $value;  //ini total atau rata2
  282.             }  
  283.           }
  284.           //HITUNG RATA2
  285.           foreach ($peruang['temperatur'] as $idx => $value) {
  286.             $peruang['temperatur'][$idx] = ($nCSensor > 0) ? $peruang['temperatur'][$idx]/$nCSensor : 0;  
  287.           }
  288.           foreach ($peruang['kelembaban'] as $idx => $value) {
  289.             $peruang['kelembaban'][$idx] = ($nHSensor > 0) ? $peruang['kelembaban'][$idx]/$nHSensor : 0;  
  290.           }
  291.           foreach ($peruang['luminansi'] as $idx => $value) {
  292.             $peruang['luminansi'][$idx] = ($nLSensor > 0) ? $peruang['luminansi'][$idx]/$nLSensor : 0;  
  293.           }
  294.           array_unshift($gedung['lantai'][$l]['ruang'],$peruang);
  295.         }
  296.         //HITUNG RATA2
  297.         foreach ($ruang['temperatur'] as $idx => $value) {
  298.           $ruang['temperatur'][$idx] = ($nGCSensor > 0) ? $ruang['temperatur'][$idx]/$nGCSensor : 0;  
  299.         }
  300.         foreach ($ruang['kelembaban'] as $idx => $value) {
  301.           $ruang['kelembaban'][$idx] = ($nGHSensor > 0) ? $ruang['kelembaban'][$idx]/$nGHSensor : 0;  
  302.         }
  303.         foreach ($ruang['luminansi'] as $idx => $value) {
  304.           $ruang['luminansi'][$idx] = ($nGLSensor > 0) ? $ruang['luminansi'][$idx]/$nGLSensor : 0;  
  305.         }
  306.         array_push($lantai['ruang'],$ruang);
  307.         array_unshift($gedung['lantai'],$lantai);
  308.        
  309.         return $gedung;
  310.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement