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

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

Модератор: immortal

skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

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

Сообщение skysilver » Вт сен 17, 2019 10:06 pm

Обновление. Версия 0.7-beta.
  • Добавлены новые типы устройств - openable (дверь, ворота, окно и т.п.) и openable.curtain (шторы, жалюзи) с возможностью управления голосовыми командами "открой/закрой".
  • Добавлена возможность перевода модуля в автономный режим, при котором модуль переходит в режим "только чтение" и не реагирует на входящие команды управления устройствами (не выполняется запись в свойство объекта, привязанное к умению). Выполняется через настройки модуля, либо через пользовательские функции ReadonlyModeEnable и ReadonlyModeDisable.
Для управления автономным режимом в своих сценариях нужно использовать такие функции модуля:

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

// Активировать режим
include_once (DIR_MODULES . 'yandexhome/yandexhome.class.php');
$yandexhome = new yandexhome();
$yandexhome->ReadonlyModeEnable();

// Деактивировать режим
include_once (DIR_MODULES . 'yandexhome/yandexhome.class.php');
$yandexhome = new yandexhome();
$yandexhome->ReadonlyModeDisable();
К примеру код выключателя в Меню будет выглядеть так:

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

include_once (DIR_MODULES . 'yandexhome/yandexhome.class.php');

$yandexhome = new yandexhome();

if ($params['VALUE'] == 1) {
	$yandexhome->ReadonlyModeEnable();
} else {
	$yandexhome->ReadonlyModeDisable();
}
За это сообщение автора skysilver поблагодарили (всего 4):
Collateral (Ср сен 18, 2019 6:43 am) • cabat (Ср сен 18, 2019 7:01 am) • Mavric (Сб сен 21, 2019 9:13 am) • London (Пт сен 27, 2019 11:10 am)
Рейтинг: 4.65%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
London
Сообщения: 76
Зарегистрирован: Чт фев 07, 2019 12:17 pm
Благодарил (а): 14 раз
Поблагодарили: 45 раз

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

Сообщение London » Пт сен 27, 2019 10:30 am

почему-то, при попытке вкл/выкл из приложения яндекса выходит ошибка "что-то пошло не так. попробуйте позднее ещё раз."
При этом, статус устройства меняется. Если управлять через Алису голосом - ошибок не выдает.
в логах в этот момент вроде бы всё нормально.

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

10:29:19 0.60122700 (2019-09-27_yandexhome.log) POST /modules/yandexhome/smarthome.php/v1.0/user/devices/action 37.9.87.107 <<< {"payload":{"devices":[{"id":"1","capabilities":[{"type":"devices.capabilities.on_off","state":{"instance":"on","value":true}}]}]}}
10:29:19 0.60224400 (2019-09-27_yandexhome.log) Incoming action request for device ID1
10:29:19 0.60259200 (2019-09-27_yandexhome.log) Capabilities type 'on_off', instance 'on', value=true
10:29:19 0.65363800 (2019-09-27_yandexhome.log) Object 'Relay03', property 'status', set value=1
10:29:19 0.65370100 (2019-09-27_yandexhome.log) smarthome.php >>> {"request_id":"d097de65-c900-4f3e-922a-521d046ae88e","payload":{"devices":[{"id":"1","capabilities":[{"type":"on_off","state":{"instance":"on","action_result":{"status":"DONE"}}}]}]}}
10:29:19 0.79073700 (2019-09-27_yandexhome.log) PropertySetHandle for object 'Relay03' and property 'status' and value=1

UPD:
ответил на свой вопрос сам. в ответе type должен быть не on_off, а devices.capabilities.on_off.
Чтобы это было так - в файле yandexhome.class.php на 687 строке надо $type = str_replace(PREFIX_CAPABILITIES, '', $capability['type']); заменить на $type = $capability['type'];
За это сообщение автора London поблагодарил:
dimon90 (Вт окт 01, 2019 8:27 am)
Рейтинг: 1.16%
cabat
Сообщения: 216
Зарегистрирован: Ср май 28, 2014 12:42 pm
Откуда: Санкт-Петерург
Благодарил (а): 76 раз
Поблагодарили: 28 раз

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

Сообщение cabat » Пн сен 30, 2019 4:42 pm

London писал(а):
Пт сен 27, 2019 10:30 am
почему-то, при попытке вкл/выкл из приложения яндекса выходит ошибка "что-то пошло не так. попробуйте позднее ещё раз."
При этом, статус устройства меняется. Если управлять через Алису голосом - ошибок не выдает.
в логах в этот момент вроде бы всё нормально.
Тоже заметил эту проблему, также все работает - и голосом и переключателем, только ругается..
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Пн сен 30, 2019 4:59 pm

Веб сервер апач или нжинкс?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
cabat
Сообщения: 216
Зарегистрирован: Ср май 28, 2014 12:42 pm
Откуда: Санкт-Петерург
Благодарил (а): 76 раз
Поблагодарили: 28 раз

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

Сообщение cabat » Пн сен 30, 2019 5:04 pm

nick7zmail писал(а):
Пн сен 30, 2019 4:59 pm
Веб сервер апач или нжинкс?
Апач, система - официальный образ для RPi2.
Аватара пользователя
dimon90
Сообщения: 1
Зарегистрирован: Ср фев 28, 2018 1:10 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение dimon90 » Вт окт 01, 2019 8:25 am

cabat писал(а):
Пн сен 30, 2019 4:42 pm
London писал(а):
Пт сен 27, 2019 10:30 am
почему-то, при попытке вкл/выкл из приложения яндекса выходит ошибка "что-то пошло не так. попробуйте позднее ещё раз."
При этом, статус устройства меняется. Если управлять через Алису голосом - ошибок не выдает.
в логах в этот момент вроде бы всё нормально.
Тоже заметил эту проблему, также все работает - и голосом и переключателем, только ругается..
Подтверждаю. Та же проблема - Выдает ошибку "что-то пошло не так. попробуйте позднее ещё раз.", но при этом действия отрабатываются. MD на Raspberry Pi.
London писал(а):
Пт сен 27, 2019 10:30 am
Чтобы это было так - в файле yandexhome.class.php на 687 строке надо $type = str_replace(PREFIX_CAPABILITIES, '', $capability['type']); заменить на $type = $capability['type'];
И так же подтверждаю что метод предложенный London работает - ошибка пропала.
cabat
Сообщения: 216
Зарегистрирован: Ср май 28, 2014 12:42 pm
Откуда: Санкт-Петерург
Благодарил (а): 76 раз
Поблагодарили: 28 раз

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

Сообщение cabat » Вт окт 01, 2019 9:23 am

dimon90 писал(а):
Вт окт 01, 2019 8:25 am
Чтобы это было так - в файле yandexhome.class.php на 687 строке надо $type = str_replace(PREFIX_CAPABILITIES, '', $capability['type']); заменить на $type = $capability['type'];
И так же подтверждаю что метод предложенный London работает - ошибка пропала.
Skysilver почему то пока не принимает pull-request от London, хотя вроде видел в чате телеграм по Яндекс.Станции его сообщение, что данное исправление решает проблему..

Update: Skysilver принял pull-request, спасибо!!! :)
London
Сообщения: 76
Зарегистрирован: Чт фев 07, 2019 12:17 pm
Благодарил (а): 14 раз
Поблагодарили: 45 раз

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

Сообщение London » Вт окт 01, 2019 2:05 pm

Да, приняли мой pull-request, проблема уходит после последнего обновления)
Krinopotam
Сообщения: 77
Зарегистрирован: Вт июл 10, 2018 11:38 am
Благодарил (а): 13 раз
Поблагодарили: 33 раза

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

Сообщение Krinopotam » Сб окт 12, 2019 10:28 pm

skysilver писал(а):
Вт сен 17, 2019 10:06 pm
Обновление. Версия 0.7-beta.
  • Добавлены новые типы устройств - openable (дверь, ворота, окно и т.п.) и openable.curtain (шторы, жалюзи) с возможностью управления голосовыми командами "открой/закрой".
При выборе типа устройства openable (дверь, ворота, окно и т.п.) в списке возможностей/умений отсутствует вариант Открой/Закрой.
СпойлерПоказать
2019-10-12.png
2019-10-12.png (143.77 КБ) 3497 просмотров
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Вс окт 13, 2019 1:33 pm

Я думаю метрика там включить/выключить))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить