function port20031_gettemp($num_temp, $climat)
 {
     global $wpdb;
     //read name temp datchik SELECT `name1wire` FROM `wp_port20031_name1wire` WHERE `id` =
     $table_name = $wpdb->prefix . "port20031_name1wire";
     $sql = "SELECT `name1wire` FROM `" . $table_name . "` WHERE `id` =" . $num_temp . "";
     $res = $wpdb->get_col($sql, 0);
     $val = $res[0];
     $port20031_pathownet = "" . get_option('port20031_pathownet') . "";
     if (file_exists($port20031_pathownet)) {
         //echo "<br>Файл $port20031_pathownet существует<br>";
         //require_once $port20031_pathownet;
     } else {
         $port20031_pathownet = "ownet.php";
     }
     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 . "");
     $temp1 = null;
     $i = 900;
     while ($temp1 == null) {
         $temp1 = $ow->read($val . "/temperature");
         $i = $i + 1;
         if (1000 == $i) {
             $temp1 = $i;
         }
     }
     unset($ow);
     if ($temp1 > $climat + 1) {
         return 0;
     } elseif ($temp1 < $climat) {
         return 1;
     } else {
         return 0;
     }
 }
 /**
  * Query %OWNet daemon
  */
 public function Query()
 {
     $host = $this->GetHost();
     $port = $this->GetPort();
     $connect = "{$host}:{$port}";
     $ow = new OWNet("tcp://" . $connect);
     if ($ow) {
         //we are connected, proceed
         $this->debug(__FUNCTION__, "Connected to '{$connect}'");
         // retrieve owfs directory from given root
         $ow_dir = $ow->dir($this->ow_path);
         if ($ow_dir && isset($ow_dir['data_php'])) {
             //walk through the retrieved tree
             $dirs = explode(",", $ow_dir['data_php']);
             if (is_array($dirs) && count($dirs) > 0) {
                 foreach ($dirs as $dev) {
                     #print_r($ow->dir($dev));
                     $data = array();
                     $caps = '';
                     /* read standard device details */
                     //get family id
                     $fam = $ow->read("{$dev}/family");
                     if (!$fam) {
                         continue;
                     }
                     //not a device path
                     //get device id
                     $id = $ow->read("{$dev}/id");
                     //get alias (if any) and owfs detected device description as type
                     $alias = $ow->get("{$dev}/alias");
                     $type = $ow->get("{$dev}/type");
                     if (!$type) {
                         $type = "1Wire Family " . $fam;
                     }
                     //assign names for ips categories
                     $name = $id;
                     if ($alias) {
                         $name = $alias;
                         $caps = 'Name';
                     }
                     //save date
                     $data['Date'] = date('Y-m-d H:i:s', time());
                     //get varids
                     $addr = "{$fam}.{$id}";
                     //print "$id ($alias): Type $type Family $fam\n";
                     //retrieve device specific data
                     switch ($fam) {
                         case '28':
                             //DS18B20 temperature sensors
                         //DS18B20 temperature sensors
                         case '10':
                             //DS18S20 temperature sensors
                         //DS18S20 temperature sensors
                         case '22':
                             //DS1820 temperature sensors
                             $temp = trim($ow->read("{$dev}/temperature", true));
                             if (strlen($temp) > 0) {
                                 //store new temperature value
                                 $this->debug(__FUNCTION__, "{$type} {$id} ({$alias}): {$temp}");
                                 $data['Name'] = $name;
                                 $data['Id'] = $addr;
                                 $data['Typ'] = $type;
                                 $data['Temp'] = sprintf("%4.1f", $temp);
                                 //print " Alias '$alias',Temp $temp\n";
                                 $caps .= ';Temp';
                                 $this->SendWSData($caps, $data);
                                 $this->log_data($data);
                             }
                             break;
                         default:
                             IPS_LogMessage(__CLASS__, "{$id} ({$alias}): Type {$type} Family {$fam} not implemented yet");
                     }
                 }
                 //for
             } else {
                 //no device fount
                 IPS_LogMessage(__CLASS__, "No 1Wire Device found");
             }
         } else {
             //dir command failed, stop here
             $this->debug(__FUNCTION__, "Dir using {$this->ow_path}' failed");
         }
     } else {
         //no object, connect has been failed, stop here
         IPS_LogMessage(__CLASS__, "Connect to '{$connect}' failed");
     }
 }