Skysilver

3.4  Каким средствами осуществляются голосовые уведомления?

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

  • Движок Google TTS (Windows/Linux) — каждая фраза отправляется в соответствующее API сервиса Google, возвращается звуковой файл, который в последствии воспроизводится. Данный способ требует наличие интернет-соединения, хотя однажды запрошенные фразы «кэшируются» локально и могут быть воспроизведены и без обращения к внешним сервисам
  • Windows TTS (Windows) — встроенная в систему Windows универсальная подсистема синтеза речи. Данная подсистема может быть модифицирована покупкой и установкой более современных языковых движков, например Alyona от Acapella Group.

Кроме того, через систему настроек можно интегрировать собственны голосовой движок, описав команды его вызова.

API

GET

/api/data/<OBJECT> — список всех свойств и значений объекта <OBJECT>/api/data/<OBJECT>.<PROPERTY> — значение свойства <OBJECT>.<PROPERTY>/api/method/<OBJECT>.<METHOD> — вызов метода <OBJECT>.<METHOD>/api/method/<OBJECT>.<METHOD>?param1=value1&param2=value2 — вызов метода <OBJECT>.<METHOD> с параметрами/api/script/<SCRIPT> — вызов сценария <SCRIPT>/api/script/<SCRIPT>?param1=value1&param2=value2 — вызов сценария <SCRIPT> с параметрами/api/events/<PATH/TO/EVENT>?param1=value1&param2=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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

{

«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
2

{«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} — удаление комнаты

Поделитесь в соц сетях

1.5  Есть ли коммерческая версия комплекса?

Как таковой, платной версии программного комплекса не существует — система распостраняется абсолютно свободно под лицензией MIT, что подразумевает использование её без каких либо ограничений, кроме обязательного указания авторства, в любых проектах. Необходимо уточнить, что данный факт не исключает возможности оказания платных услуг с использованием платформы как инструмента в реализации проекта Умного Дома на коммерческой основе. При этом вполне возможна покупка/продажа на договорной основе дополнительного оборудования, а так же услуг по настройке системы для конкретного пользователя (программирование сценариев, разработка дизайна, отладка и т.п.). Подробнее о возможностях коммерческого сотрудничества читайте всоответствующем разделе сайта.

4.5  Что значит «связанный» объект/свойство/метод?

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

Например, элемент меню типа Выключатель используется связанное свойство для хранения данных о своём последнем состоянии, а так же метод объекта, как действие, которое надо выполнить после изменения состояния. С другой стороны, модули работы с оборудованием так же используют связанные свойства и объекты для хранения данных, полученных от соответствующих электронных устройств.

Например, привязав свойство какого-то объекта к свойству выключателя в модуле ZWave можно обращаться к этому свойству для получения последнего состояния физического выключателя, а так же использовать это свойства для установки значения (включения нагрузки), таким образом создаётся прозрачная двухсторонняя связь между физическим устройством и объектом системы MajorDoMo. Одно свойство объекта может быть привязано к нескольким элементам, так, если рассматривать предыдущие два примера, то можно объединить их в один, когда и для привязки выключателя в меню и для привязки выключателя ZWave мы используем одно свойство. В таком случае мы получаем управляемый через меню физический выключтатель.

1.10  Я строю дом и в будущем планирую сделать его «умным», что мне необходимо предусмотреть заранее?

Во-первых, определитесь с тем, где у вас будет основной электро-щит и планируйте проводку так, чтобы провода от настенных выключателей и точек освещения сводились каждый в отдельности в этот щиток. В начале вы сможете всё скоммутировать там по тривиальной схеме (грубо говоря, выключатель пускает ток на лампочку), но в будущем такая коммутация позволит заменить простую схему автоматикой. Для розеток этого не нужно — управлять устройствами, включенными в розетку, проще через дополнительное оборудование, те же wi-fi розетки.

Далее, планируйте провести витую пару (двойные розетки) к местам установки медиа-систем (телевизоры, аудио-центры, спутниковые ресиверы и т.п.). Желательно в любом случае иметь по такой розетке в каждой комнате — их можно будет использовать не только для компьютерной сети, но и для телефонии. Эти кабели так же нужно выводить в общий щиток.

Так же полезно закладывать провода для системы мульти-рум. Если вы планируете встраивать в стену панели управления (те же планшеты), то так же подведите туда питание, чтобы не болтались провода.

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

1.1  Что такое Умный Дом?

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

  • Безопасность— повышение уровня безопасности за счёт постоянного контроля параметров работы технологических систем (отопление, водоснабжение, электричество и т.п.), а так же интеграция охранных компонентов (сигнализация, видео-наблюдение, GPS-трэкинг)
  • Экономия— поддержка оптимальных параметров энерго-потребления (электричество/тепло) и автоматический перевод систем в экономичный режим
  • Комфорт— централизованное управление всеми системами, автоматические сценарии последовательных действий, работа с мульти-медиа.

Управление циклами (сервисами)

Интерфейс доступен через раздел 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′); — Для включения авто-восстановления (по-умолчанию он всегда выключен)

Ценовая политика

Виртуальный хостинг доступен в двух линейках тарифов: «Базовый» и «Корпоративный». Первый включает три пакета услуг стоимостью от 140 до 425 руб/месяц. Главное различие между ними — количество доступного места. Кроме того, на минимальном тарифе ограничено число сайтов, которые можно создать (не более 10), нет поддержки отдельных веб-технологий и автоматической установки CMS. Старшие тарифы позволяют создавать неограниченное количество проектов.

Корпоративных тарифа два: «Бизнес» и «Бизнес+» за 799 и 999 руб/месяц соответственно. На первом доступно 10 Гб и можно сделать 1 сайт, а на втором — 15 Гб на диске и можно сделать 3 сайта, количество баз данных не ограничено. Также тарифы предлагают упрощённую установку CMS, домен в подарок, SSL, и скидку на логотип. Данные хранятся на отдельных серверах, расположенных на территории РФ. Тестировать все тарифы виртуального хостинга можно бесплатно в течение 14 дней.

Хостинг приложений на базе виртуального хостинга стоит 140 рублей в месяц. При конфигурировании можно добавить на него необходимые технологии: Python, PHP, MySQL, Memcached, Redis. За каждую придётся платить дополнительно — 200 рублей в месяц.

Во все тарифы виртуального хостинга включены:

  • неограниченный бесплатный трафик;
  • круглосуточная поддержка;
  • неограниченное число алиасов;
  • самописная панель управления;
  • доступ по FTP;
  • доступ к логам;
  • защита от спама;
  • поддержка SSL;
  • запуск по crontab.

На виртуальном хостинге есть также дополнительные услуги.

  • Дополнительный FTP-доступ (если пользователей больше 3, цена за каждого) — 49 рублей в месяц.
  • Уведомления через SMS — 49 рублей в месяц или 499 рублей в год.
  • Увеличение размера дискового пространства — 49 рублей за каждые 100 МБ.
  • Защита почты от вирусов и спама — 49 рублей в месяц или 499 рублей в год.
  • Переадресация домена (до 10 переадресаций, цена за каждую) — 99 рублей в год.
  • Расширенное резервное копирование — 99 рублей в месяц или 999 рублей в год.

Отдельных пакетов услуг для CMS нет. Единственное исключение — хостинг для 1С-Битрикс. Место на сервере вы получите в подарок, если купите одну из редакций движка через хостинг Majordomo.

Виртуальные выделенные серверы представлены в 6 конфигурациях. Самый дешевый тариф — «Лайт» в линейке с выключенным удалённым администрированием. Он стоит всего 425 руб/месяц и предлагает одноядерный процессор, 1 Гб ОЗУ и 30 Гб на SSD. Тарифы с удалённым администрированием в 2-3 раза дороже, хотя предлагают те же ресурсы. Самый дорогой пакет услуг VPS будет стоить 2790 руб/месяц. На нём доступен двухъядерный процессор, 4 Гб ОЗУ и 60 Гб на SSD, а также панель ISP Manager 5, три домена в подарок, мониторинг сервера и безлимитный трафик.

Арендовать физический сервер можно в 9 стандартных конфигурациях стоимостью от 2500 до 8990 руб/месяц. Если в готовых пакетов нет подходящего предложения, то его можно сформировать самостоятельно через форму заявки.

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 закончена.

источник

Функции и возможности

Сами по себе модули содержат обширные настройки: в соответствующем разделе интерфейса можно, например, указать цвет пользователя, разрешенные ему компьютеры для входа, и так далее.

Электронный «мажордом» способен управлять многочисленными умными устройствами:

  • розетками;
  • лампами;
  • бытовой техникой;
  • домашним мультимедиа;
  • кондиционерами;
  • отопительными системами;
  • охранными комплексами;
  • инженерным и сантехническим оборудованием, и так далее.

Умеет он взаимодействовать и с интернет-сервисами (например, для поиска новостей). Кроме того, через глобальную сеть обеспечивается удаленный доступ и своевременное обновление.

Для продвинутых пользователей существует возможность дописывать модули и сценарии на языке программирования PHP. В системе также присутствует встроенный визуальный конструктор Blockly, обеспечивающий простое создание алгоритмов:

Комплекс наверняка станет интересен начинающим и продвинутым программистам. Разработка ПО под MajorDoMo не отличается высоким порогом входа, необходимо лишь обладать пониманием языка PHP и некоторых смежных дисциплин (таких, как JS, CSS). С них и следует начинать осваивающим разработку под эту платформу джуниор-кодерам.

Компоненты системы MajorDoMo

Основное понятие, вводимое цифровым домом «MajorDoMo» – объект, множество которых в свою очередь делится на различные классы. И каждый из них имеет свои свойства и методы взаимодействия. К примеру, класс «лампочки», в который могут относиться объекты «люстра в зале», «подсветка зеркала», «свет на кухне». У каждого есть свойство «статус» со значением «включено» и «выключено», а также метод «зажечь» и «погасить».

Это наиболее простой вид объяснения разделения всего комплекса связанного оборудования в пределах понятий MajorDoMo. То есть, методы и свойства распределяются в зависимости от класса объекта и принадлежат только подобным ему.

Объекты

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

В качестве аппаратной составляющей выступает как оборудование самостоятельной сборки, так и выпускаемое некоторыми производителями уже в комплекте, к примеру фирмой Xiaomi. «Умный» дом MojorDomo поддерживает массу протоколов обмена – MQTT, Z-Wave, Broadlink (без возврата состояния) и множество других.

Классы

Как уже говорилось, класс объединяет объекты одного типа. К примеру, класс «выключатели» с состояниями (включено/выключено) и двумя методами (включить/погасить). Или класс «датчики движения» со свойством, у которого значения изменяются в пределах «присутствует движение/нет движения».

Есть и возможность дополнительного разветвления в одной общности – введение подкласса. Самым понятным примером станут выключатели. Бывают контроллеры света, которые не только умеют включать и выключать напряжение, но и плавно его изменять. То есть в парадигме понимания системы умного дома мажордомо у класса «выключатели» конкретного типа есть еще и дополнительное свойство «яркость». В общем виде можно расписать эту взаимосвязь следующим образом:

Класс «выключатели»

Свойства: Статус = включен|выключен

Методы: Включить|Выключить

«Свет в кухне»

«Свет в прихожей»

«Свет в ванной»

Подкласс «ВыключателиСДиммером»

Наследуемые свойства: Статус = включен|выключен

Наследуемые методы: Включить|Выключить

собственное устанавливаемое свойство: Яркость = значение

«Свет в спальне»

«Свет в зале»

Свойства

Для большинства устройств в пределах «умного дома» характерно не только следование указаниям контролирующей части, но и возврата своего состояния. Это и есть свойство объекта.

Кроме того, параметрам можно устанавливать значения, которые будут возвращаться в устройство. К примеру, у класса «кондиционеры» можно устанавливать значение свойства «температура», которое будет обрабатываться самим кондиционером, в зависимости от которого он и будет поддерживать режим работы.

Методы

В рамках системы, «методы» — это те управляющие действия, которые могут быть произведены с каким-либо входящим в ее состав устройством. К примеру, у класса «выключатели» это «включить»| «выключить», у «двери» – «открыть»| «закрыть» и тому подобные.

Функциональность

Majordomo — типичный хостер, покрывающий основные потребности вебмастеров. На нём есть несколько тарифов Shared-хостинга, VPS, разные конфигурации серверов, а также возможность зарегистрировать домен — или получить его в подарок при оплате продолжительного периода использования.

Ещё одно интересное предложение — хостинг приложений. На нём доступно использование технологий Python, PHP, MySQL, Redis, Memcached. Основа — виртуальный хостинг, который не нужно администрировать. Удобный конфигуратор позволяет оплачивать только те возможности, которыми вы реально будете пользоваться.

Запланированные задачи и события

AddScheduledJob(«title»,»commands»,$datetime, $expire=60); — $expire в секундах

ClearScheduledJob(«title»); — может использоваться маска типа «title%»

SetTimeOut(«title»,»commands», $timeout); — $timeout в секундах (аналог AddScheduledJob(«title»,»commands»,time()+$timeout));

ClearTimeOut(«title»); — аналог ClearScheduledJob(«title»);

timeOutExists(«title»); — возвращает идентификатор запланированной задачи (или 0, в случае отсутствия)

registerEvent($eventName, $details=»,$expire_in=365); — регистрация события $eventName

registeredEventTime($eventName); — возвращает время последней регистрации события $eventName (-1 если еще не было такого события)

Что такое MajorDoMo?

Высокие технологии все глубже входят в жизнь человека. Это касается не только его труда, медицины или городской инфраструктуры. Абсолютно все жизненное окружение получает определенный «ум»: выключатели, системы климат-контроля помещений, различные датчики (открывания-закрывания, дыма, движения). Все объединяется в стройные логические системы при помощи цифровых управляющих контуров и контроллеров оборудования. Общность такого слияния называется «умный дом», который и предоставляет возможности единого управления и наблюдения за всем комплексом устройств в него входящего. Причем контроль может осуществляться как в ручном режиме через какой-либо общий интерфейс, так и автоматическими возможностями, наподобие выполнения определенных сценариев, реакции на показания датчиков или даже голосовыми командами.

Самое, наверное, простое и удобное, что стоит вспомнить про «умные» системы в быту – это управление светом. К примеру, выключатель, как ручной прибор, становится не нужен (хотя и возможен). Можно представить себе, что свет включается сам, если датчик в помещении определил наличие человека. Причем, в зависимости от времени суток, включается только то освещение, которое в текущий момент необходимо.

Самое простое – человек один, вечер. Зашел в зал. Зачем зажигать люстру? Автоматически загорается только бра. А вот если зашло несколько людей – тогда да, включается люстра. Опять же. Ночью пошел человек в туалет. Зачем зажигать все освещение? Достаточно включить подсветку ему по дороге, да свет в самом туалете.

Или такой пример: в будние дни люди на работе. Можно запустить робот-пылесос, который к их приходу уберет и встанет на подзарядку. А вот в выходные надобности в этом нет. Соответственно центральный контроллер и действует. Вот это и есть система «умный» дом, которая сама, в зависимости от определенных параметров, производит те или иные действия.

Одна из наиболее доступных, открытых и удобных из подобных – умный дом MajorDoMo. Кросс платформенный OpenSource проект, активно развивающийся и имеющий достаточно низкий порог вхождения. Основа его удобства – относительно простая страница — конфигуратор всего комплекса на домашнем или рабочем web-сервере.

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

Установка и настройка MajorDoMo

MajorDoMo

Устанавливаем git:

apt install git

Скачиваем установочный пакет:

git clone https://github.com/sergejey/majordomo.git

Переносим каталог majordomo в каталог веб-сервера:

mv majordomo /var/www/

Воспользуемся шаблоном конфигурационного файла:

cp /var/www/majordomo/config.php.sample /var/www/majordomo/config.php

Настроим подключение к базе данных:

vi /var/www/majordomo/config.php

Define(‘DB_HOST’, ‘localhost’);
Define(‘DB_NAME’, ‘majordomo’);
Define(‘DB_USER’, ‘majordomo’);
Define(‘DB_PASSWORD’, ‘majordomo123’);

* где DB_NAME majordomo — имя базы данных; DB_USER majordomo — учетная запись; DB_PASSWORD majordomo123 — пароль для учетной записи mysql.

Задаем права:

chown -R www-data:www-data /var/www/majordomo

Настройка PHP

Настраиваем php.ini для apache:

vi /etc/php/7.2/apache2/php.ini

short_open_tag = On
max_execution_time = 90
max_input_time = 180
post_max_size = 200M
upload_max_filesize = 50M
max_file_uploads = 150

Настраиваем php.ini для unix shell:

vi /etc/php/7.2/cli/php.ini

short_open_tag = On

Настройка Apache

Настраиваем виртуальный домен:

vi /etc/apache2/sites-enabled/majordomo.conf

<VirtualHost *:80>
    Define root_domain majordomo.dmosk.local
    Define root_path /var/www/majordomo
    ServerName ${root_domain}
    DocumentRoot ${root_path}
    
    <Directory ${root_path}>
        AllowOverride All
    </Directory>
</VirtualHost>

Проверяем конфигурацию apache и перезапускаем сервис:

apachectl configtest

systemctl restart apache2

Настройка MySQL

Подключаемся к MySQL:

mysql -uroot -p

Создаем базу данных и пользователя:

> CREATE DATABASE majordomo DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

> GRANT ALL PRIVILEGES ON majordomo.* TO majordomo@localhost IDENTIFIED BY ‘majordomo123’ WITH GRANT OPTION;

> \q

Импортируем базу данных:

mysql -v -u root -p majordomo < /var/www/majordomo/db_terminal.sql

Веб установка

Запускаем скрипт в консоли:

php /var/www/majordomo/cycle.php

В браузере открываем сервер по настроенному виртуальному домену (в нашем случае, majordomo.dmosk.local) — в открывшемся окне выбираем русский язык и нажимаем Continue:

Готово.

Шаги

Общие функции

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(ФРАЗА, УРОВЕНЬ, ОТВЕТ_НА_ЧТО) — последние два параметра не обязательны. Эта функция ведёт себя следующим образом:

  1. Если указан параметр ОТВЕТ_НА_ЧТО, то система попытается найти терминал, с которого был запрос, содержащий данную фразу
  2. Если не указан параметр ОТВЕТ_НА_ЧТО, то система выберет терминал, с которого был любой запрос в течении последних 5 секунд
  3. Если терминал найден, то ответ будет направлен на него (с помощью той же функции sayTo)
  4. Если терминал не найден, то ответ будет озвучен в обычном порядке (аналогично просто использованию функции 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).

Состав и управление системой MajorDoMo

В сущности, система представлена специализированной web оболочкой, которая работает в пространстве домашнего web-сервера. Причем последний может функционировать под любыми операционными системами, Windows или Linux. Да и сама аппаратная составляющая центрального компьютера значения не имеет. Это вполне может быть не только IBM совместимый компьютер, но и RasberriPi или еще что-либо более экзотическое.

Клиентские устройства могут быть представлены практически всем производимым спектром оборудования, от устройств MQTT и до радиоуправления Broadlink RF (стандарт 433/315мГц). Взаимодействие с сетями Z-Wave, KNX, и оборудованием Sonoff, Livolo или Xiaomi – происходит через дополнительные модули, которые тем не менее объединяют эти устройства в единое пространство имен, классов, объектов и методов.

Итог

Советовать Majordomo можно — хостинг неплохой, проверенный временем. И это не странно, учитывая, что речь идёт о создателе очень популярного конструктора сайтов Nethouse. Хотя и проблем хватает, но это, можно сказать, обычный уровень подобного вида услуг, где без форс-мажорных ситуаций ну никак.

По соотношению цены и качества более или менее адекватные возможности предлагает только использование VPS, который вы можете самостоятельно настроить. На виртуальном хостинге придётся мириться с медленной работой веб-интерфейса, а на выделенных физических серверах — с устаревшими компонентами и невысокой производительностью по сравнению с конкурентами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *