[Модуль] MegaD (megad)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Pooh
Сообщения: 74
Зарегистрирован: Вт дек 31, 2013 2:03 pm
Откуда: Самара
Благодарил (а): 25 раз
Поблагодарили: 5 раз

Re: Модуль "MegaD"

Сообщение Pooh » Вс янв 22, 2017 7:22 am

Тоже самое и у меня с портами ADC :-(
Pooh
Сообщения: 74
Зарегистрирован: Вт дек 31, 2013 2:03 pm
Откуда: Самара
Благодарил (а): 25 раз
Поблагодарили: 5 раз

Re: Модуль "MegaD"

Сообщение Pooh » Пн янв 23, 2017 7:12 am

Раньше было так:
СпойлерПоказать
Screenshot_1.png
Screenshot_1.png (56.16 КБ) 7652 просмотра
теперь стало так:
СпойлерПоказать
Screenshot_2.png
Screenshot_2.png (72.01 КБ) 7652 просмотра
Кроме преображения ADC6 и ADC7 пропала температура и появились "Текущее значение 2", "Связанный объект 2" и "Связанное св-во 2"
Что это и что с этим делать?
Руслан
Сообщения: 193
Зарегистрирован: Чт дек 17, 2015 10:08 am
Откуда: Уфа
Благодарил (а): 36 раз
Поблагодарили: 14 раз

Re: Модуль "MegaD"

Сообщение Руслан » Пн янв 23, 2017 9:48 am

-
Последний раз редактировалось Руслан Пн янв 23, 2017 10:43 am, всего редактировалось 1 раз.
Аватара пользователя
Kod.Begemot
Сообщения: 358
Зарегистрирован: Чт июн 20, 2013 5:53 pm
Благодарил (а): 32 раза
Поблагодарили: 42 раза

Re: Модуль "MegaD"

Сообщение Kod.Begemot » Пн янв 23, 2017 10:24 am

Вопрос к пользуюущимся модулем. Вот если сейчас мегу перезагрузить, состояние выходов восстановится на то, что было до перезапуска?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль "MegaD"

Сообщение sergejey » Пн янв 23, 2017 10:30 am

У меня подключен блок I7O7 и определяется вот так:
Изображение

Можете прислать содержимое current config из закладки Advanced? Я попробую посмотреть из-за чего ADC порты не определяются

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Pooh
Сообщения: 74
Зарегистрирован: Вт дек 31, 2013 2:03 pm
Откуда: Самара
Благодарил (а): 25 раз
Поблагодарили: 5 раз

Re: Модуль "MegaD"

Сообщение Pooh » Пн янв 23, 2017 1:35 pm

Содержимое current config из закладки Advanced:
СпойлерПоказать
cf=1&eip=192.168.1.101&pwd=sec&gw=255.255.255.255&sip=192.168.1.100:80&sct=megad.php
cf=2&mdid=101&sl=1
pn=0&ecmd=7:2&eth=&naf=&misc=&d=&pty=0&m=0
pn=1&ecmd=8:2&eth=&naf=&misc=&d=&pty=0&m=0
pn=2&ecmd=9:2&eth=&naf=&misc=&d=&pty=0&m=0
pn=3&ecmd=10:2&eth=&naf=&misc=&d=&pty=0&m=0
pn=4&ecmd=11:2&eth=&naf=&misc=&d=&pty=0&m=0
pn=5&ecmd=12:2&eth=&naf=&misc=&d=&pty=0&m=0
pn=6&ecmd=13:2&eth=&naf=&misc=&d=&pty=0&m=0
pn=7&pty=1&d=0
pn=8&pty=1&d=0
pn=9&pty=1&d=0
pn=10&pty=1&d=0&m=0
pn=11&pty=1&d=0
pn=12&pty=1&d=0&m=0
pn=13&pty=1&d=0&m=0
pn=14&misc=0&hst=0&ecmd=&eth=&naf=&m=0
pn=15&misc=0&hst=0&ecmd=&eth=&naf=&m=0
Версии модуля, МД и прошивки - крайние (не бетки)
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль "MegaD"

Сообщение sergejey » Пн янв 23, 2017 2:46 pm

Спасибо. А в настройках интерфейса MegaD что-нибудь установлено в поле Preset ?

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Zavoolon
Сообщения: 12
Зарегистрирован: Вс янв 15, 2017 12:51 am
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Модуль "MegaD"

Сообщение Zavoolon » Пн янв 23, 2017 9:05 pm

Судари мои!

Мой первый опыт использования Меги с Мажором увенчался-таки успехом! Так и не понял, как оригинальная конфигурация, на которую я обновился, работает у других... Просто знаний не хватает пока, вот и не понял. Но к делу. Если кто-то заинтересуется, вот что мне пришлось сделать, чтобы наша связка заработала.

1) причина неработоспособности:
таблица megadproperties в базе данных не могла быть заполнена, следовательно не было информации о входах/выходах -> (почему?) -> некорректное обращение к скрипту megad-cfg.php из скрипта readconfig.inc.php
2) что пришлось править:
2.1) в файле readconfig.inc.php заменил строчку

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

$url.='?ip='.urlencode($record['IP']).'&read-conf='.urlencode(ROOT.'cached/megad.cfg').'&p='.urlencode($record['PASSWORD']); 
на

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

$url.='ip='.urlencode($record['IP']).'&read-conf='.ROOT.'cached/megad.cfg'.'&p='.urlencode($record['PASSWORD']); 
что улучшилось: путь к сохраняемому конфигу megad.cfg стал выглядеть по-человечески; я имею в виду, что видишь, то и передается.

2.2) в скрипт megad-cfg.php добавил функцию, которая различала варианты вызова скрипта с параметрами из командной строки и из браузера. Как это работало первоначально - не понял, функция getopt не парсила то, что приходило от readconfig.inc.php

функция выглядит так (не выдумал, просто взял с php.net):

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

/**
* Get options from the command line or web request
*
* @param string $options
* @param array $longopts
* @return array
*/
function getoptreq ($options, $longopts)
{
   if (PHP_SAPI === 'cli' || empty($_SERVER['REMOTE_ADDR']))  // command line
   {
      return getopt($options, $longopts);
   }
   else if (isset($_REQUEST))  // web script
   {
      $found = array();

      $shortopts = preg_split('@([a-z0-9][:]{0,2})@i', $options, 0, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
      $opts = array_merge($shortopts, $longopts);

      foreach ($opts as $opt)
      {
         if (substr($opt, -2) === '::')  // optional
         {
            $key = substr($opt, 0, -2);

            if (isset($_REQUEST[$key]) && !empty($_REQUEST[$key]))
               $found[$key] = $_REQUEST[$key];
            else if (isset($_REQUEST[$key]))
               $found[$key] = false;
         }
         else if (substr($opt, -1) === ':')  // required value
         {
            $key = substr($opt, 0, -1);

            if (isset($_REQUEST[$key]) && !empty($_REQUEST[$key]))
               $found[$key] = $_REQUEST[$key];
         }
         else if (ctype_alnum($opt))  // no value
         {
            if (isset($_REQUEST[$opt]))
               $found[$opt] = false;
         }
      }

      return $found;
   }

   return false;
} 
и соответственно обращался к ней далее

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

$options = getoptreq ("sp:fewb", array("scan", "ip:", "new-ip:", "fw:", "local-ip:", "ee", "read-conf:", "write-conf:")); 
вместо оригинальной

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

$options = getopt("sp:fewb", array("scan", "ip:", "new-ip:", "fw:", "local-ip:", "ee", "read-conf:", "write-conf:")); 
Все. Работает. Как работало в оригинале - может, какие хитрые настройки php? Ну никак скрипт для CLI (megad-cfg.php) не хотел понимать, что ему слал Мажор с помощью CURL...
Pooh
Сообщения: 74
Зарегистрирован: Вт дек 31, 2013 2:03 pm
Откуда: Самара
Благодарил (а): 25 раз
Поблагодарили: 5 раз

Re: Модуль "MegaD"

Сообщение Pooh » Пн янв 23, 2017 11:49 pm

sergejey писал(а):..в настройках интерфейса MegaD что-нибудь установлено в поле Preset ?
Не нашел такого поля
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Модуль "MegaD"

Сообщение skysilver » Вт янв 24, 2017 12:33 pm

sergejey писал(а):Спасибо. А в настройках интерфейса MegaD что-нибудь установлено в поле Preset ?
Пресеты убрали в какой-то из версий прошивки, и возвращать их, насколько знаю, не планируется.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ответить