Контексты в шаблонах поведения

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Контексты в шаблонах поведения

Сообщение xor » Ср янв 02, 2019 3:44 pm

Не понял, как вы творчески подошли к первому варианту, а про второй - поместите предложенную строку кода в шаблон, и после его сработки посмотрите, что в свойстве test. Там и можно выбрать нужный matches. Как я понимаю, в этом проблема.

Отправлено с моего Redmi 4X через Tapatalk


За это сообщение автора xor поблагодарил:
2007-i (Сб янв 05, 2019 6:27 pm)
Рейтинг: 1.16%
2007-i
Сообщения: 55
Зарегистрирован: Вс янв 29, 2017 12:52 am
Откуда: Уфа
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: Контексты в шаблонах поведения

Сообщение 2007-i » Сб янв 05, 2019 6:21 pm

Вот что вышло в свойстве Dimmer01.level :

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

Array
(
    [0] => яркость в зале 100
    [1] => 
    [2] => 
    [3] => 100
)
при запросе "яркость в зале 100"
значит нужно ставить matches[3]?
2007-i
Сообщения: 55
Зарегистрирован: Вс янв 29, 2017 12:52 am
Откуда: Уфа
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: Контексты в шаблонах поведения

Сообщение 2007-i » Сб янв 05, 2019 6:26 pm

Все, получилось!

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

say('Яркость установлена',1);
sg('Dimmer01.level',print_r($matches[3],true));
Спасибо большое!
С меня +
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Контексты в шаблонах поведения

Сообщение fandaymon » Сб янв 05, 2019 7:22 pm

2007-i писал(а):
Сб янв 05, 2019 6:26 pm
Все, получилось!

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

say('Яркость установлена',1);
sg('Dimmer01.level',print_r($matches[3],true));
А зачем нужен print_r?!
Должно работать и просто

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

sg('Dimmer01.level',$matches[3]);
но кстати, если управлять голосом и распознавать будет гугл, то скорее всего Яркость в зале 2 будет распознано как Яркость в зале два и код не сработает
2007-i
Сообщения: 55
Зарегистрирован: Вс янв 29, 2017 12:52 am
Откуда: Уфа
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: Контексты в шаблонах поведения

Сообщение 2007-i » Сб янв 05, 2019 7:37 pm

Интересно, что в таком случае лучше прописать? Так на будущее?
Да и может другим пригодиться, вдруг с речью яндекс что нибудь случиться, платная станет или еще что к примеру )
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Контексты в шаблонах поведения

Сообщение fandaymon » Сб янв 05, 2019 7:50 pm

2007-i писал(а):
Сб янв 05, 2019 7:37 pm
Интересно, что в таком случае лучше прописать? Так на будущее?
Да и может другим пригодиться, вдруг с речью яндекс что нибудь случиться, платная станет или еще что к примеру )
Ну, например, так

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

$level=$matches[3];

if ($level=='один') {
 $level=1;
} elseif ($level=='два') {
 $level=2;
} elseif ($level=='три') {
 $level=3;
} 
 
say('Яркость установлена',1);
sg('Dimmer01.level',$level);
Или в массив заносить ('один'=>1,'два'=>2,'три'=>3) , а потом по ключу возвращать нужное число. Или функцию универсальную написать, а потом использовать её во всех шаблонах - вариантов масса
2007-i
Сообщения: 55
Зарегистрирован: Вс янв 29, 2017 12:52 am
Откуда: Уфа
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: Контексты в шаблонах поведения

Сообщение 2007-i » Сб янв 05, 2019 7:55 pm

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

$level=$matches[3];

if ($level=='один') {
 $level=1;
} elseif ($level=='два') {
 $level=2;
} elseif ($level=='три') {
 $level=3;
} 
 
say('Яркость установлена',1);
sg('Dimmer01.level',$level);
так думаю не очень хороший выход, так как гуг может же и число 100 написать словом, тогда и придется писать условие до 100?
Или он только числа до десяти так пишет?
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Контексты в шаблонах поведения

Сообщение fandaymon » Сб янв 05, 2019 7:58 pm

2007-i писал(а):
Сб янв 05, 2019 7:55 pm

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

$level=$matches[3];

if ($level=='один') {
 $level=1;
} elseif ($level=='два') {
 $level=2;
} elseif ($level=='три') {
 $level=3;
} 
 
say('Яркость установлена',1);
sg('Dimmer01.level',$level);
так думаю не очень хороший выход, так как гуг может же и число 100 написать словом, тогда и придется писать условие до 100?
Или он только числа до десяти так пишет?
Обычно только 1,2,3
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Контексты в шаблонах поведения

Сообщение Logrus » Сб янв 05, 2019 8:25 pm

Снимок2.PNG
Снимок2.PNG (10.25 КБ) 3235 просмотров
гугл через хромгейт
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
2007-i
Сообщения: 55
Зарегистрирован: Вс янв 29, 2017 12:52 am
Откуда: Уфа
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: Контексты в шаблонах поведения

Сообщение 2007-i » Сб янв 05, 2019 8:41 pm

Тогда это все меняет, я не проверял через гугл поэтому интересуюсь.
Ответить