Код: Выделить всё
//check outputs
$outputs=SQLSelect("SELECT * FROM unielproperties WHERE DEVICE_ID='".$rec['ID']."' AND TYPE=1 ORDER BY NUM");
$result=$this->sendDeviceCommand($rec['ID'], 0x0b, array(0x00, 0x00, 0x00));
if (isset($result[4])) {
$value=decbin($result[4]); //ошибку вызывает эта операция,чтобы всё работало $value должна быть массивом что-то вроде $value=array(0,0,1,0,0,0,0,1); сконвертировать в массив - не умею.
//print_r($result);
//echo $value."<br/>";
$total=count($outputs);
for($i=0;$i<$total;$i++) {
$old_value=$outputs[$i]['CURRENT_VALUE'];
if ($rec['TYPE']=='dimmer' && $value[(int)$outputs[$i]['NUM']]=='1') {
$result=$this->sendDeviceCommand($rec['ID'], 0x05, array(0x00, 0x40+(int)$outputs[$i]['NUM'], 0x00));
if (isset($result[4])) {
$level=(int)$result[4];
$outputs[$i]['CURRENT_VALUE']=$level;
}
} else {
$outputs[$i]['CURRENT_VALUE']=(int)$value[(int)$outputs[$i]['NUM']]; // почему не использовать $value[$i] вместо (int)$value[(int)$outputs[$i]['NUM']]
}
SQLUpdate('unielproperties', $outputs[$i]);
if ($outputs[$i]['LINKED_OBJECT'] && $outputs[$i]['LINKED_PROPERTY']) {
if ($old_value!=$outputs[$i]['CURRENT_VALUE'] || $outputs[$i]['CURRENT_VALUE']!=gg($outputs[$i]['LINKED_OBJECT'].'.'.$outputs[$i]['LINKED_PROPERTY'])) {
}
setGlobal($outputs[$i]['LINKED_OBJECT'].'.'.$outputs[$i]['LINKED_PROPERTY'], $outputs[$i]['CURRENT_VALUE'], array($this->name=>'0'));
}
}
}