Наверное, здесь лучше отвечу.
Вот настройки на есп-бридже. Поставьте свои

- Настройки в есп
- 2017-06-18_22-21-11.png (39.74 КБ) 4471 просмотр
Загрузите в default.bas первый код из моего поста по ссылке
Создайте в скриптах новый, назовите его myesp
Код: Выделить всё
if(isset($params['p1'])){
$p1 = $params['p1'];
//debmes('p1='.$p1);
if(substr($p1,0,3)=="esp"){
$id = substr($p1,3);
callMethod('esp'.$id.'.input');
}
}
$status='OK';
if(isset($params['p2'])){ $p2=$params['p2'];}
if(isset($params['c'])){ $cmd=$params['c'];}
if(isset($params['m'])) { $mod=$params['m'];}
if(isset($params['a'])) { $adr=$params['a'];}
if(isset($params['s'])) { $status=$params['s'];}
if(isset($params['v'])) { $value=$params['v'];}
if(isset($params['t'])) { $t=$params['t'];}
//if(isset($params['m'])) {
debmes('from esp'.$id.' p2='.$p2.' cmd='.$cmd.' mod='.$mod.' adr='.$adr.' v='.$value.' st='.$status.' t='.$t);
//}
if($p2=="uart"){
sg('mod240.alive',1);
if($cmd=="Noo"&&$status=="OK"){
ClearTimeOut("noo_".$t);
//тк вызывается дважды, уберем при сработке и второй вызов
setTimeOut('clear_2_noo_'.$t,"ClearTimeOut('noo_".$t."');",5);
}
if(isset($mod)){
if($status=='Err'){
sg('mod'.$mod.'.alive',0);
}else{
sg('mod'.$mod.'.alive',1);
if($cmd<>"Say"){
ClearTimeOut("mod_".$t);
//тк вызывается дважды, уберем при сработке и второй вызов
setTimeOut('clear_2_mod_'.$t,"ClearTimeOut('mod_".$t."');",5);
}
}
if(($adr%4==0)&&isset($value)){
sg("mod".$mod.".adr".$adr,$value);
}
}
if(($mod=='5')&&($adr=='56')){callMethod('motiondetect5.statusChanged',array('status'=>$value));}
if(($mod=='5')&&($adr=='88')){//check temperature
if($value>-100&&$value<>85){callMethod('tempMod5.tempChanged',array('t'=>$value));
}else{debmes('Err tempMod5='.$value);}
}
if(($mod=='5')&&($adr=='92')){callMethod('humSensor02.humChanged',array('h'=>$value));}
}
после строки debmes('from esp'.$id.' p2='.$p2.' cmd='.$cmd.' mod='.$mod.' adr='.$adr.' v='.$value.' st='.$status.' t='.$t);
мои внутренние заморочки, туда лучше не смотреть.
из есп приходит строка, формирующаяся здесь:
"192.168.1.7/objects/?script=myesp&p1=esp" & id() & "&p2=" & p2$ & "&c=" & p3$
пример:
"192.168.1.7/objects/?script=myesp&p1=esp8920510&p2=uart&c=Get&m=5&a=56&v=0&t=1259"
скрипт myesp осуществляет ее разбор
чтобы отправить команду модулю, использую такой код
Код: Выделить всё
$ip=$this->getProperty("IP"); // в моем случае 192,168,1,40
if(!isset($params['out'])){ //тут команда модулю
$dt=$this->getProperty("data_out");//или тут команда модулю
}else{
$dt=$params['out'];
$this->setProperty("data_out",$dt);
}
$s = getURL("http://".$ip."/msg?cmd=<".$dt.">",0); // у меня формат команды <a/b/c/d/e/>
//проверим на ошибку
$pos=strpos( $s,'uart ok');
if($pos===false){ //повторим
$s = getURL("http://".$ip."/msg?cmd=<".$dt.">",0);
}
$this->setProperty("data_in",$s);
debmes('to esp -><'.$dt.'>')
PS/посмотрите у меня в коннекте объект ESP ещё.
Для описанного выше должен существовать, конечно, объект esp8920510