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

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

Модератор: immortal

Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

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

Сообщение tarasfrompir » Вт сен 24, 2019 7:24 pm

Князь писал(а):
Вт сен 24, 2019 5:31 pm
Возможно что так, это я завтра попробую найти, но почему когда я в чат Алисе пишу, отрабатывает шаблон, а не передаётся в устройство. Да и фразы всегда разные. Мне пока не хватает знаний и опыта, что бы понять, почему голосовые и напечатанные команды обрабатываются по-разному, если в чате выглядят одинаково. И почему только вторые и последующие команды в контексте так себя ведут.
Но на данном этапе мне главное, что начало работать. Всем помогающим спасибо.
а потому что ты ведь пишеш всю команду ? или по частям ?
А чтобы не морочится отпиши устройства от команд ... потом вернуть назад все легко ... Как отпишеш так и подпишеш
Спасибо нам ПОМОЖЕТ..!
Князь
Сообщения: 7
Зарегистрирован: Пт май 03, 2019 12:16 pm
Откуда: Минск
Благодарил (а): 10 раз
Поблагодарили: 1 раз

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

Сообщение Князь » Вт сен 24, 2019 10:25 pm

Пишу и говорю по частям, но реакция разная была. А насчёт устройств, так у меня ещё ничего нет, кроме реле на ESP-01, я только осваивают, изучают на простых примерах. Решил контексты освоить на примере настройки будильника, с голосовыми командами от телефона в качестве терминала. Но в устройства я посмотрю, система шла не голая, могло что-то где-то затесаться.
crazpit
Сообщения: 13
Зарегистрирован: Пт авг 30, 2019 5:17 pm
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение crazpit » Ср сен 25, 2019 10:00 pm

$new_pattern['ONETIME']=1; // флаг того, что шаблон будет одноразовый
$new_pattern['SKIPSYSTEM']=1; // флаг того, что шаблон не будет реагировать на системные уведомления, только пользовательские
а какой параметр установить чтобы в шаблоне устанавливалось не проверять другие шаблоны при совпадении
crazpit
Сообщения: 13
Зарегистрирован: Пт авг 30, 2019 5:17 pm
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение crazpit » Ср сен 25, 2019 10:24 pm

оо.. нашел
ща буду разбираться
patterns: ID int(10) unsigned NOT NULL auto_increment
patterns: TITLE varchar(255) NOT NULL DEFAULT ''
patterns: PATTERN text
patterns: SCRIPT_ID int(10) NOT NULL DEFAULT '0'
patterns: SCRIPT text
patterns: SCRIPT_EXIT text
patterns: LOG text
patterns: TIME_LIMIT int(10) NOT NULL DEFAULT '0'
patterns: EXECUTED int(10) NOT NULL DEFAULT '0'
patterns: IS_CONTEXT int(3) NOT NULL DEFAULT '0'
patterns: IS_COMMON_CONTEXT int(3) NOT NULL DEFAULT '0'
patterns: MATCHED_CONTEXT_ID int(10) NOT NULL DEFAULT '0'
patterns: TIMEOUT int(10) NOT NULL DEFAULT '0'
patterns: TIMEOUT_CONTEXT_ID int(10) NOT NULL DEFAULT '0'
patterns: TIMEOUT_SCRIPT text
patterns: PARENT_ID int(10) NOT NULL DEFAULT '0'
patterns: IS_LAST int(3) NOT NULL DEFAULT '0'
patterns: SKIPSYSTEM int(3) NOT NULL DEFAULT '0'
patterns: ONETIME int(3) NOT NULL DEFAULT '0'
patterns: USEMORPHY int(3) NOT NULL DEFAULT '0'
patterns: PRIORITY int(10) NOT NULL DEFAULT '0'

patterns: PATTERN_TYPE int(3) NOT NULL DEFAULT '0'
patterns: LINKED_OBJECT varchar(255) NOT NULL DEFAULT ''
patterns: LINKED_PROPERTY varchar(255) NOT NULL DEFAULT ''
patterns: CONDITION int(3) NOT NULL DEFAULT '0'
patterns: CONDITION_VALUE varchar(255) NOT NULL DEFAULT ''
patterns: LATEST_VALUE varchar(255) NOT NULL DEFAULT ''
patterns: ACTIVE_STATE int(3) NOT NULL DEFAULT '0'
crazpit
Сообщения: 13
Зарегистрирован: Пт авг 30, 2019 5:17 pm
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение crazpit » Ср сен 25, 2019 11:26 pm

//я.||(.+?) (.+)
$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); // подтверждаем то, что реакция добавлена
bua
Сообщения: 46
Зарегистрирован: Пн фев 11, 2019 8:42 pm
Откуда: Херсон
Благодарил (а): 10 раз
Поблагодарили: 0

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

Сообщение bua » Вс ноя 24, 2019 6:47 pm

Прошу помощи у знающих людей. Есть возможность в разделе "Шаблоны поведения" в шаблоне на основе значений свойств, установить "Значение" не цифрой а переменной типа gg();. Я пробовал не получается. Возможно нужно записать особым образом, если нет такой возможности то к кому обратиться за доработкой, так как это очень удобно писать правила динамически срабатывающие на ситуацию а не жёстко привязанные к "Значению".
Аватара пользователя
xor
Сообщения: 2036
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 283 раза
Поблагодарили: 628 раз

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

Сообщение xor » Вс ноя 24, 2019 8:36 pm

bua писал(а):
Вс ноя 24, 2019 6:47 pm
Прошу помощи у знающих людей. Есть возможность в разделе "Шаблоны поведения" в шаблоне на основе значений свойств, установить "Значение" не цифрой а переменной типа gg();. Я пробовал не получается. Возможно нужно записать особым образом, если нет такой возможности то к кому обратиться за доработкой, так как это очень удобно писать правила динамически срабатывающие на ситуацию а не жёстко привязанные к "Значению".
лайвхак:
укажите условие <> и значение, которого заведомо не должно быть. типа, для температуры -1000.
а в коде ниже уже используйте дополнительные проверки чего хотите с чем хотите
bua
Сообщения: 46
Зарегистрирован: Пн фев 11, 2019 8:42 pm
Откуда: Херсон
Благодарил (а): 10 раз
Поблагодарили: 0

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

Сообщение bua » Пн ноя 25, 2019 8:07 pm

xor писал(а):
Вс ноя 24, 2019 8:36 pm
bua писал(а):
Вс ноя 24, 2019 6:47 pm
Прошу помощи у знающих людей. Есть возможность в разделе "Шаблоны поведения" в шаблоне на основе значений свойств, установить "Значение" не цифрой а переменной типа gg();. Я пробовал не получается. Возможно нужно записать особым образом, если нет такой возможности то к кому обратиться за доработкой, так как это очень удобно писать правила динамически срабатывающие на ситуацию а не жёстко привязанные к "Значению".
лайвхак:
укажите условие <> и значение, которого заведомо не должно быть. типа, для температуры -1000.
а в коде ниже уже используйте дополнительные проверки чего хотите с чем хотите
Спасибо за ответ. Ситуация такова, может подскажите. В меню управления есть sliderbox с выбором температуры а условие должно проверять эту температуру. В скриптах и по системе легко использую величину из sliderbox а в условии не могу. Температурный датчик присылает статистику каждые 3 минуты и если поставить заведомо не реальную температуру чтоб он срабатывал и выполнял скрипт проверки не очень красиво (6 датчиков по 3 условия, то есть величина с sliderbox должна быть применена к 18 проверкам) . А если бы можно было в условии поставить чекер сравнить "свойства" "связанных объектов" то шаблон поведения срабатывал тогда идеально так как свойство бралось из объекта.

НО есть ситуация когда такая настройка не срабатывает и я не могу понять по чему. Есть розетка sonoff POW на ней висит нагрузка. Связь через MQTT. Нужно условие когда меняется нагрузка в любую сторону должен выполняться скрипт. в Условии ставил <> 0 и нагрузка больше 0 (она всегда больше 0) шаблон срабатывает 1 раз и потом не реагирует на изменение величины "свойства" "связанных объектов". Захожу в объект и вижу что величина меняется а условие не срабатывает.
Аватара пользователя
xor
Сообщения: 2036
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 283 раза
Поблагодарили: 628 раз

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

Сообщение xor » Пн ноя 25, 2019 8:17 pm

Честно, не пользуюсь шаблонами по изменению свойства. Просто привязываю метод к свойству, который срабатывает всегда при изменении/обновлении свойства. Анализ внутри метода, есть старое и новое значение свойства (передаются в метод параметрами автоматом). Работает.
За это сообщение автора xor поблагодарил:
bua (Пн ноя 25, 2019 8:18 pm)
Рейтинг: 1.16%
lihodeev
Сообщения: 148
Зарегистрирован: Ср июл 25, 2018 10:37 pm
Благодарил (а): 43 раза
Поблагодарили: 8 раз

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

Сообщение lihodeev » Сб мар 07, 2020 9:36 pm

Думаю тему выбрал правильную. Проблема - в чат Алисе пишу - включи свет, а она запускает уборку(шаблон переименовывал уже) . Раньше отвечала как при белой горячке отвечала и делала что попало. Началось после того, как делал эксперименты с ASK (все шаблоны содержащие АСК удалил). Куда рыть?
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
Ответить