Страница 56 из 141
Re: Модуль "MegaD"
Добавлено: Ср фев 01, 2017 2:32 pm
andrey1509
Chainik писал(а):Тогда я правильно понял, что у вас серевер (Мажордомо) не дает команду на открытие замка, а команда подается автономно самой Мегой, путем выполнения сценария по умолчанию ("Act")?
Да
Мне и не нужно управлять дверью с Мажордомо. Мне нужно просто озвучить событие.
Re: Модуль "MegaD"
Добавлено: Ср фев 01, 2017 3:11 pm
Chainik
У меня нет Меги-2561. Но, думаю, можно попробовать так.
1. Для вашей кнопки создаем в классе KeySensors виртуальный объект. Назовем его, к примеру, «Button_27». При этом под "27" подразумевается порт «P27», куда подключена кнопка на Меге. У «Button_27» уже есть метод «statusChanged». В этом методе «statusChanged» делаем настройку, вписывая туда код PHP
2. В модуле MegaD у вашей Меги на вкладке «Данные» у порта «27 Input» в поле «Связанный объект» выставляем «Button_27». В поле «Метод» выставляем «statusChanged».
Теоретически должно работать. Модуль "MegaD" должен быть настроен (должен видеть Мегу).
Адрес сервера и скрипт в Меге на закладке конфигурирования должны быть указаны.
Re: Модуль "MegaD"
Добавлено: Ср фев 01, 2017 3:23 pm
andrey1509
Chainik писал(а):У меня нет Меги-2561. Но, думаю, можно попробовать так.
Теоретически должно работать. Модуль "MegaD" должен быть настроен (должен видеть Мегу).
Адрес сервера и скрипт в Меге на закладке конфигурирования должны быть указаны.
Да , спасибо заработало вот, в истории пишет, только не говорит
Re: Модуль "MegaD"
Добавлено: Ср фев 01, 2017 3:33 pm
Chainik
Если мне не изменят память, в функции "say" можно указать уровень важности сообщений от 1 до 5. Самые важные Алиса говорит голосом. Только не помню, какой уровень считается наивысшим. Попробуйте указать
если не помогло, тогда
Re: Модуль "MegaD"
Добавлено: Ср фев 01, 2017 5:49 pm
sergejey
Я добавил в настройку контроллера возможность выбрать его тип и периферию. Пока, честно говоря, оно не используется, кроме типа периферии 7I7O. Если подскажите, как ещё эту штуку задействовать, то сделаю

У меня есть 2561 без периферии, попробую ещё его подключить и посмотреть, что можно сделать.
Re: Модуль "MegaD"
Добавлено: Ср фев 01, 2017 10:59 pm
andrey1509
Chainik писал(а):Если мне не изменят память, в функции "say" можно указать уровень важности сообщений от 1 до 5. Самые важные Алиса говорит голосом. Только не помню, какой уровень считается наивысшим. Попробуйте указать
если не помогло, тогда
Ураааа... Заработало.....
Спасибо огромное.
Re: Модуль "MegaD"
Добавлено: Ср фев 01, 2017 11:00 pm
andrey1509
sergejey писал(а):Я добавил в настройку контроллера возможность выбрать его тип и периферию. Пока, честно говоря, оно не используется, кроме типа периферии 7I7O. Если подскажите, как ещё эту штуку задействовать, то сделаю

У меня есть 2561 без периферии, попробую ещё его подключить и посмотреть, что можно сделать.
Я на него датчики подключал и реле (с опто развязкой)
Re: Модуль "MegaD"
Добавлено: Вт фев 07, 2017 12:03 am
tsember
Стал счастливым обладателем чуда под названием MegaD 2561. Подключил, все классно: никаких соплей с ардуино, выглядит красиво и дорого. Но я не об этом.
Пока проводил различные опыты с конфигурацией, несколько раз выключал Мегу с розетки на непродолжительное время. После включения сразу бросалось в глаза, что нет света. Приходилось идти к кнопке и снова запускать освещение. Насос системы отопления был выключен (когда он включается, электрокотел автоматом запускается), благо скрипт термостата на МДМ каждую минуту отправляет актуальное состояние на Мегу, тем самым в новую минуту, если надо насос запускается.
Но так же нельзя! Каждую подключенную нагрузку проверять: нужно ли ей сейчас работать или нет.
Достаточно при получении команды st=1 отправлять на Мегу все последние значения портов. Это сделать не трудно, может быть даже и самостоятельно реализуемо, но Очень хотелось бы, что бы эта возможность была в модуле штатно.
Сергей. Огромная просьба к Вам, рассмотрите возможность добавления этой функции в модуль (в этой ветке не один десяток раз эта просьба звучала, но решил еще раз поднять). Заранее благодарю.
Re: Модуль "MegaD"
Добавлено: Вт фев 07, 2017 9:45 am
tsember
sergejey писал(а):
AHgpeu писал(а):и категорически необходима галочка для входов "обрабатывать отпускание кнопки"
Так вы поставьте в свойствах входа тип R&D (если не ошибаюсь) и событие будет приходить дважды -- как на нажатие так и на отпускание. При этом в метод передаётся парметр value, который говорит как раз о том, какое действие было произведено.
Сергей. Вопрос до сих пор актуален. В связанный метод передается два параметра: сработавший порт и его значение. Катострофически не хватает переданного параметра m (отпустили кнопку или держим свыше 1,5 сек).
Хочу сделать простую логику работы "железной" кнопки:
m=0. Кликнул - свет включился на Х минут; Кликнул еще - свет выключился;
m=1. На отжатие не реагируем, т.к. у нас кнопка
m=0, m=2. При выключенном свете нажал и подержал - свет сразу включится как бы на Х минут и через полторы секунды второй параметр скажет, что таймер Х минут нужно очистить (свет будет продолжать гореть до активации режима "Никого нет дома" или пока его не выключат).
Если два параметра уже передаются, то передать третий - не должно быть проблемой. Или кто может подсказать что нужно править что бы передавать параметр m?
Заранее большое спасибо участниками конференции.
UPD:
На удивление сам разобрался: примерно в середине файла megad.class.php есть код:
Код: Выделить всё
if ($prop['LINKED_OBJECT'] && $prop['LINKED_METHOD']) { // && $old_value!=$prop['CURRENT_VALUE_STRING']
$params=array();
$params['TITLE']=$rec['TITLE'];
$params['VALUE']=$prop['CURRENT_VALUE_STRING'];
$params['value']=$params['VALUE'];
$params['port']=$prop['NUM'];
$methodRes=callMethod($prop['LINKED_OBJECT'].'.'.$prop['LINKED_METHOD'], $params);
после строчки
добавляем строчку:
оказывается в модуле уже все есть, только этот параметр в метод не передавался.
Re: Модуль "MegaD"
Добавлено: Вт фев 07, 2017 1:03 pm
Chainik
tsember писал(а):
Сергей. Вопрос до сих пор актуален. В связанный метод передается два параметра: сработавший порт и его значение. Катострофически не хватает переданного параметра m (отпустили кнопку или держим свыше 1,5 сек).
Хочу сделать простую логику работы "железной" кнопки:
m=0. Кликнул - свет включился на Х минут; Кликнул еще - свет выключился;
m=1. На отжатие не реагируем, т.к. у нас кнопка
Реализовать различную реакцию на одинарное и двойное нажатие кнопки можно и чисто программно (без "вытаскивания" параметра).
sega6549 выкладывал видео, в котором показано как это можно сделать.
https://www.youtube.com/watch?v=ghi6KyTTDcE