Category : Разработчикам

Введение В нашей Базе Знаний уже есть статья про базовые принципы создания модуля для системы MajorDoMo, так что для изучения основ, пожалуйста, воспользуйтесь приведенной ссылкой. В этой же статье я хочу немного углубиться в то, как модуль может работать с ядром системы, ведь, не смотря на свою относительную автономность, задача модуля в большинстве случаев как ..

Read more

Для начала можете почитать статью про варианты доработки MajorDoMo У нас есть специальный плагин для упрощения процесса создания модуля. Работа с плагином И пара дополнений и уточнений 2 ветки на форуме посвященные созданию модулей: Рекомендации О плагине по созданию модуля А также видео от Никиты [nick7zmail] о создании модуля &nb..

Read more

Пишем модуль и публикуем его на GitHub (либо в архив, как описано здесь ) Заходим в Connect MajorDoMo (регистрируемся если ещё нет аккаунта), в раздел кабинета Мои дополнения Нажимаем Добавить и заполняем форму: Категория Название (например Xiaomi Devices) Системное имя (как в исходнике модуля, например xiaomihome) Описание (на русском и английском) Веб-сайт поддержки (например, ссылка ..

Read more

Введение MajorDoMo -- это очень гибкий инструмент, умелое использование возможностей которого открывает практически безграничные просторы для реализаций любых фантазий в области автоматизации жизнедеятельности. Уже имеющихся средств и вариантов настройки будет вполне достаточно для большинства пользователей, но, кроме этого, есть возможности для еще более глубокой модификации системы под собственные нужды. В этой статье я расскажу об ..

Read more

По ссылке  MajorDoMo Style Guide  доступно руководство/стандарт/соглашение (выбрать нужное)  по оформлению кода, именованию таблиц, связей между таблицами если таковые имеюются. Также имеется набор правил к PHP Code Sniffer для проверки кода на соответствие соглашению по оформлению кода. PHP Code Sniffer можно использовать как для проверки отдельных файлов так для проверки файлов при коммите в репозитарий. ..

Read more

Описание Пакет дополнения в системе MajorDoMo представляет собой tgz-архив с папкой, в которой лежит некая структура файлов, необходимых для функционерования устанавливаемого дополнения. В большинстве случаев, в пакете находится некий функциональный модуль, устанавливаемый в систему при установке пакета, но это не обязательно, т.к. пакет может представлять собой просто набор дополнительных файлов. При установке пакета, система распаковывает ..

Read more

Используется для создания объектов температурных сенсоров. Свойства alive - актуальность aliveTimeOut - Время в секундах, от последнего обновления до момента, когда будем считать показания не актуальными (по умолчанию 30 минут) LinkedRoom - Комната в которой установлен датчик. При обновлении температуры, так же обновит температуру в той комнате. temp - значение температуры. updated - Время последнего ..

Read more

Команды синхронизации представляют собой инструкции по работе с файлами в различных каталогах. Например, они могут быть использованы для автоматического копирования фотографий при вставке флэш-карты в компьютер или для автоматического обновления каких-либо файлов. Установка переменных, которые можно использовать в коммандах SET PROJECTS_DIR=D:/jey/projects Игнорирование папок и файлов, которые включают указанное слово IGNORE project_files Синхронизация (добавление новых и ..

Read more

Основной цикл системы В этой заметке я опишу, как функционирует система с точки зрения задач, выполняемых периодически. Для начала, имеет смысл сказать, что система может обрабатывать поступающие сигналы от внешних устройств и без запуска основных циклов. Система представляет собой веб-сервис и обработка входящего события в виде HTTP-запроса будет запущена сразу по поступлению запроса. Однако, есть ..

Read more

Задачи предназначены для планирования определенных действий роботом. Основное предназначение -- выполнение команд через какой-то промежуток времени от текущего, либо в какое-то определенное время. Основные команды

Примеры использования Например, при срабатывания события от датчика движения, выключаем свет через 1 минуту после последнего движения:

Или ставим будильник на завтра: [crayon-6994d1c7142990..

Read more

В систему встроено несколько функций для работы непосредственно с базой данных. Эти функции доступны как из исходного кода системы, так и из любого метода или сценария. Соединение с базой данных устанавливается автоматически, так что отдельно его открывать/закрывать нет необходимости. SQLSelectOne array SQLSelectOne(string query) Посылает SELECT-запрос на сервер MySQL, возвращаемым результатом которого может быть только одна ..

Read more

Общие функции DebMes($errorMessage, $logLevel) -- записывает сообщение в главный лог файл. Параметр $logLevel не является обязательным, и по умолчанию установлен как "debug". say($ph,$level,$from_user_id) -- говорит фразу (использует глобальные переменные $voicemode'' [именно говорить] и $commandLine [преобразует ответ в echo utf2win(), иначе просто echo]). $level - указывает уровень важности фразы (в зависимости от текущих настроек минимального уровня произношения, фраза ..

Read more

Этот раздел сайта предназначен для тех, кто хочет поучавствовать в разработке системы либо просто глубже вникнуть во внутреннее устройство проекта. Информация в данном разделе будет пополняться по мере возможности. Структурная схема системы: Основные файлы и папки backup\ -- автоматические резервные копии данных системы debmes\ -- системный лог событий/ошибок highcharts\ -- "живые" графики blocky\ -- система ..

Read more

Проще всего объяснить на примере. Команда:

Будет вызван метод Connected объекта USBDev и ему будут передан параметр serial со значением 12345 и параметр devname со значением mydevice При этом код обработчика может выглядеть таким образом:

HTTP-запрос Эта же команда может быть выполнена посредством http запроса подобного вида:

(192.168.0.17 -- адрес компьютера, на котором запущена система) Кроме того, через http можно брать ..

Read more