Страница 2 из 376

Re: Модуль Broadlink

Добавлено: Вс янв 22, 2017 9:30 pm
slgeo
1) IR-команды появляются в данных, а RF - не появляются. Хотя пишет, что команда записана.
2) del

Re: Модуль Broadlink

Добавлено: Вс янв 22, 2017 9:31 pm
igorewa
А у меня при нажатии кнопки Обучить коду
Fatal error: Call to a member function Auth() on a non-object in C:\_majordomo\htdocs\modules\dev_broadlink\dev_httpbrige_devices_edit.inc.php on line 20

Re: Модуль Broadlink

Добавлено: Вс янв 22, 2017 9:32 pm
Denis_k
Sayler писал(а):Спасибо за модуль. Очень рад )))
присоединюсь
ЗЫ. треугольник заказал после определенности с данным модулем
ЗЫЫ. имхо один из самых востребованных модулей для обывателя

Re: Модуль Broadlink

Добавлено: Вс янв 22, 2017 9:39 pm
slgeo
igorewa писал(а):А у меня при нажатии кнопки Обучить коду
Fatal error: Call to a member function Auth() on a non-object in C:\_majordomo\htdocs\modules\dev_broadlink\dev_httpbrige_devices_edit.inc.php on line 20
марку устройства devtype или не указал или указал неправильно

Re: Модуль Broadlink

Добавлено: Вс янв 22, 2017 11:01 pm
slgeo
slgeo писал(а):IR-команды появляются в данных, а RF - не появляются. Хотя пишет, что команда записана.
Наверное вот так будет более корректная обработка в файле dev_httpbrige_devices_edit.inc.php:

Код: Выделить всё

if(count($json['hex']) > 0){
                $prop=array('TITLE'=>'new_command','VALUE'=>$json['hex_number'],'DEVICE_ID'=>$rec['ID'],);
                $new_id=SQLInsert('dev_broadlink_commands',$prop);  
        $out['MESSAGE']='Команда записана';
                }  
        else
              { 
         $out['MESSAGE']='Команда НЕ записана!';  
        } 
Проблема тут:
Модуль broadlink.class.php функция Check_data()

Код: Выделить всё

$response = $this->send_packet(0x6a, $packet); 
$err = hexdec(sprintf("%x%x", $response[0x23], $response[0x22]));
if($err == 0){
...
}
$err = 0 для ИК-команд, для RF - $err=65526
То бишь в $response массив принятых байт гораздо короче при обработке радио-команды и функция конвертации не отрабатывает. В итоге по условию if($err == 0) дальнейшая обработка не происходит.
Дальше моих познаний не достаточно )

Re: Модуль Broadlink

Добавлено: Вс янв 22, 2017 11:05 pm
kas5858
slgeo писал(а):1) IR-команды появляются в данных, а RF - не появляются. Хотя пишет, что команда записана.
2) del
По RF у меня три кнопки из четырёх обучились, без бубна не обошлось. Где то приходилось удерживать кнопку 5 сек прежде чем нажать обучить, где то нажимал и удерживал, где то нажимал периодически, нужно пробовать может повезет.

Re: Модуль Broadlink

Добавлено: Вс янв 22, 2017 11:30 pm
olehs
nick7zmail писал(а):Короче - временно вырубил получение температуры через php. Из-за этого крашится мэйн цикл. Падает вот с такой ошибкой
в dev_broadlink.class.php.
Может http://php.net/manual/ru/function.require-once.php

Re: Модуль Broadlink

Добавлено: Пн янв 23, 2017 12:25 am
igorewa
А у меня 4 пульта обучились с первого раза, но работают только 2, при отправке команды
http://10.0.1.5/modules/dev_broadlink/c ... ry_sp_otkr на RM загорается желтый светодиод , в браузере появляется {"code":1} но не чего не происходит.

Re: Модуль Broadlink

Добавлено: Пн янв 23, 2017 1:47 am
Ged
Что не нравится при использовании свойств объекта.
Есть у меня лампа, которая включается одной командой, выключается другой командой, а переключается третьей.

И как ее прикрутить к этому модулю для управление через свойства?
Команду переключения еще можно прикрутить к свойству, а вот включение и выключение?
P.S. Нашел и прочитал инструкцию - вопросы снимаются. :-)

По поводу command.php и использования через getURL, идея забавная, но при необходимости авторизации как-то ломается.

В итоге под себя сделал такой вариант "command_lib.php"

Код: Выделить всё

<?
include("broadlink.class.php");
chdir(dirname(__FILE__) . '/../../');
include_once("./config.php");
include_once("./lib/loader.php");
$db = new mysql(DB_HOST, '', DB_USER, DB_PASSWORD, DB_NAME);
include_once("./load_settings.php");

function brLinkCommand($command)
{
$json = array();
$json['code'] = -1;
$command_arr=SQLSelectOne("SELECT * FROM dev_broadlink_commands WHERE TITLE='$command'");
$id=$command_arr['DEVICE_ID'];
$info=SQLSelectOne("SELECT * FROM dev_httpbrige_devices WHERE ID='$id'");
$data = $command_arr['VALUE'];

$json['code'] = -1;
$rm = Broadlink::CreateDevice($info['IP'], $info['MAC'], 80, $info['DEVTYPE']);
$rm->Auth();
$rm->Send_data($data);
$json['code'] = 1;

$result = json_encode($json, JSON_NUMERIC_CHECK);
//header('Content-Type: application/json');
//header("Content-length: " . strlen($result));
$db->Disconnect();
flush();
return $result;
}
?>
В итоге использование:

Код: Выделить всё

include("modules/dev_broadlink/command_lib.php");
brLinkCommand("MyCommand");

Re: Модуль Broadlink

Добавлено: Пн янв 23, 2017 2:00 am
Ged
Для RM Pro и радиоуправления команды выдернул из BR-Bridge и они заработали. :-)

Пожалуйста, сделайте импорт команд из rmbridge, тогда вопрос по обучению радиокоманд через костыль, но закроется. :-)