Daniral писал(а): ↑Сб авг 07, 2021 3:14 pm
fandaymon писал(а): ↑Сб авг 07, 2021 1:48 pm
Daniral писал(а): ↑Сб авг 07, 2021 1:39 pm
fandaymon писал(а): ↑Сб авг 07, 2021 1:20 pm
Daniral писал(а): ↑Сб авг 07, 2021 8:29 am
Меш айди стоит правильный.
Удалил пульты. Опять не работает
Пульты удалил из пультов?
Локальный ip ИК-пульта точно правильный? Кнопка Сканировать его находит?
Если добавить сцену которая нажимает на кнопку пульта и запустить её из Сцен модуля, кнопка срабатывает?
А из вкладки пульты не должно работать?
А как сделать сцену которая нажимает на кнопку?
Должно, но только если всё правильно настроено (правильный Ip и локальный ключ у ИК-пульта, правильный MESH ID у пульта и правильный код у кнопки). Если в ИК-пульте есть локальный ключ и ip, то модуль пытается послать сигнал на ИК-пульт локально, если какого-то параметра нет, то пытается отправить сигнал через облако
Зайти в приложение, Смартсцены - Добавить - Добавить действие - Устройство - Пульт - кнопку
Так что для каждой кнопки надо добавлять смарсцену? Так работает. Наконец-то. Спасибо
Можно так, можно всё-таки разобраться в том, почему пульты не работают как надо (скажем у меня они работают и у нескольких отписавшихся - тоже)
Вот такой код вставленный в сценарий выведет что именно делает сцена
Код: Выделить всё
include_once(DIR_MODULES . 'tuya/tuya.class.php');
$tuya_module = new tuya();
$apiResult = $tuya_module->TuyaWebRequest(['action'=> 'tuya.m.location.list',
'requiresSID'=> 1]);
$result=json_decode($apiResult , true);
$gid= $result['result'][0] ['groupId'];
$action = "tuya.m.linkage.rule.query";
$apiResult = $tuya_module->TuyaWebRequest(['action'=>$action,
'gid'=>$gid,
'requiresSID'=> 1]);
$result=json_decode($apiResult , true);
foreach($result['result'] as $res) {
//var_dump($res);
echo $res['name'].'<BR>';
var_dump( $res['actions']);
echo '<BR>----------------<BR>';
}
Что-то типа такого
"TV"power
array(1) { [0]=> array(13) { ["actionDisplayNew"]=> array(1) { [1]=> array(2) { [0]=> string(5) "power" [1]=> string(0) "" } } ["actionStrategy"]=> string(6) "repeat" ["extraProperty"]=> array(6) { ["keyName"]=> string(0) "" ["keyId"]=> string(1) "1" ["gwId"]=> string(20) "xxxxx" ["vender"]=> string(1) "3" ["devTypeId"]=> string(1) "2" ["remoteId"]=> string(4) "2397" } ["actionExecutor"]=> string(10) "irIssueVii" ["orderNum"]=> int(1) ["entityId"]=> string(22) "bf1e20d14191edcf7ckni5" ["devDelMark"]=> bool(false) ["executorProperty"]=> array(5) { [1]=> string(7) "send_ir" [13]=> int(0) [3]=> string(46) "010ecb00000000000700150040015a005600ad062d0e74" [4]=> string(22) "01$^002020DF10EF@&$%@*" [10]=> int(300) } ["entityName"]=> string(2) "TV" ["uiid"]=> string(105) "{"ios_pre":"0.0.1","ios_online":"0.0.1","id":"00000003ov","android_pre":"0.0.1","android_online":"0.0.1"}" ["attribute"]=> int(0) ["id"]=> string(20) "yHquqamqSaMlVBeEKBVx" ["ruleId"]=> string(16) "cAn3KWCA5PSjfTPu" } }
----------------
Сценарий
Код: Выделить всё
$dev_id = 'bf1e20d14191edcf7ckni5'; // Тут нужно указать свой ID пульта, он же есть в entityId вверху
$command = 'power'; // надпись на кнопке пульта - в моём случае это power
$dev_info = SQLSelectOne("SELECT * FROM tudevices WHERE DEV_ID='" . $dev_id . "';");
$code = SQLSelectOne("SELECT * FROM tuircommand WHERE DEVICE_ID=" . $dev_info['ID'] . " AND TITLE='" . $command ."';");
if ($code['CPULSE_ALT_FLAG']) {
$dps='{"1":"study_key","13":3,"3":"","7":"'. $code['CPULSE_ALT'] . '","10":300}';
} else {
$dps='{"1":"send_ir","13":0,"3":"'.$code['EXTS'].'","4":"'. $code['COMPRESSPULSE'] . '","10":300}';
}
echo $dps;
вытащит что посылает модуль на ИК-пульт
Код: Выделить всё
{"1":"send_ir","13":0,"3":"010ecb00000000000700150040015a005600ad062d0e74","4":"01$^002020DF10EF@&$%@*","10":300}
И далее просто сравниваем то что посылает сцена и что посылает модуль
В моём случае всё одинаково, поэтому пульты работают