[Модуль] Broadlink (dev_broadlink)

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

Модератор: immortal

scorp49
Сообщения: 73
Зарегистрирован: Ср дек 21, 2016 5:45 pm
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Модуль Broadlink

Сообщение scorp49 » Вс апр 09, 2017 6:15 pm

Ещё заметил одну особенность MP1. Если хоть одна розетка из четырёх включена, то в статусе объекта отображаются 0/1, но как только все розетки выключены в статусах нет ни каких значений.
Вложения
Broadlink_off.JPG
Broadlink_off.JPG (97.61 КБ) 7858 просмотров
Broadlink_on.JPG
Broadlink_on.JPG (90.87 КБ) 7858 просмотров
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Вс апр 09, 2017 6:44 pm

scorp49 писал(а):Ещё заметил одну особенность MP1. Если хоть одна розетка из четырёх включена, то в статусе объекта отображаются 0/1, но как только все розетки выключены в статусах нет ни каких значений.
Не сказал бы что это правильно))
попробуй в файле /modules/dev_broadlink/broadlink.class.php
в 830 строке заменить
if($state = $this->Check_Power_Raw()){
на
if(!empty($state = $this->Check_Power_Raw())){
Если нули будут возвращаться - внесу правку в модуль.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
scorp49
Сообщения: 73
Зарегистрирован: Ср дек 21, 2016 5:45 pm
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Модуль Broadlink

Сообщение scorp49 » Вс апр 09, 2017 8:12 pm

Нет не помогло
yurat2008
Сообщения: 147
Зарегистрирован: Сб мар 04, 2017 7:04 pm
Благодарил (а): 15 раз
Поблагодарили: 13 раз

Re: Модуль Broadlink

Сообщение yurat2008 » Вс апр 09, 2017 10:50 pm

Модуль работает как часы
Слепил шаблон поведения
(включи|выключи)
СпойлерПоказать

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

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 КБ) 7830 просмотров
photo_2017-04-09_22-56-51.jpg
photo_2017-04-09_22-56-51.jpg (34.74 КБ) 7830 просмотров
chimik
Сообщения: 77
Зарегистрирован: Пн янв 09, 2017 1:39 pm
Благодарил (а): 87 раз
Поблагодарили: 11 раз

Re: Модуль Broadlink

Сообщение chimik » Пн апр 10, 2017 12:18 am

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

У кого ещё МР1 - так же определяются?
У меня тоже самое.
chimik
Сообщения: 77
Зарегистрирован: Пн янв 09, 2017 1:39 pm
Благодарил (а): 87 раз
Поблагодарили: 11 раз

Re: Модуль Broadlink

Сообщение chimik » Пн апр 10, 2017 12:26 am

И ещё. В тесте включение и выключение - одна и также команда - включение. ( Испугалась сначала, что у меня что-то то не так).
francuzzz
Сообщения: 11
Зарегистрирован: Пн апр 10, 2017 9:00 am
Благодарил (а): 3 раза
Поблагодарили: 0

Re: Модуль Broadlink

Сообщение francuzzz » Пн апр 10, 2017 9:03 am

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

У кого ещё МР1 - так же определяются?
У меня та же песня с двумя розетками SP mini, адрес перевернут.
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Модуль Broadlink

Сообщение olehs » Пн апр 10, 2017 10:58 am

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

ps. гляньте pull request с ускорением процесса обучения
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Пн апр 10, 2017 11:16 am

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

ps. гляньте pull request с ускорением процесса обучения
pull request Принял уже...кнопку перенести то можно....вот с именем уже сложнее гораздо...я слабо представляю, как его обратно в php перенаправить...попробую что нить придумать.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Модуль Broadlink

Сообщение olehs » Пн апр 10, 2017 12:47 pm

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