Сервер MajorDoMo из старого нетбука

MajorDoMo — бесплатная платформа для создания умного дома, мощная и гибкая, поддерживающая самое разное оборудование. Платформа написана на PHP, работает через веб сервер и хранит данные на сервере MySQL. Все это подразумевает работу на выделенном сервере.

Первым делом поднял  MajorDoMo на одноплатном компьютере Orange PI PC.  Для запуска шлюзов с различными устройствами заказал изготовление платки шилда.

000

В стандартном образе MajorDoMo для Orane PI и Raspberry PI с целью уменьшения количества операций записи на карту памяти и увеличения времени ее жизни БД запускалась на RAMDISK с сохранением дампа на карту памяти раз в несколько минут.

Несколько месяцев эксплуатации выявило ряд проблем:

  1. Самое страшное — сбои питания. Теряются данные, теряются конфигурации. Пару раз таблицы базы данных были повреждены и БД завелась только с бэкапа.
  2. Регулярный бэкап и логгирование (включенные по умолчанию) очень быстро приводили к переполнению карточки памяти 16Гб
  3. Объем базы данных стремительно приближался к критическому в рамках RAMDISK, что постоянно требовало чистки исторических данных (пусть и готовыми скриптами), что на этапе отладке было не очень хорошо
  4. Несколько раз зависал сервис Mysensors MYSGW

Подключение внешнего жесткого диска сняло часть проблем. Но от сбоев по питанию спасло не до конца. К тому же пару раз видимо не хватило питания на внешнего и сервер уходил в зависание. Да и скорость по USB2 для жесткого диска — совсем не кайф. Уже почти собрал мощный БП с бесперебойником на 5В, но тут в руки попался старый ноутбук SAMSUNG NS110.

Характеристики — процессор Intel Atom N455 1.66Гц, память 2Гб DDR3, жесткий диск SATA 320Гб, встроенный Ethernet 100TX и WiFi и еще живая батарея, самое то для моих задач. Да и консоль для установки и настройки есть.

Загрузил Debian 9.5 Net Install образ на флэшку — LINUX встал с нее пол пинка. MajorDoMo установил при помощи инсталляционного скрипта. В конце скрипта только убрал настройку базы данных на RAMDISK

install

Mysensors Gateway

Собрал уже довольно много устройств Mysensors на NRF24L01. Если Orange Pi PC позволял подключать NRF24 через SPI интерфейс напрямую, то для нетбука пришлось собирать Mesensors Serial Gateway из Arduino NANO

Кроме собственно Arduino NANO и NRF24L01 в схему добавлены три светодиода, которые обрабатываются библиотекой MySensors — RX, TX и ERROR

%d1%81%d1%85%d0%b5%d0%bc%d0%b0

На проводах собирать устройства, тем более выполняющие серверную роль — некошерно, поэтому делаю платку:

100101

И раз уж есть 3Д-принтер — корпус

102103104

Беру готовый скетч GatewaySerial из проекта Mysensors

Прописываю настройки для своей платы

Теперь подключаем наше устройство к USB нетбука

105

Команда dmesg показывает, что найден  CH341 USB serial converter и что ему назначено устройство виртуального терминала /dev/ttyUSB0

dmesg1

В настройках MajorDoMo осталось установить модуль Mysensors в маркете приложений (если еще не установлен) и прописать его настройки. Если все нормально и цикл запустился, то по мере опроса начнут появляться узлы Mysensors, с которыми можно уже работать в системе MajorDoMo

mjd_setting

Возможные проблемы

В SerialMonitor при включенном #MY_DEBUG идет ошибка инициализацииarduino-ide-fail

Данная проблем возникает из за неправильно подключения NRF24L01 или неисправном радиомодуле

Цикл опроса Mysensors в MajorDoMo не запускается

mjd-%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0

Скорее всего отсутствует устройство /dev/ttyUSB0 в системе, либо у WEB-сервера нету прав на работу с этим устройством

mjd-%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b01

В данном случае нужно добавить пользователю www-data  группы dialout 

Список устройств пуст, хотя устройства Mysensors активно работают

Вероятнее всего нет соответствия скорости канала или скорости обмена NRF24L01

В этом случае нужно проверить соответствие данных параметрах на всех устройствах

 

 

Вы можете оставить отзыв или трекбек со своего сайта.

13 комментариев на «Сервер MajorDoMo из старого нетбука»

  1. Vale5y:

    Большое человеческое Спасибо !!! 2 недели пытался побороть usb-шлюз для Majordomo на Апельсине. Ваша статья решила прблему. Простой язык, доступная подача. Удачи !!!

  2. Александр:

    Спасибо за материал. Вопрос: если я развернул Majordomo под Windows, будет ли работать гейт Mysensors?

  3. Александр:

    Спасибо, понял.

  4. Max:

    Добрый день! все сделал по вашей инструкции, к сожалению ничего нее получилось! в модуле mysensors все настройки прописал, но цикл не запускается OFFLINE! подскажите в чем может быть причина? За ранее благодарен! Orange pi pc ОС Dietpi

  5. Max:

    На команду dmesg, отвечает так же как и у вас
    [46026.933078] usb 8-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
    [46026.933090] usb 8-1: Product: USB2.0-Serial
    [46026.984657] usbcore: registered new interface driver usbserial_generic
    [46026.984754] usbserial: USB Serial support registered for generic
    [46026.988811] usbcore: registered new interface driver ch341
    [46026.988950] usbserial: USB Serial support registered for ch341-uart
    [46026.989106] ch341 8-1:1.0: ch341-uart converter detected
    [46027.005405] usb 8-1: ch341-uart converter now attached to ttyUSB0
    root@md:~# ls -l /dev/ttyUSB0
    crw-rw—- 1 root dialout 188, 0 Oct 5 19:37 /dev/ttyUSB0
    root@md:~#

  6. Max:

    root@md:~# ps -ef | grep http | grep -v grep
    www-data 572 1 0 06:51 ? 00:00:00 /usr/bin/vlc -I http —http-password=12345 —http-port 7070

  7. Max:

    Использовал команду useradd -G dialout www-data и ничего не изменилось(В данном случае нужно добавить пользователю www-data группы dialout)

  8. Max:

    Алексей, добрый день! Пользователь www-data добавлен в группу, serial port в windows определяется как com-порт, вроде бы все сделал, но модуль mysensors все равно в offline! подскажите, что не так? и как дать права на него процессу MajorDoMo?

Ваш отзыв

Вы должны войти, чтобы оставлять комментарии.