У меня уже есть небольшие отдельные устройства автоматизации работающие автономно (контроллер котла и теплого пола, управление освещением и т.д.). Работает все на разных контроллерах
И вот я решил: А неплохо было бы все это объединить в единую систему, с централизованным управлением! Ну в принципе ничего не мешает это сделать на отдельных элементах, обвязать все проводами по шине например CAN и т.д. и т.п., но когда ремонт уже сделан, провода отпадают, переходим к беспроводным технологиям. И вот тут еще захотелось голосовое управление + управление со смартфона. Изучив разные темы пришел к выводу , что бюджетно и красиво будет использовать Apple HomeKit на Rassberi pi в связке с недорогими модулями ESP8266 ну и сторонними производителями разных устройств для IoT. Для этого существует множество различных пакетов для "Малинки." :
- OpenHab
- Iobroker
- DomoticzВ
- и т.д. в итоге я решил остановиться на HomeAssistnt + MQTT, лично мне больше понравился. Далее по тексту вместо HomeAssistant я буду использовать аббревиатуру HA
И так к делу:
Для начала достал из закромов Rasspberi Pi 2B и модули NodeMCU на ESP8285 это тот же 8266 только с 1 МБ на борту.
Да и еще, не знаю почему везде пишут что блок питания минимум на 2А (это наверное с учетом экрана и подключенных устройств к USB) Моя малинка в пике потребляла не более 0,4А и так потребление скакало от 0,25 до 0,3 А. Сразу скажу БП у меня на 4А 5,11В, так что я для интереса решил замерить.
Устанавливаем ОС:
Расписывать подробно не буду:
Скачиваем с официального сайта Raspbian Stretch Lite образ и заливаем на microcd.
После этого открываем раздел BOOT на этой флешке и создаем пустой файл без расширения SSH. Это даст возможность подключиться к «малинке» по SSH т.к. по умолчанию SSH отключён, и чтоб его включить придется подключать монитор и клавиатуру.
После вставляем «флешку» в нашу Малинку, подключаем к сети, смотрим в настройках роутера какой IP и привязываем его «навсегда». Далее открываем PyTTY (он же у Вас есть? ) Либо другой SSH клиент . Подключаемся к нашей «Малинке» по SSH :
Процесс настройки, загрузки и установки компонентов:
Логин по умолчанию : pi
Пароль по умолчанию: raspberry
Первым делом меняем пароль :
sudo passwd
вводим старый пароль, затем два раза новый.
устанавливаем пароль для пользователя root
sudo passwd root
Делаем апдейт и апгрейд:
sudo apt-get update
sudo apt-get upgrade
sudo apt install jq
устанавливаем python
sudo apt-get install python3 python3-venv python3-pip
Далее будем производить установку в виртуальное окружение Python-а
sudo useradd -rm homeassistant -G dialout,gpio
создаем пользователя и добавляем в группы, для доступа к самой «малинке»
в эту директорию будем ставить HA
cd /srv
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
python3 -m pip install wheel
Ну и непосредственно установка HA:
pip3 install homeassistant
запуститься процесс установки
Далее запускаем сам HA
hass
Затем, когда все закончиться (процесс установки и настройки) выходим при помощи клавиш CTR+Z, далее командой exit (два раза) из шелла пользователя homeassistant.
Теперь надо сделать , что бы сервис запускался при запуске малинки:
Создадим и откроем в редакторе
sudo nano /etc/systemd/system/homeassistant@homeassistant.service
вставляем в него текст
[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
User=%i
ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"
[Install]
WantedBy=multi-user.target
Далее сохраняем и выходим CTR+O --> ENTER --> CTRL+Z
Затем активируем :
sudo systemctl --system daemon-reload
sudo systemctl enable homeassistant@homeassistant.service
sudo systemctl start homeassistant@homeassistant.service
Ну и теперь открываем браузер и стучимся на порт 8123 по адресу малинки http://IP_RASSPBERY:8123 (Вы же посмотрели его в роутере?)
Если все правильно мы увидим запрос на создание нового пользователя и его пароля на вебморде.
Вообще рекомендую сделать перезагрузку «малинки»
sudo reboot
Далее необходимо настроить (точнее подключить) HomeKit
Открываем в редакторе
cd /home/homeassistant/.homeassistant/
sudo nano configuration.yaml
и в конце добавляем
homekit:
Так как в «Питоне» пробелы значащие - следим за пробелами.
Далее сохраняем и выходим CTR+O --> ENTER --> CTRL+Z
Идем на вебморду HA
Раздел – «Натройки», подраздел «Общие»
Нажимаем кнопку «проверить конфигурацию» и если все ок
То нажимаем Перезагрузить и ждем…..
Теперь открываем приложение «дом» на своем Iphone, Ipad
(Вы же его скачали? Кстати есть еще приложение EVE HomeKit которое вроде позволяет более гибче настраивать аксессуары) Нажимаем добавить новый аксессуар, далее «Нет кода или невозможно сканировать», выбираем HomeAssistant bridge , далее «Ввод кода вручную» . Идем на вебморду HA в правом верхнем углу, нажимаем на колокольчик, и в открывшемся окне видим пин-код. Вводим его в приложении «Дом». Все наш мост добавлен.
И в качестве первого аксессуара :
В главном конфиге
cd /home/homeassistant/.homeassistant/
sudo nano configuration.yaml
добавим в раздел Sensor (следим за пробелами):
- platform: command_line
command: "cat /sys/class/thermal/thermal_zone0/temp"
unit_of_measurement: "°C"
value_template: '{{ value | multiply(0.001) | round(2) }}'
Сохраняем, проверяем в вебморде «Файл конфигурации» и перезагружаем HA. Теперь в вашем приложение появиться сенсор, который будет показывать температуру самой малинки.
В следующей статье я расскажу как подключить MQTT и выложу файл образа с уже настроенным HA и MQTT.