Home AssistantКліматНалаштування

Налаштовуємо інтеграцію пристроїв Nest в Home Assistant

Трохи більше місяця тому, я робив огляд на розумний термостат Nest Learning Thermostat. Це дуже зручний та корисний девайс, який буде підтримувати комфортну температуру всередині вашого помешкання і при цьому заощадить ваші кошти на опаленні.

Як ви вже знаєте, зараз торгова марка Nest належить корпорації Google, і як, часто буває у великих компаніях, не всі напрямки виробництва встигають за запитами користувачів. А те, що Google частково закрив Nest API стало дуже сумною звісткою для незалежних розробників. Якщо ви користуєтесь додатком Nest, який керує виключно власними пристроями, то, мабуть, звернули увагу, що додаток досить давно не оновлювався. Та й девайсів там не так вже й багато.

На мою думку, будь-кому буде набагато зручніше, коли керування девайсами розумного дому знаходиться в одному додатку. Для себе, в якості основної системи я обрав Home Assistant, адже сюди можна інтегрувати дуже багато пристроїв різних виробників, керувати ними та додавати будь-які алгоритми автоматизації.

Хочу попередити, для того, аби ви отримали доступ до Nest Smart Device Management API вам доведеться заплатити $5. Це одноразовий платіж за доступ до API

Після завершення налаштувань через Home Assistant ви отримаєте доступ до таких сутностей: Climate, Sensor, Camera

Реєстрація доступу пристрою

На цьому етапі ви ввімкнете Nest API та створите облікові дані, що необхідні Home Assistant для обміну інформацією з Nest API.

Створення та налаштування Cloud Project в Cloud Console:

  • Перейдіть до Google Cloud Console.
  • Якщо вперше в консолі, вам потрібно створити новий проект в Google Cloud. Натисніть «Create Project», а потім «New Project».

api project

  • Дайте назву вашому проекту та натисніть Create.
  • Перейдіть до APIs & Services > Library, тут ви зможете ввімкнути API.
  • В полі пошуку введіть «Smart Device management» і натиснвть Enable.

enable sdm api

  • Тепер в полі пошуку бібліотеки API введіть «Cloud Pub/Sub API» і натисніть Enable.

Тепер у вас є проект, що вже готовий до налаштування аутентифікації за допомогою OAuth.

Налаштування OAuth в Cloud Console Consent Screen

В цьому розділі ви налаштуєте OAuth consent screen, він необхідний для надання Home Assistant доступу до вашого проекту.

  • Перейдіть до Google API Console
  • Натисніть OAuth consent screen та почніть налаштовувати його.
  • Виберіть External (це єдиний варіант, якщо ви не є користувачем G-Suite), а потім натисніть Create.

oauth consent create

  • На екрані «App Information» потрібно ввести App name (назву додатку) та User support email, а потім ввести електронну адресу в розділі «Developer contact email». Вони відображаються лише під час проходження процедури OAuth, щоб надати Home Assistant доступ до вашого облікового запису. Натисніть Save and Continue. Не додавайте непотрібну інформацію (наприклад, логотип), щоб уникнути додаткових перевірок з боку Google.
  • На кроці Scopes натисніть Save and Continue
  • На кроці «Test Users» вам потрібно додати свій обліковий запис Google (наприклад, вашу адресу @gmail.com) до списку. Натисніть «Save» у своєму тестовому обліковому записі, а потім «Save and Continue», щоб завершити процес.

oauth consent test users

  • Поверніться до OAuth consent screen і натисніть «Publish App», щоб встановити статус «In Production».

oauth consent production status

  • У попередженні говориться, що ваша програма буде доступна для будь-якого користувача з обліковими записами Google, що ви ввели на екрані інформації про додаток. Це не компрометує ні ваш обліковий запис Google ні ваші дані в Nest.
  • Переконайтеся, що не встановлено статус Testing, інакше ви будете виходити з облікового запису кожні 7 днів.

Налаштування OAuth client_id і client_secret в Cloud Console

Наприкінці цього розділу ви отримаєте client_id і client_secret, які потрібні для подальших кроків.

  • Перейдіть на сторінку Credentials і натисніть Create Credentials

create credentials

  • В випадаючому списку виберіть OAuth client ID

oauth client id

  • Оберіть Desktop App в полі Application type
  • Дайте зрозумілу назву для ваших облікових даних
  • Тепер ви побачите повідомлення, створене клієнтом OAuth. Зверніть увагу на Client ID та Client Secret, вони знадобляться на наступних кроках.

oauth created

Створення доступу до пристрою для project_id в Device Access Console

Тепер, коли у вас налаштовано аутентифікацію, ви створите Nest Device Access Project, який вимагає 5 доларів США. Після завершення у вас буде доступ пристрою до project_id, який необхідний для подальших кроків.

  • Перейдіть на сторінку Device Access Registration. Натисніть кнопку Go to the Device Access Console.
  • Установіть прапорець «Accept the Terms of Service» та натисніть «Continue to Payment», де вам буде необхідно сплатити 5 доларів США.

 

  • Тепер Device Access Console має бути відображена. Натисніть Create project
  • Дайте назву вашому проекту і натисніть Next.

project name

  • Далі вам буде запропоновано ввести OAuth client ID, який ви створили раніше в попередньому розділі. Натисніть «Next».

device access oauth client id

  • Увімкніть «події», натиснувши «Enable and Create project».

enable events

  • Зверніть увагу на Project ID. На даний момент у вас є project_id, client_id і client_secret, які необхідні для Home Assistant.

Налаштування Home Assistant

Тепер у вас є все необхідне для налаштування Nest в Home Assistant. Відкрийте файл configuration.yaml і запис згідно зразку що бачите нижче.

# Example configuration.yaml entry
nest:
  client_id: CLIENT_ID
  client_secret: CLIENT_SECRET
  # "Project ID" in the Device Access Console (not Cloud Project ID!)
  project_id: PROJECT_ID

Обов’язково перезавантажте Home Assistant в розділі «Server Controls».
Open your Home Assistant instance and show your server controls.

Налаштування пристроїв

Після того, як ви додали в configuration.yaml запис про конфігурацію Nest і перезавантажили Home Assistant вам потрібно через інтерфейс користувача додати інтеграцію Nest. Для цього можна скористатися кнопкою «My»:
Open your Home Assistant instance and start setting up a new integration.
Можна те саме зробити вручну:

  1. Перейдіть до інтерфейсу вашого Home Assistant.
  2. На бічній панелі натисніть «Configuration».
  3. У меню конфігурації виберіть: Integrations. (в верії 2021.12 Devices & Services)
  4. У нижньому правому куті натисніть кнопку Add Integration.
  5. Скористайтесь полем пошуку і виберіть «Nest» та далі дотримуйтесь інструкцій.

Налаштування Nest integration проведе вас через етапи авторизації вашого Home Assistant для доступу вашого облікового запису до пристроїв Nest.

Налаштування OAuth для Device Authorization

У цьому розділі ви дозволите Home Assistant отримати доступ до вашого облікового запису, згенерувавши токен аутентифікації.

  • Виберіть OAuth or Apps, оскільки вище, в Google Cloud Console, ми створили облікові дані для комп’ютерних програм.

integration oauth type

  • Натисніть посилання authorize your account

integration link account

  • Відкриється нова вкладка, на якій можна обрати ваш обліковий запис Google. Це має бути той самий обліковий запис розробника, який ви налаштували раніше.
  • Екран дозволів Google Nest дозволить вам обрати, які пристрої налаштувати, і вибирати пристрої з кількох ваших осель. Можливо, ви захочете ввімкнути все, однак ви можете пропустити будь-яку функцію, яку не бажаєте використовувати в вашому Home Assistant.

oauth approve

  • Ви будете перенаправлені на іншу сторінку вибору облікового запису.
  • Ви можете побачити екран попередження про те, що Google не перевірив цю програму, оскільки ви щойно налаштували непідтверджений developer workflow. Натисніть Continue, щоб продовжити.

oauth app verification

  • Потім вам буде запропоновано надати доступ до додаткових дозволів. Натисніть Allow.
  • Підтвердьте, що ви хочете надати постійний доступ для Home Assistant.

oauth confirm

  • Скопіюйте токен

oauth access token

  • Вставте токен в діалогове вікно Home Assistant Link Account Google.

integration access token

  • Наступним кроком є введення Cloud Project ID, щоб отримувати оновлення з ваших пристроїв. Відкрийте Cloud Console і скопіюйте Project ID.

console project_id

Якщо все пройшло добре, ви побачите налаштовану інтеграцію Nest

finished

Використання автоматизації та тригерів

Інтеграція Nest робить доступними тригери пристроїв, та можливість увімкнення автоматизацій в Home Assistant. Щоб отримати повну інформацію, перегляньте посібник із початку роботи з автоматизаціями в Home Assistant.

device triggers

Ви можете використовувати службу nest/set_away_mode, щоб встановити режим «Home» або «Away» :

# Example script to set away, no structure specified so will execute for all
script:
  nest_set_away:
    sequence:
      - service: nest.set_away_mode
        data:
          away_mode: away

Керування термостатом

nest thermostat

Кліматична платформа Nest дозволяє керувати термостатом від Nest. Але зауважте, що через обмеження європейського термостата Nest E інтеграція з Home Assistant для цього термостата неможлива.

Після налаштування інтеграції та додавання картки з термостатом до інтерфейсу Lovelace з’явиться можливість керування вашими Nest девайсами через Home Assistant

nest thermostat

Також, тепер є можливість додавати нові сутності climate в тригерах і автоматизаціях, викликаючи відповідну службу за допомогою раніше створених конфігураційних файлів. Шаблони таких налаштувань можна переглянути в інструментах розробника Home Assistant

nest thermostat developer tools

4 thoughts on “Налаштовуємо інтеграцію пристроїв Nest в Home Assistant

Залишити відповідь