SmartLiving.ru

Обсуждение проекта
 
Текущее время: Пт дек 15, 2017 12:59 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 848 ]  На страницу Пред.  1 ... 76, 77, 78, 79, 80, 81, 82 ... 85  След.
Автор Сообщение
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Чт авг 03, 2017 5:45 pm 
Не в сети

Зарегистрирован: Пн апр 03, 2017 12:21 pm
Сообщения: 48
Благодарил (а): 4 раз.
Поблагодарили: 1 раз.
Вопрос к знатокам, помогите понять почему не работает.
Имеется мега 2561 к ней подключен 14IN
По схеме взятой отсюда на 13й пин посажена белая лента.
https://gyazo.com/1ca04e4b5e12b5137c1cde9f3cdaa858

MD видит это так https://gyazo.com/0f523ced58b2c9efc6931064ce20cc67
создал обьект, https://gyazo.com/3de225d478e99a3a4302895f49fa14de
Всё бы хорошо, но если менять свойство Stairs_LED_PWM.level, мега не реагирует.
Так же, при изменении значения на самой меге, в MD значение обновляется примерно через минуту, тоесть срабатывает srv loop.

Что у меня не так? https://gyazo.com/a9bc36f900cdcef4cba7e648f6169830

UPD. к этой же меге на первый порт повешен 7i7o на котором включается реле через статус 0\1, отрабатывает мгновенно изменение статуса обьекта.
Получается грабли именно из-за PWM?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Чт авг 03, 2017 9:44 pm 
Не в сети

Зарегистрирован: Вс янв 10, 2016 11:05 am
Сообщения: 249
Благодарил (а): 24 раз.
Поблагодарили: 56 раз.
barsmaster писал(а):

Бросается в глаза "28 NC". Похоже, порт в Меге вы сконфигурировали, а обновленную конфигурацию модулем MegaD не перечитали (Read config). Порт должен видеться из модуля как Output.
Если не поможет, тогда идем дальше.
barsmaster писал(а):
создал обьект, https://gyazo.com/3de225d478e99a3a4302895f49fa14de
Всё бы хорошо, но если менять свойство Stairs_LED_PWM.level, мега не реагирует.

После изменения свойства что-то должно инициировать подачу команд Меге (метод, код PHP, скрипт и т.п.). Не увидел у вас метода/кода PHP/скрипта, который должен передавать команды Меге.

barsmaster писал(а):
Так же, при изменении значения на самой меге, в MD значение обновляется примерно через минуту, тоесть срабатывает srv loop.

По поводу целесообразности srv loop уже говорилось в этой ветке. Мега по идеологии должна опрашиваться со стороны сервера (а не сама пытаться сообщать ему что-то). Команды тем более должны подаваться сервером.
В общем, алгоритм, примерно, такой. Из какого-нибудь объекта, например, слайдера, меняется значение вашего свойства. После изменения значения свойства подается команда на Мегу с новым значением для управляемого порта.
Вот работающий пример со слайдером, правда из другой ветки (http://majordomo.smartliving.ru/forum/viewtopic.php?f=14&t=1832&p=56900#p56900).

barsmaster писал(а):
UPD. к этой же меге на первый порт повешен 7i7o на котором включается реле через статус 0\1, отрабатывает мгновенно изменение статуса обьекта.
Получается грабли именно из-за PWM?

Нет, дело не в PWM. Первый порт - это ВХОД, а P28 на 14IN - это ВЫХОД. Тут несколько другой, на мой взгляд, подход к настройке.

Попробуйте сделать слайдер, связав его с вашим свойством "Stairs_LED_PWM.level". А в поле "код" поместите примерно то же, что в примере. Все должно получиться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Пт авг 04, 2017 9:16 am 
Не в сети

Зарегистрирован: Пн апр 06, 2015 10:57 am
Сообщения: 33
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.
Всем снова здравствуйте.
Продолжаю разбираться с тормозами.
Написал новый код обработки длинного нажатия (как мне кажется более красивый, и действие при длинном нажатии выполняется не по отпусканию клавиши, а сразу, как только прилетает m=2). Этот код вообще ничего не делает при нажатии. Стало работать быстрее и стабильнее, однако очень короткие нажатия все равно иногда игнорируются. Возможно сервер не может обработать сообщения, идущие друг за другом с малым интервалом времени?
Кому интересно вот код:
[Показать] Скрытый текст:
if($_GET['m'] == 2) { // прилетело сообщение о длинном нажатии
file_get_contents("http://192.168.2.210/sec/?cmd=11:2");
$this->setProperty('Long', 1);
}
else
{
if ($_GET['m'] == 1) // прилетело сообщение об отпускании клавиши
{
$lng = $this->getProperty('Long');
if ($lng != 1)
{
$str = "http://192.168.2.203/sec/?pt=11&cmd=get";
$st1=substr(file_get_contents($str),0,2);
if ($st1 == 'ON')
{
file_get_contents("http://192.168.2.210/sec/?cmd=11:0");
file_get_contents("http://192.168.2.203/sec/?cmd=11:0");
}
else
{
file_get_contents("http://192.168.2.203/sec/?cmd=11:1");
};
}
else
{
$this->setProperty('Long', 0);
};
};
};


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Пт авг 04, 2017 10:48 am 
Не в сети

Зарегистрирован: Пн апр 03, 2017 12:21 pm
Сообщения: 48
Благодарил (а): 4 раз.
Поблагодарили: 1 раз.
Chainik писал(а):
Бросается в глаза "28 NC". Похоже, порт в Меге вы сконфигурировали, а обновленную конфигурацию модулем MegaD не перечитали (Read config). Порт должен видеться из модуля как Output.


Помогло!!! Спасибо огромное!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Пт авг 04, 2017 7:52 pm 
Не в сети

Зарегистрирован: Вс янв 10, 2016 11:05 am
Сообщения: 249
Благодарил (а): 24 раз.
Поблагодарили: 56 раз.
Ivan_A писал(а):
Продолжаю разбираться с тормозами.
...
Возможно сервер не может обработать сообщения, идущие друг за другом с малым интервалом времени?

Может быть попробовать запустить все тоже самое из-под другого железа.
И соединить Мегу с этим новым железом напрямую (без Wi-Fi, свичей и т.п.)...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Пн авг 07, 2017 9:12 am 
Не в сети

Зарегистрирован: Пн апр 06, 2015 10:57 am
Сообщения: 33
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.
Это если только в качестве эксперимента, и непросто это. Сервачок там настоящий, хоть и древний, нахаляву достался. Мег 15 штук, без коммутатора никак.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Ср авг 09, 2017 3:07 pm 
Не в сети

Зарегистрирован: Пн апр 03, 2017 12:21 pm
Сообщения: 48
Благодарил (а): 4 раз.
Поблагодарили: 1 раз.
Объясните тупому, почему метод вызывается дважды?
Имеем мегад 14ин и 7и7о, в 14ин подключен датчик протечки
https://gyazo.com/ded29ffdcb3a49dc2b8aff3106f58eaf
который просто замыкает реле если увидел воду, вроде как здесь всё работает.
Решил через MD сделать оповещения о срабатывании разных датчиков,
Создал обьект, создал метод, завязал их на вход меги
https://gyazo.com/6e81e757a8006e3301a8b96b6c6e5e11

метод простейший, тестовый https://gyazo.com/9872a373fe1c0716794e52b931aef1e5
так вот, если поставить return: say("Протечка",1);return; пишет в консоли два раза
если убрать return: say("Протечка",1); говорит бесконечно.

Где я ошибся?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Ср авг 09, 2017 4:21 pm 
Не в сети

Зарегистрирован: Вс янв 10, 2016 11:05 am
Сообщения: 249
Благодарил (а): 24 раз.
Поблагодарили: 56 раз.
"Засада" может сидеть в двух местах:
1. При работе входа Меги в режиме "P", после нахождения 1,5 секунды в замкнутом состоянии Мега отдает серверу 2-й ответ с параметром "m=2". Соответственно, скрипт вызывается повторно.
Метод "лечения" найден в этой ветке на стр.56.
Или можно посмотреть здесь (http://ab-log.ru/forum/viewtopic.php?f=1&t=1328&p=28309#p28309) с примером кода (в конце поста, после подзаголовка "ДОПОЛНЕНИЕ/УТОЧНЕНИЕ").
2. Еще возможная причина: "Вызывать родительский метод" - "перед выполнением кода". Попробуйте поставить - "никогда".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Ср авг 09, 2017 4:50 pm 
Не в сети

Зарегистрирован: Пн апр 03, 2017 12:21 pm
Сообщения: 48
Благодарил (а): 4 раз.
Поблагодарили: 1 раз.
родительский метод пустой.
Скорее всего m=2, копаю. спасибо!
UPD:
Добавление строки в файл megad.class.php
$params['m']=$m;
помогло.
Код:
if(!$params['m']){
say("Протечка",1);
}
return; 


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Чт авг 10, 2017 5:32 pm 
Не в сети

Зарегистрирован: Пн апр 03, 2017 12:21 pm
Сообщения: 48
Благодарил (а): 4 раз.
Поблагодарили: 1 раз.
Сил моих больше не хватает. Снова нуждаюсь в помощи.
Продолжая историю с датчиками протечки, и методом который вызывается при срабатывании датчика, оповещая где именно произошла сработка.
Так вот, сделал копии первого объекта, методы все переписал соответственно, выходы назначил.
https://gyazo.com/18dc52d80602e07195e9361a5948c4ae

странная штука происходит.
вот есть три обьекта подряд, у которых (ecmd: 7:1) - входы 15,16,17.
При сработке последнего из списка, всё хорошо.
При срабатывании среднего, дергает метод свой, и метод следующего в списке.
По моей картинке. Метод 17го входа срабатывает один раз.
Метод 16го входа срабатывает и тянет за собой метод 17го.
Метод 15го входа срабатывает и тянет за собой метод 16го.
Не понимаю, как такое возможно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 848 ]  На страницу Пред.  1 ... 76, 77, 78, 79, 80, 81, 82 ... 85  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB