IOT на Raspberry Pi: Установка домашнего помощника и датчика камеры для живого видео

Полный стек IOT, работающий на Raspberry Pi, — это эффективный способ интеграции различных датчиков для автоматизации дома. В прошлых статьях мы узнали, как вручную добавить датчик температуры/влажности в домашнюю сеть. Используя PlatformIO, мы вручную прошиваем датчик, затем выбираем доступную библиотеку для взаимодействия с датчиком и добавляем дополнительные библиотеки для взаимодействия с MQTT и отправки правильно преобразованных данных JSON. Мы имеем полный контроль над всеми этими шагами и можем настроить каждый символ, который выводит датчик. В дополнение к этому ручному способу существуют отличные фреймворки для прошивки и установки утилит на датчики, а также отличные платформы, которые получают доступ к нескольким датчикам и отображают результаты измерений в графическом виде, а также дают вам возможность напрямую взаимодействовать с этими датчиками.

В этой статье вы узнаете, как настроить платформу Home Assistant для доступа к датчику ESP и отображения результатов. Плата ESP32-Cam со встроенной камерой, настроенная и управляемая с помощью ESPHome, будет добавлена в приборную панель Home Assistant.

Техническим контекстом данной статьи является Raspberry Pi Os 2021-05-07m Home Assistant 2021.10 и ESPHome v2021.9.1. Все инструкции должны работать и с более новыми версиями ОС и библиотек.

Эта статья первоначально появилась в моем блоге admantium.com.

Варианты установки Home Assistant

Home Assistant может быть установлен тремя различными способами: В виде полного образа ОС, который вы записываете на SD-карту, в виде собственных программных пакетов, которые могут быть установлены как Core (основные функции) или Supervisord (вложенные функции и разрешения, включая автоматическую установку других пакетов), а также в виде контейнера Docker. Поскольку стек IOT полностью работает с Docker, мы выбираем последний вариант. Однако запуск образа Docker дает меньше возможностей для интеграции всевозможных датчиков. Но если вы хотите добавить распространенные платы и датчики, то этот вариант абсолютно подходит.

Конфигурация и запуск Docker Compose

Добавьте следующий код в ваш файл docker-compose.yml:

home_assistant:
  container_name: home_assistant
  image: ghcr.io/home-assistant/raspberrypi4-homeassistant:stable
  restart: unless-stopped
  privileged: true
  network_mode: host
  ports:
  - "8123:8123"
  volumes:
  - /etc/localtime:/etc/localtime:ro
  - ./volumes/home_assistant:/config
  environment:
    - TZ=Europe/Berlin
Войти в полноэкранный режим Выйти из полноэкранного режима

Следует отметить два момента. Во-первых, убедитесь, что вы используете правильный образ для Raspberry Pi 3 или Raspberry Pi 4. Во-вторых, для запуска на Raspberry Pi контейнеру необходимы опции privileged: true и network_mode: host.

Затем запустите контейнер командой docker-compose up -d home_assistant и следуйте самоочевидным шагам базовой установки, в которых вы настраиваете свою учетную запись. Все опции описаны в официальной документации.

Добавление сущности ESP32-камеры и просмотр в реальном времени

Если вы следовали предыдущей статье о ESPHome, у вас будет полностью настроенная плата ESP32-Cam. Первым шагом на пути к полной интеграции с Home Assistant является добавление нового виджета пользовательского интерфейса, называемого карточками, на приборную панель.

Для этого есть две точки входа. Во-первых, приборная панель должна проинформировать вас о том, что она распознала новую интеграцию. Перейдите в область уведомлений и нажмите на ссылку.

Затем вы должны увидеть интеграцию ESPHome следующим образом.

Отсюда выберите сущность и следуйте описаниям.

Второй способ — начать сверху вниз с приборной панели. Нажмите на три точки в правом верхнем углу, а затем нажмите на Edit Dashboard. Теперь вы увидите новую кнопку + Add Card. Нажмите на нее, выберите вкладку By Entity, и вы должны увидеть камеру, как показано здесь:

Карта должна показывать прямую трансляцию с камеры. Обратите внимание: изображение выглядит неаккуратным, но это ограничение самой платы ESP32-Cam — по моему опыту, она может передавать только до 5FPS. Полностью настроенная плата должна иметь такой код:

type: picture-glance
title: ESP32 Camera
entities:
  - entity: camera.esp32camera
camera_image: camera.esp32camera
camera_view: live
Вход в полноэкранный режим Выход из полноэкранного режима

Добавление фонарика ESP32-Camera в качестве бинарного датчика

Эта функция очень крута — вы можете удаленно активировать фонарик, чтобы осветить область, где находится камера. Эта функция особенно полезна для включения при обнаружении движения, более подробно об этом будет рассказано в следующей статье.

Сначала нам нужно вернуться в панель ESPHome Dashboard и добавить фонарик как новую сущность. На жаргоне ESP Home это бинарный датчик, который может иметь ровно два состояния. Добавьте это в configuration.yml.

light:
  - platform: binary
    output: gpio_4
    name: ESP32 Camera Flashlight

output:
  - platform: gpio
    pin: GPIO4
    id: gpio_4
Войти в полноэкранный режим Выйти из полноэкранного режима

Установите эту новую конфигурацию на плату либо через прямое подключение к Raspberry Pi, на которой все работает, либо как обновление по воздуху.

Вернемся к панели Home Assistant Dashboard, добавим новую карту. В списке сущностей фонарик камеры должен быть распознан, и вы можете добавить новые карты: Переключатель для активации датчика света или большой тумблер лампочки.

После некоторых доработок моя приборная панель выглядит следующим образом.

Сводка

Меня восхищает степень автоматизации и простота перенастройки, которую можно получить с помощью ESPHome и Home Assistant. Добавление виджета приборной панели, показывающего прямую трансляцию с камер, — дело нескольких щелчков мыши. Как только это заработает, добавление новых функций датчиков сводится к тому же процессу: Переконфигурируйте плату/сенсор в ESPHome, обновите узел с помощью установки по воздуху, вернитесь на приборную панель Home Assistant и добавьте новый виджет. Итак: Какие датчики и автоматику вы будете использовать в своей системе домашней автоматизации?

Оцените статью
devanswers.ru
Добавить комментарий