Установка home assistant + supervisor в ubuntu на hdd raspberry pi 4

Содержание

Особенности создания «умного» дома с Raspberry Pi

Идея автоматизации дома подразумевает осуществление контроля за всеми «умными» устройствами в доме и объединение их в одну сеть. Такое решение имеет массу преимуществ. Пользователь может даже удаленно управлять многими системами: к примеру отоплением или светом в комнате. Благодаря «яблочному» голосовому помощнику Siri, контроль можно осуществлять простыми фразами, типа «Siri, выключи свет в комнате».

Примеры некоторых систем на основе связки устройства Apple и Raspberry Pi:

  • голосовое управление «умными» девайсами;
  • автоматизация на основе времени суток и датчиков движения (включить свет, когда темно или, когда кто-то зашел в комнату);
  • полноценное удаленное управление домом.

Схема позволяет выключать свет, когда все жильцы уходят их дома. А если правильно настроить геолокацию, то можно и отключать электрическую сеть для экономии (выключатели, розетки).

Единственным минусом такой системы является обязательная сертификация для поддержки фирменного Apple-протокола HomeKit. Сертифицированные устройства стоят намного дороже. К тому же, их не так много, как хотелось бы на отечественном рынке. Установка HomeBridge позволяет создать так называемый прокси-сервер для HomeKit. Такое решение позволяет подключать любые «умные» девайсы, включая даже самодельные.

Здесь приходит на помощь Raspberry Home Kit. Для реализации управления Smart-прибором, необходимо устройство от Apple (Iphone или Ipad) и Raspberry Pi. На него устанавливается HomeBridge. Это приложение само по себе имеет голую оболочку. Поэтому необходимо еще установить плагины, внедряющие поддержку любых «умных» устройств. Большинство таких плагинов являются самодельными и их без проблем можно найти на просторах сети.

Интерфейс приложения «Дом» позволяет добавить не только все «умные» гаджеты, но и распределить их по комнатам дома. Таким образом управление дома будет осуществляться через приятный для глаза и удобный интерфейс iOS. Кроме дома, автоматизацию можно настроить и в автомобиле с помощью Raspberry Pi CarPC. Такой подход позволит управлять системами автомобиля на расстоянии.

18 – Garage opener with car plate recognition

I saw a lot of project on garage door openings during my research to create this list.But it is probably the most complete so that you can adapt it to your needs.

It’s not just going to open your garage door like a common remote.But it will:

  • Detect a car in front of the garage.
  • Read the car plate.
  • Detect the model of the car.
  • Check that both match.
  • Check that the car is allowed to enter.
  • Open the garage door if necessary.
  • Make sure the car is in and then close the door.

All this works on a Raspberry Pi equipped with a simple camera.Car plate verification use the OpenALPR service and the program triggers a GPIO event for opening and closing the garage doors.

Source: Randomnerdtutorials

Установка в виртуальное окружение Python

Сначала обновим все пакеты:

sudo apt-get update
sudo apt-get dist-upgrade

Затем установим необходимые для Home Assistant пакеты:

sudo apt-get install python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5

Создадим нового пользователя homeassistant, под которым в дальнейшем и будет работать наш сервер умного дома:

sudo useradd -rm homeassistant -G dialout,gpio,i2c

Создадим новую папку для установки и добавим права на нее пользователю homeassistant:

cd /srv
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant

Теперь нужно переключиться на пользователя homeassistant и создать виртуальное окружение для установки и последующей работы Home Assistant:

sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate

Установим дополнительный пакет Python:

python3 -m pip install wheel

И запустим установку Home Assistant:

pip3 install homeassistant

Дождавшись завершения установки (на что потребуется минуты три), запустим систему:

hass

Во время первого запуска Home Assistant создаст базовые конфигурационные файлы и будет загружать и устанавливать дополнительные модули для своей работы. Все эти процессы займут еще около 5-10 минут, причем уведомлений о готовности не будет. Понять, что первичная настройка завершена можно по статусу «Starting Zeroconf broadcast» в терминале:

После этого Home Assistant станет доступен через веб-интерфейс по адресу http://ip-адрес-raspberry-pi:8123:

Осталось добавить его в автозагрузку. Для этого создадим файл:

sudo nano /etc/systemd/system/home-assistant@homeassistant.service

Со следующим содержимым

Description=Home Assistant
After=network-online.target


Type=simple
ExecStartPre=/bin/sleep 10 
User=%i
WorkingDirectory=/home/%i/.homeassistant
ExecStart=/srv/homeassistant/bin/hass -c "/home/%i/.homeassistant"


WantedBy=multi-user.target

И включим Home Assistant в качестве сервиса:

sudo systemctl --system daemon-reload
sudo systemctl enable home-assistant@homeassistant
sudo systemctl start home-assistant@homeassistant

Шлюз WebThings для Raspberry Pi

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

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

  1. Компьютер Raspberry Pi и источник питания (для Raspberry Pi 3 требуется не менее 2A)
  2. microSD card (не менее 8 ГБ, class 10)
  3. USB адаптер (см. список )

Примечание: Raspberry Pi 3 поставляется с Wi-Fi и Bluetooth. Адаптер USB необходим для подключения устройств по протоколам вроде Zigbee и Z-Wave.

2. Прошейте образ

Прошейте образ на карту microSD. Существуют разные способы записи. Мы рекомендуем использовать Etcher.

  1. Откройте Etcher
  2. Вставьте карту памяти в адаптер вашего компьютера.
  3. Выберите образ в качестве источника
  4. Выберите карту памяти
  5. Нажмите “Flash!”

После завершения, извлеките карту памяти.

3. Загрузка Raspberry Pi

  1. Вставьте карту памяти в Raspberry PI
  2. Подключите USB адаптеры при наличии
  3. Подключите питание для начала загрузки

Примечание: Первая загрузка Raspberry Pi может занять 2-3 минуты.

4. Подключение по Wi-Fi

После загрузки шлюз создаст точку доступа “WebThings Gateway XXXX” (где ХХХХ — это четыре цифры из MAC-адреса Raspberry Pi). Подключитесь к этой точке с вашего компьютера или смартфона.

После подключения вы должны увидеть приветственный экран шлюза WebThings, который затем начнёт поиск вашей домашней Wi-Fi сети.

Выберите вашу домашнюю сеть из списка и введите пароль для подключения.

Примечание:

  • Если вы подключились к точке доступа “WebThings Gateway XXXX”, но не видите экрана приветствия, попробуйте открыть страницу по адресу 192.168.2.1.
  • Raspberry Pi можно подключить к сети и с помощью кабеля Ethernet. В таком случае он попытается получить IP-адрес сети с вашего роутера автоматически. Затем наберите в браузере “http://gateway.local” для первичной настройки шлюза.
  • Если вы переместите шлюз в другое место или он потеряет доступ к изначальной сети, то он автоматически перейдёт в режим точки доступа, чтобы вы смогли подключиться к нему и настроить другую сеть.

5. Выбор субдомена

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

После этого у вас появится опция зарегистрировать бесплатный субдомен для доступа к шлюзу вне локальной сети через защищённый туннель от Mozilla.

Введите желаемый субдомен и адрес электронной почты (для сброса пароля в будущем), и нажмите «Create».

Примечание:

  • Этот шаг можно пропустить и использовать шлюз полностью локально, либо настроив проброс портов и DNS самостоятельно. Однако в этом случае, если в будущем вы всё-таки решите использовать субдомен Mozilla, настройки шлюза придётся полностью сбросить.
  • Если страница по адресу gateway.local не открывается, попробуйте узнать IP-адрес шлюза через ваш роутер (ищите в списке подключённых устройство вроде “gateway” или с MAC-адресом, начинающимся на “b8:27:eb”), и попробуйте открыть страницу прямо по IP.
  • Если gateway.local и http:// не работают, убедитесь, что и ваш компьютер, и Raspbeery Pi подключены к одной и той же сети.
  • Если вы уже регистрировали субдомен ранее, введите его имя и тот адрес электронной почты, который вы использовали при его регистрации. На экране появятся инструкции по получению доступа.

6. Создание аккаунта

После регистрации субдомена откроется страница со следующими этапами настройки шлюза. Введите ваше имя, адрес электронной почты и пароль, и нажмите «Next».

Примечание: Дополнительные аккаунты можно создать позже.

Готово!

После этого должна открыться страничка «Things» для подключения умных устройств к шлюзу.

См. Руководство пользователя шлюза WebThings для дальнейшей настройки.

Подготовительная часть

Настраиваем свой ПК для работы с magic packet: в БИОСе и настройках сетевой карты. Настройку я подробно описывать не буду, довольно много статей и инструкций есть в сети на эту тему, к тому же наименование функции меняются в зависимости от производителя материнской платы.  Если коротко, то в BIOS включение функции обычно находится в «Power Management Setup», или «ACPI Configuration». Требуется активировать опцию Wake-Up by PCI devices (или “Wake-on-LAN”, «Power on by Ethernet Card», “Power by PCI” и т.д.) для встроенной в материнскую плату сетевой карты.

В настройках Windows включение требуется активировать в двух местах: Диспетчер Устройств – Сетевые адаптеры – Свойства:

Управление электропитанием: опция Разрешить этому устройству пробуждать компьютер и опцию пробуждения ПК с помощью “магического пакета” и дополнительно (у меня), включение по локальной сети после отключения;

Узнаем MAC адрес ПК. В случае с ОС Windows. В командной строке набираем ipconfig/all и ищем физический адрес сетевого адаптера.

У меня: Физический адрес. . . . . . . . . : 38-05-47-78-3B-35Проверим включение через локальную сеть. Подключаемся к Raspberry Pi с помощью SSH клиента.

Для того, что бы наш Raspberry Pi мог отправлять магический пакет по сети устанавливаем пакет etherwake:

Если БИОС и ОС настроены правильно, то после установки пакета Etherwake, удаленно включить ПК можно задав следующую команду на RPi :

Где  MAC адрес удаленного ПК, который мы недавно узнали, для каждого компьютера он будет свой. Утилита Etherwake работает только от пользователя sudo. Создадим скрипт сделаем его исполняемым и проверим отработку включения ПК этим скриптом:

Способ второй, удаленное включение ПК с помощью системы домашней автоматизации MajorDoMo

Этот способ гораздо проще, рассмотрим его на примере Raspberry Pi с установленной системой УД MajorDoMo с базового образа. Первым делом после установки обновляем систему MajorDoMo.

Переходим в Панель Управления — Система — Маркет дополнений. В разделе Оборудование находим модуль WoL и добавляем его в нашу систему домашней автоматизации.

В пункте Меню — Устройства, добавился Раздел WakeOnLan, перейдём к нему и запустим сканер обнаружения:

В помощи к модулю есть примеры вызова этого модуля из сценария.

Дальше создаём  вначале сценарий, затем элемент управления.В поле код я прописал следующее:

В меню Объекты панели управления – добавляем новый раздел, используя недавно созданный сценарий:

В итоге в меню Сервис на главной странице нашей домашней системы автоматизации получаем новый элемент (кнопку) WoL PC, нажав которую запускаем включение ПК.

Организовать доступ к своей системе домашней автоматизации MajorDoMo можно разными способами. Наиболее быстрый и простой — использование сервиса CONNECT и мобильного приложения MajorDroid от создателей системы MajorDoMo.

Настройка брокера MQTT в облаке

Теперь можно приступить к настройке серверной части решения. Для этого воспользуемся облачным сервисом Yandex, называемым Yandex IoT Core.

MQTT — ещё один де факто стандартный протокол для IoT-проектов. Вот тут есть хороший обзор самого протокола, поэтому подробно на нем останавливаться не буду, но немного расскажу как устроен MQTT-брокер от Yandex:

В Yandex IoT Core есть два основных типа объектов — реестры и устройства.

Реестры с одной стороны группируют устройства (в одном реестре может быть одновременно несколько устройств) а с другой — являются как бы второй стороной обмена сообщениями.

Каждый реестр имеет доступ к телеметрии своих устройств и может отправлять им команды. При этом у каждого реестра и каждого устройства есть свой набор топиков. Каждый реестр может читать и отправлять сообщения в свои топики, и в топики любого своего устройства. Аналогично каждое устройство может писать и читать свои топики и топики своего реестра (но не другого устройства, даже если оно «живет» в том же реестре).

Организация топиков Yandex IoT Core

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

Для дальнейших действий потребуется учетная запись Yandex.Cloud. Если у вас такой еще нет, ее можно достаточно быстро завести. В процессе необходимо ввести данные карты но (в отличии от некоторых других облачных сервисов) деньги с неё списываться не будут пока вы явно не переключитесь на платный аккаунт. После регистрации Yandex предоставляет небольшой грант в 4К рублей, которого на приведенные тут эксперименты хватит с лихвой.

Подключаем и настраиваем сервис:

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

Сгенерировать пару сертификатов можно при помощи утилиты OpenSSL вот такой командой:

Теперь заходим в консоль Yandex.Cloud, выбираем IoT Core и создаем новый реестр:

Открытую часть ключа, сгенерированного на предыдущем шаге (crt_reg.pem), загружаем в настройки реестра. Этот сертификаты будут использоваться для считывания телеметрии из брокера внешними сервисами и отправки команд устройствам:

Нажимаем «Создать» и попадаем в настройки свежесозданного реестра. Теперь надо зарегистрировать в нем малинку в качестве устройства. 

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

Заходим в Устройства и создаем новое:

Аналогично с созданием реестра загружаем сертификат из пары, созданной на малинке и нажимаем «Добавить».

На этом настройка брокера завершена, всё готово для приема сообщений.

ID устройств и реестров можно посмотреть на вкладке «Обзор». Они нужны для задания адресов топиков:

Топик устройства: $devices/<ID устройства>/events

Топик реестра: $registries/<ID реестра>/events

Также у каждого устройства и реестра есть перманентный топик. Основное отличие перманентных топиков состоит в том, что в них всегда сохраняется последнее сообщение. То есть при подключении консьюмер получит последнее отправленное в него сообщение, даже если не был в сети в момент его отправки. Адреса перманентных топиков похожи на обычные, но заканчиваются на state а не events:

Перманентный топик устройства: $devices/<ID устройства>/state

Перманентный топик реестра: $registries/<ID реестра>/state

Подробнее о топиках Yandex IoT Core можно почитать вот тут.

Способ 1. Удаленное включение ПК через телефонную сеть

В этой части установим, произведём минимальную первоначальную настройку SIP сервера FreesWITCH на Raspberry Pi и дистанционное включение ПК (возможность управления элементами «Умного Дома») через телефонные сети.

В качестве устройства подключения к телефонным сетям я использовал VoIP-GSM шлюз с поддержкой 1 GSM линии Yeastar TG100.

Установка Freeswitch:

Устанавливаем freeswitch из пакетов на официальном сайте есть рабочая инструкция по установке для Raspberry Pi.

Приведу свои действия.

Входим под пользователем sudo и выполняем следующие команды:

Установка длится около получаса. По окончании перегрузим малинку. Для проверки работоспособности можем войти в консоль freeswitch (выход из консоли quit или же CTRL+D):

Концепция работы «Умного дома»

Конечно, для каждого автоматизированного и автоматического оборудования должна быть программа. Именно от неё будет зависеть успешность вашего «Умного дома». Такие программы адаптации оборудования требуют некоторых знаний и опыта в сферах программирования и электроники. Однако если вы новичок в этом, малознакомы с программированием и не обладаете необходимым опытом работы с электроникой, мы рекомендуем вам использовать программы, максимально адаптированные для начинающих пользователей.

Во время выбора нужно грамотно рассчитать стоимость каждой покупки, чтобы минимизировать количество потраченных средств

Собственноручно собирая «Умный дом», важно получить максимальное качество по минимальной цене

https://youtube.com/watch?v=kRmqtyHDK4k

Установка Z-Way на Raspberry Pi

Raspberry Pi

Для работы Z-Way установим плату RaZberry в колодку GPIO Raspberry Pi. Плата занимает первые десять пинов, хотя использует только: 3,3 В, GND, RX, TX. Серверное программное обеспечение Z-Way можно установить на любое поколение Raspberry Pi.

Рассмотрим различные способы установки.

Минимальная установка. На последнем Raspbian скачиваем и ставим в систему пакет deb. При этом будет установлен только сервер Z-Wave без удаленного доступа.

1
2

$wget https//storage.z-wave.me/z-way-server/z-way-2.3.8_armhf.deb

$sudo dpkg-iz-way-2.3.8_armhf.deb

Обычная установка. На последнем Raspbian запускаем установочный скрипт. Будет установлен сервер Z-Wave и активирован удаленный доступ.

1 $wget-q-O-razberry.z-wave.me/install|sudo bash

Максимальная установка. Есть готовый образ системы c уже установленным сервером Z-Wave, активированным удаленным доступом и настроенным Wi-Fi в режиме точки доступа. Это самый простой и быстрый способ поднять полноценный хаб умного дома на Raspberry Pi.

Вот как записать образ на карточку, если у тебя Mac.

1
2
3
4

$wget https//storage.z-wave.me/z-way-server/razberry-2.3.8-wifi_stretch.img.zip

$unzip razberry-2.3.8-wifi_stretch.img.zip

$diskutil umount/dev/disk2s1

$sudo dd if=./razberry-2.3.8-wifi_stretch.img of=/dev/rdisk2 bs=16m

В Linux различается разве что команда монтирования. Но если возникнут сложности или у тебя Windows, то можешь воспользоваться сторонним софтом — например, Etcher.

На свежеустановленном Z-Way нужно найти IP-адрес контроллера RaZberry в локальной сети. Можно посмотреть на роутере список подключенных устройств, а можно зайти на сайт удаленного доступа https://find.z-wave.me и увидеть подключенный контроллер. При первом старте предлагается установить пароль администратора.

Вверху отображается ID удаленного доступа

Как функционирует система

Система состоит из нескольких функциональных модулей:

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

Raspberry Pi 3 связывается с компьютерами и гаджетами посредством WEB-интерфейса для удалённого управления умным домом. Для автоматизации управления нужно специализированное ПО. Для получения адаптированного программного обеспечения следует обращаться к специалистам либо понимать основные принципы построения простейших приложений. В первом случае стоимость проекта значительно возрастет.

Модули для интеграции системы умный дом

Приобретённый пользователем компьютер Raspberry Pi является лишь микроконтроллером, который придётся своими руками превращать в умный дом. Для того нужны датчики, исполнительные устройства, интерфейсы и программное обеспечение. Начнём с модулей.

  1. Модуль для беспроводного соединения – чаще всего применяются приемо-передающие устройства, функционирующие на частоте 433 МГц.
  2. Датчик движения – служит для выполнения команд при появлении движения в области его действия, например, включение и выключение освещения. Как вариант — HC SR501.
  3. Температурный сенсор для снятия температурных показателей в помещении либо помещениях.
  4. Датчик влажности – нужен для расширения функционала метеостанции, встречаются варианты объединения датчиков температуры и влажности в одном девайсе.
  5. Сенсор дыма – необходим для получения сведений о появлении дыма или очагов возгорания.
  6. Камера – может использоваться для создания системы видеонаблюдения, записывает видео в разрешении до Full HD и может делать снимки при заданных условиях. Доступны варианты с инфракрасным излучателем.
  7. Модуль Enocean – в зависимости от способа применения, позволит обходиться без привычного источника питания. Энергия системе передается от Солнца, нажатия кнопок, вследствие переработки тепла или энергии ветра в электричество.
  8. Пожарная сигнализация – состоит из датчиков утечки воды, дыма, видеонаблюдения в зависимости от пожеланий покупателя.
  9. Homematic – популярная система Smart Home, поддерживающая интеграцию в Raspberry.
  10. Голосовой помощник Siri на базе Apple или иной голосовой помощник.

Поддерживаемые платформой датчики

Для поддержки Apple протокола HomeKit, по которому взаимодействуют устройства, нужна обязательная сертификация. Сертифицированного оборудования на отечественном рынке немного, стоит оно дорого. Приложение HomeBridge или Дом умеет строить прокси-серверы для HomeKit для коммутации даже самодельных «умных» девайсов. Raspberry Home Kit управляется посредством iPhone либо iPad с программой HomeBridge, функционал которой расширен благодаря плагинам. Почти все они бесплатные.

Управление с iPhone

Память Raspberry Pi или Micro SD

Жесткий диск «из коробки» подключить нельзя и операционная система устанавливается на флешку, что сказывается на производительности (скорость обмена данными) и часто выступает причиной вырывания волос на голове.

К чему нужно быть готовым:

Ресурс Micro SD сильно ограничен и не сопоставим с циклами перезаписи HDD. Карты памяти боятся отключения питания. Потеря питания в момент записи данных на флешку чревато выходом памяти из строя

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

Необходимо найти и купить оригинальную карту. Ищите только проверенные магазины. При активном использовании флешки хватает примерно на год, китайская подделка помирает за 2-3 месяца.
Объем карты памяти нужен не менее 8 Гб. Больше не стоит брать. Придется делать резервное копирование (бэкап). Он занимает объем равный размеру карты памяти.

4 – Plug your old printer on the networkif(typeof __ez_fad_position!=’undefined’){__ez_fad_position(‘div-gpt-ad-raspberrytips_com-leader-2-0’)};

If you still have a printer that needs to be connected to the computer all the time, this project may interest you.

Indeed, it’s possible to plug the printer on a Raspberry Pi, which will then share this printer on the network (via cable or Wi-Fi depending on the model you have).This project is straightforward,  install a software (CUPS) that will serve as a print server.After that, install the printer on CUPS and finally on your computer.

So for less than $50 you turn your old printer into a Wi-Fi printer In the same state of mind, it is also possible to share an old USB scanner on the network.

Install CUPS and turn your USB printer into a Wi-Fi printer

Интерфейс SPI

SPI — последовательный четырёх-проводной интерфейс передачи данных, предназначенный для обеспечения простого и недорогого высокоскоростного сопряжения микроконтроллеров и периферии.

Raspberry Pi имеет одну шину — SPI0. Но более новые версии одноплатника, например Raspberry Pi 3 Model B, обладают двумя шинами: SPI0 и SPI1

Включения шины SPI0

По умолчанию шина SPI0 отключена. Для включения выполните следующие действия.

  1. Откройте терминал с рабоче стола Raspberry Pi или

  2. Зайдите в настройки Raspberry Pi.
    sudo raspi-config
  3. Выберите пункт
  4. Далее пункт .
  5. Нажмите для подтверждения включения шины.
  6. Для проверки включения шины SPI0 запустите листинг директории /dev:
    ls /dev/

В ответ вы должны увидеть полотно файлов, среди которых два: и .
Это значит что у вас включён SPI0 с возможностью подключения двух ведомых устройств.
Теперь вы можете использовать интерфейс SPI для коммуникации с датчиками и модулями.

Включения шины SPI1

Если вы используете Raspberry Pi 3 Model B, то вам доступно две шины SPI: и .

Для включения шины SPI1, необходимо вручную отредактировать файл настроек загрузки системы.

  1. Откройте от пользователя файл настройки загрузки системы.
    sudo nano /boot/config.txt
  2. В конец файла добавьте команду включения .
    dtoverlay=spi1-3cs
  3. Сохраните файл сочетанием клавиш +.
  4. Для вступления изменений в силу перезагрузите Raspberry Pi.
    sudo reboot
  5. Для проверки включения шины SPI1 запустите листинг директории /dev:
    ls /dev/

В ответ вы должны увидеть полотно файлов, среди которых три отвечают за SPI1: , и .

Если у вас включена шина SPI0, то будут ещё два файла: и .


Это значит что у вас включён SPI0 с возможностью подключения двух ведомых устройств и SPI1 с возможностью подключения трёх ведомых устройств.

Настройка автоматизации

В Z-Way встроено более пятидесяти приложений автоматизации, и еще более ста можно загрузить из бесплатного онлайнового магазина.

Приложения автоматизации

Есть приложение «Умное освещение», в настройках которого нужно только выбрать датчик движения и светодиодную лампу. Предположим, алгоритм работы будет следующий: с 7:00 до 00:00 лампа будет включаться на максимум, с 00:00 до 7:00 — только на 20%.

Так выглядит настройка приложения

Один из датчиков температуры и реле можно задействовать для управления обогревателем с помощью приложения «Виртуальный термостат». В настройках приложения нужно выбрать датчик температуры, реле, задать гистерезис и режим «Обогрев/Охлаждение». В режиме «Обогрев» реле будет выключаться при достижении заданной температуры.

Виртуальный термостат

И если вдруг из более чем 150 приложений не найдется ни одного подходящего, то всегда можно написать свое на JavaScript. Система автоматизации полностью открытая, исходники вы найдете на GitHub.

Голос

Speech-to-text

Система умеет говорить и понимает, что ты ей говоришь. Нажимаешь кнопочку, говоришь фразу, и она конвертирует ее в текст. Преобразование голоса в текст — дико сложная задача. Гугл умеет это делать, но за деньги. А первое правило DIY-проекта — никаких абонентских плат. Как оказалось, в последних версиях хрома есть встроенный инструмент «Распознавание голоса». Единственный нюанс в том, что соединение должно быть либо https, либо localhost. Умный дом — как раз такая система: клиент и сервер находятся на одной машине, так что удалось подключиться по localhost.

Реакция на команды

Второй сервис называется dialogflow. Фишка в том, что ты задаешь шаблон фразы, например: «Какая погода завтра?» и указываешь, что слово «завтра» — это переменная типа date. И теперь уже ты можешь задать любой вопрос: «Какая погода 20 сентября?», «Какая погода послезавтра?», «Какая погода через 3 дня?» и система понимает, что это тип данных — date, конвертирует его в программную дату и реагирует на нее. Вся эта тема — на нейросетях, и она обучаема. Если ты сказал «Какая будет погодка сегодня?» и система не поняла, она говорит «Я не поняла», и ты заходишь на сервер и прям руками обучаешь ее, что вот эта фраза означает «Какая погода?», и она запоминает. Обучение нейросети происходит по доступу: при регистрации на сервисе выдаются ключи доступа к api, доступ к личному кабинету агента, можно этого агента обучать и можно дать право кому-то на его использование.

В dialogflow есть еще одна классная тема — микродиалоги. Задаешь вопрос, например, «Как твои дела?» и задаешь паттерны ответов на него: «Пока не родила», «Все в шоколаде, даже дисплей», «У нас делишки, а дела у прокурора», «Ой, всё» — и система каждый раз будет рандомно выбирать из этих вариантов ответ на этот вопрос.

Получается, сервис передает в Умный дом сам триггер, который должен быть выполнен и возможную фразу для ответа, Дом ловит эту фразу и дальше задача наоборот: tts, то есть text to speech.

Text-to-speech

Это хорошо умеет делать Яндекс. Там можно выбрать не только голос (нескольких вариантов женских и мужских голосов), но и настроение (веселый, грустный, злой, нейтральный). У Яндекса очень простое и условно бесплатное api (с лимитом что-то около 10 тыс преобразований в день).

Таким образом получился цикл: произносишь фразу, система ее понимает, произносит что-то в ответ и совершает какое-то действие. Так, например, работает установка будильника голосом. Говоришь: «Поставь будильник на вторник на 7 часов». И во вторник в 7 тебя разбудит Умный дом.

Установка Domoticz на Raspbery Pi

Вводим в консоль команду:

sudo curl -L install.domoticz.com | sudo bash

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

  • протокол HTTP/HTTPS
  • порт для системы (8080 по умолчанию)
  • путь для Domoticz (по умолчанию /home/pi/domoticz)

Вход на Raspberry после установки осуществляется через строку браузера. Введите IP Raspberry и порт 8080, если порт не был изменен

http://IP.адрес.Raspberry:8080

Вы увидите главное окно Domoticz. На этом установка закончена. Domoticz добавится в автозапуск при инсталяции. При последующей перезагрузке система запустится автоматически.

Что мы сделаем с нашей Raspberry Pi? Превратим в мост для HomeKit

Для того, чтобы в систему управления домом Apple можно было добавить практически любое умное устройство, следует использовать так называемые «прокладки» или «мосты».

Специальные гаджеты или компьютеры с определенным ПО могут получать сигналы управления от системы HomeKit и переводить их в доступные команды для умных гаджетов в доме.

Самым доступным решением, которое способно связывать систему управления Apple и штуки разных производителей, является HomeBridge.

Специальный сервис может быть запущен на обычном Windows-компьютере или Mac. О запуске HomeBridge на компьютере мы уже подробно рассказывали ранее.

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

Шаг 0. Первый контакт

Здесь и далее я буду подключать Raspberry через WiFi. Начнем с того, что пропишем в нашем домашнем DHСP сервере статический IP-адрес Raspberry. Это нужно для удобства, чтобы не выяснять каждый раз, как достучаться до малинки.

Качаем образ Ubuntu от сюда. На данный момент это Ubuntu Server 20.04.2 LTS 64-bit. Заливаем на SD карту при помощи Balena Etcher. Вынимаем карту и … снова вставляем откуда взяли. Это нужно, чтобы загрузочный сектор Ububuntu стал доступен в проводнике. Открываем файл и прописываем туда параметры WiFi. Должно получится что-то вроде:

А теперь немного комментариев разработчиков:

Для этого нам и нужен монитор с клавой. И да, дефолтный логинпароль такой же. Если выдается сообщение  значит нужно просто немного подождать и попробовать еще раз. Затем нам предложат задать свой супер-мега-сложный пароль и не отстанут, пока не сделаем это. Как только мы получили доступ к телу командной строке — перезагружаемся. Верный признак, что коннект есть — Ubuntu рапортует, что можно поставить несколько апдейтов. Узнать IP и MAC адрес малинки можно командой . А теперь идем в настройки роутера и прописываем статический IP дли MAC одноплатника. Как это сделать не скажу — здесь все индивидуально.

Первоначальная настройка

1. Создаем новую учетную запись:

Помимо этого система обнаружила в локальной сети мой телевизор:

Поначалу она будет выглядеть ужасно:

Основные элементы в интерфейсе Home Assistant – это Entities и Glance. Они представляют собой группы сенсоров / кнопок / информеров, оформленные списком (Entities) или панелью иконок с подписями (Glance).

Также есть Badges – круглые значки, выводимые сверху. Именно в них Home Assistant по умолчанию вывел в системе сенсоры.

Первичную настройку я закончу на том, что удалю из интерфейса все бейджи и выведу карточки для мониторинга ситуации с коронавирусом, показателей системы и статуса Transmission. Также я сразу добавил кнопку для управления Xiaomi Mi LED Desk Lamp.