При создании умного дома мной было испробовано несколько систем. На данный момент я остановился на Home Assistant (далее по тексту «HA»). В этой статье я расскажу как его установить и настроить на Raspberry Pi.
Установка и настройка на автозапуск:
$ sudo pip3 install home assistant $ wget https://raw.githubusercontent.com/balloob/home-assistant/dev/script/hass-daemon $ sudo cp hass-daemon /etc/init.d/hass-daemon $ sudo chmod +x /etc/init.d/hass-daemon
В файле /etc/init.d/hass-daemon вносим следующие изменения (можно создать любого пользователя, например hass):
RUN_AS="has" PID_FILE="/var/run/hass/hass.pid"
И добавляем в автозагрузку:
$ sudo mkdir /var/run/hass $ chown hass:hass /var/run/hass $ sudo update-rc.d hass-daemon defaults $ sudo service hass-daemon install
После запуска HA будет доступен по адресу http://localhost:8123
Конфигурационный файл расположен здесь: /var/opt/homeassistant/configuration.yaml
Я не буду заострять внимание на панели управления. Хоть она и на английском, там все очень понятно.
Первым делом мне захотелось добавить функционал, который определял бы мое местоположение по отношению к некоторым ключевым точкам (дом, работа, зал). HA умеет это делать либо проскандировав локальную сеть на наличие подключенных устройств (например, телефона или планшета) или же через сторонние сервисы OwnTracks и Geofancy. Я решил использовать Owntracks, потому что моего роутера все равно не было в списке поддерживаемых устройств, а поддержки Geofancy на момент написания статьи еще не было. OwnTracks — это небольшое приложение для телефона, которое публикует местоположение через протокол MQTT. Но не будем забегать вперед.
Сначала нужно настроить хотя бы одно местоположение в HA, для которого велось бы наблюдение. При первом запуске и создании конфигурационного файла HA пытается автоматически определить местоположение и установить необходимые координаты. К сожалению, положение у меня определилось как «Москва» и на карте я отображался как живущий в Кремле. Чтобы это исправить необходимо определить точные координаты. Сделать это можно через сервис maps.google.ru, найдя свой дом. В URL будут координаты. Их мы вносим в конфигурационный файл и перезагружаем HA. Теперь в разделе Home наше местоположение должно быть обведено кружком.
Чтобы активировать поддержку OwnTrack добавляем в конфигурационный файл следующие строчки:
device_tracker: platform: owntracks
Чтобы определять наличие подключенных устройств в сети через nmap. Устанавливаем его в системе и активируем в HA:
$ sudo apt-get install net-tools nmap
device_tracker: platform: nmap_tracker hosts: 192.168.1.1/24 home_interval: 900
Осталось настроить MQTT. HA поддерживает несколько вариантов подключения MQTT:
- Свой брокер MQTT
- Общедоступный брокер (например, этот). Любой может подписаться на данный брокер, и ваше местоположение будет общедоступным.
- Сервис по предоставлению частного MQTT брокера (например, CloudMQTT).
Я буду использовать брокер Mosquitto, установленный на Raspberry Pi.
Установка проста. Ставить мы будем на Raspberry Pi. Версия, которая доступна через apt-get устаревшая, поэтому добавляем репозиторий с новой версией:
$ wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key $ sudo apt-key add mosquitto-repo.gpg.key $ cd /etc/apt/sources.list.d/ $ sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list $ sudo apt-get update $ sudo apt-get install mosquito mosquitto-clients
Для работы с клиентским приложением OwnTrack нужно настроить аутентификацию. Делается это командой:
$ sudo mosquitto_passwd -c /etc/mosquitto/passwd <Имя пользователя>
Будет предложено ввести пароль. Флаг «-c» означает, что мы создаем новую базу с пользователями. Для добавление дополнительных пользователей, не удаляя текущих, нужно просто убрать «-c» при выполнении команды.
В файле /etc/mosquitto/mosquitto.conf добавляем следующие строчки:
bind_address <ip-адрес raspberry pi> listener 8883 connection_messages true allow_anonymous false password_file /etc/mosquitto/passwd
В конфигурационный файл HA добавляем следующие строчки:
mqtt: broker: <ip-адрес raspberry pi> port: 8883 client_id: home-assistant keepalive: 60 username: USERNAME password: PASSWORD
В принципе, все. Осталось лишь пробросить порты на роутере для HA и Mosquitto. Но это уже выходит за рамки данной статьи.
P.S. Обновить HA можно командой:
$ sudo pip3 install --upgrade homeassistant
Оставить комментарий