Князь писал(а): Вт сен 24, 2019 5:31 pm
Возможно что так, это я завтра попробую найти, но почему когда я в чат Алисе пишу, отрабатывает шаблон, а не передаётся в устройство. Да и фразы всегда разные. Мне пока не хватает знаний и опыта, что бы понять, почему голосовые и напечатанные команды обрабатываются по-разному, если в чате выглядят одинаково. И почему только вторые и последующие команды в контексте так себя ведут.
Но на данном этапе мне главное, что начало работать. Всем помогающим спасибо.
а потому что ты ведь пишеш всю команду ? или по частям ?
А чтобы не морочится отпиши устройства от команд ... потом вернуть назад все легко ... Как отпишеш так и подпишеш
Пишу и говорю по частям, но реакция разная была. А насчёт устройств, так у меня ещё ничего нет, кроме реле на ESP-01, я только осваивают, изучают на простых примерах. Решил контексты освоить на примере настройки будильника, с голосовыми командами от телефона в качестве терминала. Но в устройства я посмотрю, система шла не голая, могло что-то где-то затесаться.
$new_pattern['ONETIME']=1; // флаг того, что шаблон будет одноразовый
$new_pattern['SKIPSYSTEM']=1; // флаг того, что шаблон не будет реагировать на системные уведомления, только пользовательские
а какой параметр установить чтобы в шаблоне устанавливалось не проверять другие шаблоны при совпадении
//я.||(.+?) (.+)
$new_pattern=array();
$new_pattern['ONETIME']=0; // флаг того, что шаблон будет одноразовый
$new_pattern['SKIPSYSTEM']=1; // флаг того, что шаблон не будет реагировать на системные уведомления, только пользовательские
$new_pattern['PRIORITY']=1; // приоритет
$new_pattern['USEMORPHY']=1; // морфология
$new_pattern['IS_LAST']=1; // не проверять другие шаблоны при совпадении
$new_pattern['SCRIPT']='sayReply("реакция на $original",2,'.$from_user_id.');'; // код реакции нашего шаблона
addPattern($original,$new_pattern,1); // добавляем описанный шаблон
sayReply("добавлен новый шаблон \"".$original."\"",2); // подтверждаем то, что реакция добавлена
Прошу помощи у знающих людей. Есть возможность в разделе "Шаблоны поведения" в шаблоне на основе значений свойств, установить "Значение" не цифрой а переменной типа gg();. Я пробовал не получается. Возможно нужно записать особым образом, если нет такой возможности то к кому обратиться за доработкой, так как это очень удобно писать правила динамически срабатывающие на ситуацию а не жёстко привязанные к "Значению".
bua писал(а): Вс ноя 24, 2019 6:47 pm
Прошу помощи у знающих людей. Есть возможность в разделе "Шаблоны поведения" в шаблоне на основе значений свойств, установить "Значение" не цифрой а переменной типа gg();. Я пробовал не получается. Возможно нужно записать особым образом, если нет такой возможности то к кому обратиться за доработкой, так как это очень удобно писать правила динамически срабатывающие на ситуацию а не жёстко привязанные к "Значению".
лайвхак:
укажите условие <> и значение, которого заведомо не должно быть. типа, для температуры -1000.
а в коде ниже уже используйте дополнительные проверки чего хотите с чем хотите
bua писал(а): Вс ноя 24, 2019 6:47 pm
Прошу помощи у знающих людей. Есть возможность в разделе "Шаблоны поведения" в шаблоне на основе значений свойств, установить "Значение" не цифрой а переменной типа gg();. Я пробовал не получается. Возможно нужно записать особым образом, если нет такой возможности то к кому обратиться за доработкой, так как это очень удобно писать правила динамически срабатывающие на ситуацию а не жёстко привязанные к "Значению".
лайвхак:
укажите условие <> и значение, которого заведомо не должно быть. типа, для температуры -1000.
а в коде ниже уже используйте дополнительные проверки чего хотите с чем хотите
Спасибо за ответ. Ситуация такова, может подскажите. В меню управления есть sliderbox с выбором температуры а условие должно проверять эту температуру. В скриптах и по системе легко использую величину из sliderbox а в условии не могу. Температурный датчик присылает статистику каждые 3 минуты и если поставить заведомо не реальную температуру чтоб он срабатывал и выполнял скрипт проверки не очень красиво (6 датчиков по 3 условия, то есть величина с sliderbox должна быть применена к 18 проверкам) . А если бы можно было в условии поставить чекер сравнить "свойства" "связанных объектов" то шаблон поведения срабатывал тогда идеально так как свойство бралось из объекта.
НО есть ситуация когда такая настройка не срабатывает и я не могу понять по чему. Есть розетка sonoff POW на ней висит нагрузка. Связь через MQTT. Нужно условие когда меняется нагрузка в любую сторону должен выполняться скрипт. в Условии ставил <> 0 и нагрузка больше 0 (она всегда больше 0) шаблон срабатывает 1 раз и потом не реагирует на изменение величины "свойства" "связанных объектов". Захожу в объект и вижу что величина меняется а условие не срабатывает.
Честно, не пользуюсь шаблонами по изменению свойства. Просто привязываю метод к свойству, который срабатывает всегда при изменении/обновлении свойства. Анализ внутри метода, есть старое и новое значение свойства (передаются в метод параметрами автоматом). Работает.
Думаю тему выбрал правильную. Проблема - в чат Алисе пишу - включи свет, а она запускает уборку(шаблон переименовывал уже) . Раньше отвечала как при белой горячке отвечала и делала что попало. Началось после того, как делал эксперименты с ASK (все шаблоны содержащие АСК удалил). Куда рыть?
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL