ASSкона динамические сценарии
Дополнительные действия
Файл:Eva ae57081e image-20240424-164036.png Файл:Eva 060bbc67 image-20240424-165353.png Файл:Eva a914eda3 image-20240424-165446.png
Делаем динамический сценарий на базе Алисы и Яндекс диалогов. и https://app.aimylogic.com/
Регистрируемся в амилоджик
жмем создать бота.
в конструкторе.
бот ФАК.
задаем имя.
на вкладке мой бот жмем подключить канал.
Выбираем голосовой ассистент АЛИСА.
жмем Получить OAuth-токен
входим в наш аккаунт яндекса и получаем ключ типа
y0_AgAAAAB1qlUNAAT7owAAAAEC8a2xAAAlb1CJIxdFKao6zfW06hhBXo3Vpg
вставляем это в строчку токена.
жмем получить вебхук
https://bot.jaicp.com/chatapi/webhook/yandex/xjRgpeuE:5b07a5610b9bbcad4808e9c5d2a4c3f83827fc60
получаем ссылку
идем в диалоги яндекса
https://dialogs.yandex.ru/developer
жмем создать диалог. создать навык алисы.
выбираем имя навыка по которому будем включать его на колонке.
вставляем ссылку вебхука в строку
Backend
Webhook URL
выбираем тип доступа приватный.
заполняем остальные поля.
все говорилка готова.
для управления устройствами надо сделать еще несколько шагов.
скачиваем программу постман для анализа ответов апи и вынимания айди сценариев яндекса.
https://www.postman.com/downloads/
ставим ее.
вбиваем настройки урл для подключения метод запроса GET https://api.iot.yandex.net/v1.0/user/info
переходим на вкладку авторизации. выбираем тип авторизации BEARER TOKEN и вводим туда наш токен.
чтобы получить токен переходим по ссылке https://oauth.yandex.ru/client/new/
и регистрируем наше приложение выбираем галочку веб сервисы
https://oauth.yandex.ru/verification_code вставляем ссылку в поле для редиректа.
в поле доступ к данным надо вбить iot:view и iot:control !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
переходим на следующую страницу и находим поле
ClientID
копируем значение этого поля и вставляем в ссылку вместо <идентификатор_приложения>
https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор_приложения>
жмем авторизоваться.
и насм перекидывает на страницу с апи ключем
y0_AgAAAAB1qlUNAAuuLgAAAAEC9HhRAADxKIQfh8tKZqF43kFGhq9q2zAtGA к примеру.
именно это надо вписывать в программе постман в поле токен.
если все прошло хорошо и мы нажали в по постман кнопку сенд мы получим ответ в виде json
json
{
"status": "ok",
"request_id": "992554ed-ac4e-4a3d-b83b-db37423567d3",
"rooms": [
{
"id": "9b0d06f2-3636-448d-b83a-8af6381cca44",
"name": "Новая комната",
"household_id": "5f771635-96b7-4634-aaf3-42d7991ca1f5",
"devices": [
"062fae49-5bbb-474e-a0d4-31ccc5d5f370",
"1a3a8b2a-50f6-4f73-9aa2-6094ee6b114e",
"1fa57928-61ad-488d-bce8-885630f07f64",
"3f500525-59ae-42af-9e20-809937bc6da6",
"4a83a6bb-09e2-40dc-9ad1-b9f6b6a4fed7",
"73fd46de-6f0b-4fb6-9f07-3e0df74b7d3d",
"86730238-9779-4caf-ba7e-499b15bba924",
"936242b0-391e-4891-b96f-50a9002588ed"
]
}
],
"groups": [],
"devices": [
{
"id": "062fae49-5bbb-474e-a0d4-31ccc5d5f370",
"name": "Контакт 1",
"aliases": [],
"type": "devices.types.sensor.open",
"external_id": "6",
"skill_id": "357e40f9-640d-462e-8c39-8ecdade9b611",
"household_id": "5f771635-96b7-4634-aaf3-42d7991ca1f5",
"room": "9b0d06f2-3636-448d-b83a-8af6381cca44",
"groups": [],
"capabilities": [],
"properties": [
{
"type": "devices.properties.event",
"reportable": true,
"retrievable": true,
"parameters": {
"instance": "open",
"events": [
{
"value": "opened"
},
{
"value": "closed"
}
]
},
"state": {
"instance": "open",
"value": "closed"
},
"last_updated": 1713962105.2822993
}
]
},
{
"id": "1a3a8b2a-50f6-4f73-9aa2-6094ee6b114e",
"name": "Контакт 4",
"aliases": [],
"type": "devices.types.sensor.open",
"external_id": "9",
"skill_id": "357e40f9-640d-462e-8c39-8ecdade9b611",
"household_id": "5f771635-96b7-4634-aaf3-42d7991ca1f5",
"room": "9b0d06f2-3636-448d-b83a-8af6381cca44",
"groups": [],
"capabilities": [],
"properties": [
{
"type": "devices.properties.event",
"reportable": true,
"retrievable": true,
"parameters": {
"instance": "open",
"events": [
{
"value": "opened"
},
{
"value": "closed"
}
]
},
"state": {
"instance": "open",
"value": "closed"
},
"last_updated": 0.0
}
]
},
{
"id": "1fa57928-61ad-488d-bce8-885630f07f64",
"name": "Контакт 2",
"aliases": [],
"type": "devices.types.sensor.open",
"external_id": "7",
"skill_id": "357e40f9-640d-462e-8c39-8ecdade9b611",
"household_id": "5f771635-96b7-4634-aaf3-42d7991ca1f5",
"room": "9b0d06f2-3636-448d-b83a-8af6381cca44",
"groups": [],
"capabilities": [],
"properties": [
{
"type": "devices.properties.event",
"reportable": true,
"retrievable": true,
"parameters": {
"instance": "open",
"events": [
{
"value": "opened"
},
{
"value": "closed"
}
]
},
"state": {
"instance": "open",
"value": "closed"
},
"last_updated": 0.0
}
]
},
{
"id": "3053ae8d-9b78-46e3-8204-a813a054a358",
"name": "Станция Мини new",
"aliases": [],
"type": "devices.types.smart_speaker.yandex.station.mini_2_no_clock",
"external_id": "M10F31600HYSGG.yandexmini_2",
"skill_id": "Q",
"household_id": "5f771635-96b7-4634-aaf3-42d7991ca1f5",
"room": null,
"groups": [],
"capabilities": [],
"properties": [
{
"type": "devices.properties.event",
"reportable": true,
"retrievable": false,
"parameters": {
"instance": "voice_activity",
"events": [
{
"value": "speech_finished"
}
]
},
"state": null,
"last_updated": 0.0
}
],
"quasar_info": {
"device_id": "M10F31600HYSGG",
"platform": "yandexmini_2"
}
},
{
"id": "3f500525-59ae-42af-9e20-809937bc6da6",
"name": "Контакт 3",
"aliases": [],
"type": "devices.types.sensor.open",
"external_id": "8",
"skill_id": "357e40f9-640d-462e-8c39-8ecdade9b611",
"household_id": "5f771635-96b7-4634-aaf3-42d7991ca1f5",
"room": "9b0d06f2-3636-448d-b83a-8af6381cca44",
"groups": [],
"capabilities": [],
"properties": [
{
"type": "devices.properties.event",
"reportable": true,
"retrievable": true,
"parameters": {
"instance": "open",
"events": [
{
"value": "opened"
},
{
"value": "closed"
}
]
},
"state": {
"instance": "open",
"value": "closed"
},
"last_updated": 0.0
}
]
},
{
"id": "4a83a6bb-09e2-40dc-9ad1-b9f6b6a4fed7",
"name": "Кнопка",
"aliases": [],
"type": "devices.types.sensor.open",
"external_id": "10",
"skill_id": "357e40f9-640d-462e-8c39-8ecdade9b611",
"household_id": "5f771635-96b7-4634-aaf3-42d7991ca1f5",
"room": "9b0d06f2-3636-448d-b83a-8af6381cca44",
"groups": [],
"capabilities": [],
"properties": [
{
"type": "devices.properties.event",
"reportable": true,
"retrievable": true,
"parameters": {
"instance": "open",
"events": [
{
"value": "opened"
},
{
"value": "closed"
}
]
},
"state": {
"instance": "open",
"value": "closed"
},
"last_updated": 0.0
}
]
},
{
"id": "73fd46de-6f0b-4fb6-9f07-3e0df74b7d3d",
"name": "Реле 2",
"aliases": [],
"type": "devices.types.switch",
"external_id": "4",
"skill_id": "357e40f9-640d-462e-8c39-8ecdade9b611",
"household_id": "5f771635-96b7-4634-aaf3-42d7991ca1f5",
"room": "9b0d06f2-3636-448d-b83a-8af6381cca44",
"groups": [],
"capabilities": [
{
"reportable": true,
"retrievable": true,
"type": "devices.capabilities.on_off",
"parameters": {
"split": false
},
"state": {
"instance": "on",
"value": false
},
"last_updated": 1713962111.255464
}
],
"properties": []
},
{
"id": "86730238-9779-4caf-ba7e-499b15bba924",
"name": "Реле 3",
"aliases": [],
"type": "devices.types.switch",
"external_id": "5",
"skill_id": "357e40f9-640d-462e-8c39-8ecdade9b611",
"household_id": "5f771635-96b7-4634-aaf3-42d7991ca1f5",
"room": "9b0d06f2-3636-448d-b83a-8af6381cca44",
"groups": [],
"capabilities": [
{
"reportable": true,
"retrievable": true,
"type": "devices.capabilities.on_off",
"parameters": {
"split": false
},
"state": {
"instance": "on",
"value": false
},
"last_updated": 0.0
}
],
"properties": []
},
{
"id": "936242b0-391e-4891-b96f-50a9002588ed",
"name": "Реле 1",
"aliases": [],
"type": "devices.types.switch",
"external_id": "3",
"skill_id": "357e40f9-640d-462e-8c39-8ecdade9b611",
"household_id": "5f771635-96b7-4634-aaf3-42d7991ca1f5",
"room": "9b0d06f2-3636-448d-b83a-8af6381cca44",
"groups": [],
"capabilities": [
{
"reportable": true,
"retrievable": true,
"type": "devices.capabilities.on_off",
"parameters": {
"split": false
},
"state": {
"instance": "on",
"value": false
},
"last_updated": 1713962410.168
}
],
"properties": []
}
],
"scenarios": [
{
"id": "2cc097e1-35f3-4869-ab50-c90bdb01ac46",
"name": "Реле",
"is_active": true
}
],
"households": [
{
"id": "5f771635-96b7-4634-aaf3-42d7991ca1f5",
"name": "Мой дом",
"type": "households.types.personal"
}
]
}
находим слово scenarios и видим сценарий созданный в алисе. нам нужно его id . копируем 2cc097e1-35f3-4869-ab50-c90bdb01ac46
это значение понадобится для управления устройствами через платформу амилоджик
в сценарии амилоджика создаем http запрос.
с методом post в URL надо записать https://api.iot.yandex.net/v1.0/scenarios/cc097e1-35f3-4869-ab50-c90bdb01ac46/actions где cc097e1-35f3-4869-ab50-c90bdb01ac46 айди сценария в апи алисы
перейти на вкладку headers добавить заголовок Authorization с значением Bearer пробел наш ключ
где наш ключ в этом примере y0_AgAAAAB1qlUNAAuuLgAAAAEC9HhRAADxKIQfh8tKZqF43kFGhq9q2zAtGA
так мы сможем управлять СЦЕНАРИЯМИ АЛИСЫ из амилоджика
чтобы получить данные с датчика надо в сценарии амилоджика создаем http запрос.
Метод GET ссылка здесь после devices/ айди устройства которое достается в ПО постман.
https://api.iot.yandex.net/v1.0/devices/e62c7167-bcaf-466d-af99-67997a1bf3e2
записываем значение в переменную
не забываем в вкладке headers заполнить заголовок Authorization в значении Bearer пробел наш токен.
мы получили в переменной tvoc кусок json. теперь его надо распарсить.
этот код в блоке код вынимает значение датчика из json
$string=String($tvoc)
$word=$string.split("value")
$tv=$word[1].split(/:|}/)[1]
и записывает их в переменную TV
в блоке текста используем ее чтобы произносить показание датчика
"В девелике душно, концентрация твёрдой летучей органики $tv , давайте я открою окно"