[Модуль] MegaD (megad)
Модератор: immortal
- Kod.Begemot
- Сообщения: 358
- Зарегистрирован: Чт июн 20, 2013 5:53 pm
- Благодарил (а): 32 раза
- Поблагодарили: 42 раза
Re: Модуль "MegaD"
Так жалею что у меня нет достаточных навыков, чтобы разобраться в этом модуле и его исправить... Может подскажет кто - хотя бы с чего стоит начинать, как модуль разобрать, в какой среде пробовать лучше?
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Модуль "MegaD"
Я в ближайшее время добавлю галочку в интерфейс по поводу выполнения дефолтных команд.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- Kod.Begemot
- Сообщения: 358
- Зарегистрирован: Чт июн 20, 2013 5:53 pm
- Благодарил (а): 32 раза
- Поблагодарили: 42 раза
Re: Модуль "MegaD"
Будет великолепно!
Но всё же, не подскажете - на будущее, в чем лучше редактировать подобные вещи?
Интересно попробовать, а вдруг разберусь? :8
Но всё же, не подскажете - на будущее, в чем лучше редактировать подобные вещи?
Интересно попробовать, а вдруг разберусь? :8
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Модуль "MegaD"
Про редактирования -- тут нет однозначного ответа. Есть много различных средств для работы с кодом (так называемых IDE), но я сам лично пользуюсь просто Far-ом с набором вспомогательных плагинов для редактора.Kod.Begemot писал(а):Будет великолепно!
Но всё же, не подскажете - на будущее, в чем лучше редактировать подобные вещи?
Интересно попробовать, а вдруг разберусь? :8
По поводу модуля, добавил:

Сейчас под рукой нет MegaD, чтобы проверить, так что пожалуйста потестируйте.
Работает следующим образом -- если эта галочка выставлена, то модуль не отдаёт устройству команду по-умолчанию при изменении значения входа. При этом, в случае необходимости, метод может выдать какую-то другую команду через return. Да, и ещё -- команда по-умолчанию может быть выполнена на устройстве и без участия модуля, например, если сервер слишком долго думал с ответом.
- Рейтинг: 1.16%
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Модуль "MegaD"
Так как кубик устройство медленное, а мега нетерпеливое да еще и в методах много всего наворочено, пришлось делать заглушку что бы не ожидалось ответа от МЖД.
Пока сделал скрипт обертку который вызывает в фоне стандартный скрипт модуля и тут же возвращает пустую строку меге.
С такой оберткой наконец ушли ложные срабатывания.
Возвращать команды вида "8:2" не вижу смысла, так как часть устройств подключены к той же меге, а часть к соседней, а еще часть вообще не к меге.
Дабы общение было более однотипное думаю проще вызывать только методы ООП для нужных устройств, чем комбинировать их со строкой типа "8:2".
Может стоит сразу возвращать пустую строку? Оставить сценарии по умолчанию для автономного режима? А на события меги реагировать методами ООП? Что скажет Сергей как автор модуля и сообщество пользователей модуля?
Пока сделал скрипт обертку который вызывает в фоне стандартный скрипт модуля и тут же возвращает пустую строку меге.
megad1.phpПоказать
Код: Выделить всё
<?php
@ini_set('zlib.output_compression', 'Off');
@ini_set('output_buffering', 'Off');
@ini_set('output_handler', '');
@apache_setenv('no-gzip', 1);
$url = 'http://localhost/megad.php';
$command = 'curl "'.$url.'?'.$_SERVER['QUERY_STRING'].'" > /dev/null 2>&1 &';
exec($command);
echo ""; exit;
Возвращать команды вида "8:2" не вижу смысла, так как часть устройств подключены к той же меге, а часть к соседней, а еще часть вообще не к меге.
Дабы общение было более однотипное думаю проще вызывать только методы ООП для нужных устройств, чем комбинировать их со строкой типа "8:2".
Может стоит сразу возвращать пустую строку? Оставить сценарии по умолчанию для автономного режима? А на события меги реагировать методами ООП? Что скажет Сергей как автор модуля и сообщество пользователей модуля?
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
CONNECT: http://connect.smartliving.ru/profile/311
- Kod.Begemot
- Сообщения: 358
- Зарегистрирован: Чт июн 20, 2013 5:53 pm
- Благодарил (а): 32 раза
- Поблагодарили: 42 раза
Re: Модуль "MegaD"
Поддерживаю! Сценарии только для автономной (читай аварийной) работы. А методами и несколько мег объединить просто, да и вообще это правильнее.
-
- Сообщения: 265
- Зарегистрирован: Пт дек 26, 2014 1:58 pm
- Благодарил (а): 33 раза
- Поблагодарили: 24 раза
Re: Модуль "MegaD"
А я не поддерживаю...Kod.Begemot писал(а):Поддерживаю! Сценарии только для автономной (читай аварийной) работы. А методами и несколько мег объединить просто, да и вообще это правильнее.

Объединить несколько мег можно и сценариями. Не вижу ни малейшего смысла плодить десятки объектов не несущих никакой функциональной нагрузки(нефиксируемые кнопки). То что может автоматика делать без сервера, пускай делает. Или вы считаете что лишние объекты ускорят работу ваших кубиков? Я не очень понимаю, что значит ложные срабатывания, если вы сами закладываете данный функционал в мегу...

- Рейтинг: 1.16%
- Kod.Begemot
- Сообщения: 358
- Зарегистрирован: Чт июн 20, 2013 5:53 pm
- Благодарил (а): 32 раза
- Поблагодарили: 42 раза
Re: Модуль "MegaD"
На мой взгляд смысл в том, чтобы сценарий в меге таки _выполнялся_!, но только когда сервер "склеил ласты"...Victor_S писал(а): А я не поддерживаю...
Объединить несколько мег можно и сценариями. Не вижу ни малейшего смысла плодить десятки объектов не несущих никакой функциональной нагрузки(нефиксируемые кнопки). То что может автоматика делать без сервера, пускай делает. Или вы считаете что лишние объекты ускорят работу ваших кубиков? Я не очень понимаю, что значит ложные срабатывания, если вы сами закладываете данный функционал в мегу...Уберите сценарий из меги и пользуйтесь только командами сервера.
Живой сервер пропустив команду "через себя" сможет гораздо больше, нежели просто мега.
P.S. Попробую сегодня новый модуль, у меня главная проблема на калитке - там мега занимается отпиранием электрозамка по командам или с сервера или с "контроллера доступа". там периодически замок отпирался повторно, из-за срабатывания сценария. Приходилось убирать все сценарии, считывать конфигурацию в модуле, потом опять прописывать сценарии.
-
- Сообщения: 265
- Зарегистрирован: Пт дек 26, 2014 1:58 pm
- Благодарил (а): 33 раза
- Поблагодарили: 24 раза
Re: Модуль "MegaD"
Kod.Begemot, у меня подход такой - есть некие жизненно важные функции(управление ими примитивное, не требует никаких сложных сценариев на сервере), они должны работать и без участия сервера, а есть сервисные(дополнительный комфорт), их пропадание при зависании сервера не является трагедией. Уберите сценарий по умолчанию из меги для калитки. Когда сервер работает - имеете дополнительный функционал, когда завис(это ведь форсмажор, а не обычная ситуация?) - откроете с контроллера.
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Модуль "MegaD"
Есть такая жизненно важная функция как включение света по датчику движения. Жизненно важная потому как без света местами можно и шею сломать... А ты приехал поздно, вокруг темно и в руках много всего...
Но когда светло на улице, свет включать не нужно... Понятно что если сервер не доступен то свет включается всегда, но вот сервер думает медленнее чем мега и получается что свет все равно включается всегда... Печаль...
Вот если галочку "skip default action" заменить на "send an empty response immediately". Может тогда будет более универсально?
Но когда светло на улице, свет включать не нужно... Понятно что если сервер не доступен то свет включается всегда, но вот сервер думает медленнее чем мега и получается что свет все равно включается всегда... Печаль...
Вот если галочку "skip default action" заменить на "send an empty response immediately". Может тогда будет более универсально?
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
CONNECT: http://connect.smartliving.ru/profile/311