예제 #1
0
 /**
 * Title
 *
 * Description
 *
 * @access public
 */
 function getProperty($id)
 {
     $prop = SQLSelectOne("SELECT * FROM knxproperties WHERE ID='" . $id . "' AND CAN_READ=1");
     if (!$prop['ID']) {
         return false;
     }
     if (!$this->connection) {
         $this->connect(0);
     }
     if ($this->connection) {
         $res = cacheread($this->connection, $prop['ADDRESS'], 0);
         //var_dump($res);
         // $res[0] - addr
         // $res[1] - from
         if (isset($res[2])) {
             $data = array();
             $total = count($res);
             for ($i = 2; $i < $total; $i++) {
                 $data[] = (int) $res[$i];
             }
             $old_value = $prop['DATA_VALUE'];
             if ($prop['DATA_TYPE'] == 'small') {
                 $prop['DATA_VALUE'] = $data[0];
             } elseif ($prop['DATA_TYPE'] == 'p1') {
                 $prop['DATA_VALUE'] = round($data[0] * 100 / 255, 2);
             } elseif ($prop['DATA_TYPE'] == 'f2') {
                 $prop['DATA_VALUE'] = f2_decode($data);
                 // TO-DO: OTHER TYPES!!!
             } elseif ($prop['DATA_TYPE'] == 'b1') {
             } elseif ($prop['DATA_TYPE'] == 'b2') {
             }
             $prop['DATA_RAW'] = implode(',', $data);
             $prop['UPDATED'] = date('Y-m-d H:i:s');
             print_r($prop);
             SQLUpdate('knxproperties', $prop);
             if ($prop['LINKED_OBJECT'] && $prop['LINKED_PROPERTY']) {
                 setGlobal($prop['LINKED_OBJECT'] . '.' . $prop['LINKED_PROPERTY'], $prop['DATA_VALUE'], array($this->name => '0'));
             }
             if ($prop['LINKED_OBJECT'] && $prop['LINKED_METHOD'] && $prop['DATA_VALUE'] != $old_value) {
                 $params = array();
                 $params['VALUE'] = $prop['DATA_VALUE'];
                 callMethod($prop['LINKED_OBJECT'] . '.' . $prop['LINKED_METHOD'], $params);
             }
         }
     }
 }
예제 #2
0
 function display($con)
 {
     control_begin('temp', $this->title);
     $temp = "20";
     if ($this->stateaddr != "" && ($r = fetchstats($con, $this->stateaddr, $this->age))) {
         if (count($r) == 2) {
             $temp = f2_decode($r);
             printf("%s °C", $temp);
         }
     }
     control_main();
     if ($this->tempaddr != "") {
         send_form("Send", $this->tempaddr, "f2", $temp, 1);
     }
     control_end();
 }