[Модуль] Broadlink (dev_broadlink)
Модератор: immortal
-
- Сообщения: 73
- Зарегистрирован: Ср дек 21, 2016 5:45 pm
- Благодарил (а): 6 раз
- Поблагодарили: 1 раз
Re: Модуль Broadlink
Ещё заметил одну особенность MP1. Если хоть одна розетка из четырёх включена, то в статусе объекта отображаются 0/1, но как только все розетки выключены в статусах нет ни каких значений.
- Вложения
-
- Broadlink_off.JPG (97.61 КБ) 8239 просмотров
-
- Broadlink_on.JPG (90.87 КБ) 8239 просмотров
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Модуль Broadlink
Не сказал бы что это правильно))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 :arrow:](./images/smilies/icon_arrow.gif)
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 147
- Зарегистрирован: Сб мар 04, 2017 7:04 pm
- Благодарил (а): 15 раз
- Поблагодарили: 13 раз
Re: Модуль Broadlink
Модуль работает как часы
Слепил шаблон поведения
(включи|выключи)
(кондиционер|кондишен)
(в спальне|спальне|спальня)
И собственно код
Работает как по отдельным запросам Включи -- кондиционер -- в спальне
Так и одним предложением Включи кондиционер в спальне.
Ну и статус кондиционера
Общий контекст
(статус кондиционера)
в итоге выходит так
Слепил шаблон поведения
(включи|выключи)
СпойлерПоказать
Код: Выделить всё
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 );
}
СпойлерПоказать
-
- Сообщения: 77
- Зарегистрирован: Пн янв 09, 2017 1:39 pm
- Благодарил (а): 87 раз
- Поблагодарили: 11 раз
Re: Модуль Broadlink
У меня тоже самое.nick7zmail писал(а):Хм...очень интересная особенность)) На самом деле хз как исправлять...прикол в том, что функция получения IP для всех девайсов одна и та же...я конечно могу "насильно" перевернуть IP для MP1 - но может это "разовый" прецендент, и на других МР1 он не повторится?scorp49 писал(а):Нашёл причину, заработал MP1. Сразу не заметил при поиске IP адрес отображается задом наперёд, естественно по этому и не работал. Если можете поправьте, а так всё отлично работает и даже обратная связь. Спасибо вам.
У кого ещё МР1 - так же определяются?
-
- Сообщения: 77
- Зарегистрирован: Пн янв 09, 2017 1:39 pm
- Благодарил (а): 87 раз
- Поблагодарили: 11 раз
Re: Модуль Broadlink
И ещё. В тесте включение и выключение - одна и также команда - включение. ( Испугалась сначала, что у меня что-то то не так).
-
- Сообщения: 11
- Зарегистрирован: Пн апр 10, 2017 9:00 am
- Благодарил (а): 3 раза
- Поблагодарили: 0
Re: Модуль Broadlink
У меня та же песня с двумя розетками SP mini, адрес перевернут.nick7zmail писал(а):Хм...очень интересная особенность)) На самом деле хз как исправлять...прикол в том, что функция получения IP для всех девайсов одна и та же...я конечно могу "насильно" перевернуть IP для MP1 - но может это "разовый" прецендент, и на других МР1 он не повторится?scorp49 писал(а):Нашёл причину, заработал MP1. Сразу не заметил при поиске IP адрес отображается задом наперёд, естественно по этому и не работал. Если можете поправьте, а так всё отлично работает и даже обратная связь. Спасибо вам.
У кого ещё МР1 - так же определяются?
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Модуль Broadlink
nick7zmail, а можно кнопку Обучить коду перенести на вкладку Данные к полю Добавить. И чтобы новая команда сразу добавлялась к с указанным в этом поле именем?
ps. гляньте pull request с ускорением процесса обучения
ps. гляньте pull request с ускорением процесса обучения
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Модуль Broadlink
pull request Принял уже...кнопку перенести то можно....вот с именем уже сложнее гораздо...я слабо представляю, как его обратно в php перенаправить...попробую что нить придумать.olehs писал(а):nick7zmail, а можно кнопку Обучить коду перенести на вкладку Данные к полю Добавить. И чтобы новая команда сразу добавлялась к с указанным в этом поле именем?
ps. гляньте pull request с ускорением процесса обучения
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
![Arrow :arrow:](./images/smilies/icon_arrow.gif)
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Модуль Broadlink
как-то сам попробовал сделать... гляньте, пожалуйста.nick7zmail писал(а):pull request Принял уже...кнопку перенести то можно....вот с именем уже сложнее гораздо...я слабо представляю, как его обратно в php перенаправить...попробую что нить придумать.