Разработка дополнительных модулей, подключение различных приложений.
Модератор: immortal
-
nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
-
Благодарил (а):
121 раз
-
Поблагодарили:
2010 раз
Сообщение
nick7zmail » Пн ноя 26, 2018 1:26 pm
VooDooN писал(а): ↑Пн ноя 26, 2018 1:15 pm
[updated]
Когда-то показалось, что чем дольше держать кнопку на пульте при обучении, тем длиннее будет сохранен код.
Вот нифига подобного. Чем дольше держишь - тем "чище" код приходит.
Т.е. быстро нажал - там вплоть до 500 символов у меня были команды (мусор, повторы), а долго подержать - возвращалась аккуратненькая команда символов на 120.
-
Mikik
- Сообщения: 111
- Зарегистрирован: Ср апр 26, 2017 11:44 am
- Откуда: Москва
-
Благодарил (а):
14 раз
-
Поблагодарили:
9 раз
Сообщение
Mikik » Пн ноя 26, 2018 2:55 pm
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.
-
VooDooN
- Сообщения: 307
- Зарегистрирован: Сб июн 11, 2016 12:02 am
-
Благодарил (а):
170 раз
-
Поблагодарили:
64 раза
Сообщение
VooDooN » Пн ноя 26, 2018 3:26 pm
Еще интересно, почему у Вас в ошибке фигурирует устройство SP1, хотя Вы писали про RM Pro...
-
Mikik
- Сообщения: 111
- Зарегистрирован: Ср апр 26, 2017 11:44 am
- Откуда: Москва
-
Благодарил (а):
14 раз
-
Поблагодарили:
9 раз
Сообщение
Mikik » Пн ноя 26, 2018 3:31 pm
Откатил на бэкап, сохраненный до экспериментов. Всё опять заработало. Что это было?
-
VooDooN
- Сообщения: 307
- Зарегистрирован: Сб июн 11, 2016 12:02 am
-
Благодарил (а):
170 раз
-
Поблагодарили:
64 раза
Сообщение
VooDooN » Пн ноя 26, 2018 3:35 pm
Похоже, что для Вашего тестового устройства в базе почему-то сохранилось значение DevType = 0. А когда запускалась функция brLinkRawCommand, то этот 0 превращался в девайс SP1, который имеет именно такой же DevType и дальше функциональность ломалась, так как не расчитана работать для SP1.
-
Kas-11
- Сообщения: 37
- Зарегистрирован: Ср апр 26, 2017 11:52 am
-
Благодарил (а):
2 раза
-
Поблагодарили:
1 раз
Сообщение
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'));
}
Подскажите что не так, почему не срабатывает таймер?
-
VooDooN
- Сообщения: 307
- Зарегистрирован: Сб июн 11, 2016 12:02 am
-
Благодарил (а):
170 раз
-
Поблагодарили:
64 раза
Сообщение
VooDooN » Чт ноя 29, 2018 6:04 pm
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');, хотя это не принципиально.
-
xor
- Сообщения: 2038
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
-
Благодарил (а):
284 раза
-
Поблагодарили:
629 раз
Сообщение
xor » Чт ноя 29, 2018 11:43 pm
Kas-11 писал(а): ↑Чт ноя 29, 2018 4:14 pm
Добрый день!
...
1.При чём здесь модуль бродлинк?
2.Как и где у вас этот кусок кода запускается? Не видно, как статус реле устанавливается. Трудно что-то посоветовать.
Если бурбулятор должен работать непрерывно, за исключением 3 минут кормёжки, проще всего прописать единственную строку с таймером в том месте, где вы его выключаете.
-
Sapizdullin
- Сообщения: 408
- Зарегистрирован: Сб фев 18, 2017 9:47 am
- Откуда: Земля
-
Благодарил (а):
54 раза
-
Поблагодарили:
61 раз
Сообщение
Sapizdullin » Вт дек 04, 2018 6:52 pm
nick7zmail! Дружище! вопросец возник - до сего дня что-то как-то не заморачивался с датчиком движения Броадлинковским, тут вспомнил про него и вылезла удивительная вещь - прикрутил его к простым устройствам (датчику движения), и понеслось в МДМ пишет срабатывания каждые 20-50 сек. А в E-Control - два часа назад. Где косяк? Движение было реально два часа назад. И иногда заходя на страницу модуля наблюдаю - "Цикл остановлен"....
Intel(R) Core(TM) i7-6700, Debian 9 "Stretch", Zoneminder, Avreg.
-
nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
-
Благодарил (а):
121 раз
-
Поблагодарили:
2010 раз
Сообщение
nick7zmail » Ср дек 05, 2018 7:31 am
А вот здесь то и нужна как раз опция - обновлять только при изменении. Либо же менять алгоритм работы самого простого устройства. Дело в том, что датчик шлёт как 1, когда сработал, так и 0, когда не срабатывал. Шлёт постоянно, пишутся постоянно. Т.е. либо обработку в метода if($status==1), либо ставим опцию обновлять только при изменении. И тогда в свойство будет писать, только если значение отличается.