Учебное пособие по Home Assistant: доступ извне
Ранее мы создали нашу установка ОС Home Assistant на Raspberry Pi et манипулировал интерфейсом Home Assistant а также установили наше первое дополнение, Редактор файлов. Сегодня мы повторим акцию сустановка дополнения Duck DNS. Этот плагин позволит нам получить доступ к Home Assistant извне, а также подготовить нашу систему к интегрировать Amazon Alexa.
Это руководство может показаться немного более сложным, но не волнуйтесь, я проделаю разные шаги, чтобы вы никого не потеряли. Если у вас есть какие-либо вопросы или проблемы, пожалуйста, оставьте комментарий или задайте вопрос наша группа в фейсбуке, Alexians с радостью вам поможет.
Duck DNS — это бесплатный и безопасный инструмент позволяя вам получить доступ к вашему экземпляру Home Assistant из любого подключения к Интернету.
Коротко про синтаксис
Обратите внимание на оформление, в шаблонах могут использоваться строки с разным обрамлением:
- > — Expressions (выражения), эти конструкции после вычисления возвращают какой-то объект.
Пример: > вернет номер текущей недели.
А > — атрибут brightness (яркость) лампы. - — Statements (не знаю как правильно перевести), в этих конструкциях размещается все то, что содержит в себе какую-то «логику»: переменные, проверки ifelse, циклы и т.д.
Пример: Никого нет вернет текст «Никого нет» если стейт у группы group.family_persons равен not_home.
По умолчанию, каждая строка шаблона на выходе будет оканчиваться символом новой строки «n».
Причем даже те строки, которые ничего не выводят (например, объявление переменной — ).
Об этом необходимо помнить и учитывать при составлении темплейта.
К примеру, если шаблон используется для вывода чего-либо на экран, можно потратить уйму времени в борьбе с лишними пустыми строками на выходе.
Для управления этим поведением в jinja2 существует специальный механизм:
- > или знак минуса в левой части уберет символ новой строки до текущей.
- > или знак минуса в правой части уберет символ новой строки после текущей.
Помимо этого, стоит уделить время ресурсу yaml-multiline.info, на котором можно наглядно разобраться с вопросом форматирования и переноса строк в YAML’е (символы |, > и т.д.), это бывает полезно при форматировании многострочных шаблонов.
Отдельно стоит упомянуть о том, какие операторы можно использовать в шаблонах.
Полную информацию об этом стоит искать в документации на jinja, а вкратце это:
-
(сложение, вычитание, умножение и т.д.) (больше, меньше, равно и т.д.) (и, или, не)
Помимо этого, в выражениях можно использовать фильтры jinja и HA, передавая значения в них через символ «|».
Пример: ((states(‘sensor.0x158d0003230618_pressure’) | float) / 1.333) | round(2)
Важные моменты в документации, на которые стоит обратить особое внимание:
- 4 Важных правила написания шаблонов записи объектов, имена которых начинаются с чисел операторов в шаблонах
Установка
Платформа поддерживает несколько вариантов установки:
- HA Operating System. Устанавливает Home Assistant как ОС для работы в задачах домашней автоматизации. Включает ядро, функционал Supervisor для управления последним, набор предустановленных плагинов для интеграции устройств и обращения к сервисам. На официальном сайте указан как рекомендуемый метод, который подходит как для старта работы, так и для решения задач home automation. Главным плюсом является простота развертывания системы.
- HA Core. Ручная установка ядра с использованием виртуального окружения Python (подходит для опытных пользователей). Полный доступо к платформе, требует минимальных знаний об ОС и умения работать с окружением Python и командной строкой.
- HA Supervised. Установка ядра платформы с функционалом Supervisor в ручном режиме (подходит для опытных пользователей). В результате такой вариант предоставляет самый полный контроль над системой, но в этом случае работает только с клонами Linux, кроме того, требуется от пользователя быть с данной операционной системой на «ты».
- HA Container. Установка ядра Home Assistant с использованием механизма контейнеров (например, Docker). Преимущество данного варианта установки – это надежность, быстрое развертывание, перенос на другие устройства без значительных проблем. Из минусов следует отметить, что есть необходимость уметь использовать Docker, что доступно далеко не каждому рядовому пользователю.
Установку можно произвести на микрокомпьютеры:
Установка возможна в любом из вариантов. Хороший выбор – работа ОС HA Operating System на одноплатных микрокомпьютерах. Для установки достаточно развернуть образ системы на microSD карте. За счет установленного набора add-on устройство превращается в полноценный сервер УД и хаб для подключения устройств различных стандартов. Связь осуществляется через контакты портов ввода/вывода и интерфейсы USB, Ethernet, BlueTooth, Wi-Fi. Кроме того, поддерживается работа через шлюзы/хабы большинства производителей.
К сведению! За счет значительного количества операций чтения/записи, ресурса microSD карты хватает на 6-8 месяцев полноценной работы, после чего накопитель требует замены. Чтобы не восстанавливать систему из резервной копии (хотя на это и требуется не более 1 часа времени) стоит воспользоваться альтернативным вариантом – жестким диском или SSD-накопителем, подключенными по USB или ограничить запись протоколируемых в history событий.
Возможно развертывание системы на компьютерах и серверах под управлением
При этом установка HA Operating System производится на выделенные виртуальные машины (необходима установка соответствующего софта)
Установку ядра производят в Docker (на Linux) или виртуальном окружении Python (для всех поддерживаемых платформ, требуется установка Python 3/8 для последних версий HA).
Настройка системы
Главное преимущество HA — простая настройка и конфигурирование. Главное отличие Home Assistant от других аналогов — нет необходимости постоянно обращаться к командной строке, чтобы изменить конфигурацию.
Системы сохраняют конфигурацию в файле формата «YAML». Такой тип файлов можно просто редактировать в текстовых редакторах, а внесенные изменения вступают в силу сразу после перезагрузки настроек в web-интерфейсе в пункте «Configuration — General».
Раздел 1 – Установка Debian
1.1) Начните с загрузки debian-live-11.2.0-amd64-standard.iso ЗДЕСЬ .
Полный образ Debain со всеми драйверами, скачайте debian-11.2.0-amd64-DVD-1.iso ЗДЕСЬ
1.2) Во время загрузки Debian вам понадобятся некоторые другие программы, которые помогут с настройкой и установкой. Чтобы записать ISO-образ Debian на флэш-накопитель USB, вы будете использовать программу под названием Rufus, которую можно скачать ЗДЕСЬ.
1
.3) Теперь вы создадите загрузочный USB-накопитель с помощью Rufus и загруженного образа Debian. Вставьте пустой USB-накопитель объемом не менее 8 ГБ в свой компьютер, откройте Rufus и выберите USB-накопитель в раскрывающемся меню. Теперь выберите загруженный ISO-образ Debian и нажмите кнопку Пуск. Если вы получите какие-либо подсказки, выберите » ОК » или «Да», чтобы продолжить. Когда это будет завершено, вы сможете двигаться дальше.
1.4) Вставьте только что созданный USB-накопитель в новую машину, подключите монитор, кабель Ethernet, клавиатуру и мышь и включите машину. Вам нужно будет выбрать USB-накопитель в качестве загрузочного устройства, для этого вам нужно будет нажать что-то вроде F12 или DEL на клавиатуре сразу же после включения компьютера.
1.5) Первый экран, который вы должны выбрать, — это Main Menu (Главное меню), на этом экране выберите Graphical Debian Installer (Графический установщик Debian)
1.6) Следующим будет язык (Language). Выберите свой язык и нажмите «Продолжить».
1.7) Далее будет указано ваше местоположение (Select your location). Выберите свою страну и нажмите «Продолжить».
1.8) Далее будет выполнена настройка клавиатуры (Configure the keyboard). Выберите тип клавиатуры и нажмите «Продолжить». Установщик теперь будет выполнять некоторые автоматизированные задачи, которые займут 1-2 минуты.
Из перечня выберите клавиатурную комбинацию или клавишу, с помощью которой вы станете переключаться между раскладками клавиатуры. Удобными считаются:
- Правая клавиша «Alt».
- Сочетание «Alt и Shift».
При выборе «Alt и Shift», сочетание не сможет использоваться в программах для других задач.
1.9) Далее будет выполнена настройка сети (Configure the network). Здесь вы можете назвать свою машину, имя по умолчанию будет debian . Выберите имя и нажмите «Продолжить». Вы можете пропустить следующую страницу, нажав кнопку Продолжить, так как вам не нужно устанавливать доменное имя.
1.10) Далее будут настроены пользователи и пароли (Set up users and passwords). Вам будет предложено создать пароль для пользователя root. Запишите пароль, который вы выбрали здесь, и нажмите «Продолжить».
Создайте пароль root:
- Предназначен для задач администрирования системы.
- Может включать в себя знаки препинания, цифры и латинские буквы.
- Необходимо периодически менять.
- Поле нельзя оставить пустым.
Повторите его в дополнительном поле.
1.11) Далее снова будут настроены пользователи и пароли (Set up users and passwords). Введите имя пользователя, нажмите «Продолжить» и на следующем экране введите пароль для этой учетной записи пользователя. Запишите и то, и другое, они вам понадобятся позже.
Дайте имя пользовательской учетной записи:
- Используется вместо учетной записи root для действий, не связанных с администрированием.
- Указывается в поле «От кого» отправляемых писем.
- Используется всеми программами, которым необходимо реальное имя пользователя ПК.
- Укажите имя пользователя, под которым будете известны системе.
1.12) Далее будет произведена настройка часов. Выберите правильный часовой пояс и нажмите кнопку Продолжить.
1.13) Далее будут диски разделов (Partition Disks). Выберите «Управляемое использование всего диска» (Guided — use entire disk) и нажмите «Продолжить». На следующем экране убедитесь, что выбран правильный диск, и нажмите кнопку Продолжить. На следующем экране выберите Все файлы в одном разделе (All files in one partition) и нажмите кнопку Продолжить. На следующем экране убедитесь, что выбран параметр «Завершить разбиение на разделы и записать изменения на диск» (Finish partitioning and write changes to disk), и нажмите кнопку Продолжить. На следующем экране выберите Да (Yes) и нажмите кнопку Продолжить. Теперь установщик будет выполнять некоторые автоматизированные задачи. Это займет 1-2 минуты.
На экране отобразится перечень изменений, которые будут записаны на диски. Вы можете выбрать:
- «Нет» и вернуться к ручной разметке.
- «Да» и продолжить установку системы.
Рассматриваю второй вариант.
Дождитесь завершения установки базовой системы.
1.14) Далее будет настроена настройка менеджера пакетов (Configure the package manager). Выберите » Да » (Yes) и нажмите «Продолжить». Выберите свою страну и нажмите «Продолжить». Вы можете оставить выбор по умолчанию deb.debian.org 47 выбрано или выберите другое зеркало по вашему выбору и нажмите кнопку Продолжить. Оставьте следующую страницу пустой и нажмите кнопку Продолжить. Теперь установщик будет выполнять некоторые автоматизированные задачи. Это займет несколько минут.
Из списка выберите зеркало архива Debian в ближайшей к вам сети.
«deb.debian.org» — оптимальный выбор в случаях, когда нет точного знания о том, с каким зеркалом связь лучше.
Укажите HTTP-прокси, если необходимо. Если такой необходимости нет, оставьте поле пустым и перейдите к следующему шагу.
Дождитесь завершения автоматической настройки менеджера пакетов.
А также выбора и установки ПО.
1.15) Далее будет установлен загрузчик GRUB (Install the GRUB bootloader). Выберите » Да » (Yes) и нажмите «Продолжить». Теперь выберите диск, на который вы устанавливаете Debian, и нажмите продолжить. Теперь установщик будет выполнять некоторые автоматизированные задачи. Это займет 1-2 минуты, а затем установка будет завершена.
Подтвердите установку системного загрузчика на выбранный диск.
Автоматическая установка загрузчика на жесткий диск.
После сообщения о завершении установки отключите загрузочную флешку от USB-разъема ПК.
1.16) В Debian ваш пользователь не будет членом группы sudo, поэтому не сможет выполнять административные команды. После перезагрузки системы войдите в систему как пользователь root и введите пароль, установленный на шаге 1.10. Чтобы добавить пользователя в группу sudo, введите эту команду и нажмите Enter.
где имя пользователя-это то, которое вы настроили во время шага 1.11
1.17) Выйдите из учетной записи root, нажав ctrl-d на клавиатуре, а затем войдите на компьютер, используя имя пользователя и пароль, которые вы создали на шаге 1.11.
1.18) Как только это будет завершено, вам нужно будет найти IP-адрес машины. Вы можете сделать это, проверив свой маршрутизатор или введя эту команду в терминал.
Теперь вы должны увидеть некоторую информацию на экране, отображающую конфигурацию сети. Вы ищете информацию , например inet 192.168.1.150/24 , или, inet 10.1.1.50/24 в зависимости от настроек вашей сети. Это IP-адрес машины, и теперь вы можете использовать его для подключения к машине с другого компьютера с помощью программы lite Putty. Информация о том, как это сделать, приведена на шаге 3.3 ниже.
SmartThings
Создайте умный дом, используя свой смартфон. SmartThings предлагает безопасность, душевное спокойствие, экономию и безграничные возможности, позволяя вам контролировать и контролировать свой дом с ладони. Как показано в Wired, CNN, ABC News и других…
Бесплатно Windows Phone Android Tablet iPhone Android
Электрические щиты и контроллер
Поскольку слово «щитовая» в однокомнатной квартире звучит смешно — все щиты установлены в коридоре за деревянными дверцами, оформленными в общем стиле квартиры столяром.
Щит №1. Силовой: здесь рубильник, устройство защиты, контактор, дифавтоматы на 1 din. Внутренности этого щита были на фото выше
Ящики с оборудованием — самая важная для меня часть квартиры. Здесь сосредоточена вся силовая часть электрики и автоматики. Всё вписано в 3 электрических щита на 54 модуля, которые закрываются деревянными дверцами. Когда деревянные дверцы открываются становятся видны металлические ящики, каждый из которых подписан.
Щит №2. Здесь силовая часть автоматики и звонок, используемый как входной
Первый шкаф силовой — сюда приходит кабель от счетчика. Счётчик электроэнергии заменен на цифровой, но оставлен на штатном месте рядом с дверью.
Во втором щите выполнена разводка силовой части многофункционального контроллера MegaD из Самары. Несколько лет назад этот контроллер имел открытую прошивку и теоретически каждый мог используя физические компоненты собрать себе такое же по функционалу устройство самостоятельно. Но последние годы прошивка не раскрывается и можно купить только изделие заводского изготовления.
Поддержка продукта осуществляется, в основном, на форуме устройства. Я говорил, что если вы впервые слышите про это устройство, то несмотря на низкую цену, чтобы разобраться с ним вам придется потратить множество времени?
Щит №3. Сюда приходят кабели со всех датчиков.
Третий щит — место сведения кабелей со всех датчиков к исполнительному контроллеру из Самары.
Все заточено под управление одной рукой
Согласитесь, вдумчиво и вальяжно приложение для умного дома вы будете использовать только первый раз во время настройки. В дальнейшем программа будет выступать в роли пульта дистанционного управления.
Чем быстрее и проще будет управление, тем лучше. Именно по такому принципу и создавалось приложение Sprut.home.
Переключение между комнатами или домами это простая прокрутка списка в виде вертикальной карусели. Остановил палец на нужной комнате и сразу можно управлять гаджетами.
Почти все иконки и переключатели оказываются в зоне досягаемости большого пальца при хвате iPhone одной рукой, никакой удобный доступ здесь не нужен.
А как же здорово выглядят и работают колесики регулировки яркости/громкости/температуры. Есть виброотклик и кинетическая прокрутка, все выполнено по заветам Apple.
Меню включения, изменения яркости, цвета или режимов работы выполнены в едином и понятном для пользователя стиле.
Заключение
В этом руководстве мы показали как создать IP-камеру с использованием простого веб-сервера трансляции потокового видео на основе платы ESP32-CAM. Созданный веб-сервер можно легко интегрировать с платформой автоматизации дома, такой как Node-RED или Home Assistant.
Самые популярные материалы в блоге
За все время
За сегодня
Вольтик — это слаженная команда амбициозных и заядлых инженеров. Мы создали этот проект с целью вовлечения вас, талантливых и начинающих профессионалов, в увлекательный мир мейкерской микроэлектроники!
32 комментария . Оставить новый
Когда воруете статью, принято указывать автора и источник.
Здравствуйте! Мы не воруем чужие материалы. Данную статью написал один из наших авторов
Ну хоть картинки бы поменяли…
Здравствуйте! С каких на какие? Это персональная статья одного из наших авторов
А эти ребята randomnerdtutorials.com/esp32-cam-video-streaming-web-server-camera-home-assistant/ статью вашего автора украли? Вы их пожурите, если что. Много пользуюсь материалами с их сервиса? Если Ваши оригинальные, а они у вас воруют, то лучше пользоваться вашими?
Мы разберемся в ситуации. Спасибо!
Очень блин практично при каждом подключении ip по uart получать
Здравствуйте, как реализовать защиту ну что бы пароль спрашивал при удаленном подключении. Без Home Assistant а напрямую через браузер
f(psramFound()) config.frame_size = FRAMESIZE_UXGA;
config.jpeg_quality = 10;
config.fb_count = 2;
> else config.frame_size = FRAMESIZE_SVGA;
config.jpeg_quality = 12;
config.fb_count = 1;
Здравствуйте – разясните как поменять количество качество видео
параметр – 10 и 12 это частота кадров ?
первый раз залил норм и все работало решил сменить точку доступа ((( и ппц #include “dl_lib.h” =====что это за библиотеки ?? к чему они .? на них ругается
Была похожая проблема, удалил версию 1.0.4 и понизил до 1.0.2, компилируется без ошибок и на “dl_lib.h” не ругается.
Берите скетч у автора randomnerdtutorials.com/esp32-cam-video-streaming-web-server-camera-home-assistant/ и будет вам счастье!
Комментарии от сюда нещадно удаляются, подскажите, где еще можно обсудить данный скетч?
Здравствуйте! Мы лишь удалили ваш комментарий касательно беспочвенного обвинения нас в воровстве статьи. Данная статья не украдена у автора, а лишь является переводом с оригинала, о чем написано в конце материала.
Доброго времени суток.
Windows XP SP3
Arduino 1.8.7
esp32 by Espressif Systems версия 1.0.2
При компиляции выдаёт вот такую ошибку.
In file included from C:Documents and Settingsrgeorg999Local SettingsApplication DataArduino15packagesesp32hardwareesp321.0.2librariesWiFisrc/WiFiGeneric.h:28:0,
from C:Documents and Settingsrgeorg999Local SettingsApplication DataArduino15packagesesp32hardwareesp321.0.2librariesWiFisrc/WiFiSTA.h:28,
from C:Documents and Settingsrgeorg999Local SettingsApplication DataArduino15packagesesp32hardwareesp321.0.2librariesWiFisrc/WiFi.h:32,
c:documents and settingsrgeorg999local settingsapplication dataarduino15packagesesp32toolsxtensa-esp32-elf-gcc1.22.0-80-g6c4433a-5.2.0xtensa-esp32-elfincludec++5.2.0functional:48:28: fatal error: bits/c++config.h: No such file or directory
Несколько библиотек найдено для “WiFi.h”
Используется: C:Documents and Settingsrgeorg999Local SettingsApplication DataArduino15packagesesp32hardwareesp321.0.2librariesWiFi
Не используется: C:Program FilesArduinolibrariesWiFi
exit status 1
Ошибка компиляции для платы ESP32 Wrover Module.
не пинайте сильно я только начинаю познавать Arduino.
заранее благодарен за любую помощь.
Не хватает установленных библиотек. Проверьте ещё раз, корректно ли они подключены и есть ли в путях к файлами, описанных в ошибке
Такая же ошибка при компиляции скетча. Из ардуиновской библиотеки компилируется-прошивается, а когда предложенный скетч помещаю в директорию C:Users***DocumentsArduinolibraries получаю «Ошибка компиляции для платы ESP32 Wrover Module»
Библиотека esp32 обновлена до версии 1.0.4
Все прекрасно, но не секюрно хардкодить пароль от сетки.
Разломают камеру, вытащат и придется менять пароль – геморно.
Привет всем читающим и знающим!))Задолбался я с модулем ESP32-CAM (((( не хочет показывать видео хоть убейся, всё перепробовал, что мог…Поток в мониторе порта вижу, даже изменение данных заметно при закрытии пальцем объектива камеры, данные идут, в браузерах картинки нет. По потребляемому току тоже видно, что камера включается, ток со 120mA увеличивается до 200-220. Кнопка Старт в браузере не включается, смог включить только в браузере телефона но и там нет видео, кружок с крестиком. Скачал Tims_IP_Camera_Viewer, выставил IP в настройка, чек статус проходит, но и опять картинки нет. Ума не приложу, как ещё можно запустить это чудо узкоглазой техники
Добрый день! Вопрос: залил скетч ESP32MailClient по отправке фото на емелю. Не могу добиться полной яркости при съёмке от встроенного светодиода…Может кто подскажет? Если нужно, выложу скетч.
Выкладывайте скетч, может что сможем посоветовать
Спасибо, что не отказали в помощи! Пока ждал проверку и отправку сообщения сам разобрался ))))
А сто было, у меня такое сейчас?
Здравствуйте! Подскажите есть ли разница между модулями ESP-32 espressif и ESP-32 Thinker, нужно ли, что то менять в скече?
Здравствуйте! Сравните распиновку, возможно она отличается у двух данных модулей. Ai-thinker, как правило, не делает ее как у официального модуля.
Доброго времени суток! Попытался самостоятельно прошить ESP32CAM, но ничего не выходит, при компиляции скетча выдает ошибку:
Arduino: 1.8.16 (Windows 7), Плата:”ESP32 Wrover Module, Huge APP (3MB No OTA/1MB SPIFFS), QIO, 80MHz, 256000, None”
web_cam:27:20: fatal error: dl_lib.h: No such file or directory
dl_lib.h: No such file or directory
Какие файлы отсутствуют? Что сделать для успешной прошивки? Спасибо.
Удали, в новых версиях ардуино она не используется, у меня прошилось, хоть я и столкнулся с такой же проблемой
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
Проблема при загрузке, может ли она возникнуть из-за отсутствия SD карты?
Воспроизвел шаги в соответствии с интрукцией, но после перезагрузки бесконечно выводятся точки (вероятно не стартует WiFi) не могу понять почему, пробовал разные версии драйвера платы esp32 by exspressif (1.0.2..1.0.6) всегда одинаковый результат. Посдкажите, пожалуйста, в чем может быть дело. С наступающим Новым годом!)