Страница 99 из 141
Re: Модуль "MegaD"
Добавлено: Вс июл 29, 2018 12:07 am
Chainik
odinvolk писал(а): Сб июл 28, 2018 11:57 pm
Так иногда проще делать но получается не универсально, Андрей постоянно всякие фишки прикручивает GSM I2C например но это выходит за рамки этого модуля, а на новый модуль похоже ещё не созрели
За Андреем не поспеешь, а серьезных "писателей" кода среди нас раз-два и обчелся, к сожалению. Я, к примеру, рад тому, что хотя бы базовый функционал модулем MegaD отрабатывается. Так что "такова селяви".
Re: Модуль "MegaD"
Добавлено: Вс июл 29, 2018 12:10 am
odinvolk
Harmer писал(а): Вс июл 29, 2018 12:00 am
Я не настолько силен в программировании, чтобы обойтись без модуля. Если подскажете, что куда прописывать, буду весьма благодарен.
С помощью ключа во-первых увеличивается количество выходов на одном контроллере, а во-вторых, разводку по квартире от контроллера можно будет выполнять витой парой
Какая конкретная задача. Вариантов много как и решений (в этом и беда и счастье опенсорс)
Re: Модуль "MegaD"
Добавлено: Вс июл 29, 2018 12:21 am
Chainik
Harmer писал(а): Вс июл 29, 2018 12:00 am
Я не настолько силен в программировании, чтобы обойтись без модуля. Если подскажете, что куда прописывать, буду весьма благодарен.
...
С моей (может и неправильной) точки зрения, модуль MegaD нужен, в первую очередь, чтобы отслеживать срабатывание входов типа кнопка (выключатели, герконы, датчики движения и т.п.). Для управления выходами я модуль MegaD вообще не использую.
Возьмем, к примеру, задачу по управлению освещением. Посмотреть можно здесь (
https://ab-log.ru/forum/viewtopic.php?f=1&t=1328) в конце длинного первого поста после подзаголовка "ДОПОЛНЕНИЕ". В вашем случае все тоже самое, только надо немного модифицировать код под специфику команд управления двухканальным ключом. Для этого, как я понимаю, достаточно в свойстве, где указывается порт, указать не просто цифру, а цифру + букву (
13B например).
Re: Модуль "MegaD"
Добавлено: Чт авг 02, 2018 12:14 pm
Harmer
Chainik писал(а): Вс июл 29, 2018 12:21 am
Возьмем, к примеру, задачу по управлению освещением. Посмотреть можно здесь (
https://ab-log.ru/forum/viewtopic.php?f=1&t=1328) в конце длинного первого поста после подзаголовка "ДОПОЛНЕНИЕ". В вашем случае все тоже самое, только надо немного модифицировать код под специфику команд управления двухканальным ключом. Для этого, как я понимаю, достаточно в свойстве, где указывается порт, указать не просто цифру, а цифру + букву (
13B например).
Сделал все по букварю. Нажимаю кнопки в сцене - работает. Нажимаю железные кнопки - реле переключается, а кнопки в сцене статус не меняют. Куда смотреть?
Re: Модуль "MegaD"
Добавлено: Чт авг 02, 2018 1:04 pm
Chainik
Смотреть надо на вкладку "Данные" в модуле MegaD. Там должна быть привязка к методу "switch".
Re: Модуль "MegaD"
Добавлено: Чт авг 02, 2018 1:19 pm
Harmer
Вопрос "Куда смотреть" снимается. Мега возвращает состояние порта с ключом в виде ON/ON независимо от того, указана ли в запросе буква. Теперь вопрос "что делать?"
Помогите изобрести кусочек кода, который вместо стандартного
Код: Выделить всё
$state = file_get_contents("http://".$this->getProperty('ipAddress')."/".$this->getProperty('Password')."/?pt=".$this->getProperty('Port')."&cmd=get");
if ($state == "ON") {
$this->setProperty('Status', 1);
} else {
$this->setProperty('Status', 0); }
анализировал бы переменную "Port" и при наличии буквы извлекал бы из переменной $state соответствующий кусок
Re: Модуль "MegaD"
Добавлено: Чт авг 02, 2018 2:31 pm
Chainik
Нет, тут надо разбираться с выводом при запросе состояния порта. Я так понимаю, что речь по-прежнему идет о двухканальном ключе.
Что выдается в ответ, если в адресной строке браузера набрать команду:
[ИП-адрес, пароль и номер порта, естественно, ваши]
1. в случае, когда оба порта выключены?
2. в случае, когда оба порта включены?
3. когда порт xА включен, а порт хB - выключен?
Re: Модуль "MegaD"
Добавлено: Чт авг 02, 2018 2:55 pm
Harmer
Chainik писал(а): Чт авг 02, 2018 2:31 pm
Нет, тут надо разбираться с выводом при запросе состояния порта. Я так понимаю, что речь по-прежнему идет о двухканальном ключе.
Что выдается в ответ, если в адресной строке браузера набрать команду:
[ИП-адрес, пароль и номер порта, естественно, ваши]
1. в случае, когда оба порта выключены?
2. в случае, когда оба порта включены?
3. когда порт xА включен, а порт хB - выключен?
Соответственно OFF/OFF, ON/ON, ON/OFF
Re: Модуль "MegaD"
Добавлено: Чт авг 02, 2018 3:07 pm
Chainik
Да, тогда, похоже, вы правы. Надо модифицировать код, чтобы учитывалось, присутствует ли в свойстве порта буква или нет.
Попробую что-нибудь придумать.
Re: Модуль "MegaD"
Добавлено: Чт авг 02, 2018 3:32 pm
Chainik
Я сейчас далеко от MDM, да и двухканального ключа у меня нет, чтобы проверить... Но можно попробовать так (содержимое метода
switch):
Код: Выделить всё
file_get_contents("http://".$this->getProperty('ipAddress')."/".$this->getProperty('Password')."/?cmd=".$this->getProperty('Port').":2");
$state = file_get_contents("http://".$this->getProperty('ipAddress')."/".$this->getProperty('Password')."/?pt=".$this->getProperty('Port')."&cmd=get");
$Port = $this->getProperty('Port');
$Letter = substr($Port, -1);
if ($Letter == "A") {
$state = substr($state,0,2);
}
if ($Letter == "B") {
$state = substr($state, -2);
}
if ($state == "ON") {
$this->setProperty('Status', 1);
} else {
$this->setProperty('Status', 0); }
Тут мы дополнительно запрашиваем значение свойства порта и если на конце присутствует "
A", берем первые два символа из ответа Меги, а если "
B" - последние 2 символа.