[Модуль] Broadlink HTTP Bridge (dev_httpbrige) Устарело!

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

Модератор: immortal

secbit
Сообщения: 12
Зарегистрирован: Сб окт 29, 2016 10:59 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Модуль Broadlink (для приложения BroadlinkHTTPBrige)

Сообщение secbit » Вс ноя 06, 2016 3:08 am

Вот накидал код, на включение выключение, я далеко не спец по PHP, потому сделал как смог
Код методаПоказать
$commanda = dechex(rand(40000, 49999));

$this->setProperty("svet", $this->getProperty("svet_old"));
if ($this->getProperty("svet")== 1) {
getURL("localhost/objects/?script=BroadLinkCommand&ip=192.168.1.103&cmd=5AA5AA555AA5AA55000000000000000000000000000000000000000000000000{$commanda}000012276A00{$commanda}81DD9B0D43B40300000058C10000E576F5FF97E936EE8D3E65554DD3A676D369426F6D68F64E7F3B7330DA0F6F6ACC6BA0B26C4888960E92B2B3C2C95DC6");
sayReply("Свет включен");
$this->setProperty("svet_old",0);
}

else if ($this->getProperty("svet")== 0){
getURL("localhost/objects/?script=BroadLinkCommand&ip=192.168.1.103&cmd=5AA5AA555AA5AA55000000000000000000000000000000000000000000000000{$commanda}000012276A00{$commanda}81DD9B0D43B40300000058C10000E576F5FF97E936EE8D3E65554DD3A676D369426F6D68F64E7F3B7330DA0F6F6ACC6BA0B26C4888960E92B2B3C2C95DC6");
sayReply("Свет выключен");
$this->setProperty("svet_old",1);
}
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink (для приложения BroadlinkHTTPBrige)

Сообщение nick7zmail » Вс ноя 06, 2016 9:00 am

Я попробую реализовать логику BroadlinkCommand на PHP...если выйдет - то получится рулить рм-кой модулем без всяческих сторонних прог...

Если же не получится, то мне понравилась идея corpse. Если будет хорошее апи - помогу накатать интерфейс...возможно в виде модуля для МД. Панель управления тоже на бустрапе написана...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
corpse
Сообщения: 26
Зарегистрирован: Пт ноя 04, 2016 11:56 am
Благодарил (а): 0
Поблагодарили: 2 раза

Re: Модуль Broadlink (для приложения BroadlinkHTTPBrige)

Сообщение corpse » Вс ноя 06, 2016 11:23 am

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

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

In [6]: b.compare(t1[0],t1[1])                                                                     
Indexes: [64, 80, 81, 82, 83] 
Для наглядности:
5aa5aa555aa5aa5500000000000000000000000000000000000000000000000081fb00002a276a00aecbd30bd10d43b40300000086c7000066a9a597b45a1e796d0337a56b873ef5d0a5b78c24c5753c1ee050789b27f918097deed237b4dd65358c45cfd8c5e94e6a4167a7e2df3f804e92d6fad3c68b199b17bb75ff43c78b2a0c685ea69d36e1b290a23cfc9c5dcaf3f4ba5a5dcb0f34
5aa5aa555aa5aa5500000000000000000000000000000000000000000000000021fb00002a276a0041d8d30bd10d43b40300000086c7000066a9a597b45a1e796d0337a56b873ef5d0a5b78c24c5753c1ee050789b27f918097deed237b4dd65358c45cfd8c5e94e6a4167a7e2df3f804e92d6fad3c68b199b17bb75ff43c78b2a0c685ea69d36e1b290a23cfc9c5dcaf3f4ba5a5dcb0f34

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

In [7]: b.compare(t2[0],t2[1])                                                                     
Indexes: [64, 65, 67, 80, 81, 82, 83]
5aa5aa555aa5aa55000000000000000000000000000000000000000000000000a5f500002a276a0057bfd30bd10d43b403000000a5c700007a8370e5fb9b107ffef4f5aa2f0722319a3c06ef08042681f017b1f5d801e692ab4267108aa39d8f5e9c4f6e3d290072072011b272be2390b0c6f13c5008d17cbde71208808121135369311db8616df2f7f1fa53bed35c2b86965518f4db0778
5aa5aa555aa5aa5500000000000000000000000000000000000000000000000051f600002a276a00dfe3d30bd10d43b403000000a5c700007a8370e5fb9b107ffef4f5aa2f0722319a3c06ef08042681f017b1f5d801e692ab4267108aa39d8f5e9c4f6e3d290072072011b272be2390b0c6f13c5008d17cbde71208808121135369311db8616df2f7f1fa53bed35c2b86965518f4db0778

То есть, менять нужно два байта: 64-68 и 80-84. Чем больше байт из этих восьми мы поменяем, тем меньше шансов, что код повторится. Изменение только в одной паре байт к результату не приводит, т.е. нужно менять как минимум два символа - по одному в каждой группе.
Для розеток и рмпро длина кода различна. 304 - ик код рм про и 144 - код для mp1.
До 64-го символа (первые 32 байта) одинаковы как у рмпро, так и у розеток - можно не хранить.

Видимо, когда я месяц назад проверял рандом, я менял только одну пару байт за раз или где-то ещё ошибся. Перепишу, чтобы можно было нажимать коды по одному разу. :)
corpse
Сообщения: 26
Зарегистрирован: Пт ноя 04, 2016 11:56 am
Благодарил (а): 0
Поблагодарили: 2 раза

Re: Модуль Broadlink (для приложения BroadlinkHTTPBrige)

Сообщение corpse » Вс ноя 06, 2016 11:25 am

nick7zmail писал(а):Я попробую реализовать логику BroadlinkCommand на PHP...если выйдет - то получится рулить рм-кой модулем без всяческих сторонних прог...

Если же не получится, то мне понравилась идея corpse. Если будет хорошее апи - помогу накатать интерфейс...возможно в виде модуля для МД. Панель управления тоже на бустрапе написана...
О, если потом поможете с фронтэндом - было бы шикарно :) Я по интерфейсам не спец. :) Ну или буду изучать бутстрап :)
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink (для приложения BroadlinkHTTPBrige)

Сообщение nick7zmail » Вс ноя 06, 2016 12:23 pm

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

Re: Модуль Broadlink (для приложения BroadlinkHTTPBrige)

Сообщение nick7zmail » Вс ноя 06, 2016 1:47 pm

corpse...можешь подсказать, как сие чудо в винде запустить? Лень в генту перегружаться...питон поставил...пробую запустить команду - не хочет....кстати - было б неплохо мануал по апи написать)
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Модуль Broadlink (для приложения BroadlinkHTTPBrige)

Сообщение olehs » Вс ноя 06, 2016 3:48 pm

https://github.com/mjg59/python-broadlink
Коллеги, а вот это случайно не готовая библиотека?
А вот тут похоже на поддержку RM 3 Mini
https://github.com/davorf/BlackBeanControl
corpse
Сообщения: 26
Зарегистрирован: Пт ноя 04, 2016 11:56 am
Благодарил (а): 0
Поблагодарили: 2 раза

Re: Модуль Broadlink (для приложения BroadlinkHTTPBrige)

Сообщение corpse » Вс ноя 06, 2016 6:55 pm

nick7zmail писал(а):corpse...можешь подсказать, как сие чудо в винде запустить? Лень в генту перегружаться...питон поставил...пробую запустить команду - не хочет....кстати - было б неплохо мануал по апи написать)
Пока ещё недописано. Скоро выкачу посвежее, с рмпро по крайней мере уже можно пробовать будет использовать.
corpse
Сообщения: 26
Зарегистрирован: Пт ноя 04, 2016 11:56 am
Благодарил (а): 0
Поблагодарили: 2 раза

Re: Модуль Broadlink (для приложения BroadlinkHTTPBrige)

Сообщение corpse » Вс ноя 06, 2016 7:49 pm

С MP1 перестало работать то, что работало вчера. Непонятная ситуация. Пытаюсь разобраться с протоколом. Посмотрю исходники на гитхабе по ссылке выше. С форума 4pda есть доп инфо:
Кстати кому интересно, я понял алгоритм действия RM2 и розеток SP2 mini (Что было в наличии). Исследования делались для возможности отправки комманд из Majordomo

Отлавливаем пакет
Заменяем в двух местах значения, на рандомные HEX

К примеру
5AA5AA555AA5AA5500000000000000000000000000000000000000000000000039F0000012276A00EA8281DD9B0D43B403000000E9C60000CA858F645CBDF00E06E181600DE2D21D91400C1E57C391ACCC19AD85A589BA5996678CDCA03D77BF079E99FE34B07D90F0F3991710E1ED4A419213AE5C201E12C4072EBB674A5A2E71C304E176B6E570

В этом была загвоздка, чтоб отсылать один и тот же код, я долго пытался разобраться, написал свой UDP клиент и снифил трафик, но стыкался с тем, что не выходит отослать одно и то же значение.

А вот с розетками работает другая схема
Для начала отсылается и так же меняется два значения, первое типа D1,D2,D3, второе 15,16,17....
5AA5AA555AA5AA55000000000000000000000000000000000000000000000000D4D1000033276A001580ABBFAF0D43B401000000B0BE0000BAFD59A54C596A80A8BE4EF844AEE280

А далее два пакета, один отключает, второй включает
5AA5AA555AA5AA5500000000000000000000000000000000000000000000000099D2000033276A00D180ABBFAF0D43B401000000B1BE0000FFEE8CABB12A48ED8038DF7D77E56543
5AA5AA555AA5AA5500000000000000000000000000000000000000000000000032D2000033276A00FC81ABBFAF0D43B401000000B2BE000096A0F9C1ADAB125B4BFF7390BB2F2AA2
Пытался проверить с MP1, пакеты той же длины, но не работает.
secbit
Сообщения: 12
Зарегистрирован: Сб окт 29, 2016 10:59 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Модуль Broadlink (для приложения BroadlinkHTTPBrige)

Сообщение secbit » Вс ноя 06, 2016 9:48 pm

corpse писал(а):С MP1 перестало работать то, что работало вчера. Непонятная ситуация. Пытаюсь разобраться с протоколом. Посмотрю исходники на гитхабе по ссылке выше. С форума 4pda есть доп инфо:
Кстати кому интересно, я понял алгоритм действия RM2 и розеток SP2 mini (Что было в наличии). Исследования делались для возможности отправки комманд из Majordomo

Отлавливаем пакет
Заменяем в двух местах значения, на рандомные HEX

К примеру
5AA5AA555AA5AA5500000000000000000000000000000000000000000000000039F0000012276A00EA8281DD9B0D43B403000000E9C60000CA858F645CBDF00E06E181600DE2D21D91400C1E57C391ACCC19AD85A589BA5996678CDCA03D77BF079E99FE34B07D90F0F3991710E1ED4A419213AE5C201E12C4072EBB674A5A2E71C304E176B6E570

В этом была загвоздка, чтоб отсылать один и тот же код, я долго пытался разобраться, написал свой UDP клиент и снифил трафик, но стыкался с тем, что не выходит отослать одно и то же значение.

А вот с розетками работает другая схема
Для начала отсылается и так же меняется два значения, первое типа D1,D2,D3, второе 15,16,17....
5AA5AA555AA5AA55000000000000000000000000000000000000000000000000D4D1000033276A001580ABBFAF0D43B401000000B0BE0000BAFD59A54C596A80A8BE4EF844AEE280

А далее два пакета, один отключает, второй включает
5AA5AA555AA5AA5500000000000000000000000000000000000000000000000099D2000033276A00D180ABBFAF0D43B401000000B1BE0000FFEE8CABB12A48ED8038DF7D77E56543
5AA5AA555AA5AA5500000000000000000000000000000000000000000000000032D2000033276A00FC81ABBFAF0D43B401000000B2BE000096A0F9C1ADAB125B4BFF7390BB2F2AA2
Пытался проверить с MP1, пакеты той же длины, но не работает.
Видимо в MP1 логика другая, тем более что это отдельное устройство по WiFi, так все немного не так, как с RM2
Закрыто