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

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

Модератор: immortal

airafree
Сообщения: 162
Зарегистрирован: Сб янв 28, 2017 2:17 pm
Благодарил (а): 13 раз
Поблагодарили: 7 раз

Re: Модуль Broadlink

Сообщение airafree » Ср июн 21, 2017 11:09 am

nick7zmail писал(а):Решил не ждать вечера, исправил через веб-страничку, можно проверять)) Теоретически свойства должны нормально привязываться к датчикам, и статус слетать при обновлении не должен...
Установил обновление,

Режимиы постановки на охрану переключаются со связанными объектами датчиков.
Если установить состояние в - 0, и отключить в телефоне оповещение, S1 перестает пищать - это хорошо.
Но если, через объект перевести в - 1 либо 2, оповещение вновь появляется, и после перевода через объект в - 0, продолжает пищать, создается впечатление, что в модуле должно быть еще одно устройство/свойство, которое будет отключать оповещение.

Что каксается состояний датчика открытия/закрытия, ничего не изменилось.
все ясно.e-control что пишет в состоянии датчика когда модуль показывает 128 статус и когда open и close.
В e-control два состоян я Door opened/Door closed
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Ср июн 21, 2017 11:14 am

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

То что касается датчика - понятное дело - ничего не изменилось...тут и был вопрос - при этом статусе unkown 128 - в e-control всё таки что? open или closed?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
airafree
Сообщения: 162
Зарегистрирован: Сб янв 28, 2017 2:17 pm
Благодарил (а): 13 раз
Поблагодарили: 7 раз

Re: Модуль Broadlink

Сообщение airafree » Ср июн 21, 2017 11:16 am

nick7zmail писал(а):То что пищалка включается - уже поняли)) Собственно это и обсуждалось выше...там и варианты решения, можно сказать, есть...надо вычислить байт, который отвечает за эту пищалку.

То что касается датчика - понятное дело - ничего не изменилось...тут и был вопрос - при этом статусе unkown 128 - в e-control всё таки что? open или closed?
Да, e-control показывает два состояния, третьего нет.
airafree
Сообщения: 162
Зарегистрирован: Сб янв 28, 2017 2:17 pm
Благодарил (а): 13 раз
Поблагодарили: 7 раз

Re: Модуль Broadlink

Сообщение airafree » Ср июн 21, 2017 11:17 am

airafree писал(а):
nick7zmail писал(а):То что пищалка включается - уже поняли)) Собственно это и обсуждалось выше...там и варианты решения, можно сказать, есть...надо вычислить байт, который отвечает за эту пищалку.

То что касается датчика - понятное дело - ничего не изменилось...тут и был вопрос - при этом статусе unkown 128 - в e-control всё таки что? open или closed?
Да, e-control показывает два состояния, третьего нет.
То есть, Door closed.
airafree
Сообщения: 162
Зарегистрирован: Сб янв 28, 2017 2:17 pm
Благодарил (а): 13 раз
Поблагодарили: 7 раз

Re: Модуль Broadlink

Сообщение airafree » Ср июн 21, 2017 11:25 am

dmw писал(а):
nick7zmail писал(а):
Если привязать статус охраны к какому-либо объекту, то это свойство можно менять в объекте и новый статус соответственно выставляется в E-Control. Но после привязки к объекту, уже на этом этапе в E-Control перестают запоминаться настройки для S1C. Даже если звук был выключен до привязки, то после привязки он включается почему-то. Если отвязать, то опять настройки сохраняются.
Возможно в генерируемом пакете содержатся какие-либо настройки. dmw, скорее всего не трогал настройки в e-control, и сделал байт (байты), ответственные за такие настройки (при Set_Arm();) - статичными, и при выставлении статуса через свойство - у вас выставляются настройки, которые у него были при написании модуля))...но это тоже предположение. Надо проверить. Было бы хорошо получить пэйлоды при запросе статуса с выключенным звуком и с включенным...тогда точно определим номер байта. Как получить вывод пэйлода - dmw писал выше...только команду $rm->Check_Sensors(); заменить на $rm->Check_Status();
да, так оно и есть. для постановки/съема с охраны отсылается пакет из 48 байт, я использовал только два, остальные забиты нулями. В то время не парился както с пищалкой.

Ну давайте попробуем выявить эти байты которые отвечают за данную настройку.
Накидал небольшой скриптик (во вложении), нужно его распаковать в корень вашего сайта.
В самом начале найти и отредактировать на свои:

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

// исправить на свои для S1:
$host = '192.168.1.208';
$mac = array(0xED, 0x2F, 0xC7, 0x0D, 0x43, 0xB4); //mac = b4:43:d:c7:2f:ed, массив в обратном порядке    
и запустить http://ваш сайт/broadlinkS1.php
скрипт получит статус S1 и выведет содержимое всего пакета.
Попробуйте поиграться в e-control настройками, поставить/снять с охраны с пищалкой и без каждый раз проверяя статус данным скриптом.
Главное найти закономерность и вычислить какой байт отвечает за это.

P/s сам не могу, нет доступа к S1 пока.
и запустить http://ваш сайт/broadlinkS1.php
Закинуть в корень RPI3, я правильно понимаю?
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Модуль Broadlink

Сообщение dmw » Ср июн 21, 2017 11:31 am

Ясно, есть там такое понятие как "закрыто и таймаут на реакцию уже прошел", т.е. = Close
А есть "закрыто только что", т.е. какраз этот 128 режим
Т.е. если в последнем режиме опять дверь открыть, сигнализация не сработает в e-control.
airafree, проверьте это?
Если 128 режим это он и есть, nick7zmail добавьте в broadlink.class.php строчку сразу после "case 0x9581:" (это 952 строчка):

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

case 0x0080:
airafree писал(а):Закинуть в корень RPI3, я правильно понимаю?
не, в корень сайта, на linux обычно в /var/www/
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Ср июн 21, 2017 11:38 am

А я ток хотел писать, что 128 это вроде 0х0080)) а уже исправлено сообщение =D
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
igorewa
Сообщения: 515
Зарегистрирован: Ср дек 21, 2016 11:54 pm
Откуда: Киев
Благодарил (а): 12 раз
Поблагодарили: 43 раза

Re: Модуль Broadlink

Сообщение igorewa » Ср июн 21, 2017 11:48 am

А у меня при нажатии кнопки обновить, постоянно вылазит это
Изображение

Все устройства находятся в on-line.
ASUS H110T, I5 7500, DDR4-16Gb, SSD256 . WIN10 64 (LTSB)
airafree
Сообщения: 162
Зарегистрирован: Сб янв 28, 2017 2:17 pm
Благодарил (а): 13 раз
Поблагодарили: 7 раз

Re: Модуль Broadlink

Сообщение airafree » Ср июн 21, 2017 12:52 pm

В broadlink.class.php изначально выглядит так,

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

                case 0x31:
                    $data[$i]['product_type'] = 'Door Sensor';
                    switch ($status) {
                        case 0x0000:
                        case 0x9501:
                            $data[$i]['status'] = 'Closed';
                            break;
                        case 0x9581:
                            $data[$i]['status'] = 'Closed now';
                            break;
                        case 0x0010:
                        case 0x0090:
                        case 0x9591:
                            $data[$i]['status'] = 'Opened';
                            break;
                        default:
                            $data[$i]['status'] = 'Unknown: '.$status;
                    }
 
Когда убираю 'Closed' остается только 'Closed now',

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

                case 0x31:
                    $data[$i]['product_type'] = 'Door Sensor';
                    switch ($status) {
                        case 0x9581:
                            $data[$i]['status'] = 'Closed now';
                            break;
                        case 0x0010:
                        case 0x0090:
                        case 0x9591:
                            $data[$i]['status'] = 'Opened';
                            break;
                        default:
                            $data[$i]['status'] = 'Unknown: '.$status;
                    }
 
В таком случае при отрытие Opened, при закрытие Closed, через некоторое время Unknown: 128.

Если убираю 'Closed now',

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

                case 0x31:
                    $data[$i]['product_type'] = 'Door Sensor';
                    switch ($status) {
                        case 0x0000:
                        case 0x9581:
                            $data[$i]['status'] = 'Closed';
                            break;
                        case 0x0010:
                        case 0x0090:
                        case 0x9591:
                            $data[$i]['status'] = 'Opened';
                            break;
                        default:
                            $data[$i]['status'] = 'Unknown: '.$status;
                    }
 
В таком случае результат остается преждним, при отрытие Opened, при закрытие Closed, через некоторое время Unknown: 128.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Ср июн 21, 2017 12:57 pm

Не надо ничего удалять...надо наоборот добавить
case 0x0080:

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

                case 0x31:
                    $data[$i]['product_type'] = 'Door Sensor';
                    switch ($status) {
                        case 0x0000:
                        case 0x9501:
                            $data[$i]['status'] = 'Closed';
                            break;
                        case 0x9581:
                        case 0x0080://эту строку
                            $data[$i]['status'] = 'Closed now';
                            break;
                        case 0x0010:
                        case 0x0090:
                        case 0x9591:
                            $data[$i]['status'] = 'Opened';
                            break;
                        default:
                            $data[$i]['status'] = 'Unknown: '.$status;
                    }
 
airafree писал(а): В таком случае результат остается преждним, при отрытие Opened, при закрытие Closed, через некоторое время Unknown: 128.
Раз так - то может это типа как в датчике движения - типа закрыто сколько-то минут/секунд...через какое время то появляется unkown 128? Тогда строку надо добавить над статусом closed.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить