[Модуль] Yandex Home (yandexhome)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
slgeo
Сообщения: 551
Зарегистрирован: Чт фев 05, 2015 2:35 pm
Откуда: РнД
Благодарил (а): 139 раз
Поблагодарили: 74 раза

Re: [Модуль] Yandex Home (yandexhome)

Сообщение slgeo » Сб фев 12, 2022 1:26 pm

Подскажите, а фразу со строковым параметром никак не переслать в МД?
Raspberry Pi2 Model B + NRF24L01 (MySensors) + 1-Wire + Esp8266 (WiFi-IoT)
CONNECT
Molostov
Сообщения: 50
Зарегистрирован: Пт янв 17, 2014 1:47 am
Откуда: Карпинск, Свердловская область
Благодарил (а): 135 раз
Поблагодарили: 12 раз

Re: [Модуль] Yandex Home (yandexhome)

Сообщение Molostov » Пн фев 21, 2022 10:05 pm

Добрый вечер. А возможно обновить модуль добавив новые метрики для устройств?
Мой пример: Добавляю умные лампы sber через tuya в яндекс через модуль. Для ламп есть из поддерживаемых свойств только яркость, температура белого и цвет, но чтобы переключить на цвет - нужно изменить режим работы (work_mode: white, color, scene, music), также ещё есть сцена (мерцания всякие) и таймер отключения.
mrdenis
Сообщения: 31
Зарегистрирован: Чт мар 19, 2015 7:55 am
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: [Модуль] Yandex Home (yandexhome)

Сообщение mrdenis » Вт фев 22, 2022 3:07 am

mrdenis писал(а):
Пт дек 17, 2021 7:37 am

Заколебался думать :), всю ветку не хватило терпения прочитать (если что извиняюсь:).
Не могу связать аккаунты. Вроде все доступы предоставились, но
после формы аутентификации в модуле Яндекс выдает это:
--------------
Произошла ошибка
Нарушена целостность данных.
56944-2a2e84170c584cff9312527686647408-1639714519
-------------
Пересоздание Диалога не помогло.
В логе модуля вот так:
--------------
11:43:09 0.95481200 GET /modules/yandexhome/authorize.php?state=https%3A%2F%2Fsocial.yandex.ru%2Fbroker2%2Fauthz_in_web%2Fххххххххх%2Fcallback&redirect_uri=https%3A%2F%2Fsocial.yandex.net%2Fbroker%2Fredirect&response_type=code&client_id=ххххххх-ххх 185.19.23.166 <<< []
11:43:18 0.08284700 POST /modules/yandexhome/authorize.php?state=https%3A%2F%2Fsocial.yandex.ru%2Fbroker2%2Fauthz_in_web%2Fххххххххх%2Fcallback&redirect_uri=https%3A%2F%2Fsocial.yandex.net%2Fbroker%2Fredirect&response_type=code&client_id=ххххххх-ххх 185.19.23.166 <<< {"login":"ххх","password":"ххх"}
11:43:20 0.05171800 POST /modules/yandexhome/authorize.php?state=https%3A%2F%2Fsocial.yandex.ru%2Fbroker2%2Fauthz_in_web%2Fххххххххх%2Fcallback&redirect_uri=https%3A%2F%2Fsocial.yandex.net%2Fbroker%2Fredirect&response_type=code&client_id=ххххххх-ххх 185.19.23.166 <<< {"authorized":"yes"}
11:43:20 0.11769700 authorize.php >>> HTTP/1.1 302 Found
Content-Type: application/json
Location: https://social.yandex.net/broker/redire ... 2Fcallback
----------------
Куда еще покопать, чтобы заработало ?

И ЕЩЁ !
Попутно с основным вопросом еще один: все делают сертификаты у операторов, а самоподписанный сертификат это проблема, не будет с ним нормально работать ?
Может конечно у меня проблема из-за этого... Но скорее всего тогда бы и аутентификация в модуле не работала.
Всем спасибо. Все заработало штатно после установки сертификата от Letscrypt. И настройки апача с указанием Цепочки сертификации.. без нее тоже не работает.
Kas-11
Сообщения: 37
Зарегистрирован: Ср апр 26, 2017 11:52 am
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: [Модуль] Yandex Home (yandexhome)

Сообщение Kas-11 » Чт мар 03, 2022 8:53 am

Добрый день!
Помогите связать MJD с Яндексом.
Умный дом работает через keenDNS 4-х уровневый. Из вне захожу по адресу https://xx.xxxx.keenetic.pro/
При настройке навыка указываю:
https://xx.xxxx.keenetic.pro/modules/ya ... rthome.php
https://xx.xxxx.keenetic.pro/modules/ya ... horize.php
https://xx.xxxx.keenetic.pro/modules/ya ... /token.php
При тестировании нажимаю + далее Привязать к Яндексу просит Предоставить доступ для Yandex Home? нажимаю Предоставить.
Появляется надпись

Произошла ошибка
Произошла ошибка в процессе получения данных от сервиса

33394-545cbda5f7654391a60f91881b03ad59-1646286686

В настройки nginx внес

listen 443 default_server;
listen [::]:443 default_server;
и это
location /modules/yandexhome {
allow all;
auth_basic off;
}

Подскажите как это исправить?

В логах это.

2022/03/04 09:11:32 [error] 5229#5229: *691822 FastCGI sent in stderr: "PHP message: PHP Notice: Trying to access array offset on value of type null in /var/www/html/lib/errors.class.php on line 116" while reading response header from upstream, client: 192.168.1.125, server: _, request: "POST /modules/yandexhome/authorize.php?state=https%3A%2F%2Fsocial.yandex.ru%2Fbroker2%2Fauthz_in_web%2F0fb9c8c94f6b4dba92740f9f60b462e8%2Fcallback&redirect_uri=https%3A%2F%2Fsocial.yandex.net%2Fbroker%2Fredirect&response_type=code&client_id=15602c8af47c-4a4e89d7 HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.4-fpm.sock:", host: "192.168.1.10"
V.A.S.t
Сообщения: 258
Зарегистрирован: Сб май 11, 2019 6:35 pm
Откуда: Иркутск
Благодарил (а): 15 раз
Поблагодарили: 58 раз

Re: [Модуль] Yandex Home (yandexhome)

Сообщение V.A.S.t » Пт мар 04, 2022 3:28 pm

Он не понимает, что ему делать с PHP. Я недавно писал, как прокинуть отдельные файлы без авторизации. Правда не учел в настройках, что SSL идет от Кинетика, а не напрямую, как идет у меня. Поэтому работоспособность с Яндексом не тестировал. Тестировал только доступность извне. Но там, наверно, достаточно просто прописать настройки SSL как у тебя:

Код: Выделить всё

listen 443;
listen [::]:443;
https://mjdm.ru/forum/viewtopic.php?f=30&t=6589#p130593
Ну и попробуй попереходить по своим адресам https://xx.xxxx.keenetic.pro/modules/ya ... rthome.php из браузера и погляди, отвечают ли?
Kas-11
Сообщения: 37
Зарегистрирован: Ср апр 26, 2017 11:52 am
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: [Модуль] Yandex Home (yandexhome)

Сообщение Kas-11 » Пт мар 04, 2022 7:42 pm

https://xx.xxx.keenetic.pro/modules/yan ... /token.php
{"error":"invalid_request","error_description":"The request method must be POST when requesting an access token","error_uri":"http:\/\/tools.ietf.org\/html\/rfc6749#section-3.2"}
https://xx.xxx.keenetic.pro/modules/yan ... thome.php/
{"success":false,"message":"Access is denied."}
https://xx.xxx.keenetic.pro/modules/yan ... horize.php
{"error":"invalid_client","error_description":"No client id supplied"}

V.A.S.t - сделал свой конфиг как по вашей ссылке.
Все равно такая же ошибка
V.A.S.t
Сообщения: 258
Зарегистрирован: Сб май 11, 2019 6:35 pm
Откуда: Иркутск
Благодарил (а): 15 раз
Поблагодарили: 58 раз

Re: [Модуль] Yandex Home (yandexhome)

Сообщение V.A.S.t » Пн мар 07, 2022 4:40 am

Судя по ответам, файлы доступны (вы же проверяли с телефона с отключенным WiFi?). А если файлы доступны, то проблема скорее всего кроется в сертификате SSL. Яндекс очень придирчиво относится к сертификатам, и если браузер его может пропустить не посчитав ошибкой отсутствие чего-то в цепочке, то Яндекс такое не пропустит. Сертификат Кинетик получает сам и проблема может крыться при перенаправлении запросов.
utax
Сообщения: 118
Зарегистрирован: Пт май 31, 2019 8:24 am
Благодарил (а): 28 раз
Поблагодарили: 3 раза

Re: [Модуль] Yandex Home (yandexhome)

Сообщение utax » Чт мар 31, 2022 12:17 pm

Molostov писал(а):
Пн фев 21, 2022 10:05 pm
Добрый вечер. А возможно обновить модуль добавив новые метрики для устройств?
Мой пример: Добавляю умные лампы sber через tuya в яндекс через модуль. Для ламп есть из поддерживаемых свойств только яркость, температура белого и цвет, но чтобы переключить на цвет - нужно изменить режим работы (work_mode: white, color, scene, music), также ещё есть сцена (мерцания всякие) и таймер отключения.
Посмотрите как я пример привел для пылесоса 10 сообщений назад. Каки нафиг каналы могут быть у пылесоса, а я по этим каналам сделал зональную уборку путем вызова метода, также можно и вызвать сценарий любой наверное. У пылесоса там тоже умения только вкл выкл пылесось не пылесось.
Jon811
Сообщения: 52
Зарегистрирован: Пт мар 29, 2019 4:31 pm
Благодарил (а): 8 раз
Поблагодарили: 0

Re: [Модуль] Yandex Home (yandexhome)

Сообщение Jon811 » Чт июн 16, 2022 11:26 pm

Всем доброго дня.
Там в Яндексе завезли POST для состояний устройств и историю.
У ТП спросил про историю:
Добрый день. Где есть описание API по истории свойств (датчик температуры например). В приложении есть, а как передавать не понятно.
Ответ:
Здравствуйте!
Необходимую вам информацию по данному вопросу можно найти на этой странице документации.
Вопрос: Я правильно понимаю, что данные, отправленные таким методом хранится на сервере Яндекса и потом выдаётся при запросе в приложении? Мой сервер не должен отправлять данные истории?
Ответ:
Всё верно.
История показаний датчиков формируется на стороне серверов Яндекса, но лишь для тех датчиков, которые поддержаны корректно.
Для того, чтобы у датчика отображалась история показаний, необходимо указать в настройках навыка параметр reportable со значение true:
https://yandex.ru/dev/dialogs/smart-hom ... parameters.
Сможете добавить в модуль?
Аватара пользователя
Goloda
Сообщения: 22
Зарегистрирован: Пн июн 25, 2018 3:15 pm
Благодарил (а): 8 раз
Поблагодарили: 0

Re: [Модуль] Yandex Home (yandexhome)

Сообщение Goloda » Ср авг 03, 2022 4:29 pm

Добрый день! Подскажите как опубликовать вебхук! Может ли кто объяснить как это сделать.
Ответить