Google Home, линейка колонок для умного дома от Google, не имеет надлежащего API. Но бесстрашный разработчик Reddit собрал неофициальную документацию, прослушивая локальный сетевой трафик.
Главная страница Google, растущая линейка динамиков Google с искусственным интеллектом, предлагает множество возможностей для любителей умного дома. Проблема в том, что он закрыт довольно плотно. Когда дело доходит до доступа к данным сигналов тревоги, настройкам, режимам Bluetooth и другой информации на устройстве, у вас есть два варианта: проверить приложение-компаньон Google Home на смартфоне и/или планшете или крикнуть команда. На данный момент у Google Home нет надлежащего API.
Это не остановило бесстрашного разработчика Сабреддит Google Home от того, чтобы собрать его воедино. Реддитор ритвиквибху тщательно отслеживал трафик устройства Google Home и записывал каждый сетевой запрос, сопоставляя результаты в изящной шпаргалке на Github. На данный момент ему удалось идентифицировать локальные команды GET и POST для настроек эквалайзера, параметров устройства, ночного режима и многого другого, а также запросы на подключение, которые возвращают конфигурацию Wi-Fi данного говорящего, поддерживаемый список часовых поясов и языков, а также имена подключенных Bluetooth-устройства.
Это относительно простой процесс. После того, как вы определили IP-адрес вашего динамика Google Home с помощью такого приложения, как Бросок, вы можете выполнять вызовы GET и POST, добавив адрес с URI в документации по локальному API Google Home.
Например, этот URI получает список локальных сигналов тревоги и таймеров на колонке Google Home:
/setup/assistant/alarms
Вот вызов GET (знаки «X» являются заполнителями):
http://192.168.x.x: 8008/setup/assistant/alarms
При переходе по этому адресу на любом устройстве, подключенном к той же сети, что и Google Home, будет возвращен ответ JSON с день, месяц, год и время, когда будет звучать сигнал будильника:
Этот связанный URI возвращает громкость будильника и таймера на колонке Google Home:
/setup/assistant/alarms/volume
Вызов POST возвращает уровень громкости в десятичной форме:
0.8199999928474426
Если вы чувствуете себя смелым, этот URI перезагружается устройство Google Home:
/setup/reboot
Неофициальная документация по локальному API Google Home доступна на сайте Rithvikvibhu. Репозиторий на Гитхабе, а также код, необходимый для его использования. Однако имейте в виду, что это никоим образом не является официальным — не ждите, что API будут вести себя предсказуемо.
Источник: Локальный API Google Home.Источник 2: /r/GoogleHome.