Алиса говорит ночью

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
slgeo
Сообщения: 551
Зарегистрирован: Чт фев 05, 2015 2:35 pm
Откуда: РнД
Благодарил (а): 139 раз
Поблагодарили: 74 раза

Алиса говорит ночью

Сообщение slgeo » Сб июл 25, 2015 8:51 pm

Меня жена скоро выгонит из дома )
Дело в том, что Алиса начинает проговаривать время при переключении режимов времени суток, а конкретно в объекте DarknessMode в методе modeChanged на данной строке:

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

say("Режим ".$this->getProperty('title')." выключен."); 
Произносит именно текущее время, учитывая что рассвет нынче в 4-5 утра, это совсем не радует.
В истории выглядит так:
04:57 Алиса: Сейчас 4 часа 57 минут
04:57 Алиса: Режим Темное время суток выключен.
Откуда она его берет я никак не могу понять?
Если закомментировать вышеприведенную строку или убрать из нее $this->getProperty('title'), то время не произносится.
Куда копать?
Последний раз редактировалось slgeo Вс июл 26, 2015 11:36 am, всего редактировалось 1 раз.
Raspberry Pi2 Model B + NRF24L01 (MySensors) + 1-Wire + Esp8266 (WiFi-IoT)
CONNECT
Аватара пользователя
Amarok
Сообщения: 1427
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Алиса говорит ночью

Сообщение Amarok » Вс июл 26, 2015 8:25 am

Сделать следующее:
1. Поправить строку оповещения

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

say("Режим ".$this->getProperty('title')." выключен.", 0); 
2. ThisComputer.minMsgLevel установить в 1
Моя Алиска живёт на Proxmox в Debian 12
Аватара пользователя
slgeo
Сообщения: 551
Зарегистрирован: Чт фев 05, 2015 2:35 pm
Откуда: РнД
Благодарил (а): 139 раз
Поблагодарили: 74 раза

Re: Алиса говорит ночью

Сообщение slgeo » Вс июл 26, 2015 7:44 pm

К сожалению это не помогает. Эмулирую рассвет:
выставил вручную у объекта ThisComputer свойства isDark = 1, minMsgLevel = 1, SunRise = 19:33
OperationalModes.modeChanged:

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

$this->setProperty("updated",time());
$this->setProperty("updatedTime",date('H:i'));
$ptitle = $this->getProperty('title');
if ($this->getProperty('active')) {
 say("Режим '.$ptitle.' активирован.",0);
} else {
 say("Режим ".$ptitle." выключен.",0);
} 
Стандартный кусок кода из OnNewMinute:

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

 if (timeBetween(getGlobal('ThisComputer.SunRise'),getGlobal('ThisComputer.SunSet')) && getGlobal('isDark')=="1") {
  setGlobal("isDark",0);
  callMethod('DarknessMode.deactivate');  
 } elseif (!timeBetween(getGlobal('ThisComputer.SunRise'),getGlobal('ThisComputer.SunSet')) && getGlobal('isDark')!="1") {
  setGlobal("isDark",1);
  callMethod('DarknessMode.activate');    
 }
 
  if (timeIs(getGlobal('ThisComputer.SunRise'))) {
  say('Всходит солнце');
 }
 if (timeIs(getGlobal('ThisComputer.SunSet'))) {
  say('Солнце заходит');
 }
Итого в истории получаю:

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

19:33 Алиса: Всходит солнце
19:33 Алиса: Сейчас 19 часов 33 минуты
19:33 Алиса: Режим Темное время суток выключен. 
И Алиса произносит время. Откуда она берет команду say(timeNow) уму непостижимо.
Искал по всей базе в поиске по слову "сейчас", тоже нигде не встречается.
Raspberry Pi2 Model B + NRF24L01 (MySensors) + 1-Wire + Esp8266 (WiFi-IoT)
CONNECT
liv
Сообщения: 10
Зарегистрирован: Вт фев 24, 2015 10:16 am
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: Алиса говорит ночью

Сообщение liv » Вт июл 28, 2015 5:14 pm

проверьте шаблоны, у вас скорее всего есть шаблон с ключевым словом "время".

Алиса пишет "Режим Темное время суток выключен." и тут же срабатывает шаблон "время"

У меня самого такое было, тоже спрашивал на тут форуме.
За это сообщение автора liv поблагодарил:
slgeo (Вс авг 09, 2015 11:24 pm)
Рейтинг: 1.16%
Аватара пользователя
slgeo
Сообщения: 551
Зарегистрирован: Чт фев 05, 2015 2:35 pm
Откуда: РнД
Благодарил (а): 139 раз
Поблагодарили: 74 раза

Re: Алиса говорит ночью

Сообщение slgeo » Вс авг 09, 2015 11:33 pm

Благодарю, действительно был шаблон "скажи время" и вероятнее всего он и срабатывал, поскольку в команде say переопределялся minMsgLevel.
Вопрос закрыт! Хотя такое срабатывание кажется немного некорректным.
Raspberry Pi2 Model B + NRF24L01 (MySensors) + 1-Wire + Esp8266 (WiFi-IoT)
CONNECT
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Алиса говорит ночью

Сообщение sergejey » Пн авг 10, 2015 3:28 pm

В одном из обновлений была добавлена опция для шаблона поведения игнорировать системные сообщения, как раз для подобных случаев.
За это сообщение автора sergejey поблагодарил:
slgeo (Пн авг 10, 2015 4:27 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
liv
Сообщения: 10
Зарегистрирован: Вт фев 24, 2015 10:16 am
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: Алиса говорит ночью

Сообщение liv » Пн авг 10, 2015 4:26 pm

Сергей, я вот не обновляюсь, все жду... жду... когда будет реализована возможность работы сайта по протоколу https.

Я уже ранее писал, что доработки кода минимальные.
Может быть есть хотя бы в планах реализовать данный функционал?

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

Re: Алиса говорит ночью

Сообщение nick7zmail » Пт сен 25, 2015 9:27 pm

Внесу свои пару копеек в тему)). Помимо редких разговоров ночью - какого то фига винда издавала какие-то звуки ровно в 6 утра. Типа оповещений, но хз на что. Одним словом немного надоело, решил по-химичить.
Перво-наперво решаем как хотим все это дело контролировать. Я, например, создал вот такие компоненты в меню.
11.jpg
Пункты меню
11.jpg (48.51 КБ) 11700 просмотров
Далее выбираем объект, который будет использован для этого функционала. Я взял DarknessMode из OperationalModes, т.к. больше он у меня нигде не используется. Правильнее все таки создать/использовать название NightMode наверное). Такой тоже есть в последних версиях. У объекта создаем свойства DarknessMode.timeon, DarknessMode.timeoff, и DarknessMode.volumebefore (чуть позже поясню зачем).
22.jpg
Свойства
22.jpg (71.72 КБ) 11700 просмотров
Ну и наконец настраиваем методы activate

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

sg('DarknessMode.volumebefore', gg('ThisComputer.volumeLevel'));//Записываем текущую громкость в DarknessMode.volumebefore
CallMethod('ThisComputer.VolumeLevelChanged', array('VALUE'=>0)); //Выставляем системную громкость на 0   
и deactivate.

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

CallMethod('ThisComputer.VolumeLevelChanged', array('VALUE'=>gg('DarknessMode.volumebefore'))); //Возвращаем громкость на уровень до включения режима  
И наконец исполнительный код в OnNewMinute

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

//Ночной режим
if (timeIs(getGlobal('DarknessMode.timeon'))) {
  callMethod('DarknessMode.activate');
}
if (timeIs(getGlobal('DarknessMode.timeoff'))) {
  callMethod('DarknessMode.deactivate');
} 
Лучше все делать в классе OperationalModes, т.к. там подготовлены методы (activate/deactivate/modechanged) и свойства (active, title, updated). В итоге получаем что-то типа
33.jpg
Результат
33.jpg (21.73 КБ) 11700 просмотров
Последний раз редактировалось nick7zmail Сб сен 26, 2015 11:19 am, всего редактировалось 1 раз.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1754 раза
Контактная информация:

Re: Алиса говорит ночью

Сообщение skysilver » Пт сен 25, 2015 10:30 pm

А что за звуки-то в 6 утра?! Прям интрига. :)
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Алиса говорит ночью

Сообщение nick7zmail » Сб сен 26, 2015 9:59 am

skysilver писал(а):А что за звуки-то в 6 утра?! Прям интрига. :)
Знал бы я)) Что то формата отключилось/подключилось устройство. Возможно просто уведомление вылазило, ибо недавно обнаружил в центре уведомлений опрос - "какова вероятность, что вы порекомендуете windows 10" (да у меня сервак на 10ке =D...не спрашивайте зачем, сам не знаю). Возможно этот опрос как раз и напоминал о себе. Вставать смотреть было не вариант, ибо спал)).
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить