«Умный дом» с Яндекс.Алисой

Всем привет! Хочу рассказать о том, как одной маленькой девочке захотелось попробовать навыки Алисы, интегрироваться в «умный дом» крутого продукта MySmartFlat, какие встали преграды на пути и вообще, какого это — быть девушкой — программистом?

Создать навык — это просто. Сервер, ssl, и всё такое… За пол часа можно реализовать простейший чат — бот. И отправить на модерацию. И даже пройти ее.

IoT знакомая вещь для многих сейчас и крутое дополнение к таким комплексам — голосовое управление. Подумали мы с коллегами и решили попробовать Алису. А еще и колонка есть. И всё очень круто.

Люблю php ( кто бы и что не говорил), а документации нет. Разобраться оказалось проще простого. Слава богу работаю там, где уже есть и нужные безопасные сервера и всё остальное, т.к. хоть и программист — но совсем не хотелось разбираться в установке сертификатов и т.д. и т.п., иногда женское нутро берет своё… Но сейчас не об этом. Вот есть на руках нужный вебхук, и голова на плечах. Всё необходимое. А, еще комп…

Начала тривиально пробовать баловаться светом ( у нашей платформы есть API, и разбираться с тем, как происходит это всё аппаратно, мне тоже не потребовалось. Единственное, имея техническое образование, мне пригодились навыки обращения с реле, контроллерами и т.д… ). Вся сложность заключалась в тактичном, правильном и разнообразном подходе к тому, что говорит и хочет пользователь. Чем дальше, тем больше в дебри, особенно, когда поняла, что так, как вижу я (и так, как сказала бы я) совершенно не так, как сказал бы пользователь нашей платформы. Я хочу " Включить свет ", а пользователь «врубить» и т.д… Обдумав кучу вариантов, получив десятки фидбеков, как итог — крутой, полноценный навык, в 20 тысяч строк кода на управление освещением, температурой, системами защиты от протечек, бытовой техникой и т.д. Особенно круто с использованием станции — не нужно вообще ничего нажимать и открывать. Достаточно только иметь хотя бы одно наше устройство — и навык «Моя квартира» уже будет доступен.

Я обучила Алису включать/выключать освещение в определенной комнате и даже определенные каналы, если в устройстве их несколько, рассказывать о климате в помещение и регулировать температуру воздуха и пола, ориентируясь на данные из устройства. Смогу даже музыку сделать громче и канал на телевизоре переключить.

В течение времени модернизировалось наше приложение, вся наша платформа, и появилась у пользователей возможность в приложении изменять названия всех своих устройств, нагрузок на реле и прочего. Моя голова вскипела, т.к. встала новая задача и причем спиной ко мне — как Алиса должна понимать, что хочет включить пользователь? Допустим, устройство в приложении называется ПОДСВЕТКА ЗЕРКАЛА, а Алисе говорит: «Алиса, включи свет в ванной». Юзер понимает, что он хочет включить подсветку зеркала, а как быть мне? Мой скилл прокачан не настолько, чтобы запилить искуственный интеллект и я научила ее переспрашивать пользователя и запоминать.

В общем, это всё было бы еще круче, если бы не:
1. Использование на Яндекс.Станции не очень, как оказалось, удобно. В навыке вы находитесь, пока взаимодействуете. Т.е.: «Алиса, запусти навык… включи свет, выключи...» и т.д. Проходит 30 с, и вы молчите — оп, и вы уже не в навыке. И приходится снова: «Алиса, запусти навык...». Да куда проще и быстрее нажать на кнопку в приложении.

2. Нужно оптимизировать свои серверные настройки, обработки фраз и всё остальное настолько, чтобы скрипт обрабатывался и выдавал ответ не более, чем за 1.5 с. Иначе, Алиса говорит: «Извините, навык не отвечает» и вылетает из него. Всё бы ничего, но пришлось сильно повозиться, т.к. много устройств, запросов в базу и на управление. Но проблема решаема.

Яндекс пообещал сделать лучше жизнь разработчикам умных домов, и адекватно и быстро реагируют и отвечают на все пожелания и вопросы.

Не смотря на все подводные камни, управление голосом дает наглядно увидеть и понять, для чего вообще это всё нужно. Всем IoT!
Теги:
php, яндекс.алиса, умный дом

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Похожие публикации