/**
 * Title
 *
 * Description
 *
 * @access public
 */
 function updateDisplay($id)
 {
     if (!defined('ONEWIRE_SERVER')) {
         return 0;
     }
     $rec = SQLSelectOne("SELECT * FROM owdisplays WHERE ID='" . $id . "'");
     if (!$rec['ID']) {
         return 0;
     }
     $ow = new OWNet(ONEWIRE_SERVER);
     $device = '/' . $rec['UDID'];
     $rec['UPDATE_LATEST'] = time();
     $rec['UPDATE_NEXT'] = time() + (int) $rec['UPDATE_INTERVAL'];
     $rec['VALUE'] = str_replace("\r", '', $rec['VALUE']);
     $text = explode("\n", $rec['VALUE']);
     for ($i = 1; $i <= $rec['ROWS']; $i++) {
         $line = $i . ",1:" . $text[$i - 1];
         $line = processTitle($line);
         $ow->set($device . "/LCD_H/screenyx", str_pad($line, 40));
     }
     SQLUpdate('owdisplays', $rec);
 }
 function cron_job($atts, $content = null)
 {
     //$this->port20031_sendmesagealert('*****@*****.**','*****@*****.**','*****@*****.**','алерт');
     //дергаем крон
     global $wpdb;
     //chek temp alarm
     //$to = "*****@*****.**";
     //$subject = 'wp_mail function test';
     //$message = 'This is a test of the wp_mail function: wp_mail is working';
     //$headers = '';
     //$sent_message = wp_mail( $to, $subject, $message, $headers );
     /*
     		$headers = 'From: My Name <*****@*****.**>' . "\r\n";
     		wp_mail('*****@*****.**', 'Тема', 'Содержание', $headers);
     */
     //на основе расписаний заносим состояние ключей
     //получаем список включения ключей с сортировкой по ключу и типу расписания
     //$table_name = $wpdb->prefix . "port20031_job";
     //тут логика включения ключей
     //require_once $port20031_pathownet;
     $port20031_pathownet = "" . get_option('port20031_pathownet') . "";
     if (file_exists($port20031_pathownet)) {
         //echo "<br>Файл $port20031_pathownet существует<br>";
         //require_once $port20031_pathownet;
     } else {
         //echo "<br>Файл $port20031_pathownet не существует<br>";
         //include internal ownet.php
         $port20031_pathownet = "ownet.php";
         //require_once $port20031_pathownet;
     }
     //ini_set('memory_limit', '-1');
     require_once $port20031_pathownet;
     //update_option('port20031_pathownet2', $port20031_pathownet);
     //require_once "/opt/owfs/share/php/OWNet/ownet.php";
     //require_once "/opt/owfs/share/php/OWNet/ownet.php";
     unset($ow);
     $port20031_portownet = get_option('port20031_portownet');
     $ow = new OWNet("tcp://localhost:" . $port20031_portownet . "");
     $dir = array();
     $dir = $ow->dir('/');
     $t = array();
     $tt = array();
     $ttt = '';
     $temp1 = null;
     if (!is_array($dir)) {
         $dir = array();
         array_push($dir, "port20031", $_ = null);
     }
     foreach ($dir as $key => $val) {
         if ($key == 'data') {
             $t = explode(',', $val);
         }
     }
     foreach ($t as $key => $val) {
         //работа с датчиками температуры , сбор
         if (strrpos($val, '28.')) {
             $temp1 = null;
             $i = 0;
             while ($temp1 == null) {
                 $temp1 = $ow->read($val . "/temperature");
                 $i = $i - 1;
                 if (-100 == $i) {
                     $temp1 = $i;
                 }
             }
             //ищем устройство в списке , если нет добавляем и определяем id
             $table_name = $wpdb->prefix . "port20031_name1wire";
             $sql = "SELECT id FROM " . $table_name . " WHERE `id_type`=1 AND `name1wire`='" . $val . "' ;";
             $res = $wpdb->get_col($sql, 0);
             $res1 = $res[0];
             if ($res1 != null) {
                 //уже есть в списке
                 $table_name = $wpdb->prefix . "port20031_log_temp";
                 $sql1 = "INSERT INTO " . $table_name . "( `id_name`,  `temp_val`) VALUES ('" . $res1 . "','" . $temp1 . "')";
                 $wpdb->query($sql1);
                 $temp1 = null;
             } else {
                 //нет в списке заносим
                 $table_name = $wpdb->prefix . "port20031_name1wire";
                 $sql = "INSERT INTO " . $table_name . "( `name1wire`, `id_type`) VALUES ('" . $val . "',1);";
                 $wpdb->query($sql);
                 //$sql ="SELECT id FROM ".$table_name." WHERE `id_type`=1 AND `name1wire`='".$val."' ;";
                 //$res1=$wpdb->query($sql);
                 //$table_name = $wpdb->prefix . "port20031_log_temp";
                 //$sql ="INSERT INTO ".$table_name."( `id_name`,  `temp_val`) VALUES ('".$res1."','".$temp1."')";
                 //$wpdb->query($sql);
                 $temp1 = null;
             }
             $temp1 = null;
         } elseif (strrpos($val, '3A.')) {
             //ищем устройство в списке , если нет добавляем и определяем id
             //устройства 2413 канал А ключ , канал В  статус устройства
             //канал А ключ;
             $table_name = $wpdb->prefix . "port20031_name1wire";
             $sql = "SELECT id FROM " . $table_name . " WHERE `id_type`=2 AND `name1wire`='" . $val . "' ;";
             $res = $wpdb->get_col($sql, 0);
             $res1 = $res[0];
             if ($res1 != null) {
                 //уже есть в списке , выставляем уровень по таблице стате
                 //$table_name = $wpdb->prefix . "port20031_log_key";
                 //$sql1 ="INSERT INTO ".$table_name."( `id_name`,  `temp_val`) VALUES ('".$res1."','".$temp1."')";
                 //$wpdb->query($sql1);
                 //$temp1 =null;
             } else {
                 //нет в списке заносим
                 $table_name = $wpdb->prefix . "port20031_name1wire";
                 $sql = "INSERT INTO " . $table_name . "( `name1wire`, `id_type`) VALUES ('" . $val . "',2);";
                 $wpdb->query($sql);
             }
             //канал В ключ;канал В  статус устройства
             $table_name = $wpdb->prefix . "port20031_name1wire";
             $sql = "SELECT id FROM " . $table_name . " WHERE `id_type`=3 AND `name1wire`='" . $val . "' ;";
             $res = $wpdb->get_col($sql, 0);
             $res13 = $res[0];
             if ($res13 != null) {
                 //уже есть в списке ,
                 //расчет состояния по расписанию key_id=$res13
                 $states = 0;
                 //read jobs for
                 $table_name = $wpdb->prefix . "port20031_job";
                 $sql = "SELECT `schedulers`, `key_id`, `type_id`,  `temp_id`, `autostop_climate`, `time1`, `time2`, `job_data`,`id`\nFROM `" . $table_name . "` WHERE `key_id`=" . $res13 . "\nORDER BY `type_id`; ";
                 $res0 = $wpdb->get_col($sql, 0);
                 $res1 = $wpdb->get_col($sql, 1);
                 $res2 = $wpdb->get_col($sql, 2);
                 $res3 = $wpdb->get_col($sql, 3);
                 $res4 = $wpdb->get_col($sql, 4);
                 $res5 = $wpdb->get_col($sql, 5);
                 $res6 = $wpdb->get_col($sql, 6);
                 $res7 = $wpdb->get_col($sql, 7);
                 $res8 = $wpdb->get_col($sql, 8);
                 if ($res0) {
                     for ($i = 0; $i <= count($res0) - 1; $i++) {
                         //echo "".$res0[$i]."=>".$res1[$i]."=>".$res2[$i]."=>".$res3[$i]."=>".$res4[$i]."=>".$res5[$i]
                         //."=>".$res6[$i]."=>".$res7[$i]."=>".$res8[$i].'<br>';
                         if (0 < $this->port20031_activday($res0[$i], $res7[$i], $res8[$i])) {
                             //echo "<br>find job<br>";
                             $states = $states + $this->port20031_job($res2[$i], $res3[$i], $res4[$i], $res5[$i], $res6[$i]);
                         } else {
                             $states = $states + 0;
                         }
                     }
                 }
                 //update program state for key
                 if (0 < $states) {
                     //заносим 1 в програм состояние датчика  WHERE `key_id`=".$res13."
                     //UPDATE `wp_port20031_state_key` SET `state_program`=1 WHERE `key_id` =
                     $table_name33 = $wpdb->prefix . "port20031_state_key";
                     $sql33 = "UPDATE `" . $table_name33 . "` SET `state_program`=1 WHERE `key_id` =" . $res13 . " ";
                     $wpdb->query($sql33);
                 } else {
                     //заносим 0 в програм состояние датчика  WHERE `key_id`=".$res13."
                     $table_name33 = $wpdb->prefix . "port20031_state_key";
                     $sql33 = "UPDATE `" . $table_name33 . "` SET `state_program`=0 WHERE `key_id` =" . $res13 . " ";
                     $wpdb->query($sql33);
                 }
                 //расчет состояния по расписанию
                 //set for program
                 $table_name1 = $wpdb->prefix . "port20031_state_key";
                 $sql22 = "SELECT `state_program` FROM `" . $table_name1 . "` WHERE `key_id`=" . $res13 . " ";
                 $res22 = $wpdb->get_col($sql22, 0);
                 $res12 = $res22[0];
                 if ($res12 > 0) {
                     $res12 = 1;
                 }
                 $ow->set($val . "/PIO.A", $res12);
                 //читаем статус  и заносим в базу
                 $key11 = null;
                 $key11 = $ow->read($val . "/sensed.B");
                 //$ow1->read ('/3A.E3420D00000018/sensed.B')
                 if ($key11 != 1) {
                     $key11 = $ow->read($val . "/sensed.B");
                 }
                 if ($key11 != 1) {
                     $key11 = 0;
                 }
                 $table_name1 = $wpdb->prefix . "port20031_state_key";
                 $sql1 = "UPDATE `" . $table_name1 . "` SET `state_real`=" . $key11 . " WHERE `key_id`=" . $res13 . "";
                 //$sql1 ="INSERT INTO ".$table_name."( `id_name`,  `temp_val`) VALUES ('".$res1."','".$temp1."')";
                 //echo $sql1;
                 $wpdb->query($sql1);
             } else {
                 //нет в списке заносим
                 $table_name = $wpdb->prefix . "port20031_name1wire";
                 $sql = "INSERT INTO " . $table_name . "( `name1wire`, `id_type`) VALUES ('" . $val . "',3);";
                 $wpdb->query($sql);
                 //получаем номер ключа
                 $table_name1 = $wpdb->prefix . "port20031_name1wire";
                 $sql11 = "SELECT id FROM " . $table_name1 . " WHERE `id_type`=3 AND `name1wire`='" . $val . "' ;";
                 $res11 = $wpdb->get_col($sql11, 0);
                 $num111 = $res11[0];
                 $key11 = null;
                 $key11 = $ow->read($val . "/sensed.B");
                 //$ow1->read ('/3A.E3420D00000018/sensed.B')
                 if ($key11 != 1) {
                     $key11 = 0;
                 }
                 //заносим в таблицу состояния ключей
                 $table_name2 = $wpdb->prefix . "port20031_state_key";
                 $sql2 = "INSERT INTO " . $table_name2 . "( `key_id`, `state_program`, `state_real`)\n\t\t\t\t\tVALUES (" . $num111 . ",0," . $key11 . ")";
                 $wpdb->query($sql2);
             }
             //$key11 =null;
         }
         //тут логика включения ключей
         //1-read job
         //2-обрабатываем строки
         //тут логика включения ключей
         //чистка старого
         //1 day = 86400 sec
         $table_name = $wpdb->prefix . "port20031_log_temp";
         //$sql ="DELETE FROM ".$table_name." WHERE `temp_data` < (now()- INTERVAL 5 SECOND ) ;";
         $sql = "DELETE FROM " . $table_name . " WHERE `temp_data` < (now()- INTERVAL 10 DAY);";
         $wpdb->query($sql);
         //delete bad temperatyre
         $table_name = $wpdb->prefix . "port20031_log_temp";
         $sql = "DELETE FROM " . $table_name . " WHERE `temp_val`=-100;";
         $wpdb->query($sql);
         //чистка старого
         //работа с датчиками температуры , сбор
     }
     $z = get_option('port20031_sensortempalarm');
     if (1000 != $z) {
         //chek alert
         //name temp sensor
         $table_name = $wpdb->prefix . "port20031_name1wire";
         $query = "\n\t\t\tSELECT `name1wire` FROM `" . $table_name . "` WHERE `id`= " . $z . "\n\t\t\t";
         $cta = $wpdb->get_col($query, 0);
         $ctaname = $cta[0];
         if ($ctaname != NULL) {
             //
             $temp1 = null;
             $i = 900;
             while ($temp1 == null) {
                 $temp1 = $ow->read($ctaname . "/temperature");
                 $i = $i + 1;
                 if (1000 == $i) {
                     $temp1 = $i;
                 }
             }
             if ($temp1 > get_option('port20031_alarmtempownet')) {
                 //send alarm
                 $table_name44 = $wpdb->prefix . "port20031_alarm";
                 $sql44 = "INSERT INTO `" . $table_name44 . "`( `type_id`) VALUES (1)";
                 //echo '<br>'.$sql44.'<br>';
                 $wpdb->query($sql44);
             }
         }
     }
     //send alarm update_option('port20031_act_alarm', "checked");
     if (get_option('port20031_act_alarm') == "checked") {
         $this->port20031_sendmesagealert();
     }
     unset($ow);
     return;
 }