В данной статье будет рассмотрен вопрос установки и настройки системы 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
Добавляем следующие строчки (вводим адреса вашего оборудования):
1 2 3 4 |
nodhcp interface eth0 static ip_address=192.168.0.33 static domain_name_servers=192.168.0.1 |
нажимаем комбинации клавиш <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 устройств к данному модулю и созданию на базе «Простых устройств» нескольких узлов управления.