Страница 40 из 141

Re: Модуль "MegaD"

Добавлено: Сб июл 02, 2016 4:23 pm
gagarin74
с железом вроде разобрались.теперь давайте поговорим о настройках меги.
1 присабачиваем к входу №5 дверной звонок
2 выставляем режим P&R моде с галочкой.
3 в меджере создаем обьекты и привязываем в модуле мега(скаченного с маркета).
4 замыкаем контакты -четко получаем значение 1
5 размыкаем контакты -и тишина
6 лезим в свойства обьектов а там как стояла 1 так и стоит
7 лезим в меджере в модуль мега смотрим значение которое получила с меги -то же 1
8 нажимаем кнопку обновить - появляется ноль
9 в свойствах привязанных обьектах то же появляется ноль

Помогите ,наверное я что то не дочитал или не доделал. наверное все должно меняться от нажатие дверного звонка.
в идеале вместо самого звонка должно стоять реле. если кто подскажет правильную "петлю" буду рад.
тобишь алгоритм. кнопку нажал реле под током. алиса предупредила об этом и ещё чего то сделала. кнопку оджал-реле без тока .Алиса ещё чего то сделала.

Re: Модуль "MegaD"

Добавлено: Вт авг 16, 2016 8:08 pm
OlegJktu84
Lewcom писал(а):Народ, сори за глупый вопрос.
Не добавляется мега в модуле. При скане накидывает мусорных даных:
Название (+) MegaD-ID IP
MegaD
MegaD (0) (0)
MegaD Warning: stream_socket_server(): in C:\_majordomo\htdocs\modules\megad\megad-cfg.php on line 60
Warning: stream_socket_server(): in C:\_majordomo\htdocs\modules\megad\megad-cfg.php on line 60

MegaD


никаких ip-адресов, саме мега в сети работает нормально (настраивается, щелкает).
Ручное добавление не помогает, не отображает никаких портов.
Система Вин10 (на линуксе не осилил поставить мажордомо хотя вроде делал по инструкции)
Чем лечится?
Сам словил такой глюк. По моему уже отвечали, но на всякий случай напишу мой рецепт:
Вылечилось если настроить в Мажордомо: Панель управления - megad - -[ Настроить ] - Local IP: 192.168.1.200
Ну, то есть Local IP это ip компьютера (сервера) на котором установлен Мажордомо. С ним Мега подтягивается.
Хмм. У Меня так подтянулась дефолтная МегаД 192.168.0.14 на виртуалку Win7 с тремя сетевыми карточками. Одна получает адрес 192.168.1.200. Вторая 192.168.0.200. Третья по DHCP.

Re: Модуль "MegaD"

Добавлено: Ср авг 17, 2016 7:44 pm
Руслан
Kod.Begemot писал(а):Я добавил в класс реле метод "Impulse", вот его код:

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

$ot=$this->object_title;
$ImpulseTime=(int)$this->getProperty("ImpulseTime");
if(!$ImpulseTime)
 $ImpulseTime=1;

$this->callMethod('TurnOn');

setTimeOut($ot."_impulse","callMethod('".$ot.".TurnOff');",$ImpulseTime);
при этом добавлено свойство ImpulseTime - в котором пишем задержку в секундах.
Спасибо большое! Сейчас у меня можно включать свет через веб и происходит выключение через время, если сработал датчик движения
в первом скрине если не надо чтоб включенный свет из веб выключался по датчику, но при этом включенный по датчику гаснет по времени
2016-08-17_21-42-22.png
2016-08-17_21-42-22.png (28.75 КБ) 9292 просмотра
а вот так свет не гаснет если не было движения и гаснет, если было движение независимо от способа включения.
2016-08-17_21-48-29.png
2016-08-17_21-48-29.png (30.05 КБ) 9277 просмотров

Re: Модуль "MegaD"

Добавлено: Чт авг 18, 2016 10:21 pm
Genplane
Установил-включил-просканировал. Нашлась моя Мега, но хотя на ней модуль с 14 входами, отображается только первые пять (0-4IN) и 16 вход с температурой интерфейсного модуля. Где спрятались 9 дискретных и два PWM?

Re: Модуль "MegaD"

Добавлено: Пт авг 19, 2016 12:45 pm
Genplane
Потренировался. Считывал конфигурацию, проверял настройки Меги напрямую, удалял её и ставил. Не помогло. Помогла перезагрузка MJD.

Re: Модуль "MegaD"

Добавлено: Пт авг 19, 2016 8:17 pm
Chainik
А можно ли как-то передать в скрипт, который запускается после срабатывания входа по методу statusChanged, сведения о сработавшем порте. Ну чтобы можно было в скрипте использовать конструкции вида

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

if ( $_GET['pt'] == "6" )
{
//Выполнить действие
} 
Ясно, что сам модуль MegaD знает, какой именно вход сработал. Вот как это "знание" передать в скрипт?
Дело в том что один и тот же скрипт будет выполнять разные действия в зависимости от того, какой именно вход сработал.

Re: Модуль "MegaD"

Добавлено: Сб авг 20, 2016 8:46 am
Kod.Begemot
Подозреваю, в этом случае проще использовать не модуль, а к примеру класс Bagir-a. Там как раз метод "Incoming Message"...

Re: Модуль "MegaD"

Добавлено: Сб авг 20, 2016 3:12 pm
Chainik
Kod.Begemot, спасибо за ответ. Не хотелось бы плодить "лишние сущности". В случае с модулем подкупает именно простота интеграции. Может быть придется использовать какой-нибудь "костыль" в виде промежуточного скрипта, устанавливающего значение свойства в SetGlobal в соответствии с тем, какой именно порт сработал, и запускающего основной скрипт. А уже основной скипт получит значение этого свойства по GetGlobal и выполнит необходимые действия.
Для каждого входа Меги промежуточный скрипт будет, разумеется, свой.

Что-то я "ступил". Все прекрасно работает безо всяких "костылей". Да здравствует Мажордомо!

Re: Модуль "MegaD"

Добавлено: Вт авг 23, 2016 1:37 pm
sergejey
Chainik писал(а):А можно ли как-то передать в скрипт, который запускается после срабатывания входа по методу statusChanged, сведения о сработавшем порте. Ну чтобы можно было в скрипте использовать конструкции вида

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

if ( $_GET['pt'] == "6" )
{
//Выполнить действие
}
Ясно, что сам модуль MegaD знает, какой именно вход сработал. Вот как это "знание" передать в скрипт?
Дело в том что один и тот же скрипт будет выполнять разные действия в зависимости от того, какой именно вход сработал.
Методу передаётся номер порта и его можно использовать у себя в коде как $params['port']

Re: Модуль "MegaD"

Добавлено: Вт авг 23, 2016 2:52 pm
Chainik
Спасибо, Сергей, разобрался. Все отлично работает.
Для тех, кому интересно поясню. Если в модуле MegaD к двум разным входам привязана одна и та же кнопка (keySensors) и указано, что нужно запускать при срабатывании метод, например, statusChanged, то в методе можно написать запуск сценария, в котором будет прописано, какие действия нужно выполнять в зависимости от того, какой именно вход меги сработал

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

if ( $_GET['pt'] == "0" )
{
// Выполнить одно действие
}

if ( $_GET['pt'] == "4" )
{
// Выполнить другое действие
}