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

Re: Модуль "MegaD"

Добавлено: Ср май 20, 2015 4:46 pm
sergejey
AHgpeu писал(а): можно вопрос?

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

function setProperty($property_id, $value)
есть ли возможность вывести в интерфейс $property_id ?
что бы была возможность пользоваться этой функцией. и возможен ли локальный хак этой функции, при передаче в $value значения типа "2&t=18"?
ничего этим не поломается?

не хватает функции отправки своих команд меге
Можно вот в таком виде отправлять команды:

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

include_once(DIR_MODULES."megad/megad.class.php");
$mega=new megad();
$mega->sendCommand("192.168.1.12","8:2"); 
вместо 192.168.1.12 можно поставить IP-адрес меги, или её текстовое имя в том виде, в котором она добавлена в модуль.
вместо 8:2 соответственно любая команда

Re: Модуль "MegaD"

Добавлено: Ср май 20, 2015 6:28 pm
AHgpeu
ещё 1 отчёт о баге, даже 2х, но на 1 тему.
попробовал через модуль обновить одно из устройств.
галочки обе установил.

в итоге прошилась всё равно не "бета" версия (3,30 вместо 3,33)

при прошивке накидало кучу "ок", но: пароль у меня отличается от стандартного "sec", потому программа прошивку не залила, и даже IP не сменила.
этот баг был пофиксен Андреем примерно месяц - два назад.
возможно, Вы использовали старую версию его конфигуратора...

Re: Модуль "MegaD"

Добавлено: Ср май 20, 2015 7:47 pm
AHgpeu
sergejey писал(а):Сделал, но пришлось внести изменение в ядро, так что для работы с этой функцией нужно общее обновление (или обновить один файл /modules/objects/objects.class.php).
Оказывается, вызываемый метод не возвращал результат своего выполнения и его нельзя было использовать. Почему-то думал, что это было когда-то сделано.

В любом случае, теперь, если в коде связанного метода стоит return, то эти данные будут использоваться как команда для меги.
Например:

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

return ""; // ничего не выполнять на меге      
или

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

return "8:2"; // переключить OUT8      
если return-а нет никакого, то будет выполнена команда по-умолчанию
не работает. всё обновил, и движок, и модуль.
ко входу прописал метод, внутри метода только

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

return ''; 
работает сценарий по умолчанию =-(
при команде

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

return '11:2'; 
работает вообще "через раз" 3 раза штатно, на 4й команда по умолчанию

на странице 192.168.1.х/megad.php?mdid=3&pt=5 тоже отдаёт через раз, то 12:2, то 12:2;11:1;p600;11:0

меня домашние уже спрашивают, не проблемы ли у меня с кишечником)))) постоянно бегаю к туалету клацнуть кнопкой

UPD закономерность: если клацать редко, то вывод вариантов строго по очереди, если быстро -- рандом, относится к обоим вариантам return-a

Re: Модуль "MegaD"

Добавлено: Чт май 21, 2015 10:18 am
Victor_S
Кажется нашел проблему с вызовом методов у себя...
Когда еще данного функционала в модуле не было, я связал порт Меги со свойством объекта. Затем эту связь в модуле удалил и пытался связать с вызовом метода. Однако у свойства объекта так и осталась связь с портом Меги, хотя в модуле никакой связи нету. Как теперь ее удалить у свойства объекта?!

Re: Модуль "MegaD"

Добавлено: Чт май 21, 2015 11:07 am
Bagir
Отличный модуль получился! Можно очень быстро настроить мегу и не вникать в горы кода. А будет вариант с двойным и долгим нажатием? Удобно для включения доп освещения. Еще я у себя использую пинкод на кнопке звонка для открытия двери. Все остальное, и даже больше, похоже уже реализовано в модуле.
Еще как идея, контроль за Мегами. Например чтобы МД изменял статус системы на красный, если Меги недоступны. Еще контроль за их температурами. Не так уж и важно, но лучше бы он был.

Re: Модуль "MegaD"

Добавлено: Чт май 21, 2015 11:14 am
AHgpeu
я прошу помощи у сообщества, попробуйте воспроизвести проблему, описанную выше с методом с содержимым

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

return ''; 
это у меня глюк в системе?

Re: Модуль "MegaD"

Добавлено: Чт май 21, 2015 11:27 am
sergejey
Victor_S писал(а):Кажется нашел проблему с вызовом методов у себя...
Когда еще данного функционала в модуле не было, я связал порт Меги со свойством объекта. Затем эту связь в модуле удалил и пытался связать с вызовом метода. Однако у свойства объекта так и осталась связь с портом Меги, хотя в модуле никакой связи нету. Как теперь ее удалить у свойства объекта?!
Вообще-то это проблемой не должно быть, т.к. даже если в свойстве связь прописана, но в самом модуле связанного свойства нет, то эта связь ни на что не влияет.

Re: Модуль "MegaD"

Добавлено: Чт май 21, 2015 11:59 am
Victor_S
Пересоздал объекты, подправил методы, добавил return '' - вроде все работает нормально. Не сразу сообразил, что можно и свойство и метод одновременно привязать - очень удобно...:)
У меня там датчики напряжения на входах, поэтому не могу проверить многократное и быстрое нажатие, а в обычном режиме return'' отрабатывает как надо.

Re: Модуль "MegaD"

Добавлено: Чт май 21, 2015 12:10 pm
sergejey
Проблему смог воспроизвести, но решение пока в голову не лезет.

Вот как я тестирую (код метода):

Изображение

Команда, прописанная в меге: "8:2"

Так вот проблема в том, что зачастую выполняется команда по-умолчанию, даже если метод возвращает либо пустую строку либо другую команду.
Я это связываю с тем, что на меге стоит очень маленький тайм-аут на запрос к серверу и в некоторых случаях мега просто считает, что не дождалась ответа от сервера, какой бы он там ни был, и, соответственно, выполняет команду по-умолчанию.

Re: Модуль "MegaD"

Добавлено: Чт май 21, 2015 12:13 pm
sergejey
Bagir писал(а):Отличный модуль получился! Можно очень быстро настроить мегу и не вникать в горы кода. А будет вариант с двойным и долгим нажатием? Удобно для включения доп освещения. Еще я у себя использую пинкод на кнопке звонка для открытия двери. Все остальное, и даже больше, похоже уже реализовано в модуле.
Еще как идея, контроль за Мегами. Например чтобы МД изменял статус системы на красный, если Меги недоступны. Еще контроль за их температурами. Не так уж и важно, но лучше бы он был.
Двойные и долгие нажатия можно, в принципе, через те же методы реализовать (с таймерами). Контроль доступности через модуль Устройства онлайн, а контроль температуры через привязку данных от встроенного датчика к какому-нибудь свойству (показания датчика можно видеть в списке данных).