Софт majordomo для организации умного дома
Содержание:
- Общие функции
- Плюсы и минусы
- Управление циклами (сервисами)
- Функционал Public Calls в Connect-е
- Состав и управление системой MajorDoMo
- Что такое MajorDoMo?
- Функции и возможности
- Домены
- Компоненты системы MajorDoMo
- Что это такое
- Microsoft Outlook
- 4.6 Что такое «чат системы», «командная строка», «консоль»?
- Порядок установки системы MajorDoMo
- 1.5 Есть ли коммерческая версия комплекса?
- Обозначения
- API
- 4.5 Что значит «связанный» объект/свойство/метод?
- Дополнительные услуги
- Настройка веб-сервера
Общие функции
DebMes($errorMessage, $logLevel) — записывает сообщение в главный лог файл. Параметр $logLevel не является обязательным, и по умолчанию установлен как «debug».
say($ph,$level,$from_user_id) — говорит фразу (использует глобальные переменные $voicemode» и $commandLine ).
$level — указывает уровень важности фразы (в зависимости от текущих настроек минимального уровня произношения, фраза может быть либо озвучена голосом либо просто записана в историю сообщений).
$from_user_id — от имени кого будет сказана фраза ($from_user_id в данном случае будет равен идентификатору текущего пользователя). sayTo (ФРАЗА, УРОВЕНЬ, НАЗНАЧЕНИЕ) — в качестве НАЗНАЧЕНИЯ можно использовать системное имя терминала и если это терминал на MajorDroid, то ему отправится команда для произношения
В любом случае из этой функции создаётся событие SAYTO (вида: processSubscriptions(‘SAYTO’, array(‘level’ => $level, ‘message’ => $ph, ‘destination’ => $destination));), которое может быть перехвачено сторонними модулями — на заметку тем, кто захочет создать свой модуль для организации работы с различными устройствами доставки сообщений на определённый канал
sayTo (ФРАЗА, УРОВЕНЬ, НАЗНАЧЕНИЕ) — в качестве НАЗНАЧЕНИЯ можно использовать системное имя терминала и если это терминал на MajorDroid, то ему отправится команда для произношения. В любом случае из этой функции создаётся событие SAYTO (вида: processSubscriptions(‘SAYTO’, array(‘level’ => $level, ‘message’ => $ph, ‘destination’ => $destination));), которое может быть перехвачено сторонними модулями — на заметку тем, кто захочет создать свой модуль для организации работы с различными устройствами доставки сообщений на определённый канал.
sayReply(ФРАЗА, УРОВЕНЬ, ОТВЕТ_НА_ЧТО) — последние два параметра не обязательны. Эта функция ведёт себя следующим образом:
- Если указан параметр ОТВЕТ_НА_ЧТО, то система попытается найти терминал, с которого был запрос, содержащий данную фразу
- Если не указан параметр ОТВЕТ_НА_ЧТО, то система выберет терминал, с которого был любой запрос в течении последних 5 секунд
- Если терминал найден, то ответ будет направлен на него (с помощью той же функции sayTo)
- Если терминал не найден, то ответ будет озвучен в обычном порядке (аналогично просто использованию функции say).
processCommand($command) — отправляет текстовую команду на исполнение (например, «скажи сколько время»). Сами команды настраиваются методе ThisComputer->commandReceived.
getGlobal($varname); — получения значения глобального свойства
setGlobal($varname,$value); — установка глобального свойства
processLine($line); — запуск скрипта синхронизации
getRandomLine($filename); — взятие случайной строки из текстового файла. $filename может быть сокращённым, например file1 и тогда будет браться файл ./texts/file1.txt
playSound($filename); — проигрывание файла (mp3,wav,etc.). $filename может быть сокращённым, например file1 и тогда будет браться файл ./sounds/file1.mp3
playMedia($path); — играть музыку из каталога $path
runScript($id,$data); — выполняет скрипт с заданным id. В качестве id может использоваться имя
runScriptSafe($id,$data); — выполняет скрипт безопасно в фоне
isOnLine($host) — проверяет доступность хоста из Устройства OnLine (1/0).
Плюсы и минусы
- Встроенные инструменты защиты сайта, которые справляются с вирусами и DDoS-атаками.
- Опции для настройки продвижения сайта.
- Техническая поддержка, работающая на русском языке и в круглосуточном режиме.
- Бесперебойный доступ к серверам.
Впечатления от хостинга портят его недостатки, некоторые из которых могут очень сильно повлиять на пользовательский опыт. Среди основных минусов отметим:
- Медленная работа панели управления собственной разработки.
- Низкие показатели быстродействия серверов, которые негативно сказываются на скорости загрузки контента на сайтах.
- Периодические сбои при работе с хостингом через FTP.
- Вызывающая нарекания клиентов работа службы технической поддержки.
- Использование устаревшего оборудования.
Все эти недостатки так сильно бросаются в глаза, что успели превратить Majordomo в объект постоянной критики. Не все негативные отзывы справедливы, но по большей части претензии обоснованы.
Управление циклами (сервисами)
Интерфейс доступен через раздел XRay->Services
Для управления циклом использются глобальные переменные.
Например, есть цикл ./scripts/cycle_ping.php. Чтобы его остановить, достаточно выполнить команду в коде:setGlobal(‘cycle_pingControl’,’stop’); — ОстановкаsetGlobal(‘cycle_pingControl’,’start’); — запускsetGlobal(‘cycle_pingControl’,’restart’); — рестартsetGlobal(‘cycle_pingDisabled’,’1′); — Для запрета автозапуска (по-умолчанию он всегда разрешён)setGlobal(‘cycle_pingAutoRestart’,’1′); — Для включения авто-восстановления (по-умолчанию он всегда выключен)
Функционал Public Calls в Connect-е
В разделе CONNECT панели управления есть закладка Public Calls
Самое важное в настройках — связанный объект и метод, который будет вызван. Ссылка будет с уникальным ключём, но можно дополнительно её защитить заданным паролем
Ссылку можно открывать просто в браузере или даже из скрипта.
К ссылке можно добавлять свои параметры и они будут доступны в методе в массиве $params Важно: очень аккуратно используйте эту опцию и старайтесь не «раскидываться» ссылками, которые могут навредить, попадая в
Идеи использования:
- Обмен данными между несколькими системами MajorDoMo (одна система через getURL может инициировать событие в другой, причём у первой даже может не быть аккаунта в Connect-е)
- Интеграция со сторонними системами и интернет-сервисами (сторонняя система «дёргает» ссылку и MajorDoMo об этом узнаёт)
- Выдача прав на использование некоторых функций системы третьим лицам (передайте ссылку кому-нибудь, попросите добавить в закладки и объясните, что будет происходить при переходе — реализация сценария полностью на ваше усмотрение)
getURLBackground(‘URL’); — Запрос URL в фоне (если не важен результат
Состав и управление системой MajorDoMo
В сущности, система представлена специализированной web оболочкой, которая работает в пространстве домашнего web-сервера. Причем последний может функционировать под любыми операционными системами, Windows или Linux. Да и сама аппаратная составляющая центрального компьютера значения не имеет. Это вполне может быть не только IBM совместимый компьютер, но и RasberriPi или еще что-либо более экзотическое.
Клиентские устройства могут быть представлены практически всем производимым спектром оборудования, от устройств MQTT и до радиоуправления Broadlink RF (стандарт 433/315мГц). Взаимодействие с сетями Z-Wave, KNX, и оборудованием Sonoff, Livolo или Xiaomi – происходит через дополнительные модули, которые тем не менее объединяют эти устройства в единое пространство имен, классов, объектов и методов.
Что такое MajorDoMo?
Высокие технологии все глубже входят в жизнь человека. Это касается не только его труда, медицины или городской инфраструктуры. Абсолютно все жизненное окружение получает определенный «ум»: выключатели, системы климат-контроля помещений, различные датчики (открывания-закрывания, дыма, движения). Все объединяется в стройные логические системы при помощи цифровых управляющих контуров и контроллеров оборудования. Общность такого слияния называется «умный дом», который и предоставляет возможности единого управления и наблюдения за всем комплексом устройств в него входящего. Причем контроль может осуществляться как в ручном режиме через какой-либо общий интерфейс, так и автоматическими возможностями, наподобие выполнения определенных сценариев, реакции на показания датчиков или даже голосовыми командами.
Самое, наверное, простое и удобное, что стоит вспомнить про «умные» системы в быту – это управление светом. К примеру, выключатель, как ручной прибор, становится не нужен (хотя и возможен). Можно представить себе, что свет включается сам, если датчик в помещении определил наличие человека. Причем, в зависимости от времени суток, включается только то освещение, которое в текущий момент необходимо.
Самое простое – человек один, вечер. Зашел в зал. Зачем зажигать люстру? Автоматически загорается только бра. А вот если зашло несколько людей – тогда да, включается люстра. Опять же. Ночью пошел человек в туалет. Зачем зажигать все освещение? Достаточно включить подсветку ему по дороге, да свет в самом туалете.
Или такой пример: в будние дни люди на работе. Можно запустить робот-пылесос, который к их приходу уберет и встанет на подзарядку. А вот в выходные надобности в этом нет. Соответственно центральный контроллер и действует. Вот это и есть система «умный» дом, которая сама, в зависимости от определенных параметров, производит те или иные действия.
Одна из наиболее доступных, открытых и удобных из подобных – умный дом MajorDoMo. Кросс платформенный OpenSource проект, активно развивающийся и имеющий достаточно низкий порог вхождения. Основа его удобства – относительно простая страница — конфигуратор всего комплекса на домашнем или рабочем web-сервере.
Несмотря на простоту настройки системы MajorDoMo с нуля после установки, у нее множество возможностей по поддержке различного оборудования и протоколов обмена между ним. К комплексу можно подключить не только выключатели различных видов, но и датчики движения, температуры, освещенности или любые другие, информация от которых будет непосредственно выводиться на управляющей web-страничке или использоваться в скриптах MajorDoMo.
Функции и возможности
Сами по себе модули содержат обширные настройки: в соответствующем разделе интерфейса можно, например, указать цвет пользователя, разрешенные ему компьютеры для входа, и так далее.
Электронный «мажордом» способен управлять многочисленными умными устройствами:
- розетками;
- лампами;
- бытовой техникой;
- домашним мультимедиа;
- кондиционерами;
- отопительными системами;
- охранными комплексами;
- инженерным и сантехническим оборудованием, и так далее.
Умеет он взаимодействовать и с интернет-сервисами (например, для поиска новостей). Кроме того, через глобальную сеть обеспечивается удаленный доступ и своевременное обновление.
Для продвинутых пользователей существует возможность дописывать модули и сценарии на языке программирования PHP. В системе также присутствует встроенный визуальный конструктор Blockly, обеспечивающий простое создание алгоритмов:
Комплекс наверняка станет интересен начинающим и продвинутым программистам. Разработка ПО под MajorDoMo не отличается высоким порогом входа, необходимо лишь обладать пониманием языка PHP и некоторых смежных дисциплин (таких, как JS, CSS). С них и следует начинать осваивающим разработку под эту платформу джуниор-кодерам.
Домены
Вкладка «Домены — Управление»
В разделе «Управление» можно редактировать DNS-записи, добавлять и удалять поддомены, подключить SSL-сертификат, продлить и удалить домен.
Для редактирования DNS-записей домена или поддомена необходимо нажать на название основного домена, после этого откроется окно «Управление DNS-записями». Если необходимо добавить запись для основного домена, поле «Доменное имя» нужно оставить пустым (а не @ как требуют во многих руководствах). Необходимо указать тип и значение DNS-записи и нажать зеленую галочку.
Поддерживаются следующие типы записей: — A — предназначена для указания IP-адреса, обычно адрес сервера, на котором работает сайт; — AAAA — предназначена для указания IP-адреса для протокола IPv6; — MX — адрес почтового сервера; — CNAME — позволяет перенаправить на другое доменное имя; — TXT — любой текст, часто используется для подключения домена к стороннему сервису, задания разрешенных адресов для отправки почты (SPF-запись); — SRV — позволяет задать имя хоста и номер порта определенных служб.
Изменение NS-записей для делегирования домена на другой хостинг возможно либо через контрольную панель регистратора домена, либо по запросу на адрес domain@majordomo.ru.
В окне, открывшемся после нажатия на домен, можно создать и удалять поддомены. После создания поддомена он не заработает сразу, необходимо создать сайт для него в разделе «Сайты» контрольной панели или подключить домен к какому-то другому сайту.
Удалить домен можно, нажав на имя домена, а затем на надпись «Удалить домен». Прежде чем удалить домен, нужно удалить сайт, привязанный к этому домену в разделе «Сайты» и все почтовые ящики этого домена в разделе Почта → Почта от Majordomo.
При окончании срока регистрации домена появится кнопка «Продлить», при наведении на которую будет указана стоимость продления домена. Возможно включить автоматическое продление домена, установив галочку в столбце «Автопродление».
Включить бесплатный SSL-сертификат от Let’s Encrypt можно, нажав на кнопку «настроить» в строке SSL, после чего перейти на вкладку Let’s Encrypt и нажать кнопку «установить». Генерация сертификата возможна только в случае, если домен делегирован на NS-серверы Majordomo (ns.majordomo.ru, ns2.majordomo.ru, ns3.majordomo.ru). SSL-сертификаты для поддоменов работают, если поддомен создан вручную и для него создан сайт в разделе «Сайты».
Вкладка «Домены — Подключение»
В разделе «Подключение» можно зарегистрировать новый домен или подключить уже имеющийся. Прежде чем зарегистрировать домен, необходимо создать персону в разделе Домены → Персона для регистрации.
В подразделе «Подключение имеющихся доменов» можно добавить уже зарегистрированный домен. Чтобы домен заработал, он должен быть делегирован на NS-серверы Majordomo (ns.majordomo.ru, ns2.majordomo.ru, ns3.majordomo.ru).
Вкладка «Домены — Персоны для регистрации»
источник
Компоненты системы MajorDoMo
Основное понятие, вводимое цифровым домом «MajorDoMo» – объект, множество которых в свою очередь делится на различные классы. И каждый из них имеет свои свойства и методы взаимодействия. К примеру, класс «лампочки», в который могут относиться объекты «люстра в зале», «подсветка зеркала», «свет на кухне». У каждого есть свойство «статус» со значением «включено» и «выключено», а также метод «зажечь» и «погасить».
Это наиболее простой вид объяснения разделения всего комплекса связанного оборудования в пределах понятий MajorDoMo. То есть, методы и свойства распределяются в зависимости от класса объекта и принадлежат только подобным ему.
Объекты
Объект MajorDoMo в изначальной своей, аппаратной форме –это контроллер с возможностью связи между управляемым устройством или датчиком и центральной системой, на которой находится программный комплекс MajorDoMo.
В качестве аппаратной составляющей выступает как оборудование самостоятельной сборки, так и выпускаемое некоторыми производителями уже в комплекте, к примеру фирмой Xiaomi. «Умный» дом MojorDomo поддерживает массу протоколов обмена – MQTT, Z-Wave, Broadlink (без возврата состояния) и множество других.
Классы
Как уже говорилось, класс объединяет объекты одного типа. К примеру, класс «выключатели» с состояниями (включено/выключено) и двумя методами (включить/погасить). Или класс «датчики движения» со свойством, у которого значения изменяются в пределах «присутствует движение/нет движения».
Есть и возможность дополнительного разветвления в одной общности – введение подкласса. Самым понятным примером станут выключатели. Бывают контроллеры света, которые не только умеют включать и выключать напряжение, но и плавно его изменять. То есть в парадигме понимания системы умного дома мажордомо у класса «выключатели» конкретного типа есть еще и дополнительное свойство «яркость». В общем виде можно расписать эту взаимосвязь следующим образом:
Класс «выключатели» |
Свойства: Статус = включен|выключен Методы: Включить|Выключить |
||
«Свет в кухне» |
|||
«Свет в прихожей» |
|||
«Свет в ванной» |
|||
Подкласс «ВыключателиСДиммером» |
Наследуемые свойства: Статус = включен|выключен Наследуемые методы: Включить|Выключить собственное устанавливаемое свойство: Яркость = значение |
||
«Свет в спальне» |
|||
«Свет в зале» |
Свойства
Для большинства устройств в пределах «умного дома» характерно не только следование указаниям контролирующей части, но и возврата своего состояния. Это и есть свойство объекта.
Кроме того, параметрам можно устанавливать значения, которые будут возвращаться в устройство. К примеру, у класса «кондиционеры» можно устанавливать значение свойства «температура», которое будет обрабатываться самим кондиционером, в зависимости от которого он и будет поддерживать режим работы.
Методы
В рамках системы, «методы» — это те управляющие действия, которые могут быть произведены с каким-либо входящим в ее состав устройством. К примеру, у класса «выключатели» это «включить»| «выключить», у «двери» – «открыть»| «закрыть» и тому подобные.
Что это такое
Majordomo — свободно распространяемая кроссплатформенная программа, предоставляющая все необходимы инструменты для организации смарт-жилища:
- серверную часть;
- плагины для различного оборудования;
- поддержку сценариев;
- работу с разнообразными существующими протоколами обмена данными.
«Мажордомо» умеет взаимодействовать с умными выключателями, розетками, датчиками и реле. Все элементы настройки и управления сведены в едином простом веб-интерфейсе, устанавливающемся на центральный хаб системы.
Таким образом, MajorDoMo — сервер «умного дома» обеспечивающий согласованную работу прочих его компонентов. Он может быть установлен как на обычный ПК, так и ноутбук или поддерживаемый микрокомпьютер (например, Raspberry Pi, Arduino и прочие). Программа получает данные от сопряженных с ней датчиков и отдает заданные владельцем команды, исполняемые конечными устройствами и контроллерами.
Для понимания работы программы необходимо выяснить ее логическое устройство.
Microsoft Outlook
Рассмотрим настройку почтового клиента Microsoft Outlook 2016.
Запустите Microsoft Outlook. Перейдите в меню «Файл»:
В диалоговом окне «Выбор службы» отметьте Протокол POP3 или IMAP . Нажмите кнопку «Далее»:
В следующем окне «Параметры учетных записей IMAP и POP » в разделе «Сведения о пользователе» введите Ваше имя и имя почтового ящика с указанием доменного имени. Если вы создаете, например, ящик test , то ваш адрес будет test@sitetest.ru, где sitetest.ru — имя вашего домена.
В разделе «Вход в систему» введите полностью имя создаваемого почтового ящика, например, test@sitetest.ru, а в поле «Пароль», соответственно, создайте пароль к этому почтовому ящику.
В разделе «Сведения о сервере», если был выбран протокол POP3 , в поле «Сервер входящей почты» укажите: pop3.majordomo.ru либо pop3.ваш_домен.ru Если Ваш потовый клиент требует указывать порт, укажите 110.
Если для работы учетной записи был выбран протокол IMAP , в поле «Сервер входящей почты» укажите: imap.majordomo.ru При необходимости указывать порт, введите значение 143.
В поле «Сервер исходящих сообщений» ( SMTP ) также введите smtp. majordomo . ru
Затем нажмите кнопку «Другие настройки». В открывшемся окне необходимо выбрать вкладку «Сервер исходящей почты» и поставить галочку «SMTP-серверу требуется проверка подлинности». После этого отметьте пункт «Аналогично серверу для входящей почты» и нажмите кнопку «OK»:
Затем нажмите кнопку «Далее». В появившемся окне «Проверка настройки учетной записи» Microsoft Outlook выполнит проверку корректности выставленных параметров и отправит тестовое письмо:
После успешно выполненного тестирования нажмите кнопку «Закрыть» . Настройка Microsoft Outlook закончена.
источник
4.6 Что такое «чат системы», «командная строка», «консоль»?
- Чат системы — история сообщений от системы, а так же форма ввода команд на естественном языке. Данный модуль доступен в пользовательском интерфейсе и встроен в Меню по-умолчанию. Так же его можно встроить в сцену или обратиться по прямой ссылке /command.php
- Командная строка — средство операционной системы (не системы MajorDoMo) для запуска системных команд. Обычно используется для первоначальной настройки платформы и тонкой настройки операционной системы
- Консоль — встроенная в панель управления MajorDoMo строка ввода (ссылка Консоль в блоке заголовка панели). Данная строка позволяет отправлять инструкции языка программирования PHP. Например, можно там написать say(«Привет»,2); и инструкция будет выполнена, а именно произнесено слово «Привет»
Порядок установки системы MajorDoMo
Конечно, можно использовать для «умного» дома любой старый компьютер. Но все же рекомендовано взять отдельно под эти цели RasberriPI. Стоит он не дорого, бесшумен, занимает минимум места. Прекрасная основа для MajorDoMo.
Итак, подразумевается, что система уже на RaberriPI стоит и сконфигурирована под использование интернета. Описаний, как ее поставить и настроить, множество в сети. Далее, нужно подключиться к нему при помощи терминала под root и обновить систему:
# apt-get update && apt-get upgrade
Следом необходимо скачать скрипт установки MajorDoMo (интернет должен быть настроен!) и запустить его:
# wget https://raw.githubusercontent.com/immortalserg/installmd/master/installmd# chmod +x installmd# ./installmd -t -c
После запуска он спросит пароли:
Введите пароль root для MariaDB (MySQL)>
Введите пароль пользователя pi (для системы и базы данных MajorDoMo)>
Кроме как после этих вопросов, нигде пароли устанавливать не нужно. Просто нажимается «ENTER».
По окончании установки система сообщит о необходимости перезагрузки:
Собственно, после установки и перезагрузки RasberriPI можно начинать настройки MajorDoMo. Делается это через любой web-браузер с подключением по адресу местонахождения мини-компьютера в сети.
1.5 Есть ли коммерческая версия комплекса?
Как таковой, платной версии программного комплекса не существует — система распостраняется абсолютно свободно под лицензией MIT, что подразумевает использование её без каких либо ограничений, кроме обязательного указания авторства, в любых проектах. Необходимо уточнить, что данный факт не исключает возможности оказания платных услуг с использованием платформы как инструмента в реализации проекта Умного Дома на коммерческой основе. При этом вполне возможна покупка/продажа на договорной основе дополнительного оборудования, а так же услуг по настройке системы для конкретного пользователя (программирование сценариев, разработка дизайна, отладка и т.п.). Подробнее о возможностях коммерческого сотрудничества читайте всоответствующем разделе сайта.
Обозначения
В нотной записи также могут быть обозначения, которые ставятся рядом с определенной нотой и относятся к ней непосредственно.
Так, если рядом с какой-нибудь нотой стоит цифра в кружочке, это означает, что данную ноту нужно играть на струне, соответствующей этой цифре:
Лады обычно обозначают римскими цифрами. Ноту проигрывают на той струне, которую зажимают на обозначенном ладу.
Зачастую указывают, каким из пальцев нужно играть определенную ноту. Рассмотрим обозначения, которые предусмотрены для пальцев правой руки:
- p – большой палец;
- a – безымянный палец;
- m – средний палец;
- i – указательный палец.
Для обозначения пальцев левой руки применяются арабские цифры, которые не обводятся кружками: 1, 2, 3, 4. Цифра 0 обозначает, что звучание указанной ноты извлекается на открытой струне.
Описанные правила и инструкции подходят, прежде всего, для новичков. Для облегчения уроков игры на гитаре существует большой ассортимент программных продуктов.
API
GET
/api/data/<OBJECT> — список всех свойств и значений объекта <OBJECT>/api/data/<OBJECT>.<PROPERTY> — значение свойства <OBJECT>.<PROPERTY>/api/method/<OBJECT>.<METHOD> — вызов метода <OBJECT>.<METHOD>/api/method/<OBJECT>.<METHOD>?param1=value1¶m2=value2 — вызов метода <OBJECT>.<METHOD> с параметрами/api/script/<SCRIPT> — вызов сценария <SCRIPT>/api/script/<SCRIPT>?param1=value1¶m2=value2 — вызов сценария <SCRIPT> с параметрами/api/events/<PATH/TO/EVENT>?param1=value1¶m2=value2 — сохранения события с параметрами/api/devices — список (простых) устройств/api/rooms — список комнат/api/rooms/<ID> — детали комнаты с кодом <ID>
/api/history/<OBJECT>.<PROPERTY>/<PERIOD> — история значений свойства за указанный период
<PERIOD> может принимать значения: N (число, кол-во часов), day, week, month, year, Ndays, Nweeks, Nmonths, Nyears
например, ссылка /api/history/switch1.status/2days вернёт все значения switch1.status за два дня
/api/history/<OBJECT>.<PROPERTY>/<PERIOD>/max — максимальное значение за период/api/history/<OBJECT>.<PROPERTY>/<PERIOD>/min — минимальное значение за период/api/history/<OBJECT>.<PROPERTY>/<PERIOD>/avg — среднее значение за период/api/history/<OBJECT>.<PROPERTY>/<PERIOD>/sum — сумма значений за период/api/history/<OBJECT>.<PROPERTY>/<PERIOD>/count — количество значений за период
POST
/api/data/ — получение значений нескольких свойств (по полному названию типа <OBJECT>.<PROPERTY> или только по названию объекта <OBJECT>)
Request:
JavaScript
{«properties»: }
1 | {«properties»»ThisComputer.timeNow»,»Relay10″} |
Response:
JavaScript
{
«data»: {
«ThisComputer.timeNow»: «10:56»,
«Relay10.isActivity»: «0»,
«Relay10.groupEco»: «0»,
«Relay10.groupSunrise»: «0»,
«Relay10.loadType»: «curtains»,
«Relay10.groupEcoOn»: «0»,
«Relay10.icon»: false,
«Relay10.groupSunset»: false,
«Relay10.status»: «0»,
«Relay10.alive»: «1»,
«Relay10.linkedRoom»: «Bedroom»,
«Relay10.updated»: «1555607461»,
«Relay10.updatedText»: «20:11»,
«Relay10.aliveTimeout»: «»,
«Relay10.StatusLowBattery»: false
}
}
1 |
{ «data»{ «ThisComputer.timeNow»»10:56», «Relay10.isActivity»»0», «Relay10.groupEco»»0», «Relay10.groupSunrise»»0», «Relay10.loadType»»curtains», «Relay10.groupEcoOn»»0», «Relay10.icon»false, «Relay10.groupSunset»false, «Relay10.status»»0», «Relay10.alive»»1», «Relay10.linkedRoom»»Bedroom», «Relay10.updated»»1555607461», «Relay10.updatedText»»20:11», «Relay10.aliveTimeout»»», «Relay10.StatusLowBattery»false } } |
/api/data/<OBJECT>.<PROPERTY> — установка значения свойства <OBJECT>.<PROPERTY>
/api/rooms/setOrder — изменение очерёдности комнат
Request
JavaScript
{«id»: «7»,»priority»: 0},
{«id»: «4»,»priority»: 1}
1 |
{«id»»7″,»priority»}, {«id»»4»,»priority»1} |
Response
JavaScript
{result: true}
1 | {resulttrue} |
result — true/false
/api/room — добавление/редактирование комнаты
Request
JavaScript
{«id»: «2»»title»: «Название комнаты»}
1 | {«id»»2″»title»»Название комнаты»} |
(если в request задан id, то происходит)
Response
JavaScript
{«id»: «2»,»title»: «Название комнаты»,»object»: «Room2″,»priority»: 1}
1 | {«id»»2″,»title»»Название комнаты»,»object»»Room2″,»priority»1} |
DELETE
/api/room/{id} — удаление комнаты
Поделитесь в соц сетях
4.5 Что значит «связанный» объект/свойство/метод?
В различных частях системы существует функциона «привязки» того или иного элемента с объектом, его свойством или его методом. Объекты являются основой хранения данных системы, а так же описанием функций работы с этими данными. Именно поэтому большинство модулей так или иначе ссылаются на объекты.
Например, элемент меню типа Выключатель используется связанное свойство для хранения данных о своём последнем состоянии, а так же метод объекта, как действие, которое надо выполнить после изменения состояния. С другой стороны, модули работы с оборудованием так же используют связанные свойства и объекты для хранения данных, полученных от соответствующих электронных устройств.
Например, привязав свойство какого-то объекта к свойству выключателя в модуле ZWave можно обращаться к этому свойству для получения последнего состояния физического выключателя, а так же использовать это свойства для установки значения (включения нагрузки), таким образом создаётся прозрачная двухсторонняя связь между физическим устройством и объектом системы MajorDoMo. Одно свойство объекта может быть привязано к нескольким элементам, так, если рассматривать предыдущие два примера, то можно объединить их в один, когда и для привязки выключателя в меню и для привязки выключателя ZWave мы используем одно свойство. В таком случае мы получаем управляемый через меню физический выключтатель.
Дополнительные услуги
Majordomo предлагает целый ряд дополнительных услуг, полезных бизнесу.
Почта Mail.ru на домене
После регистрации домена вы можете подключить к нему почту. Majordomo предлагает использовать свой почтовый сервис или решение для бизнеса от Mail.ru.
Бесплатный сервис от Mail.ru позволяет создать до 5000 адресов на одном домене. Есть и другие преимущества:
- объём почтовых ящиков не ограничен;
- используется привычный интерфейс Mail.ru;
- каждый пользователь получает 25 ГБ в облаке Mail.ru;
- поддерживается мультиавторизация для удобного переключения между почтовыми ящиками.
SSL-сертификаты
Для шифрования данных при передачи трафика между сервером и клиентом используется SSL-сертификат. Majordomo предлагает приобрести сертификаты Comodo — одного из ведущих центров. Все доступные варианты совместимы с современными браузерами. Стоимость сертификатов — от 990 до 25 000 рублей в год.
Защита от спама и вирусов
В эту услугу входит выполнение сразу трёх задач.
- Антивирусная проверка входящих сообщений.
- Защита от спама. Вы можете установить правила (пропускать или не пропускать спам), а также настроить уровень придирчивости к письмам (слабый, средний, сильный). Также доступны белый и чёрный список адресов.
- Настройка фильтрации писем на сервере. Это позволит получить сообщения в одни и те же папки на разных устройствах.
Защита от спама и вирусов — платная услуга. Стоимость — 49 рублей в месяц.
SEO-аудит сайта
В услугу входит проверка сайта на соответствие требованиям поисковых систем, оценка удобства использования, оптимизация главной страницы, поиск ошибок и подготовка рекомендаций по продвижению. Стоимость SEO-аудита — 5490 рублей.
Рекламные возможности
Majordomo предлагает услуги специалистов по настройке контекстной рекламы и рекламных кампаний в соцсетях.
- Базовая настройка контекстной рекламы — 5990 рублей. Работа в Яндекс.Директ или Google Adwords. Доступно до 30 ключевых запросов и до 20 объявлений.
- Премиальная настройка контекстной рекламы — 12 990 рублей. Работа в Яндекс.Директ или Google Adwords. Доступно до 200 ключевых запросов и до 50 объявлений, плюс 1 месяц ведения и контроля рекламной кампании.
- Настройка таргетированной рекламы во «ВКонтакте» — 12 990 рублей. Услуга включает анализ предложения и аудитории, разработку стратегии продвижения, создание до 50 объявлений и баннеров, запуск до 5 рекламных кампаний, отслеживание эффективности и внесение правок в течение 1 месяца.
Аренда программы 1С в облаке
Majordomo предлагает облако с установленной программой 1С, с которой можно работать с любого устройства, имеющего доступ в интернет. В пакет услуг входит:
- Бесплатный перенос 1С на облако.
- Бесплатная круглосуточная поддержка.
- Финансовые гарантии работоспособности.
- Бесплатные консультации.
Есть два тарифа: «Лайт» и «Оптимальный». Между собой они различаются возможностями для изменения и доработки, доступными клиентами, объёмом дискового пространства и конфигурациями 1С. На тарифе «Лайт» за каждого пользователя нужно платить 950 рублей в месяц (760 рублей в месяц при оплате на год). На «Оптимальном» каждый пользователь обойдётся в 1299 рублей в месяц (1040 рублей в месяц при оплате на год).
Настройка веб-сервера
Управление умным домом от Majordomo осуществляется с помощью веб-интерфейса и для его работы необходим веб-сервер.
Установка Apache
Устанавливаем веб-сервер Apache и дополнительные компоненты:
apt install apache2 apache2-bin apache2-data apache2-utils
Разрешаем автозапуск apache и стартуем сервис:
systemctl enable apache2
systemctl start apache2
Открываем браузер и вводим IP-адрес сервера — мы должны увидеть страницу Apache по умолчанию:
Apache + PHP
Устанавливаем php и дополнительные компоненты:
libapache2-mod-php libapache2-mod-php php-bz2 php-cli php-common php-curl php-gd php-json php-mbstring php-mysql php7.2-opcache php-readline php-xml php-dev libmcrypt-dev gcc make autoconf libc-dev pkg-config
Устанавливаем компонент mcrypt:
pecl install mcrypt-1.0.1
Включаем компонент mcrypt в Apache:
vi /etc/php/7.2/apache2/conf.d/mcrypt.ini
extension=mcrypt.so
Разрешаем модуль rewrite для apache:
a2enmod rewrite
Перезапускаем apache:
systemctl restart apache2
Для проверки, удаляем index.html, создаем index.php:
rm /var/www/html/index.html
vi /var/www/html/index.php
<?php phpinfo(); ?>
Снова в браузере открываем страницу сервера — мы должны увидеть страницу информации о PHP:
СУБД
Устанавливаем сервер баз данных MySQL с необходимыми компонентами:
apt install dbconfig-mysql mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server mysql-server-5.7 mysql-server-core-5.7 php-mysql php-mysql
Перезапускаем apache:
systemctl restart apache2
Включаем автозапуск mysql и запускаем демона:
systemctl enable mysql
systemctl start mysql
Задаем пароль для root пользователя MySQL:
mysqladmin -u root password