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

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

Модератор: immortal

Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Вт янв 03, 2017 8:41 pm

Собрал всё в один модуль, надеюсь - ничего не сломал. После установки можно выбрать API.
api.jpg
api.jpg (172.72 КБ) 43355 просмотров
О каждом из них по-подробнее:
1) RM-bridge
Кто бы что не говорил - это самый простой способ управления командами. Просто ставите приложение с маркета, вводите ip/port в нужные поля - и готово, записываете, просматриваете команды...
2) BroadlinkHTTPBridge
Все тот же модуль для http - бриджа...функционал не менял/не урезал/не добавлял...пока все на том же уровне, хотя есть куда улучшать. Работает с той же таблицей, что и предыдущий)
3) PHP
Самостоятельный PHP модуль, работающий без бриджа.

Собственно сам модуль (на гитхабе) https://github.com/nick7zmail/MajorDoMo-dev_broadlink
:!: Поддержать разработку либо поблагодарить разработчика вы можете тут http://connect.smartliving.ru/tasks/5.html

Обновления:
-22.01.17 - Добавлено PHP-api подробнее
-24.01.17 - Добавлена поддержка A1 air и RM3 mini в php подробнее
-02.02.17 - Добавлена поддержка розеток sp2/3/cc/mini в php подробнее
-10.02.17 - Поддержка MP1 в php подробнее
-20.04.17 - Большое обновление функционала подробнее
-25.04.17 - Полная поддержка sp3 (в том числе ночник) подробнее
-28.04.17 - Обновление вызова команд подробнее
-29.04.17 - Интеграция с модулем "Простые устройства" подробнее
-17.06.17 - Поддержка S1/S1c и выключателя SC1 подробнее
-22.06.17 - Сохранение ключей авторизации, расширение функций s1 подробнее
-12.07.17 - Добавлены новые устройства из e-control, исправлена ошибка с температурой 249 на RM подробнее
-19.07.17 - Добавлены функции MS1 и класс в библиотеке для карнизов dooya подробнее

Полезная информация:
Общее
Добавление нового устройства (PHP)
Немного о моделях устройств (PHP)
RM(1,2,3,mini,pro,pro+)
:!: Обучение командам (PHP)
Как работать с записанными командами (PHP, через объект.свойство, инструкция с картинками =) )
:idea: Создание выключателя (Простые устройства, инструкция с картинками)
Активация команд кодом
Настройка кондиционера
Про датчик температуры в RM2
А1
Данные, которые приходят с А1
Пример сцены А1
MS1
Про колонку MS1
Про колонку MS1 (продолжение)
Функции в модуле

Проблемы и их решения:
Не работает сканирование устройств
Перевернут IP

Связанные темы:
Про модуль RM-bridge
Про httpbridge
Про подключение без бриджа
Отдельная тема по выключателям LIVOLO (для них команды почему-то не записываются с облачных пультов e-control'а...но решение есть -КОДЫ УПРАВЛЕНИЯ LIVOLO)

Архив
Последний раз редактировалось nick7zmail Пн сен 11, 2017 10:28 am, всего редактировалось 50 раз.
За это сообщение автора nick7zmail поблагодарил:
C_3AXAPOB (Ср янв 04, 2017 1:49 am) • Denis_k (Чт янв 05, 2017 11:06 pm) • slgeo (Сб янв 07, 2017 10:27 pm) • gorobey (Пн янв 23, 2017 8:03 pm) • VooDooN (Пт янв 27, 2017 6:38 pm) • kas5858 (Ср мар 01, 2017 9:05 am) • Chainik (Вс апр 16, 2017 11:25 pm) • Sayler (Вс май 07, 2017 9:31 am) • SolarW (Вт май 16, 2017 9:34 am) • ipc2002 (Чт июл 20, 2017 9:59 pm) и ещё 11
Рейтинг: 24.42%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Модуль Broadlink

Сообщение olehs » Вт янв 03, 2017 9:33 pm

nick7zmail писал(а):Проблему озвучил тут.
Ответил в том топике
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Вс янв 22, 2017 2:49 pm

Не вижу смысла больше тянуть с обновой...тест вроде прошел более-менее нормально)).
Выложил поддержку php-api для нашего бродлинка...
Подтянул интерфейс по сравнению с тестовой версией))

Инструкция по добавлению устройств:
1. Открываем модуль, нажимаем сканировать устройства.
2. Видим там ваши устройства...если не видим - возможно ваши устройства в другой подсети...тогда желательно запустить модуль из той же сети что и broadlink. Если таки нет возможности - ознакомтесь с этим постом. Можете попробовать взять Марку устройства наугад (все марки прописаны в broadlink.class.php).
3. Добавляем устройства в таблицу (кнопка + в интерфейсе сканирования, или "Добавить" в основном интерфейсе), выбираем тип устройства
4. Название (какое душе угодно))) сделано, чтобы вам удобнее было контролировать ваши девайсы
5. IP устройства - не нуждается в комментариях (заполняется автоматически при добавлении через сканирование)
6. !!!Важно!!! Марка устройства - со страницы "сканирование устройств" (заполняется автоматически при добавлении через сканирование)
7. MAC - думаю тоже не нуждается в комментариях (заполняется автоматически при добавлении через сканирование)
8. Обновлено: поле не редактируемое, там должно появляться время последнего обновления связанных свойств
9. Сохраняем изменения

Все данные с устройств приходят на вкладку "Данные", будь то статус розеток, температура RM, показания датчиков и т.п.
Данные, как и в случае httpbridge запрашивается раз в час по событию HOURLY. Хотите получать чаще - выполняйте любым методом такой код:

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

include_once(DIR_MODULES."dev_broadlink/dev_broadlink.class.php");
$dev_broadlink=new dev_broadlink();
$dev_broadlink->check_params(); 
Обучение командам (со вкладки общее).
1. Кнопка обучить коду. RM переходит в режим обучения (желтый индикатор горит);
2. Воспроизводим нажатие пульта (на это есть 10 сек, индикатор после однократного нажатия должен погаснуть). В случае с RF командами возможно придется подержать кнопку подольше;
3. Переходим на вкладку данные. Там должна появится команда "new_command";
4. Переименовываем во что-нибудь более-менее вменяемое))

Обучение командам (со вкладки данные).
1. Вбиваем имя команды в поле "Добавить:";
2. Кнопка обучить коду. RM переходит в режим обучения (желтый индикатор горит);
3. Воспроизводим нажатие пульта (на это есть 10 сек, индикатор после однократного нажатия должен погаснуть). В случае с RF командами возможно придется подержать кнопку подольше;
4. На вкладке данные появится команда с введенным в п. 1 именем.

Добавление новой команды (без обучения).
1. Вбиваем имя команды в поле "Добавить:";
2. Нажимаем "Сохранить";
3. Появится новая строка с пустым полем "Значение", туда можно занести любой код.

Воспроизведение команд.

Через привязанные Объект.свойство
1. В таблице команд нужно привязать команду к свойству любого объекта
2. Любым удобным методом (сценарий, объект.метод, голосовой шаблон, кнопка в интерфейсе и т.п.) поменять привязанное свойство на 1
3. Команда выполнится, и свойство снова скинется на 0
Через ссылку/код
Готовые ссылки, код для вызова, а так же код для изменения свойства можно увидеть нажав на "Использование команд" на вкладке "общие" или "данные".
Последний раз редактировалось nick7zmail Вт май 16, 2017 8:15 am, всего редактировалось 7 раз.
За это сообщение автора nick7zmail поблагодарили (всего 8):
slgeo (Вс янв 22, 2017 4:57 pm) • kas5858 (Вс янв 22, 2017 5:34 pm) • C_3AXAPOB (Вс янв 22, 2017 7:15 pm) • Sayler (Вс янв 22, 2017 9:28 pm) • VooDooN (Пт янв 27, 2017 5:07 pm) • Pasha_dom (Вт сен 19, 2017 10:48 am) • PSerega (Вс окт 01, 2017 7:09 pm) • Dicont (Сб янв 27, 2018 3:20 pm)
Рейтинг: 9.3%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
kas5858
Сообщения: 364
Зарегистрирован: Вс янв 15, 2017 5:34 pm
Откуда: Москва
Благодарил (а): 100 раз
Поблагодарили: 53 раза

Re: Модуль Broadlink

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

nick7zmail писал(а): 1. Открываем http://ваш IP/modules/dev_broadlink/broadlink-device-php/discover.php
Правильно http://ваш IP/modules/dev_broadlink/discover.php, у меня по крайней мере так.
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Изображение Connect
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Вс янв 22, 2017 4:16 pm

kas5858 писал(а): Правильно http://ваш IP/modules/dev_broadlink/discover.php, у меня по крайней мере так.
Да, сори...торопился, когда инструкцию писал)) исправил
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Вс янв 22, 2017 6:15 pm

Я вот только не понял...раз в час у меня падает мэйн цикл...думал сперва из-за модуля...потом обновил систему, перезагрузил комп - все прекратилось....решил глюк какой-то был, а с модулем все норм. Выложил обнову...ща опять словил перезапуск основного цикла...

Кто уже установил - все норм? Или так же раз в час глючит??
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
kas5858
Сообщения: 364
Зарегистрирован: Вс янв 15, 2017 5:34 pm
Откуда: Москва
Благодарил (а): 100 раз
Поблагодарили: 53 раза

Re: Модуль Broadlink

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

nick7zmail писал(а): Кто уже установил - все норм? Или так же раз в час глючит??
У меня тоже глючит раз в час.
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Изображение Connect
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 101 раз

Re: Модуль Broadlink

Сообщение C_3AXAPOB » Вс янв 22, 2017 7:08 pm

Падает раз в час
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Вс янв 22, 2017 8:25 pm

Короче - временно вырубил получение температуры через php. Из-за этого крашится мэйн цикл. Падает вот с такой ошибкой

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

Fatal error: Cannot redeclare aes128_cbc_encrypt() (previously declared in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink.class.php:4) in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink.class.php on line 6
Target: C:\_majordomo\htdocs/backup/20170122
По ходу дело в библиотеке...кто знает как исправить - помогите...
Чтобы включить получение температуры найдите и раскоментируйте этот кусок кода
КодПоказать

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

        /*for ($i = 1; $i <= count($db_rec); $i++) {
            $rec=$db_rec[$i-1];
            if ($rec['TYPE']=='rm') {
                    require(DIR_MODULES.$this->name.'/broadlink.class.php');
                    $rm = Broadlink::CreateDevice($rec['IP'], $rec['MAC'], 80, $rec['DEVTYPE']);
                    $rm->Auth();
                    $response = $rm->Check_temperature();
                    if(isset($response) && $response!='') {
                        sg($rec['LINKED_OBJECT'].'.temperature', (float)$response);
                    }
            }
            if(isset($response) && $response!='') {
                $rec['UPDATED']=date('Y-m-d H:i:s');
                SQLUpdate('dev_httpbrige_devices', $rec);
            }
        }*/ 
в dev_broadlink.class.php.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Sayler
Сообщения: 54
Зарегистрирован: Пн ноя 28, 2016 9:15 pm
Благодарил (а): 21 раз
Поблагодарили: 2 раза

Re: Модуль Broadlink

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

Спасибо за модуль. Очень рад )))
Ответить