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

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

Добавлено: Пн ноя 26, 2018 1:26 pm
nick7zmail
VooDooN писал(а):
Пн ноя 26, 2018 1:15 pm

[updated]
Когда-то показалось, что чем дольше держать кнопку на пульте при обучении, тем длиннее будет сохранен код.
Вот нифига подобного. Чем дольше держишь - тем "чище" код приходит.
Т.е. быстро нажал - там вплоть до 500 символов у меня были команды (мусор, повторы), а долго подержать - возвращалась аккуратненькая команда символов на 120.

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

Добавлено: Пн ноя 26, 2018 2:55 pm
Mikik
VooDooN писал(а):
Пн ноя 26, 2018 1:15 pm
Mikik писал(а):
Пн ноя 26, 2018 11:01 am
Беда у меня случилась. Т.к. e-control больше не развивается, то решил перейти на IHC. Для опытов выбрал наименее ценного члена экипажа: RM pro, управляющий прожектором по RF и кондиционером в спальне. Подключил его к IHC, но тут же он пропал из МЖД, хотя ни IP адрес, ни тем более MAC-адрес не менялся. Поиском в модуле нашел его опять. Переобучил командам и тут началось! Если нажать на значок молнии в закладке "Данные" этого RM pro, то команда выполняется, но попытка в сценарии или в консоли выполнить команду brLinkCommand приводит к ошибке:

Warning: socket_recvfrom(): unable to recvfrom [10054]: ��������� ���� ������������� �������� ������������ �����������. in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink.class.php on line 561 Fatal error: Uncaught Error: Call to undefined method SP1::Send_data() in C:\_majordomo\htdocs\lib\brlink_command.php:10 Stack trace: #0 C:\_majordomo\htdocs\lib\brlink_command.php(18): brLinkRawCommand('4', '2600c00173390f0...') #1 C:\_majordomo\htdocs\modules\objects\objects.class.php(558) : eval()'d code(3): brLinkCommand('Bedroom24heart') #2 C:\_majordomo\htdocs\modules\objects\objects.class.php(558): eval() #3 C:\_majordomo\htdocs\objects\index.php(128): objects->callMethod('HeartMax', Array) #4 {main} thrown in C:\_majordomo\htdocs\lib\brlink_command.php on line 10

Как исправить? На всякий случай снес IHC. Через e-control всё управляется.
А попробуйте ради эксперимента исправить в файле modules\dev_broadlink\broadlink.class.php на строке 561, значение 2048 на что-то побольше. В два раза больше. Что-то есть подозрение, что при обучении новых кодов, у Вас эти коды стали такими большими, что не влазят в сокет, если я правильно понял.

[updated]
Когда-то показалось, что чем дольше держать кнопку на пульте при обучении, тем длиннее будет сохранен код.
Пробовал. Ничего не изменилось. Сами команды выполняются, если нажать на "молнию" в строке команд. Ошибка появляется только при попытке выполнить команду brLinkCommand.

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

Добавлено: Пн ноя 26, 2018 3:26 pm
VooDooN
Еще интересно, почему у Вас в ошибке фигурирует устройство SP1, хотя Вы писали про RM Pro...

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

Добавлено: Пн ноя 26, 2018 3:31 pm
Mikik
Откатил на бэкап, сохраненный до экспериментов. Всё опять заработало. Что это было?

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

Добавлено: Пн ноя 26, 2018 3:35 pm
VooDooN
Похоже, что для Вашего тестового устройства в базе почему-то сохранилось значение DevType = 0. А когда запускалась функция brLinkRawCommand, то этот 0 превращался в девайс SP1, который имеет именно такой же DevType и дальше функциональность ломалась, так как не расчитана работать для SP1.

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

Добавлено: Чт ноя 29, 2018 4:14 pm
Kas-11
Добрый день!
У меня Удлинитель Broadlink MP1 подключен к бурбулятору аквариума. отключение и включение я поставил на кнопку.
Когда кормлю рыб я кнопкой выключаю бурбулятор чтобы корм не раскидывало по аквариуму и часто забываю включить.
Хотел поставить таймер на включение
КОД:
if (getGlobal('Relay16'.'.'.'status') != 1) {
clearTimeOut('A_FAN1');
setTimeOut('A_FAN1', " setGlobal('Relay16'.'.'.'status', '1');", (int)('1800'));
}
Подскажите что не так, почему не срабатывает таймер?

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

Добавлено: Чт ноя 29, 2018 6:04 pm
VooDooN
Kas-11 писал(а):
Чт ноя 29, 2018 4:14 pm
Добрый день!
У меня Удлинитель Broadlink MP1 подключен к бурбулятору аквариума. отключение и включение я поставил на кнопку.
Когда кормлю рыб я кнопкой выключаю бурбулятор чтобы корм не раскидывало по аквариуму и часто забываю включить.
Хотел поставить таймер на включение
КОД:
if (getGlobal('Relay16'.'.'.'status') != 1) {
clearTimeOut('A_FAN1');
setTimeOut('A_FAN1', " setGlobal('Relay16'.'.'.'status', '1');", (int)('1800'));
}
Подскажите что не так, почему не срабатывает таймер?
А в X-Ray в Таймерах он появляется?
Попробуйте просто упростить для начала:

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

if (!getGlobal('Relay16.status')) {
	clearTimeOut('A_FAN1');
	setTimeOut('A_FAN1', "setGlobal('Relay16.status', 1);", 1800);
}
И я бы лучше использовал вместо setGlobal('Relay16.status', 1); вызов метода callMethod('Relay16.turnOn');, хотя это не принципиально.

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

Добавлено: Чт ноя 29, 2018 11:43 pm
xor
Kas-11 писал(а):
Чт ноя 29, 2018 4:14 pm
Добрый день!
...
1.При чём здесь модуль бродлинк?
2.Как и где у вас этот кусок кода запускается? Не видно, как статус реле устанавливается. Трудно что-то посоветовать.
Если бурбулятор должен работать непрерывно, за исключением 3 минут кормёжки, проще всего прописать единственную строку с таймером в том месте, где вы его выключаете.

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

Добавлено: Вт дек 04, 2018 6:52 pm
Sapizdullin
nick7zmail! Дружище! вопросец возник - до сего дня что-то как-то не заморачивался с датчиком движения Броадлинковским, тут вспомнил про него и вылезла удивительная вещь - прикрутил его к простым устройствам (датчику движения), и понеслось в МДМ пишет срабатывания каждые 20-50 сек. А в E-Control - два часа назад. Где косяк? Движение было реально два часа назад. И иногда заходя на страницу модуля наблюдаю - "Цикл остановлен"....

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

Добавлено: Ср дек 05, 2018 7:31 am
nick7zmail
А вот здесь то и нужна как раз опция - обновлять только при изменении. Либо же менять алгоритм работы самого простого устройства. Дело в том, что датчик шлёт как 1, когда сработал, так и 0, когда не срабатывал. Шлёт постоянно, пишутся постоянно. Т.е. либо обработку в метода if($status==1), либо ставим опцию обновлять только при изменении. И тогда в свойство будет писать, только если значение отличается.