Страница 49 из 376

Re: Модуль Broadlink

Добавлено: Вс апр 09, 2017 6:15 pm
scorp49
Ещё заметил одну особенность MP1. Если хоть одна розетка из четырёх включена, то в статусе объекта отображаются 0/1, но как только все розетки выключены в статусах нет ни каких значений.

Re: Модуль Broadlink

Добавлено: Вс апр 09, 2017 6:44 pm
nick7zmail
scorp49 писал(а):Ещё заметил одну особенность MP1. Если хоть одна розетка из четырёх включена, то в статусе объекта отображаются 0/1, но как только все розетки выключены в статусах нет ни каких значений.
Не сказал бы что это правильно))
попробуй в файле /modules/dev_broadlink/broadlink.class.php
в 830 строке заменить
if($state = $this->Check_Power_Raw()){
на
if(!empty($state = $this->Check_Power_Raw())){
Если нули будут возвращаться - внесу правку в модуль.

Re: Модуль Broadlink

Добавлено: Вс апр 09, 2017 8:12 pm
scorp49
Нет не помогло

Re: Модуль Broadlink

Добавлено: Вс апр 09, 2017 10:50 pm
yurat2008
Модуль работает как часы
Слепил шаблон поведения
(включи|выключи)
СпойлерПоказать

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

say ("Что именно ".$matches[1]."ть?",5); 
(кондиционер|кондишен)
СпойлерПоказать

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

say("Где?",5); 
(в спальне|спальне|спальня)
И собственно код
СпойлерПоказать

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

// для шаблона поведения включи-выключи
// включение охлаждение логика кондишена
$temper = round(gg('Broadlink_spalnia_obj.temperature')); // берем температуру с улицы
$temperset = ($temper-"4");// выставляем температуру кондиционера (идеально на 4 градуса меньше чем улица)

if ($temperset < 18){ // у меня команды для кондиционера настроены от 18 до 28 градусов
$temperset = (18);
}
if ($temperset > 28){ 
$temperset = (28);
}

if (($temper <= 21) && (preg_match('/включи/isu',$original))) { // проверяем или надо вообще охлаждать
say("В комнате и так не жарко. Температура в районе двадцати градусов цельсия. Команда отменена",3);
}

if (($temper > 21) && (preg_match('/включи/isu',$original))) {
say("Кондиционер в спальне работает режиме охлаждения",3);
setGlobal('ToshibaSpalnia.status',"1");
setGlobal('ToshibaSpalnia.timeon',timeNow());
setGlobal('ToshibaSpalnia.dataon',date("m.d.y"));
setGlobal('ToshibaSpalnia.mode',"режим охлаждения");
setGlobal('ToshibaSpalnia.actual_temperature',$temper);
say("Кондиционер установлен на оптимальную температуру ".$temper." градусов цельсия",3);
include_once('modules/dev_broadlink/command.php');
  brLinkCommand('holod_'.$temper);
}

if (preg_match('/выключи/isu',$original)) {
// отключение кондишена
include_once('modules/dev_broadlink/command.php');
brLinkCommand('condOff_17_holod');
setGlobal('ToshibaSpalnia.status',"0");
setGlobal('ToshibaSpalnia.timeoff',timeNow());
setGlobal('ToshibaSpalnia.dataoff',date("m.d.y"));
setGlobal('ToshibaSpalnia.mode',"дежурный режим");
say("Кондиционер в спальне отключен",3);
}
 
Работает как по отдельным запросам Включи -- кондиционер -- в спальне
Так и одним предложением Включи кондиционер в спальне.


Ну и статус кондиционера
Общий контекст
(статус кондиционера)
СпойлерПоказать

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

if (gg('ToshibaSpalnia.status')=="1") {
say('На данный момент кондиционер в спальне включен',5);

 $cctim2 = getGlobal('ToshibaSpalnia.timeoff');
 $cctim1 = getGlobal('ToshibaSpalnia.timeon');
 $dattim2 = getGlobal('ToshibaSpalnia.dataoff');
 $dattim1 = getGlobal('ToshibaSpalnia.dataon');
 $mode1 = getGlobal('ToshibaSpalnia.mode');
  $tempin = getGlobal('ToshibaSpalnia.actual_temperature');
say('Режим работы: '.$mode1." Поддерживаемая температура: ".$tempin,5);

 $ссtim1 = getGlobal('ToshibaSpalnia.timeon');
say("Время включения кондиционера:".$cctim1." ".$dattim1,5 );
say("Предыдущий период работы до: ".$cctim2." ".$dattim2,5 );
}else{    
say('На данный момент кондиционер в спальне отключен',5);
 $cctim2 = getGlobal('ToshibaSpalnia.timeoff');
 $dattim2 = getGlobal('ToshibaSpalnia.dataoff');
 $dattim1 = getGlobal('ToshibaSpalnia.dataon');
 $mode1 = getGlobal('ToshibaSpalnia.mode');
  $tempin = getGlobal('ToshibaSpalnia.actual_temperature');
$cctim1 = getGlobal('ToshibaSpalnia.timeon');
say("Кондиционер отключен в: ".$cctim2." ".$dattim2,5 );
 
say("До этого он работал с:".$cctim1." ".$dattim1,5  );
} 
в итоге выходит так
СпойлерПоказать
photo_2017-04-09_22-51-14.jpg
photo_2017-04-09_22-51-14.jpg (34.98 КБ) 7864 просмотра
photo_2017-04-09_22-56-51.jpg
photo_2017-04-09_22-56-51.jpg (34.74 КБ) 7864 просмотра

Re: Модуль Broadlink

Добавлено: Пн апр 10, 2017 12:18 am
chimik
nick7zmail писал(а):
scorp49 писал(а):Нашёл причину, заработал MP1. Сразу не заметил при поиске IP адрес отображается задом наперёд, естественно по этому и не работал. Если можете поправьте, а так всё отлично работает и даже обратная связь. Спасибо вам.
Хм...очень интересная особенность)) На самом деле хз как исправлять...прикол в том, что функция получения IP для всех девайсов одна и та же...я конечно могу "насильно" перевернуть IP для MP1 - но может это "разовый" прецендент, и на других МР1 он не повторится?

У кого ещё МР1 - так же определяются?
У меня тоже самое.

Re: Модуль Broadlink

Добавлено: Пн апр 10, 2017 12:26 am
chimik
И ещё. В тесте включение и выключение - одна и также команда - включение. ( Испугалась сначала, что у меня что-то то не так).

Re: Модуль Broadlink

Добавлено: Пн апр 10, 2017 9:03 am
francuzzz
nick7zmail писал(а):
scorp49 писал(а):Нашёл причину, заработал MP1. Сразу не заметил при поиске IP адрес отображается задом наперёд, естественно по этому и не работал. Если можете поправьте, а так всё отлично работает и даже обратная связь. Спасибо вам.
Хм...очень интересная особенность)) На самом деле хз как исправлять...прикол в том, что функция получения IP для всех девайсов одна и та же...я конечно могу "насильно" перевернуть IP для MP1 - но может это "разовый" прецендент, и на других МР1 он не повторится?

У кого ещё МР1 - так же определяются?
У меня та же песня с двумя розетками SP mini, адрес перевернут.

Re: Модуль Broadlink

Добавлено: Пн апр 10, 2017 10:58 am
olehs
nick7zmail, а можно кнопку Обучить коду перенести на вкладку Данные к полю Добавить. И чтобы новая команда сразу добавлялась к с указанным в этом поле именем?

ps. гляньте pull request с ускорением процесса обучения

Re: Модуль Broadlink

Добавлено: Пн апр 10, 2017 11:16 am
nick7zmail
olehs писал(а):nick7zmail, а можно кнопку Обучить коду перенести на вкладку Данные к полю Добавить. И чтобы новая команда сразу добавлялась к с указанным в этом поле именем?

ps. гляньте pull request с ускорением процесса обучения
pull request Принял уже...кнопку перенести то можно....вот с именем уже сложнее гораздо...я слабо представляю, как его обратно в php перенаправить...попробую что нить придумать.

Re: Модуль Broadlink

Добавлено: Пн апр 10, 2017 12:47 pm
olehs
nick7zmail писал(а):pull request Принял уже...кнопку перенести то можно....вот с именем уже сложнее гораздо...я слабо представляю, как его обратно в php перенаправить...попробую что нить придумать.
как-то сам попробовал сделать... гляньте, пожалуйста.