Установка и настройка MajorDomo на Raspberry PI 3.

В данной статье будет рассмотрен вопрос установки и настройки  системы MajorDomo (далее MD) на одноплатный компьютер Raspberry PI3 (далее RPI3). Всё изложенное ниже является аккумулированием трудов пользователей и разработчиков MD. Практически весь материал основан на сообщениях из форума MD, за что особая благодарность всем участникам форума, а товарищу nick7zmail в особенности)). О всех неточностях и ошибках в изложенном материале прошу писать в комментариях.

Пару слов про возможности и особенности системы:

  • Файловая система F2FS (оптимизирована для карт памяти);
  • Оптимизация циклов записи базы данных на карту памяти;
  • Голосовой движок RHVoice;
  • Звук через сервис MPD;
  • MQTT-брокер Mosquitto;
  • Apple HomeKit-совместимость (через HomeBridge);
  • Установленные средства разработки: PHP, Python, NodeJS, Perl;
  • Последние обновления MajorDoMo и Raspbian Jessie (на момент релиза текущей версии);
  • Работает установка дополнений из Маркета, а так же обновления ядра системы.

Особенность конфигурации — всё настроено так, чтобы минимизировать количество циклов записи на SD-карту. База данных использует tmpfs с периодической «фиксацией» (раз в 15 минут). Т.е. возможен вариант, что при аварийном выключении питания система будет восстановлена c потерей данных за последних несколько минут.

После установки работает звук, радио (используется mpd и модуль 101.ru из маркета), обновления, установка модулей из маркета дополнений.

Для начала работы по установке системы MD желательно обзавестись следующим:

  • RPI3. Экземпляр, рассматриваемый в данной статье, был приобретён здесь. Понравилась комплектация заказа – всё включено (сам RPI3, красивый корпус, набор радиаторов, блок питания, карта памяти на 16ГБ) и скорость доставки (менее 2 недель);
  • microSD карта памяти. Объём не менее 16ГБ, класс 10 (настоятельно рекомендую не выбирать SD карту из разряда дешёвых, так как это может отобразиться на дальнейшей стабильности системы);
  • Картридер;
  • Аудиоколонки (необязательно);
  • Программа Win32DiskImager. Скачать можно здесь;
  • SSH клиент. Как вариант Putty. Скачать можно здесь;
  • Установочный образ. Скачать можно здесь.

Теперь обо всём по порядку:

 Подготовка карты памяти. На данном этапе нам необходимо перенести образа MD на SD карту.  Значит, берем карту, вставляем ей в картридер и запускаем программу Win32DiskImager. В появившемся окне, в поле «Device», выбираем нашу флешку, а в поле «Image file» указываем распакованный из архива образ MD и нажимаем кнопку «Write».

Необходимо дождаться завершения записи, которая должна пройти без всяких ошибок. В противном случае необходимо заменить SD карту на новую и попробовать  заново.

Первый запуск RPI3. Вставляем карточку в RPI3, подключаем сетевой кабель, колонки и подаём питание. Обратите внимание на выбор БП, нагрузочная способностью которого должна быть не мене 2.5А (лучше 3А), иначе могут наблюдаться сбои при работе системы. Вообще, для долговременной и стабильно работы системы желательно подключить питание от ИБП.

После загрузки система должна получить IP-адрес по DHCP и быть доступна по веб-интерфейсу. В моем случае, после подачи питания, через какое-то время я услышал из колонок следующие фразы «Система загружена» и «ай пи адрес 192.168.0.33». Ниже привожу скрин «чистого» экрана системы (главного):

Теперь можно зайти на RPI3 через SSH/FTP, данные для входа:

Менеджер базы данных(phpMyAdmin):
Имя пользователя: root
Пароль: rootpsw

Сервис MajorDoMo стартует автоматически, но можно управлять им через консоль:                                                                                                                                                                                             sudo /etc/init.d/majordomo stop                                                                                                                                                                                                                                                                                                       sudo /etc/init.d/majordomo start

Настройка MD

Подготовка. В данной статье будет рассмотрена возможность настройки системы через SSH доступ. В принципе, тоже самое можно сделать подключив к RPI3 монитор, клавиатуру и сетевой кабель (без использования Putty).

Запускаем программу Putty. В появившемся окне вводим полученный от системы IP адрес и нажимаем кнопку “Open” .

Далее, в появившемся окне, жмём кнопку «Да».

Теперь вводим стандартные имя пользователя и пароль. Если всё сделано правильно – появится готовая к работе консоль.

Подготовка к настройке системы сделана, теперь сама настройка.

Настройка статического IP адреса. Для пользователей, которые понимают что это такое, и которым это не требуется, могут пропустить данный пункт. Вводим в консоли:

sudo nano /etc/dhcpcd.conf

Добавляем следующие строчки (вводим адреса вашего оборудования):

 

нажимаем комбинации клавиш <CTRL+O> и <CTRL+X> (сохраняем в файл и выходим).

Перезапускаем сетевой интерфейс:

sudo ifconfig eth0 down                                                                                                                                                                                                                                                                                                                   sudo ifconfig eth0 up

ждём 5 секунд и проверяем правильность выполненной работы командой:

ifconfig

Для проверки доступа к интернету можно также «пингонуть» google:

sudo ping 8.8.8.8

Первичная настройка при помощи утилиты «Raspi-config» (чем-то напоминает BIOS компьютера). Вводим в консоли:

sudo raspi-config

В появившемся окне выполняем следующие действия:

  • в поле “Change User Password” меняем стандартный пароль (не забываем его записать);
  • в поле “Boot Options”, в подменю  “B1 Desktop CLI”, выбираем “B1 Console”;
  • в поле “Advanced Options” выполняем “A1 Expand Filesystem”, а в поле “Audio” выбираем “Force 3.5 jack”.

Устанавливаем пароли для phpMyAdmin. Заходим через в web интерфейс phpMyAdmin и там меняем пароль  (не забываем записывать), для этого вводим следующую строку в браузере:

http://_Ваш_IP/phpmyadmin/

Теперь сообщаем MD под каким паролем заходить, для этого вводим в консоли:

sudo nano /var/www/config.php

В появившемся окне меняем стандартный пароль на свой:

Define(‘DB_PASSWORD’, ‘свой_пароль‘);

Останавливаем MySQL строчкой

sudo service mysql stop

копируем текущую базу данных из диска в памяти на SD карту

sudo cp -R /tmp/mysql/* /var/lib/mysql/

и  перезагружаем систему

sudo reboot.

Устанавливаем пароль на вход в систему с внешней сети. Для этого вводим в консоли:

sudo nano /var/www/config.php

Находим и раскомментируем следующие строчки:

Define(‘HOME_NETWORK’, ‘192.168.0.*’);                                                                                                                                                                                                                                             Define(‘EXT_ACCESS_USERNAME’, ‘user’);                                                                                                                                                                                                                           Define(‘EXT_ACCESS_PASSWORD’, ‘password’);

Обратите внимание на маску IP адреса в первой строке!!! Далее вводим свой логин и пароль (также не забываем их записывать), нажимаем комбинации клавиш <CTRL+O> и <CTRL+X> (сохраняем в файл и выходим).

Меняем пароль брокера MQTT Mosquitto. Для этого в консоли набираем:

sudo nano /etc/mosquitto/mosquitto.conf

в появившемся окне добавляем следующие строчки

#путь к файлу паролей                                                                                                                                                                                                                                                                                                       password_file  /etc/mosquitto/passwd

#запретить подключения без логина                                                                                                                                                                                                                                                                           allow_anonymous  false

Создаём/добавляем пользователя и пароль утилитой mosquitto_passwd:

sudo mosquitto_passwd -c /etc/mosquitto/passwd username

Сообщаем об этом homebridge

sudo nano /home/pi/.homebridge/config.json

Также сообщаем модулю MQTT в web интерфейсе MD, для этого в браузере вводим полученный IP адрес, заходим в «Панель управления»

в левом боковом меню выбираем «Устройства»->»MQTT»->»Настроить». Ставим галочку «authorization required», вводим имя пользователя и пароль, после чего нажимаем кнопку «Обновить».

Перезапускаем mosquitto

sudo service mosquitto stop                                                                                                                                                                                                                                                                                                             sudo service mosquitto start

Увеличиваем размер временного файлового хранилища. Для этого в консоли набираем:

sudo nano /etc/fstab

В строке «tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0» меняем size=100m на size=500m, нажимаем комбинации клавиш <CTRL+O> и <CTRL+X> (сохраняем в файл и выходим).

Установка модуля MySensorsЗаходим в систему через  web интерфейс и нажимаем на кнопку «Панель управления».

В левом боковом меню выбираем — «Система» -> «Маркет дополнений» -> «Оборудование», ищем в списке “MySensors” и нажимаем на кнопку добавить.

Теперь в закладке «Устройства» мы можем увидеть установленный модуль.

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

Share