Giter VIP home page Giter VIP logo

Comments (19)

skysilver-lab avatar skysilver-lab commented on July 17, 2024 1

Косячек в документации. )) Пинги по факту шлет на корень эндопоинта, а не на v1.0.

16:49:50 0.99605700 POST /smarthome.php 93.158.156.96 <<< {"meta":{"client_id":"ru.yandex.searchplugin\/7.16 (none none; android 4.4.2)","interfaces":{"account_linking":[],"payments":[],"screen":[]},"locale":"ru-RU","timezone":"UTC"},"request":{"command":"ping","original_utterance":"ping","type":"SimpleUtterance"},"session":{"message_id":0,"new":true,"session_id":"98e81c7f-","skill_id":"45e910a8-","user_id":"XXXXXX"},"version":"1.0"}
16:49:50 0.99790800 smarthome.php <<< PING
16:49:50 0.99976600 smarthome.php >>> PONG
16:49:51 0.00130500 smarthome.php >>> {"version":"1.0","session":{"session_id":"98e81c7f-","message_id":0,"user_id":"XXXXXXXXXXXXX"},"response":{"text":"pong"}}

from yandex_smart_home.

dmitry-k avatar dmitry-k commented on July 17, 2024

Это странно. Документация яндекса не предполагает каких-либо запросов на /api/yandex_smart_home.
Должны быть HEAD запросы на /api/yandex_smart_home/v1.0 для проверки работоспособности endpoint-а и GET на /api/yandex_smart_home/v1.0/user/devices для получения списка устройств.

from yandex_smart_home.

YaLiC avatar YaLiC commented on July 17, 2024

Я тоже прочел документацию раза на три и не понимаю, что происходит :(
Какие варианты есть, как починить?
Есть ли критическая разница в версии http? (v 1.1 v 2)

from yandex_smart_home.

dmitry-k avatar dmitry-k commented on July 17, 2024

Пингов в документации вообще нет. А навык точно приватный, и умный дом а не обычный диалог?

from yandex_smart_home.

YaLiC avatar YaLiC commented on July 17, 2024

Пингов в документации вообще нет. А навык точно приватный, и умный дом а не обычный диалог?

Пинги есть: https://tech.yandex.ru/dialogs/alice/doc/smart-home/reference/check-docpage/

Навык приватный и именно "умный дом"

from yandex_smart_home.

skysilver-lab avatar skysilver-lab commented on July 17, 2024

Пинги они шлют по инерции как и для классических навыков
https://tech.yandex.ru/dialogs/alice/doc/health-check-docpage/

HEAD https://endpoint_url/v1.0 я у себя не ловил ни разу.

from yandex_smart_home.

tayanov avatar tayanov commented on July 17, 2024

Как утверждают в документации ошибка

По документации запрос:
HEAD https://endpoint_url/v1.0
По факту https://endpoint_url без v1.0
и method: "POST"

from yandex_smart_home.

dmitry-k avatar dmitry-k commented on July 17, 2024

Так или иначе пинги не должны быть причиной проблем.

Можете зайти на https://[ha_host:port]/profile и сгенерировать токен (внизу страницы).
Потом сделать запрос

curl -i -s -X GET "https://[host:port]/api/yandex_smart_home/v1.0/user/devices" -H "Authorization: Bearer {token}" -H "Content-Type: application/json" -H "X-Request-Id: 1234"

И посмотреть есть ли в ответе устройства.

from yandex_smart_home.

YaLiC avatar YaLiC commented on July 17, 2024

Так или иначе пинги не должны быть причиной проблем.

Можете зайти на https://[ha_host:port]/profile и сгенерировать токен (внизу страницы).
Потом сделать запрос

curl -i -s -X GET "https://[host:port]/api/yandex_smart_home/v1.0/user/devices" -H "Authorization: Bearer {token}" -H "Content-Type: application/json" -H "X-Request-Id: 1234"

И посмотреть есть ли в ответе устройства.

Уже проверял так. Запрос делал с разных хостов, как локально с сервера HA, так и через всю цепочку (интернет-nginx-vpn-ha). Ответ есть:

HTTP/2 200
server: nginx
date: Thu, 30 May 2019 00:55:13 GMT
content-type: application/json
content-length: 4301
strict-transport-security: max-age=31536000; includeSubdomains

{"payload": {"devices": [{"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "media_player.mpd", "name": "MPD", "type": "devices.types.switch"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "switch.starline_ign", "name": "\u0417\u0430\u0436\u0438\u0433\u0430\u043d\u0438\u0435", "type": "devices.types.switch"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "switch.fluxer", "name": "Fluxer", "type": "devices.types.switch"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "fan.bathroom", "name": "\u0412\u044b\u0442\u044f\u0436\u043a\u0430", "type": "devices.types.other"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "switch.all_light_corridor", "name": "\u041e\u0431\u0449\u0438\u0439 \u0441\u0432\u0435\u0442 \u043a\u043e\u0440\u0438\u0434\u043e\u0440\u0430", "type": "devices.types.switch"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "switch.main_light_corridor", "name": "\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u0432\u0435\u0442 \u0432 \u043a\u043e\u0440\u0438\u0434\u043e\u0440\u0435", "type": "devices.types.switch"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "switch.spot_light_corridor", "name": "\u0422\u043e\u0447\u0435\u0447\u043d\u0430\u044f \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u0432 \u043a\u043e\u0440\u0438\u0434\u043e\u0440\u0435", "type": "devices.types.switch"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "switch.back_light_corridor", "name": "\u0414\u0430\u043b\u044c\u043d\u0438\u0439 \u0441\u0432\u0435\u0442 \u0432 \u043a\u043e\u0440\u0438\u0434\u043e\u0440\u0435", "type": "devices.types.switch"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "light.backlight_bedroom", "name": "\u041f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u0432 \u0434\u0435\u0442\u0441\u043a\u043e\u0439", "type": "devices.types.light"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "light.h801_hall", "name": "\u041f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u0432 \u0437\u0430\u043b\u0435", "type": "devices.types.light"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "light.h801_kitchen", "name": "\u041f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u043d\u0430 \u043a\u0443\u0445\u043d\u0435", "type": "devices.types.light"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "light.sonoff_bathroom", "name": "\u0421\u0432\u0435\u0442 \u0432 \u0432\u0430\u043d\u043d\u043e\u0439", "type": "devices.types.light"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "light.sonoff_toilet", "name": "\u0421\u0432\u0435\u0442 \u0432 \u0442\u0443\u0430\u043b\u0435\u0442\u0435", "type": "devices.types.light"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "switch.switch_pc", "name": "\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u0435\u043b\u044c \u041f\u041a", "type": "devices.types.switch"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "switch.coffee_on_work", "name": "Coffee on work", "type": "devices.types.switch"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "switch.switch_tv", "name": "Switch TV", "type": "devices.types.switch"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "switch.plug_158d000273e820", "name": "\u0427\u0430\u0439\u043d\u0438\u043a", "type": "devices.types.switch"}, {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "light.gateway_light_7c49eb1b3bc4", "name": "MiHome Hub", "type": "devices.types.light"}], "user_id": "ff684103829f424cb87cb0f185fba1ea"}, "request_id": "1234"}

from yandex_smart_home.

YaLiC avatar YaLiC commented on July 17, 2024

Ещё пронаблюдал за запросами от яндекса... их нет, не считая пингов.

Сразу после авторизации, единственный запрос это:

77.88.46.153 - - [30/May/2019:11:16:47 +0700] "POST /auth/token HTTP/1.1" 200 317 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5409 Safari/536.5"

В профиле появился новый токен:

Токен обновления для https://social.yandex.net/
Создан 30 мая 2019 г., 11:16
Последнее использование 30 мая 2019 г., 11:16 из 77.88.46.153

Возможно проблема на стороне яндекса. На всякий случай Диалог я пересоздал, всё сделал по инструкции.

from yandex_smart_home.

ad avatar ad commented on July 17, 2024

У меня была такая ошибка, решилась ограничением количества типов, доступных для Яндекса:

yandex_smart_home:
  exposed_domains:
    - switch
    - light

from yandex_smart_home.

YaLiC avatar YaLiC commented on July 17, 2024

У меня была такая ошибка, решилась ограничением количества типов, доступных для Яндекса:

yandex_smart_home:
  exposed_domains:
    - switch
    - light

Добавил у себя в конфигурации ещё пункт про "- fan"
Это несколько странно, однако помогло - устройства добавились. Всем спасибо!

from yandex_smart_home.

dmitry-k avatar dmitry-k commented on July 17, 2024

А не пробовали вычислить какое конкретно устройство вызывало проблемы? Я на глаз не вижу ничего подозрительного в вашем devices ответе, но что-то же было причиной.

from yandex_smart_home.

YaLiC avatar YaLiC commented on July 17, 2024

А не пробовали вычислить какое конкретно устройство вызывало проблемы? Я на глаз не вижу ничего подозрительного в вашем devices ответе, но что-то же было причиной.

Сверил выдачи списка устройств до и после правки конфигурации и нашел только один различающийся пункт: {"capabilities": [{"retrievable": true, "type": "devices.capabilities.on_off"}], "id": "media_player.mpd", "name": "MPD", "type": "devices.types.switch"}

Но возможно дело не только в этом, точнее сказать не могу. Я отправлял заявку в техподдержку Яндекса со ссылкой на этот "issues". Может быть они что-то исправили у себя.

from yandex_smart_home.

YaLiC avatar YaLiC commented on July 17, 2024

Моё обращение в тех поддержку:

В документации есть неточность https://tech.yandex.ru/dialogs/alice/doc/smart-home/reference/check-docpage/

Формат запроса платформы умного дома
Получив реплику пользователя (голосовой помощник Алиса) или действие пользователя (ПП), платформа умного дома отправляет запрос на Endpoint URL провайдера (endpoint_url).
HEAD
https://endpoint_url/v1.0

А по факту приходит:

77.88.10.81 - - [29/May/2019:20:55:29 +0700] "POST /api/yandex_smart_home HTTP/1.1" 401 17 "-" "YaAlice/1.0.0.0 Chrome/19.0.1084.5409 Safari/536.5"
77.88.46.154 - - [29/May/2019:20:55:34 +0700] "POST /api/yandex_smart_home HTTP/1.1" 401 17 "-" "YaAlice/1.0.0.0 Chrome/19.0.1084.5409 Safari/536.5"
93.158.158.76 - - [29/May/2019:20:56:30 +0700] "POST /api/yandex_smart_home HTTP/1.1" 401 17 "-" "YaAlice/1.0.0.0 Chrome/19.0.1084.5409 Safari/536.5"
77.88.10.80 - - [29/May/2019:20:56:37 +0700] "POST /api/yandex_smart_home HTTP/1.1" 401 17 "-" "YaAlice/1.0.0.0 Chrome/19.0.1084.5409 Safari/536.5"
93.158.156.97 - - [29/May/2019:20:56:50 +0700] "POST /api/yandex_smart_home HTTP/1.1" 401 17 "-" "YaAlice/1.0.0.0 Chrome/19.0.1084.5409 Safari/536.5"
77.88.46.153 - - [29/May/2019:20:56:50 +0700] "POST /api/yandex_smart_home HTTP/1.1" 401 17 "-" "YaAlice/1.0.0.0 Chrome/19.0.1084.5409 Safari/536.5"
77.88.46.156 - - [29/May/2019:20:57:11 +0700] "POST /api/yandex_smart_home HTTP/1.1" 401 17 "-" "YaAlice/1.0.0.0 Chrome/19.0.1084.5409 Safari/536.5"
77.88.46.155 - - [29/May/2019:20:59:27 +0700] "POST /api/yandex_smart_home HTTP/1.1" 401 17 "-" "YaAlice/1.0.0.0 Chrome/19.0.1084.5409 Safari/536.5"
93.158.158.74 - - [29/May/2019:20:59:38 +0700] "POST /api/yandex_smart_home HTTP/1.1" 401 17 "-" "YaAlice/1.0.0.0 Chrome/19.0.1084.5409 Safari/536.5"
93.158.158.75 - - [29/May/2019:21:00:53 +0700] "POST /api/yandex_smart_home HTTP/1.1" 401 17 "-" "YaAlice/1.0.0.0 Chrome/19.0.1084.5409 Safari/536.5"
77.88.46.154 - - [29/May/2019:21:01:13 +0700] "POST /api/yandex_smart_home HTTP/1.1" 401 17 "-" "YaAlice/1.0.0.0 Chrome/19.0.1084.5409 Safari/536.5"
93.158.156.96 - - [29/May/2019:21:01:35 +0700] "POST /api/yandex_smart_home HTTP/1.1" 401 17 "-" "YaAlice/1.0.0.0 Chrome/19.0.1084.5409 Safari/536.5"

и вот здесь:

Формат ответа провайдера
Провайдер должен ответить на полученный от платформы умного дома запрос согласно формату.
HTTP/1.1 200 OK

На сколько критична версия HTTP? (HTTP/2.0)

Ответ:

Спасибо за замечание, мы обязательно внесем изменения в документацию в ближайшее время.
Что касается версии HTTP, увы, в настоящее время не можем гарантировать корректную работу с 2.0.
... гарантировать не могут, но у меня работает.

Запросы от Яндекса стали приходить нормально:

77.88.46.153 - - [31/May/2019:09:48:13 +0700] "POST /auth/token HTTP/1.1" 200 219 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5409 Safari/536.5"
2a02:6b8:c18:2f87:10e:121:a764:0 - - [31/May/2019:09:48:16 +0700] "POST /api/yandex_smart_home/v1.0/user/devices/action HTTP/2.0" 200 307 "-" "Go-http-client/2.0"
5.255.199.169 - - [31/May/2019:09:48:19 +0700] "POST /api/yandex_smart_home HTTP/1.1" 200 0 "-" "YaAlice/1.0.0.0 Chrome/19.0.1084.5409 Safari/536.5"
2a02:6b8:c0b:2f89:10e:121:b37e:0 - - [31/May/2019:09:48:58 +0700] "GET /api/yandex_smart_home/v1.0/user/devices HTTP/2.0" 200 802 "-" "Go-http-client/2.0"

from yandex_smart_home.

suglosta avatar suglosta commented on July 17, 2024

Столкнулся с такой же проблемой. Умение доступно, объединение акаунтов проходит, а список не обновляется - Что-то пошло не так.
Проверял работу сервиса, шаг за шагом все проверил и ничего не нашел.
И вдруг... обнаружил, что Яндекс не умеет отбрабатывать слеш на конце URL :)
В общем, если вроде все работает, но все равно не работает проверьте, что на конце Endpoint нет слеша.

Endpoint URL | https://[YOUR HOME ASSISTANT URL:PORT]/api/yandex_smart_home
^^^^^

from yandex_smart_home.

varakirill avatar varakirill commented on July 17, 2024

Вчера перестал обновляться список устройств, такая же ошибка "Что-то пошло не так. Попробуйте ещё раз позднее." Отвязывал навык, пересоздавал его, игрался с фильтрами - авторизация успешно проходит, а при обновлении списка устройств все равно ошибка...

from yandex_smart_home.

mSapik avatar mSapik commented on July 17, 2024

Тоже столкнулся с проблемой, не получается обновить список устройств. Изначально все получилось и все управлялось, после обновления HA, привязка слетела, объединить аккаунты получается а при обновлении списка устройств выскакивает "Internal server error". Проверил с endpoint url все впорядке, слэша нет вконце, ограничить список устройств тоже не помогает, оставил только свичи и та же ошибка. Подскажите что можно еще попробовать?

from yandex_smart_home.

alryaz avatar alryaz commented on July 17, 2024

Случайно упомянул тикет, извиняюсь

from yandex_smart_home.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.