a:1:{i:0;a:6:{s:5:"TITLE";s:8:"AV_Onkyo";s:5:"NOLOG";s:1:"0";s:11:"DESCRIPTION";s:0:"";s:7:"METHODS";a:7:{i:0;a:7:{s:5:"TITLE";s:13:"VolumeChanged";s:11:"DESCRIPTION";s:35:"изменяем громкость";s:4:"CODE";s:330:"$vol=$this->GetProperty('VolumeLevel');
if ($vol>60)  {$vol=60;}//запретим превышать громкость
$command=strtoupper('!1'.$this->GetProperty('VolumeCommand').dechex($vol));
$ot=$this->object_title; //получить имя объекта
callMethod($ot.'.SendCommand',array('OnkyoCommand'=>$command));";s:11:"CALL_PARENT";s:1:"0";s:9:"SCRIPT_ID";s:1:"0";s:8:"EXECUTED";s:19:"2015-07-26 13:30:43";s:15:"EXECUTED_PARAMS";s:51:"a:1:{s:21:"ORIGINAL_OBJECT_TITLE";s:9:"OnkyoMain";}";}i:1;a:7:{s:5:"TITLE";s:11:"SendCommand";s:11:"DESCRIPTION";s:31:"посылаем команду";s:4:"CODE";s:450:"$command=$params['OnkyoCommand'];
//say($command);
$receiveripnumber=$this->GetProperty('IP_address');
$receiverlistenport="60128";
$fp = pfsockopen($receiveripnumber, $receiverlistenport, $errno, $errstr, 30);
$length=strlen($command); 
$length=$length+1;
$total=$length+16;
$code=chr($length);
// total eiscp packet to send 
$line="ISCP\x00\x00\x00\x10\x00\x00\x00$code\x01\x00\x00\x00".$command."\x0D";
fwrite($fp, $line);
fclose($fp);";s:11:"CALL_PARENT";s:1:"0";s:9:"SCRIPT_ID";s:1:"0";s:8:"EXECUTED";s:19:"2015-07-26 13:30:43";s:15:"EXECUTED_PARAMS";s:85:"a:2:{s:12:"OnkyoCommand";s:7:"!1MVL32";s:21:"ORIGINAL_OBJECT_TITLE";s:9:"OnkyoMain";}";}i:2;a:7:{s:5:"TITLE";s:11:"turnChanged";s:11:"DESCRIPTION";s:48:"включение/выключение зоны";s:4:"CODE";s:214:"$command='!1'.$this->GetProperty('PowerCommand').'0'.$this->GetProperty('Status');
$ot=$this->object_title; //получить имя объекта
callMethod($ot.'.SendCommand',array('OnkyoCommand'=>$command));";s:11:"CALL_PARENT";s:1:"0";s:9:"SCRIPT_ID";s:1:"0";s:8:"EXECUTED";s:19:"2015-07-26 12:36:49";s:15:"EXECUTED_PARAMS";s:51:"a:1:{s:21:"ORIGINAL_OBJECT_TITLE";s:9:"OnkyoMain";}";}i:3;a:7:{s:5:"TITLE";s:13:"SourceChanged";s:11:"DESCRIPTION";s:33:"изменяем источник";s:4:"CODE";s:213:"$command='!1'.$this->GetProperty('SelectorCommand').$this->GetProperty('Source');
$ot=$this->object_title; //получить имя объекта
callMethod($ot.'.SendCommand',array('OnkyoCommand'=>$command));";s:11:"CALL_PARENT";s:1:"0";s:9:"SCRIPT_ID";s:1:"0";s:8:"EXECUTED";s:19:"2015-07-26 12:36:51";s:15:"EXECUTED_PARAMS";s:51:"a:1:{s:21:"ORIGINAL_OBJECT_TITLE";s:9:"OnkyoMain";}";}i:4;a:7:{s:5:"TITLE";s:4:"Play";s:11:"DESCRIPTION";s:43:"запуск воспроизведения";s:4:"CODE";s:153:"$command='!1NTCPLAY';
$ot=$this->object_title; //получить имя объекта
callMethod($ot.'.SendCommand',array('OnkyoCommand'=>$command));";s:11:"CALL_PARENT";s:1:"0";s:9:"SCRIPT_ID";s:1:"0";s:8:"EXECUTED";s:19:"2015-07-26 12:36:54";s:15:"EXECUTED_PARAMS";s:51:"a:1:{s:21:"ORIGINAL_OBJECT_TITLE";s:9:"OnkyoMain";}";}i:5;a:7:{s:5:"TITLE";s:4:"Stop";s:11:"DESCRIPTION";s:45:"останов воспроизведения";s:4:"CODE";s:153:"$command='!1NTCSTOP';
$ot=$this->object_title; //получить имя объекта
callMethod($ot.'.SendCommand',array('OnkyoCommand'=>$command));";s:11:"CALL_PARENT";s:1:"0";s:9:"SCRIPT_ID";s:1:"0";s:8:"EXECUTED";s:19:"2015-03-21 00:45:24";s:15:"EXECUTED_PARAMS";s:116:"a:4:{s:6:"object";s:9:"OnkyoMain";s:2:"op";s:1:"m";s:1:"m";s:4:"Stop";s:21:"ORIGINAL_OBJECT_TITLE";s:9:"OnkyoMain";}";}i:6;a:7:{s:5:"TITLE";s:9:"GetStatus";s:11:"DESCRIPTION";s:74:"Возвращает текущие параметры с ресивера";s:4:"CODE";s:1667:"$receiveripnumber=$this->GetProperty('IP_address');
$receiverlistenport="60128";
$fp = pfsockopen($receiveripnumber, $receiverlistenport, $errno, $errstr, 30);
$VolCommand=$this->GetProperty('VolumeCommand');
$command='!1'.$VolCommand.'QSTN';
$status=get_status($command,$fp,false);
$status=hexdec(str_replace('!1'.$VolCommand,'',$status));
$this->SetProperty('VolumeLevel',$status);
say($status);
$PwrCommand=$this->GetProperty('PowerCommand');
$command='!1'.$PwrCommand.'QSTN';
$status=get_status($command,$fp,false);
//say($status);
$status=str_replace('!1'.$PwrCommand,'',$status)+0;
//say($status);
$this->SetProperty('Status',$status);
//say($status);
//$command='!1SLIQSTN';
//$status=get_status($command,$fp,false);
//say($status);
fclose($fp);

function send_cmd($cmd, $fp, $debug){ 
 		$length=strlen($cmd); 
		$length=$length+1; 
 		$total =$length+16; 
 		$code  =chr($length); 
 		$line  ="ISCP\x00\x00\x00\x10\x00\x00\x00$code\x01\x00\x00\x00".$cmd."\x0D"; 
 		if ($debug) { 
 			echo "\n*** send_cmd:".$line; 
 		} 
 		fwrite($fp, $line); 
 		return $line; 
 	} 
  
 	function get_status($cmd, $fp, $debug){ 
 		do { 
 			send_cmd($cmd, $fp, $debug); 
 			$status = ""; 
 			$status = fread($fp, 80); 
 			$status = substr($status, strpos($status, "!")); 
 			$status = substr($status, 0, strlen($status)-3); 
 			if ($debug) { 
 				echo "\n*** get_status:".$cmd." : ".$status; 
 			} 
 		} while ((substr_compare($status, "!1NLS", 0, 5) == 0)or
                 (substr_compare($status, "!1NLT", 0, 5) == 0)or
                 (substr_compare($status, "!!1NL", 0, 5) == 0)); 
 		return $status; 
    }";s:11:"CALL_PARENT";s:1:"0";s:9:"SCRIPT_ID";s:1:"0";s:8:"EXECUTED";s:19:"2015-07-26 15:25:26";s:15:"EXECUTED_PARAMS";s:121:"a:4:{s:6:"object";s:9:"OnkyoMain";s:2:"op";s:1:"m";s:1:"m";s:9:"GetStatus";s:21:"ORIGINAL_OBJECT_TITLE";s:9:"OnkyoMain";}";}}s:10:"PROPERTIES";a:8:{i:0;a:4:{s:5:"TITLE";s:11:"VolumeLevel";s:11:"DESCRIPTION";s:35:"Громкость ресивера";s:12:"KEEP_HISTORY";s:1:"0";s:8:"ONCHANGE";s:0:"";}i:1;a:4:{s:5:"TITLE";s:12:"PowerCommand";s:11:"DESCRIPTION";s:33:"команда включения";s:12:"KEEP_HISTORY";s:1:"0";s:8:"ONCHANGE";s:0:"";}i:2;a:4:{s:5:"TITLE";s:13:"VolumeCommand";s:11:"DESCRIPTION";s:33:"команда громкости";s:12:"KEEP_HISTORY";s:1:"0";s:8:"ONCHANGE";s:0:"";}i:3;a:4:{s:5:"TITLE";s:15:"SelectorCommand";s:11:"DESCRIPTION";s:44:"команда селектора входа";s:12:"KEEP_HISTORY";s:1:"0";s:8:"ONCHANGE";s:0:"";}i:4;a:4:{s:5:"TITLE";s:10:"IP_address";s:11:"DESCRIPTION";s:27:"адрес ресивера";s:12:"KEEP_HISTORY";s:1:"0";s:8:"ONCHANGE";s:0:"";}i:5;a:4:{s:5:"TITLE";s:6:"Status";s:11:"DESCRIPTION";s:15:"вкл/выкл";s:12:"KEEP_HISTORY";s:1:"0";s:8:"ONCHANGE";s:0:"";}i:6;a:4:{s:5:"TITLE";s:6:"Source";s:11:"DESCRIPTION";s:25:"источник зоны";s:12:"KEEP_HISTORY";s:1:"0";s:8:"ONCHANGE";s:0:"";}i:7;a:4:{s:5:"TITLE";s:5:"State";s:11:"DESCRIPTION";s:33:"текущее состояние";s:12:"KEEP_HISTORY";s:1:"0";s:8:"ONCHANGE";s:0:"";}}s:7:"OBJECTS";a:3:{i:0;a:4:{s:5:"TITLE";s:9:"OnkyoMain";s:11:"DESCRIPTION";s:10:"Зона 1";s:12:"KEEP_HISTORY";s:1:"0";s:7:"METHODS";a:0:{}}i:1;a:4:{s:5:"TITLE";s:10:"OnkyoZone2";s:11:"DESCRIPTION";s:10:"Зона 2";s:12:"KEEP_HISTORY";s:1:"0";s:7:"METHODS";a:0:{}}i:2;a:4:{s:5:"TITLE";s:10:"OnkyoZone3";s:11:"DESCRIPTION";s:10:"Зона 3";s:12:"KEEP_HISTORY";s:1:"0";s:7:"METHODS";a:0:{}}}}}