[Модуль] Broadlink (dev_broadlink)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
slgeo
Сообщения: 551
Зарегистрирован: Чт фев 05, 2015 2:35 pm
Откуда: РнД
Благодарил (а): 139 раз
Поблагодарили: 74 раза

Re: Модуль Broadlink

Сообщение slgeo » Вс янв 22, 2017 9:30 pm

1) IR-команды появляются в данных, а RF - не появляются. Хотя пишет, что команда записана.
2) del
Последний раз редактировалось slgeo Вс янв 22, 2017 10:15 pm, всего редактировалось 3 раза.
Raspberry Pi2 Model B + NRF24L01 (MySensors) + 1-Wire + Esp8266 (WiFi-IoT)
CONNECT
Аватара пользователя
igorewa
Сообщения: 515
Зарегистрирован: Ср дек 21, 2016 11:54 pm
Откуда: Киев
Благодарил (а): 12 раз
Поблагодарили: 43 раза

Re: Модуль Broadlink

Сообщение igorewa » Вс янв 22, 2017 9:31 pm

А у меня при нажатии кнопки Обучить коду
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
ASUS H110T, I5 7500, DDR4-16Gb, SSD256 . WIN10 64 (LTSB)
Denis_k
Сообщения: 587
Зарегистрирован: Сб мар 19, 2016 7:24 pm
Благодарил (а): 299 раз
Поблагодарили: 27 раз

Re: Модуль Broadlink

Сообщение Denis_k » Вс янв 22, 2017 9:32 pm

Sayler писал(а):Спасибо за модуль. Очень рад )))
присоединюсь
ЗЫ. треугольник заказал после определенности с данным модулем
ЗЫЫ. имхо один из самых востребованных модулей для обывателя
MD на raspberry pi3
Аватара пользователя
slgeo
Сообщения: 551
Зарегистрирован: Чт фев 05, 2015 2:35 pm
Откуда: РнД
Благодарил (а): 139 раз
Поблагодарили: 74 раза

Re: Модуль Broadlink

Сообщение slgeo » Вс янв 22, 2017 9:39 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
марку устройства devtype или не указал или указал неправильно
Raspberry Pi2 Model B + NRF24L01 (MySensors) + 1-Wire + Esp8266 (WiFi-IoT)
CONNECT
Аватара пользователя
slgeo
Сообщения: 551
Зарегистрирован: Чт фев 05, 2015 2:35 pm
Откуда: РнД
Благодарил (а): 139 раз
Поблагодарили: 74 раза

Re: Модуль Broadlink

Сообщение slgeo » Вс янв 22, 2017 11:01 pm

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) дальнейшая обработка не происходит.
Дальше моих познаний не достаточно )
Последний раз редактировалось slgeo Вс янв 22, 2017 11:10 pm, всего редактировалось 1 раз.
Raspberry Pi2 Model B + NRF24L01 (MySensors) + 1-Wire + Esp8266 (WiFi-IoT)
CONNECT
kas5858
Сообщения: 360
Зарегистрирован: Вс янв 15, 2017 5:34 pm
Откуда: Москва
Благодарил (а): 100 раз
Поблагодарили: 52 раза

Re: Модуль Broadlink

Сообщение kas5858 » Вс янв 22, 2017 11:05 pm

slgeo писал(а):1) IR-команды появляются в данных, а RF - не появляются. Хотя пишет, что команда записана.
2) del
По RF у меня три кнопки из четырёх обучились, без бубна не обошлось. Где то приходилось удерживать кнопку 5 сек прежде чем нажать обучить, где то нажимал и удерживал, где то нажимал периодически, нужно пробовать может повезет.
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Изображение Connect
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Модуль Broadlink

Сообщение olehs » Вс янв 22, 2017 11:30 pm

nick7zmail писал(а):Короче - временно вырубил получение температуры через php. Из-за этого крашится мэйн цикл. Падает вот с такой ошибкой
в dev_broadlink.class.php.
Может http://php.net/manual/ru/function.require-once.php
Аватара пользователя
igorewa
Сообщения: 515
Зарегистрирован: Ср дек 21, 2016 11:54 pm
Откуда: Киев
Благодарил (а): 12 раз
Поблагодарили: 43 раза

Re: Модуль Broadlink

Сообщение igorewa » Пн янв 23, 2017 12:25 am

А у меня 4 пульта обучились с первого раза, но работают только 2, при отправке команды
http://10.0.1.5/modules/dev_broadlink/c ... ry_sp_otkr на RM загорается желтый светодиод , в браузере появляется {"code":1} но не чего не происходит.
За это сообщение автора igorewa поблагодарил:
shany (Сб фев 25, 2017 11:01 am)
Рейтинг: 1.18%
ASUS H110T, I5 7500, DDR4-16Gb, SSD256 . WIN10 64 (LTSB)
Ged
Сообщения: 105
Зарегистрирован: Чт окт 20, 2016 10:59 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Re: Модуль Broadlink

Сообщение Ged » Пн янв 23, 2017 1:47 am

Что не нравится при использовании свойств объекта.
Есть у меня лампа, которая включается одной командой, выключается другой командой, а переключается третьей.

И как ее прикрутить к этому модулю для управление через свойства?
Команду переключения еще можно прикрутить к свойству, а вот включение и выключение?
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");
Последний раз редактировалось Ged Пн янв 23, 2017 2:22 am, всего редактировалось 1 раз.
За это сообщение автора Ged поблагодарил:
Samir77 (Вт окт 16, 2018 3:36 pm)
Рейтинг: 1.18%
Ged
Сообщения: 105
Зарегистрирован: Чт окт 20, 2016 10:59 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Re: Модуль Broadlink

Сообщение Ged » Пн янв 23, 2017 2:00 am

Для RM Pro и радиоуправления команды выдернул из BR-Bridge и они заработали. :-)

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