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

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

Модератор: immortal

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

Re: Модуль "MegaD"

Сообщение sergejey » Чт июн 25, 2015 3:52 pm

zverev.sv писал(а):Да спасибо, заработало, только ещё теперь из модуля не получается сменить ip адрес
Я ужасно невнимателен бываю, когда быстро что-то пытаюсь исправить ))
Теперь должно работать.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
zverev.sv
Сообщения: 46
Зарегистрирован: Вт окт 23, 2012 3:43 am
Откуда: Южно-Сахалинск
Благодарил (а): 9 раз
Поблагодарили: 0

Re: Модуль "MegaD"

Сообщение zverev.sv » Чт июн 25, 2015 4:02 pm

Да работает, спасибо!
zverev.sv
Сообщения: 46
Зарегистрирован: Вт окт 23, 2012 3:43 am
Откуда: Южно-Сахалинск
Благодарил (а): 9 раз
Поблагодарили: 0

Re: Модуль "MegaD"

Сообщение zverev.sv » Чт июн 25, 2015 4:09 pm

Небольшое но,
Модуль меняет адрес, если Мега и Сервер находятся в одной подсети, а если в разных, то уже нехочет.
Аватара пользователя
AHgpeu
Сообщения: 117
Зарегистрирован: Чт мар 12, 2015 11:46 am
Благодарил (а): 26 раз
Поблагодарили: 16 раз

Re: Модуль "MegaD"

Сообщение AHgpeu » Пт июн 26, 2015 2:17 pm

Уважаемый Сергей, огромная просьба включить в модуль очередную маленькую доработку:
в файле readvalues.inc.php
добавить строку

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

$params['TITLE']=$record['TITLE'];
на 100ю и 85ю строки

в файле megad.class.php
добавить строку

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

$params['TITLE']=$rec['TITLE'];
на 400ю и 375ю строки.

очень не хватает информации о том, какая из мег вызывает метод.
заранее спасибо.

UPD
и ещё одно пожелание: модифицировать function sendCommand() для возможности отправлять свои команды
правка файла megad.class.php:

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

$url='http://'.$device['IP'].'/'.$device['PASSWORD'].'/?cmd='.$command; // 497 строка
// заменить на
$url='http://'.$device['IP'].'/'.$device['PASSWORD'].'/?'.$command;

$this->sendCommand($prop['DEVICE_ID'], $prop['NUM'].':'.$value); // 522 строка
// на
$this->sendCommand($prop['DEVICE_ID'], 'cmd='.$prop['NUM'].':'.$value);

if ($this->sendCommand($device, $command)) { // 195 строка
//на
if ($this->sendCommand($device, 'cmd='.$command)) {
или есть способ намного красивее:

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

 function sendCommand($id, $command, $own=false) {
  $device=SQLSelectOne("SELECT * FROM megaddevices WHERE ID='".$id."'");  
  if (!$device['ID']) {
   $device=SQLSelectOne("SELECT * FROM megaddevices WHERE TITLE LIKE '".DBSafe($id)."'");  
  }
  if (!$device['ID']) {
   $device=SQLSelectOne("SELECT * FROM megaddevices WHERE IP='".DBSafe($id)."'");  
  }
  if ($device['ID']) {
   $url='http://'.$device['IP'].'/'.$device['PASSWORD'].'/?'.($own ? '' : 'cmd=').$command;
   getURL($url, 0);
   return 1;
  } else {
   return 0;
  }
 }
 
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль "MegaD"

Сообщение sergejey » Пт июн 26, 2015 4:17 pm

AHgpeu, добавил
За это сообщение автора sergejey поблагодарил:
AHgpeu (Пт июн 26, 2015 5:58 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
ILGAS
Сообщения: 366
Зарегистрирован: Пт июл 26, 2013 4:11 pm
Благодарил (а): 71 раз
Поблагодарили: 18 раз

Re: Модуль "MegaD"

Сообщение ILGAS » Вт июн 30, 2015 9:44 am

Нужна помощь.
Настроил мегу и даже на сцене установил значки. На сцене все отлично работает и даже был рад этому. Но позже понял что не работают выключатели (железные кнопки). Пробовал писать в метод sey ("свет") но даже это не дает результат. В чате пишет только после того как нажмешь кнопку обновить или нажмешь Read config в модуле. И еще сама по себе появилась мега с ip 192.168.1.1 которой нет. появляется снова после удаления.

Отправлено с моего SM-G7508Q через Tapatalk
zverev.sv
Сообщения: 46
Зарегистрирован: Вт окт 23, 2012 3:43 am
Откуда: Южно-Сахалинск
Благодарил (а): 9 раз
Поблагодарили: 0

Re: Модуль "MegaD"

Сообщение zverev.sv » Вт июн 30, 2015 10:54 am

forumhouse
Аватара пользователя
AHgpeu
Сообщения: 117
Зарегистрирован: Чт мар 12, 2015 11:46 am
Благодарил (а): 26 раз
Поблагодарили: 16 раз

Re: Модуль "MegaD"

Сообщение AHgpeu » Вт июн 30, 2015 1:19 pm

Уважаемый Сергей, огромная просьба включить в модуль очередную маленькую доработку
(в связи с изменениями прошивки меги)
в файле readvalues.inc.php
изменить строку 58:

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

      } elseif ($type==3 && preg_match('/temp:([\d\.]+)\/hum:([\d\.]+)/', $states[$i], $m)) {
ILGAS писал(а):Но позже понял что не работают выключатели (железные кнопки). Пробовал писать в метод sey ("свет") но даже это не дает результат. В чате пишет только после того как нажмешь кнопку обновить или нажмешь Read config в модуле.
почитайте http://smartliving.ru/Main/module_megad
пара вопросов: что значит "не работают железные выключатели"? мега не реагирует на кнопки? в автономном режиме реакция есть? реакция в самой меге прописана?
подробности плз. можно сюда же выложить листинг настроек меги.
и да, функция называется say()
ILGAS
Сообщения: 366
Зарегистрирован: Пт июл 26, 2013 4:11 pm
Благодарил (а): 71 раз
Поблагодарили: 18 раз

Re: Модуль "MegaD"

Сообщение ILGAS » Вт июн 30, 2015 2:35 pm

почитайте http://smartliving.ru/Main/module_megad
пара вопросов: что значит "не работают железные выключатели"? мега не реагирует на кнопки? в автономном режиме реакция есть? реакция в самой меге прописана?
подробности плз. можно сюда же выложить листинг настроек меги.
и да, функция называется say()
Я установил мегадевайсы уже как 2-3 месеца назад они работали автономно.
1. железные кнопки - это физические выключатели в виде кнопок.
2. не включается/выключается свет при нажатии на кнопку при подключенном к серверу, в автономном режиме реакция есть.
3. в модуле https://yadi.sk/i/MqiP-U_qhaB7v в методе указано

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

if ($params['status']) {
 $this->setProperty('status',$params['status']);
}
$this->setProperty('updatedTimestamp',time());

$this->setProperty("alive",1);
$ot=$this->object_title;
$alive_timeout=(int)$this->getProperty("aliveTimeOut");
if (!$alive_timeout) {
 $alive_timeout=12*60*60;
}
clearTimeOut($ot."_alive");
setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout);
в мегедевайсе это

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

cf=1&eip=192.168.1.108&pwd=sec&gw=192.168.1.1&sip=192.168.1.40:80&sct=megad.php&tc=&at=&pr=1
cf=2&mdid=gB9kI&sl=1
pn=0&ecmd=7:2&eth=&naf=&m=0
pn=1&ecmd=8:2&eth=&naf=&m=0
pn=2&ecmd=9:2&eth=&naf=&m=0
pn=3&ecmd=10:2&eth=&naf=&m=0
pn=4&ecmd=11:2&eth=&naf=&m=0
pn=5&ecmd=12:2&eth=&naf=&m=0
pn=6&ecmd=13:2&eth=&naf=&m=0
pn=7&d=0
pn=8&d=0
pn=9&d=0
pn=10&d=0
pn=11&d=0
pn=12&d=0
pn=13&d=0
pn=14&misc=&ecmd=&eth=&naf=&m=0
pn=15&misc=&ecmd=&eth=&naf=&m=0

ps спасибо что откликнулся.
Аватара пользователя
AHgpeu
Сообщения: 117
Зарегистрирован: Чт мар 12, 2015 11:46 am
Благодарил (а): 26 раз
Поблагодарили: 16 раз

Re: Модуль "MegaD"

Сообщение AHgpeu » Вт июн 30, 2015 4:04 pm

уберите из кода

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

if ($params['status']) {
 $this->setProperty('status',$params['status']);
} 
в статье написано же, что модуль САМ уже переключает всё, что нужно.
и дублирование функций модуля приводит к неработоспособности.
а лучше вообще отвяжите все свойства и методы от железных кнопок. как на картинке в статье
Ответить