Пользовательский навык Alexa
Что такое пользовательский навык ioBroker Alexa?
Пользовательский навык ioBroker Alexa обеспечивает расширенное голосовое управление вашим умным домом с помощью индивидуальных команд. В отличие от навыка ioBroker.iot, который использует стандартные команды умного дома, пользовательский навык допускает сложные взаимодействия, такие как запросы статуса, индивидуальные процедуры или запуск автоматики.
Используя имя вызова i o Broker, вы можете поручить Alexa выполнить определенные задачи или получить информацию из вашей системы ioBroker.
Функции и возможности
Функция ioBroker Custom Alexa Skill позволяет использовать индивидуальные голосовые команды для умного дома, запрашивать данные о состоянии датчиков, например, о температуре или состоянии окон, управлять сложными сценами и процедурами, а также интегрировать их с внешними службами с помощью скриптов ioBroker. Его можно использовать параллельно с навыком ioBroker.iot.
Настройка пользовательского навыка Alexa ioBroker
Установите адаптер ioBroker.iot: Пользовательский навык работает только с адаптером ioBroker.iot. Если он еще не установлен, его можно установить через административную область ioBroker в разделе Адаптер → Адаптер ioBroker.iot.
Включить пользовательские навыки Alexa
Откройте приложение Amazon Alexa или перейдите на страницу Alexa Skills.
Поиск навыка ioBroker Custom.
Активируйте навык и привяжите свою учетную запись Amazon Alexa к ioBroker.
Пользовательский навык — используйте собственные голосовые команды
Ответы по пользовательскому навыку можно обрабатывать двумя способами:
- с помощью команды text2
- с JavaScript
Текст2команда
Если в интерфейсе конфигурации определен экземпляр text2command, запрос отправляется этому экземпляру.
text2command необходимо настроить для распознавания ожидаемой фразы и генерации соответствующего ответа.
JavaScript
Обработать запрос можно напрямую с помощью скрипта. Это параметр по умолчанию, если не выбран ни один экземпляр text2command.
Если экземпляр text2command определен, этот экземпляр должен предоставить ответ, а ответ от скрипта игнорируется.
Адаптер предоставляет сведения в двух состояниях с разным уровнем детализации:
smart.lastCommandсодержит полученный текст, включая информацию о типе запроса (намерение). Пример: askDevice Status Газонокосилкаsmart.lastCommandObjсодержит строку JSON, которую можно преобразовать в объект, содержащий следующую информацию:words: Содержит полученные слова в виде массиваintent: Содержит тип запроса. Возможные значения:- v1 Навык:
askDevice,controlDevice,actionStart,actionEnd,askWhen,askWhere,askWho - v2 Skill:
queryIntent(если весь произнесенный текст был захвачен),controlDevice(для резервного варианта с частичным текстом)
- v1 Навык:
deviceId: содержит идентификатор устройства, с которого был отправлен запрос (если предоставлен Amazon, в противном случае пусто)deviceRoom: содержит связанный идентификатор комнаты, который можно настроить в пользовательском интерфейсе администратора IoT ioBroker для собранных идентификаторов устройств.sessionId: Содержит идентификатор сеанса навыка, должен быть одинаковым, если несколько команд произносятся подряд (если предоставлено Amazon, в противном случае пусто)userId: содержит идентификатор пользователя владельца устройства или взаимодействующего пользователя (если предоставлен Amazon, в противном случае пусто)userName: содержит связанное имя пользователя, которое можно настроить в пользовательском интерфейсе администратора IoT для собранных идентификаторов пользователей.
Более подробную информацию о распознавании слов и различных типах запросов Alexa Custom Skill можно найти по следующей ссылке: Форум ioBroker
Возврат ответа через состояние smart.lastResponse
Ответ должен быть записан в состояние smart.lastResponse в течение 200 мс. Это может быть как простая текстовая строка, так и объект JSON.
- Если это текстовая строка, она будет отправлена обратно навыку в качестве ответа.
- Если ответ представляет собой объект JSON, можно использовать следующие ключи:
responseText: Содержит текст, который возвращается в AmazonshouldEndSession: логическое значение, которое определяет, завершается ли сеанс после ответа или остается открытым для дальнейшего ввода.sessionId: Содержит идентификатор сеанса, для которого предназначен ответ. Если не указано иное, используется первый ожидаемый сеанс.
Отправьте ответ через сообщение экземпляру IoT
Экземпляр iot ioBroker также принимает сообщение с именем alexaCustomResponse, содержащее ключевой ответ. Этот объект может содержать ключи responseText, shouldEndSession и sessionId.
Экземпляр IoT не отправляет ответ на сообщение.
Пример скрипта для обработки текстов
// Wichtig: ack=true setzen
on({ id: 'iot.0.smart.lastCommand', ack: true, change: 'any' }, obj => {
// Die Antwort muss innerhalb von 200ms vorbereitet und in iot.X.smart.lastResponse geschrieben werden
setState('iot.0.smart.lastResponse', 'Received phrase is: ' + obj.state.val); // Wichtig: ack=false (Standard)
});
Пример скрипта для обработки JSON-объектов
// Wichtig: ack=true setzen
on({ id: 'iot.0.smart.lastCommandObj', ack: true, change: 'any' }, obj => {
// Die Antwort muss innerhalb von 200ms vorbereitet und in iot.X.smart.lastResponse geschrieben werden
const request = JSON.parse(obj.state.val);
const response = {
responseText: 'Received phrase is: ' + request.words.join(' ') + '. Bye',
shouldEndSession: true,
sessionId: request.sessionId,
};
// Antwort über State zurückgeben
setState('iot.0.smart.lastResponse', JSON.stringify(response)); // Wichtig: ack=false (Standard)
// Oder alternativ als Nachricht zurückgeben
sendTo('iot.0', 'alexaCustomResponse', response);
});
Примеры голосовых команд
Запросы статуса:
- «Алекса, спроси ioBroker о температуре в гостиной».
- «Алекса, спроси ioBroker, открыты ли ворота гаража».
Команды управления:
- «Алекса, скажи ioBroker, что я возвращаюсь домой».
- «Алекса, попроси ioBroker включить мою кофемашину».
Сцены и рутины:
- «Алекса, скажи ioBroker, что я иду спать».
Преимущества ioBroker Alexa Custom Skills
Пользовательский навык ioBroker обеспечивает высокую гибкость благодаря индивидуальным голосовым командам. Он дополняет возможности IoT более полным голосовым управлением, позволяет запрашивать состояние значений датчиков и системной информации, а также позволяет интегрировать автоматизацию и скрипты. Пользовательский навык предлагает настраиваемый и эффективный способ управления вашим умным домом с помощью Alexa.