[Забавный проект с открытым исходным кодом] Развертывание системы умного дома HomeAssistant под Docker
[Забавный проект с открытым исходным кодом] Развертывание системы умного дома HomeAssistant под Docker

1. Знакомство с HomeAssistant

1.1 Знакомство с HomeAssistant

Home Assistant — это бесплатная платформа автоматизации умного дома с открытым исходным кодом, которая может управлять и контролировать различные устройства умного дома, датчики и другие устройства IoT. Home Assistant может работать на устройствах с низким энергопотреблением, таких как Raspberry Pi и NVIDIA Jetson Nano, что позволяет пользователям быстро создавать свои собственные системы умного дома. Home Assistant поддерживает сотни устройств и платформ, а также предоставляет пользователям веб-интерфейсы, приложения для Android и iOS и интерфейсы API для управления и мониторинга. Home Assistant также предоставляет мощные функции автоматизации, которые могут автоматически обрабатывать различные домашние сцены, такие как управление освещением, регулировка температуры, мониторинг безопасности и т. д. В общем, Home Assistant — это мощная, но простая в использовании платформа автоматизации умного дома.

1.2 Функции HomeAssistant

Home Assistant — это система автоматизации с открытым исходным кодом, которая предлагает множество функций:

  • Гибкость: Home Assistant поддерживает различные устройства и платформы умного дома, включая Zigbee, Z-Wave, Wi-Fi, RF и т. д., что делает ваш умный дом более гибким.
  • Свобода: Home Assistant имеет открытый исходный код, предоставляющий бесплатную платформу, позволяющую пользователям свободно изменять и настраивать ее.
  • Масштабируемость: Home Assistant поддерживает расширение плагинов, и пользователи могут устанавливать соответствующие плагины по мере необходимости.
  • Безопасность: Home Assistant обеспечивает меры безопасности, включая шифрование SSL/TLS, двухэтапную проверку и т. д., чтобы обеспечить безопасность системы.
  • Мощная автоматизация: Home Assistant предоставляет мощные функции автоматизации, которые могут автоматически выполнять ряд задач в соответствии с потребностями пользователя, например автоматическое включение и выключение света, контроль температуры, мониторинг безопасности и т. д.
  • Поддержка мобильных устройств: Home Assistant предоставляет мобильное приложение для управления домашними устройствами в любое время и в любом месте.
  • Многоязычная поддержка: Home Assistant поддерживает несколько языков, включая английский, китайский, французский и т. д., что позволяет пользователям легко выбирать язык, с которым они знакомы.

2. Знакомство с местной средой

2.1 Планирование местной окружающей среды

Эта практика представляет собой личную тестовую среду, а версия операционной системы — centos7.6.

hostname

IP-адрес

Версия операционной системы

Докер-версия

dokcer

192.168.3.166

centos 7.6

2 20.10.17

2.2 Введение в эту практику

1. Среда развертывания для этой практики — это персональная тестовая среда, будьте осторожны в производственной среде;

2. Система умного дома HomeAssistant в среде Docker.

3. Проверка местной окружающей среды

3.1 Проверка статуса службы Docker

Проверьте, нормально ли работает служба Docker, и убедитесь, что Docker работает нормально.

Язык кода:shell
копировать
[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2023-11-01 16:47:28 CST; 2h 4min ago
     Docs: https://docs.docker.com
 Main PID: 9988 (dockerd)
    Tasks: 22
   Memory: 147.1M
   CGroup: /system.slice/docker.service

3.2 Проверьте версию Docker

Проверьте версию Докера

Язык кода:shell
копировать
[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.3 Проверьте версию Docker Compose

Проверьте версию Docker Compose, чтобы убедиться, что она выше 2.0.

Язык кода:shell
копировать
[root@jeven ~]# docker compose version
Docker Compose version v2.6.0

4. Загрузите образ HomeAssistant.

Извлеките образ HomeAssistant из Docker Hub.

Язык кода:shell
копировать
[root@jeven ~]# docker pull homeassistant/home-assistant:latest
latest: Pulling from homeassistant/home-assistant
a0d0a0d46f8b: Pull complete
d567b0a8a3d8: Pull complete
8e962a5cc883: Pull complete
7a7e58b8c695: Pull complete
3a54af39c26b: Pull complete
22cc6fc9aa0a: Pull complete
5a61d8e557df: Pull complete
c72924640d9e: Pull complete
4e99633ee711: Pull complete
482621e4117c: Pull complete
cad0dcfb7d48: Pull complete
02f62869bfe2: Pull complete
e7abe960e15b: Pull complete
ca147e4c5a90: Pull complete
348313674aef: Pull complete
882bba681f42: Pull complete
fd24487b4af5: Pull complete
d54dbfc3617c: Pull complete
8929cf1cf783: Pull complete
61ec4587fb6b: Pull complete
e6cb8c968c6f: Pull complete
bec28da251c3: Pull complete
4d6fa8a0042f: Pull complete
4e56e5cf2921: Pull complete
c43a64d5c8cb: Pull complete
046e0d768d75: Pull complete
77dbf3cf1171: Pull complete
bd426e9002a0: Pull complete
Digest: sha256:81d381f5008c082a37da97d8b08dd8b358dae7ecf49e62ce3ef1eeaefc4381bb
Status: Downloaded newer image for homeassistant/home-assistant:latest
docker.io/homeassistant/home-assistant:latest

5. Разверните платформу умного дома HomeAssistant.

5.1 Создайте каталог для монтирования

Создать каталог монтирования

Язык кода:shell
копировать
 mkdir -p /data/homeassistant/config && cd /data/homeassistant/

Установите права доступа к каталогу монтирования

Язык кода:shell
копировать
chmod -R 777 /data/homeassistant/

5.2 Создание контейнера HomeAssistant

Используйте docker-cli для быстрого развертывания контейнеров HomeAssistant.

Язык кода:shell
копировать
docker run -d \
--restart always \
--name homeassistant  \
-v /data/homeassistant/config:/config \
-e TZ=Asia/Shanghai   \
-p 8123:8123   \
homeassistant/home-assistant:latest
Вставьте сюда описание изображения
Вставьте сюда описание изображения

Запустите контейнер HomeAssistant с помощью Docker Compose

Язык кода:yaml
копировать
version: '3'
services:
  homeassistant:
    image: homeassistant/home-assistant:latest
    container_name: homeassistant
    restart: always
    volumes:
      - /data/homeassistant/config:/config
    environment:
      - TZ=Asia/Shanghai
    ports:
      - "8123:8123"
  • Создайте докер-контейнер косой черты, используя файл docker-compose.yaml. compose up -d
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

5.3 Проверка статуса контейнера HomeAssistant

Проверьте состояние контейнера HomeAssistant, чтобы убедиться, что контейнер HomeAssistant запускается нормально.

Язык кода:shell
копировать
[root@jeven homeassistant]# docker compose ps
NAME                COMMAND             SERVICE             STATUS              PORTS
homeassistant       "/init"             homeassistant       running             0.0.0.0:8123->8123/tcp, :::8123->8123/tcp

5.4. Проверка журналов контейнера HomeAssistant

Проверьте журнал контейнера HomeAssistant, чтобы убедиться, что служба HomeAssistant работает нормально.

Язык кода:shell
копировать
[root@jeven homeassistant]# docker compose  logs
homeassistant  | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
homeassistant  | [s6-init] ensuring user provided files have correct perms...exited 0.
homeassistant  | [fix-attrs.d] applying ownership & permissions fixes...
homeassistant  | [fix-attrs.d] done.
homeassistant  | [cont-init.d] executing container initialization scripts...
homeassistant  | [cont-init.d] done.
homeassistant  | [services.d] starting services
homeassistant  | [services.d] done.

6. Начальная настройка HomeAssistant

6.1 Установите имя пользователя и пароль

Адрес доступа: http://192.168.3.166:8123/, замените IP-адрес на собственный IP-адрес сервера. Установите имя пользователя и пароль и настройте параметры.

Вставьте сюда описание изображения
Вставьте сюда описание изображения

6.2 Установка основной информации

Задайте имя установки, часовой пояс, валюту и другую информацию и настройте параметры.

Вставьте сюда описание изображения
Вставьте сюда описание изображения

6.3 Сбор информации

Вы можете проверить различные требования к сбору информации. Не проверяйте здесь и выберите «Далее».

Вставьте сюда описание изображения
Вставьте сюда описание изображения

6.4 Завершение первоначальной настройки

Нажмите «Готово», чтобы завершить первоначальную настройку HomeAssistant.

Вставьте сюда описание изображения
Вставьте сюда описание изображения

7. Посетите HomeAssistant.

После завершения инициализации он автоматически перейдет на домашнюю страницу HomeAssistant.

Вставьте сюда описание изображения
Вставьте сюда описание изображения

Я участвую в третьем этапе специального тренировочного лагеря Tencent Technology Creation 2023 с эссе, получившими приз, и сформирую команду, которая разделит приз!

boy illustration
Flask Learning-9. 2 способа включения режима отладки (debug mode).
boy illustration
Руководство по настройке самостоятельного сервера для Eudemons Parlu
boy illustration
40 вопросов для собеседований по SpringBoot, которые необходимо задавать на собеседованиях! При необходимости ответьте на вопросы для собеседования SpringBoot [предлагаемый сборник] [легко понять]
boy illustration
Через два года JVM может быть заменен GraalVM.
boy illustration
Разрешение циклических зависимостей Spring Bean: существует ли неразрешимая циклическая ссылка?
boy illustration
Разница между промежуточным программным обеспечением ASP.NET Core и фильтрами
boy illustration
[Серия Foolish Old Man] Ноябрь 2023 г. Специальная тема Winform Control Элемент управления DataGridView Подробное объяснение
boy illustration
.NET Как загрузить файлы через HttpWebRequest
boy illustration
[Веселый проект Docker] Обновленная версия 2023 года! Создайте эксклюзивный инструмент управления паролями за 10 минут — Vaultwarden
boy illustration
Высокопроизводительная библиотека бревен Golang zap + компонент для резки бревен лесоруба подробное объяснение
boy illustration
Концепция и использование Springboot ConstraintValidator
boy illustration
Новые функции Go 1.23: точная настройка основных библиотек, таких как срезы и синхронизация, значительно улучшающая процесс разработки.
boy illustration
[Весна] Введение и базовое использование AOP в Spring, SpringBoot использует AOP.
boy illustration
Чтобы начать работу с рабочим процессом Flowable, этой статьи достаточно.
boy illustration
Байтовое интервью: как решить проблему с задержкой сообщений MQ?
boy illustration
ASP.NET Core использует функциональные переключатели для управления реализацией доступа по маршрутизации.
boy illustration
[Проблема] Решение Невозможно подключиться к Redis; вложенное исключение — io.lettuce.core.RedisConnectionException.
boy illustration
От теории к практике: проектирование чистой архитектуры в проектах Go
boy illustration
Решение проблемы искажения китайских символов при чтении файлов Net Core.
boy illustration
Реализация легких независимых конвейеров с использованием Brighter
boy illustration
Как удалить и вернуть указанную пару ключ-значение из ассоциативного массива в PHP
boy illustration
Feiniu fnos использует Docker для развертывания учебного пособия по AList
boy illustration
Принципы и практика использования многопоточности в различных версиях .NET.
boy illustration
Как использовать PaddleOCRSharp в рамках .NET
boy illustration
CRUD используется уже два или три года. Как читать исходный код Spring?
boy illustration
Устраните проблему совместимости между версией Spring Boot и Gradle Java: возникла проблема при настройке корневого проекта «demo1» > Не удалось.
boy illustration
Научите вас шаг за шагом, как настроить Nginx.
boy illustration
Это руководство — все, что вам нужно для руководства по автономному развертыванию сервера для проектов Python уровня няни (рекомендуемый сборник).
boy illustration
Не удалось запустить docker.service — Подробное объяснение идеального решения ️
boy illustration
Настройка файлового сервера Samba в системе Linux Centos. Анализ NetBIOS (супер подробно)