В Общих настройках системы есть вкладка Обработчики. В ней пункт HOOK_EVENT_COMMAND:, в котором указываются с каким приоритетом будут отрабатывать сообщения простые устройства (devices) и apiai. По умолчанию и у тех и у других стоит приоритет 100, поэтому иногда простые устройства будут срабатывать первыми, а иногда наоборот. Т.е. чтобы нормально отрабатывалась input.unknown надо поменять приоритет Простым устройствам, например, на 50...
Что касается второй проблемы - то что сначала отрабатываются простые устройства и apiai, а только потом шаблоны, то там только поменять код. А именно в директории var/www/lib файл common.class.php
В функции say вместо
Код: Выделить всё
if ($member_id)
{
$processed=processSubscriptions('COMMAND', array('level' => $level, 'message' => $ph, 'member_id' => $member_id));
if (!$processed) {
include_once(DIR_MODULES . 'patterns/patterns.class.php');
$pt = new patterns();
$res=$pt->checkAllPatterns($member_id);
processCommand($ph);
}
return;
}
надо написать
Код: Выделить всё
if ($member_id)
{
include_once(DIR_MODULES . 'patterns/patterns.class.php');
$pt = new patterns();
$res=$pt->checkAllPatterns($member_id);
if (!$res) {
$processed=processSubscriptions('COMMAND', array('level' => $level, 'message' => $ph, 'member_id' => $member_id));
if (!$processed) {
processCommand($ph);
}
}
return;
}
После этого команды будут проверять сначала в шаблонах, а потом в apiai и простых устройствах.