Включение компьютера home assistant

Обновлено: 06.07.2024

Итак, сервер установлен, можно начинать подключать к нему всё, что под руку подвернётся. Но прежде не помешает облегчить себе дальнейшую работу, установив магазин компонентов HACS, удобный редактор конфигураций и немножко допилив интерфейсы.

UPD: немного изменил концепцию разделения конфигурации для удобства работы со встроенными редакторами.

Доработка интерфейса

В первую очередь включим расширенное меню управления сервером. Без расширенного управления меню Настройки - Сервер выглядит так:

Идём в настройки профиля и включаем Расширенный режим:

После этого управление сервером выглядит так:

Кроме этого, добавляется меню Кастомизация, в котором можно будет удобно менять параметры подключенных элементов:

Конфигуратор

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

Переключаемся на пользователя homeassistant:

Переходим в папку установки сервера и активируем виртуальное окружение:

После установки конфигуратора - делаем первый запуск:

И проверяем через браузер, что конфигуратор запустился и работает, заходим на адрес сервера по порту 3218, например:

Видим пустую панель конфигуратора:

Значит всё нормально, останавливаем в консоли службу (Ctrl+C) и добавляем службу в автозапуск.

В первую очередь выходим из виртуального окружения:

Создаём файл для запуска службы:

И вставляем текст:

[Service]
Type=simple
User=homeassistant
WorkingDirectory=/home/homeassistant/.homeassistant
ExecStart=/srv/homeassistant/bin/hass-configurator
Restart=always

Сохраняем (Ctrl+O) и выходим из редактора (Ctrl+X). Обновляем список служб, активируем и запускаем новую службу:

sudo systemctl --system daemon-reload
sudo systemctl enable hass-configurator.service
sudo systemctl start hass-configurator.service

Проверяем, что служба успешно запустилась:

Если видим, что статус active, значит служба успешно создана и запущена:

Теперь для полноценной работы нужно добавить конфигуратор в боковую панель HomeAssistant. Открываем конфигуратор в браузере:

В автозапуске мы уже указали нашу рабочую папку HomeAssistant, поэтому конфигуратор сразу же попадает в неё. Нажимаем на значок папки и выбираем файл configuration.yaml. Там уже присутствуют какие-то базовые настройки, нам же нужно добавить секцию panel_iframe, в которой мы будем перечислять все дополнительные компоненты для боковой панели. Добавим туда конфигуратор и, сразу же, справочник иконок, которыми мы будем пользоваться при добавлении разных датчиков и сенсоров. Внимательно следим за отступами! Язык размети yaml очень чувствителен к уровням вложения параметров (как и язык python). Если где-то отступы будут не на том месте, конфигуратор сообщит об этом красным значком с восклицательным знаком в правом верхнем углу.

Сохраняем изменения кнопкой с дискетой или нажатием Ctrl+S, переходим на страницу HomeAssistant, идём в Настройки - Сервер и проверяем конфигурацию. Если ошибок нет - перезапускаем сервер. После перезагрузки на боковой панели добавились две новые кнопки - Иконки и Конфигуратор.

Прикрепленное изображение

Краткое описание:
Система домашней автоматизации Home Assistant.
Описание:
Home Assistant-это open-source платформа для автоматизации, работающая на Python 3. Позволяет отслеживать и контролировать все устройства в доме и автоматизировать действия. Идеально может работать на одноплатном компьютере Raspberry PI. Так же может работать на платформах Windows, Linux. Интерфейс построен через браузер работа возможно на любом устройстве Android, iOS.

Личный опыт:
Свою домашнюю систему я строю на данной платформе. Уже больше полугода система находится в штатном режиме и все функционирует.

Прикрепленное изображение

Прикрепленное изображение

Причина редактирования: Переменные в скриптах и автоматизациях Приветствую! Тоже начал потихоньку строить умный дом на Orange Pi Zero + Armbian + Home Assistant. Пока добавил просто сенсоры погоды, transmission, cups и две wifi розетки от xiaomi.
Не получается настроить присутствие устройств (членов семьи). Использую компонент device_tracker: Keenetic NDMS2 Routers (У меня Zyxel keenetic lite с прошивкой NDMS 2). Ошибка при загрузке в логе (home-assistant.log):

Denn1982, Приложи файл конфигурации посмотрю что делаешь ни так. У тебя тут жалуется еще на плагин yahoo_finance. В своем случае я настроил с помощью SNMP модуля. HA SNMP

Да не знаю, что тут можно делать не так.
Все как в мануале:

device_tracker:
- platform: keenetic_ndms2
host: !secret router_ip
username: !secret router_username
password: !secret router_password

хост в секретах: 192.168.1.1

Еще тут одна проблема нарисовалась, после некоторого времени невозможно подключиться по ssh к апельсинке, причем HASS работает, но например некоторые выключатели не работают.

device_tracker:
- platform: keenetic_ndms2
host: !secret router_ip
username: !secret router_username
password: !secret router_password
interval_seconds: 10
consider_home: 180
track_new_devices: yes

Так же смотри после запуска в папке появится known_devices.yaml в нем тоже нужно настроить устройства которые будешь отслеживать. Вот мой пример одного из устройств.
bhughes_nexus6:
name: Phone
mac: AC:CF:85:D4:2B:93
icon: mdi:ninja
track: yes
hide_if_away: no В том то и дело, что файл не появляется автоматически, я его пробовал в ручную создавать, но тоже не прокатило. Еще интересно, что когда вставляю эти строчки в configuration.yaml, судя по логу еще и розетки не может найти, хотя в HASS они работают.

А если удалить секцию device_tracker то лог чистый.
UPD: Не, наврал - с розетками все время такая фигня.


И так, принцип работы будет следующий. Esp8266 будет подключена непосредственно к нашей локальной сети по wi-fi. С помощью библиотеки Blynk esp8266 будет постоянно доступна через интернет из любой точки мира. На смартфоне в приложении Blynk мы сделаем кнопку которая будет служить кнопкой включения или кнопкой выключения в зависимости от состояния компьютера. Данная кнопка полностью имитирует физическую кнопку включения компьютера. Имитировать кнопку будет оптопара (в моем случае sharp pc817) .

Схема подключения следующая:


В схеме используется еще резистор на 200Ом, но с ним у меня не корректно работало, так что я его в конечном релизе исключил.

Корпус для устройства я взял из простой коробки для электрических соединений. И выглядеть окончательно собранный вариант стал следующим образом:

А тут собственно начинка того что в коробке:

Как можете увидеть я убрал резистор и заменил его простой перемычкой из провода. В посадочные гнезда садится модуль Esp8266 nodemcu. Что-то я забыл его сфотографировать 🙂

Теперь переходим к самому скетчу:

Тут придумывать ничего не будем, а просто возьмем его из стандартных примеров Blynk. Для этого сначала установим библиотеку Blynk, перейдя в Скетч-> Подключить библиотеку -> Управление библиотеками. И собственно в поиске находим Blynk и устанавливаем его.

Далее идем в Файл-> Примеры-> Blynk->Boards_WiFi-> ESP8266_Standalone


Ну а здесь нам нужно только задать SSID нашей wi-fi сети, пароль от нее и Токен от проекта Blynk который мы создадим далее.

Здесь указываем SSID и пароль.

Ну так как мы не знаем какой у нас токе, теперь зайдем в приложение Blynk. Приложение работает только если мы создадим аккаунт. СОздаем его. После этого Создаем новый проект и просто добавляем туда Кнопку:


В настройках данной кнопки выберем пин GP4 (Он соответствует пину D2, который мы видим на схеме.)



Ну и все. Теперь берем с почты наш токен. Вставляем его в скетч. Заливаем скетч в esp8266. И наслаждаемся работой.

В этом уроке мы познакомимся с Google Home и сделаем так, чтобы с помощью голосовых команд можно было включать и выключать компьютер.

Что такое Google Home?

В начале этого года компания Google реализовала русский язык в своем сервисе Google Assistant, который используется в Google Home.

Из Википедии: Google Home (дословно с англ. — «Google Дом») — беспроводной динамик с голосовым управлением, разработанный в Google. Был представлен 18 мая 2016 года на Google I/O, является первым смарт-динамиком компании. Управление устройством происходит посредством персонального ассистента Google Assistant. Продукт очень похож по своей концепции на Amazon Echo и Apple HomePod и является их прямым конкурентом на рынке смарт-динамиков и персональных помощников. Продажи Google Home начались в США 4 ноября 2016 года по цене $129.


Основных версий устройства две - Google Home и Google Home Mini (на фото выше слева). На этой умной колонке нет привычных элементов управления, а есть только одна кнопка, отключающая микрофон. Сверху расположена сенсорная зона с помощью которой можно регулировать громкость, вызвать ассистента или поставить на паузу музыку. Основное управление осуществляется с помощью голоса.

Также, по слухам, Google удалось договориться с Apple об интеграции Apple Music в Google Home и Google Home Hub. Но все-таки, основные идеи "умного дома" от американского гиганта стали более востребованными, чем прослушивание музыки на этом устройстве.

Перед тем как начать важные замечания:

  1. Обязательно изолируйте все соединения! Можно будет остановиться на 3D-печати, чтобы решить эту проблему.
  2. Если вы подключите питание к кнопке вашего компьютера, вы испортите материнскую плату, поэтому мы используем реле для решения этой проблемы.

Идея проекта

После того как покупаешь Google Home ты начинаешь всё контролировать, например, свет в квартире и т.п. Обычно это происходит из-за лени или экономии времени. Лень идти к выключателю, если ты, например, уже в кровати.

Но в какой-то момент ты можешь обнаружить себя в кровати, но при этом ты забыл выключить компьютер. В такие моменты зарождается идея сделать так, чтобы иметь возможность включать и выключать комп через Google Home.

Готового решения, к сожалению, не было и поэтому пришлось потратить около двух недель, чтобы понять каким образом реализовать данный проект. Само решение ниже.

Что понадобится

Ниже список комплектующих, которые необходимы для реализации такого умного решения через Google Home. Обратите внимание, что мы не используем классический Ардуино.

  1. NodeMCU
  2. Релейный модуль
  3. Макет или печатная плата
  4. Компьютер с программным обеспечением Arduino IDE
  5. Смартфон с приложением Blynk


Настройка приложения Blynk


Этот проект использует библиотеку Blynk и проект IFTTT для подключения к Google. Если вы хотите узнать, что такое Blynk, перейдите по этой ссылке docs.blynk.cc для знакомства с документацией.

Далее следуем шагам со скриншотов выше. Сначала вы должны установить приложение на свой смартфон (1, на скриншоте выше). Когда это приложение установлено, откройте его и создайте учетную запись.

Если приложение спросит к какому серверу вы будете подключаться, выберите стандартный сервер Blynks. Когда ваша учетная запись будет создана, нажмите новый проект. Настройки такие:

  • Project name: name // имя проекта на выбор
  • Choose device: NodeMCU
  • Connection type: WiFi
  • Theme: theme // тема проекта на выбор

Затем создайте проект. Теперь у вас есть большое рабочее пространство и три кнопки сверху. Нажмите на рабочую область, чтобы открыть окно виджета (widget box). Здесь вы должны выбрать кнопку.

Вас автоматически перебросит обратно на рабочую область, и вы сможете увидеть виджет кнопки. Нажмите на виджет, чтобы открыть настройки кнопки. Настройте параметры следующим образом (2):

Когда вы закончите, нажмите кнопку ОК в верхнем правом углу. Снова, нажмите на рабочую область, чтобы открыть окно виджета, и выберите виджет кнопки. Нажмите на виджет, откройте кнопку настройки. Настройте параметры следующим образом (3):

Когда вы закончите, нажмите кнопку ОК в правом верхнем углу. Снова нажмите на рабочую область, чтобы открыть окно виджета, и выберите виджет кнопки. Нажмите на виджет, откройте кнопку настройки. Настройте параметры следующим образом (4):

Когда вы закончите, нажмите кнопку ОК в правом верхнем углу. На этом мы закончили настройку, нажмите на кнопку Настройки (Settings, находится в верхнем правом углу рабочего пространства).

Прокрутите вниз до Auth Token, здесь вы должны нажать E-Mail, и токен будет отправлен на ваш почтовый ящик. Затем нажмите кнопку ОК в верхнем правом углу.

Установка библиотек Arduino



Прежде чем мы начнем программировать NodeMCU, вам нужно программное обеспечение и библиотеки. Разделим этот этап на три шага:

  1. Сначала установите программное обеспечение Arduino IDE.
  2. Затем установите библиотеку NodeMCU. Смотрите видео ниже, либо прочитайте наш материал по этой теме.
  3. Затем установите библиотеку Blynk.

Затем, когда все библиотеки установлены, откройте программное обеспечение Arduino, а затем в верхнем углу перейдите в:

Инструменты -> Плата -> NodeMCU 1.0 (модуль ESP-12E).

У кого английский вариант - переходим сюда:

Tools -> Board -> NodeMCU 1.0 (ESP-12E Module).

Теперь вы можете подключить NodeMCU к компьютеру (с помощью USB-кабеля). Затем откройте окно программы Device Manager и под портами найдите "Silicon Labs" (Рисунок 1 выше).

Затем снова откройте программное обеспечение Arduino и перейдите в:

Tools -> Port -> Com port

Выбор номер порта, соответствующий NodeMCU, Рисунок 2 выше.

Программирование NodeMCU

Теперь мы готовы к программированию NodeMCU. Создайте пустой эскиз Arduino и скопируйте код:

Обратите внимание, что есть три переменные, которые вы должны заполнить:

Строка 7 - Auth Code (код авторизации): замените TOKEN токеном, который был отправлен на ваш E-Mail на одном из шагов выше.
Строка 8 - SSID: замените SSID на свой WiFi SSID.
Строка 9 - Password (пароль): замените PASS своим WiFi-паролем.

Когда вы изменили переменные, вы можете нажать кнопку загрузки в левом углу. Теперь вам нужно просто подождать, пока программа загрузится. Мы закончили с компьютером и теперь готовы начать тестирование.

Макетирования


Теперь мы готовы подключить реле к Arduino. Убедитесь, что вы отключили Arduino, подключая пины. На NodeMCU нам нужны три контакта:

  • Штырь 5 вольт - Vin
  • Штырь заземления - GND
  • Цифровой вывод - D1
  • Подключите контакт Vin к положительной клемме на реле (он, вероятно, будет помечен как VCC или +)
  • Подключите контакт GND к разъему заземления на реле (он, вероятно, будет помечен как GND или -)
  • Подключите контакт D1 к управляющей клемме на реле (он, вероятно, будет помечен как IN)

Теперь вы можете подключить контакты к выходу. Подключите кнопку вашего компьютера к NC (нормально замкнутый или закрытый) и COM (общий).

IFTTT

Теперь мы близки к завершению проекта, но нам нужно еще кое-что - подключение всего к Google Home. Сначала мы идем на сайт:

Кликаем на New applet (Новый апплет). Затем кликаем на +this:


Ищем помощника Google - "Google Assistant":


Выберите триггер "Say a Simple Phrase" (Скажи простую фразу):


Установите фразы как на картинке ниже:


Затем кликните на +that:

Найдите веб-хуки webhooks:



Затем посмотрите IP-адрес (он может отличаться от того, который на изображении, так как он зависит от вашего местоположения):

Затем снова откройте ваш браузер и теперь мы можем настроить апплет Webhook:


Теперь нужно подождать до 24 часов, а затем можно попытаться сообщить Google команду. В основном мы всё сделали, но если вы хотите иметь возможность принудительно отключить его (эмуляция удерживает кнопку нажатой в течение 6 секунд), то Вы должны сделать еще один апплет.

Единственное, что вы меняете, - это фразы и URL-адрес веб-хука:

Дальнейшая реализация проекта может быть сделана на печатной плате и создание для него корпуса, напечатанного на 3D-принтере.

Читайте также: