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

Re: Модуль Broadlink

Добавлено: Ср июн 21, 2017 11:09 am
airafree
nick7zmail писал(а):Решил не ждать вечера, исправил через веб-страничку, можно проверять)) Теоретически свойства должны нормально привязываться к датчикам, и статус слетать при обновлении не должен...
Установил обновление,

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

Что каксается состояний датчика открытия/закрытия, ничего не изменилось.
все ясно.e-control что пишет в состоянии датчика когда модуль показывает 128 статус и когда open и close.
В e-control два состоян я Door opened/Door closed

Re: Модуль Broadlink

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

То что касается датчика - понятное дело - ничего не изменилось...тут и был вопрос - при этом статусе unkown 128 - в e-control всё таки что? open или closed?

Re: Модуль Broadlink

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

То что касается датчика - понятное дело - ничего не изменилось...тут и был вопрос - при этом статусе unkown 128 - в e-control всё таки что? open или closed?
Да, e-control показывает два состояния, третьего нет.

Re: Модуль Broadlink

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

То что касается датчика - понятное дело - ничего не изменилось...тут и был вопрос - при этом статусе unkown 128 - в e-control всё таки что? open или closed?
Да, e-control показывает два состояния, третьего нет.
То есть, Door closed.

Re: Модуль Broadlink

Добавлено: Ср июн 21, 2017 11:25 am
airafree
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, я правильно понимаю?

Re: Модуль Broadlink

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

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

case 0x0080:
airafree писал(а):Закинуть в корень RPI3, я правильно понимаю?
не, в корень сайта, на linux обычно в /var/www/

Re: Модуль Broadlink

Добавлено: Ср июн 21, 2017 11:38 am
nick7zmail
А я ток хотел писать, что 128 это вроде 0х0080)) а уже исправлено сообщение =D

Re: Модуль Broadlink

Добавлено: Ср июн 21, 2017 11:48 am
igorewa
А у меня при нажатии кнопки обновить, постоянно вылазит это
Изображение

Все устройства находятся в on-line.

Re: Модуль Broadlink

Добавлено: Ср июн 21, 2017 12:52 pm
airafree
В 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.

Re: Модуль Broadlink

Добавлено: Ср июн 21, 2017 12:57 pm
nick7zmail
Не надо ничего удалять...надо наоборот добавить
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.