Majordomo: регистрация и основные функции личного кабинета
Содержание:
- Объединение аккаунтов в приложении Яндекс
- Site-level parameters
- Повышаем надежность самого сервера
- 3.6 Что такое «циклы системы»?
- Установка
- Backlinks
- Техническая поддержка
- 3.4 Каким средствами осуществляются голосовые уведомления?
- Функции профиля
- 1.5 Есть ли коммерческая версия комплекса?
- Запланированные задачи и события
- Компоненты системы MajorDoMo
- 1.6 Оправдана ли покупка всего оборудования для использования в системе с экономической точки зрения?
- 3.8 Какие средства диагностики есть у системы?
- API
- Функции и возможности
- 4.5 Что значит “связанный” объект/свойство/метод?
- Время/интервалы
- Что такое MajorDoMo?
- What you get
- Что это такое
- Итог
Объединение аккаунтов в приложении Яндекс
Следующим этапом после регистрации и публикации приватного навыка является объединение аккаунтов в приложении умного дома Яндекс. Это завершающий этап по интеграции сторонних систем (и MajorDoMo в частности) с платформой умного дома Яндекс, после которого становится доступным управление устройствами с помощью голосового ассистента Яндекс Алиса.
В списке производителей выбираем наш приватный навык и тапаем кнопку Объединить аккаунты. Приложение переадресует на страницу авторизации навыка, на которой нужно ввести логин пользователя и пароль пользователя, указанные ранее в настройках модуля Yandex Home. После успешной авторизации подтверждаем сопряжение кнопкой Предоставить.
Приложение переадресует обратно на страницу свойств навыка, а кнопка Объединить аккаунты изменится на Обновить список устройств. Тапаем на нее и после успешной синхронизации будет предложено перейти на страницу со списком устройств. Если в этот момент в модуле Yandex Home уже были добавлены устройства, то они отобразятся в приложении. В дальнейшем при добавлении устройств в модуле или изменении их свойств необходимо каждый раз выполнять такую синхронизацию для обновления списка устройств в приложении Яндекс.
Site-level parameters
Google Indexed
Changes found in history for {years, plural, = 0 {# years} one {# year} few {# years} other {# years}{# years}} {months, plural, = 0 {# months} one { # month} few {# months} other {# months}{# months}}. First date: {firstDate}.
Хотите увидеть весь график?
Каждый день мы будем обновлять данные о вашем сайте, чтобы вы не пропустили важные события.
Доступно на платных тарифах.
Описание:
Сколько страниц сайта Google точно проиндексировал, узнать невозможно. Поисковик не ведет базу данных по URL-адресам.
Примерное количество страниц в выдаче покажет оператор site:, на который мы ориентируемся. Число может быть искажено страницами, которые запрещены к индексу в robots.txt, но попали в выдачу из-за внешних ссылок на них.
Чуть более точное количество покажет раздел «Статус индексирования» в Google Search Console, но и эти данные могут быть искажены из-за применения фильтров.
Updated 10/18/2021 09:26
Google Safe Browsing
The site is secure.
Описание:
Google сканирует сайты, чтобы находить зараженные ресурсы, фишинговые страницы и другие проблемы, которые ухудшают качество выдачи и пользовательский опыт. Благодаря этой информации поисковая система предупреждает пользователей о небезопасных сайтах. В случае, если сайт будет признан опасным, Google может понизить его в выдаче или удалить.
Дополнительная информация:
- Панель веб-мастера Google
- Проверка Google Safe-browsing
Updated 10/18/2021 09:25
PR-CY Rank
Rank — 59 / 100
Links
Trust
Traffic
Changes found in history for {years, plural, = 0 {# years} one {# year} few {# years} other {# years}{# years}} {months, plural, = 0 {# months} one { # month} few {# months} other {# months}{# months}}. First date: {firstDate}.
Хотите увидеть весь график?
Каждый день мы будем обновлять данные о вашем сайте, чтобы вы не пропустили важные события.
Доступно на платных тарифах.
Описание:
PR-CY Rank — рейтинг для оценки перспективности сайтов в качестве доноров для линкбилдинга. При формировании рейтинга мы анализируем трафиковые и трастовые параметры, а также ссылочный профиль сайта.
Влияние — потенциал влияния сайта на продвижение. Если влияние слабое, то слабым будет как отрицательный эффект (если рейтинг низкий), так и положительный (если рейтинг высокий) и наоборот. Потенциал влияния основан на размере постоянной аудитории сайта.
Ссылочный фактор — вычисляется на основе соотношения входящих и исходящих ссылок на сайт, значений Trust Rank, Domain Rank и др.
Трафиковый фактор — вычисляется на основании объёма и динамики трафика (отрицательная динамика портит рейтинг, положительная динамика — повышает).
Трастовый фактор — анализирует множество параметров, таких как “ИКС”, доля поискового трафика в общем трафике, адаптацию под мобильные устройства и множество других факторов, признанных поисковыми системами, как значимые для ранжирования.
Updated 10/18/2021 09:26
Повышаем надежность самого сервера
Операционная система и БД хранятся на карте памяти. Есть карты класса А1 и даже А2, но через год постоянной нагрузки такая карта с большой вероятностью загнется. Кроме того, штатный код пишет в базу кучу ненужного, а каждое чтение/запись свойства любого объекта – это обращение к БД. У меня было порядка 1200 обращений к БД в секунду.
Карту можно спасти, если базу держать в оперативной памяти. К счастью, разработчики Majordomo сделали прошивку для Raspberry сразу с опцией БД в памяти, а для прочих платформ есть скрипт для переноса БД в память (но памяти должно быть не менее 1Гб, на orange pi zero c 512Мб у меня не взлетело — база весит порядка 300Мб и столько же надо дополнительно для дампов бэкапов). Да, теперь в любой момент просто так перезагружать систему нельзя, нужно выполнить скриптик, иначе данные за последние полчаса потеряются (но база всегда бэкапится в рабочем состоянии!). Зато скорость работы БД и долговечность карты памяти – просто великолепны.
Остался последний штрих – снизить нагрузку на БД, убрав лишние запросы. Решение простое:
-
Обновиться до последней версии (буквально пару недель назад обновили интерфейс, убрав лишние обращения к БД и переписав на java скрипты)
-
Обращаться к локальным или глобальным свойствам только один раз и использовать переменные в памяти (смотрите на пример кода цикла проверки – getProperty\setProperty там использованы только по одному разу).
Еще пример оптимизации скриптов – чтобы и обращений лишних не было, и чтобы срабатывала автоматическая зависимость от переменной, например:
Обратите внимание, что в первом условии есть ветка проверки, этот ли сервер управляет устройствами в настоящий момент (gg(«remote_mqtt_updated.isController»)). remote_mqtt_updated – это объект контроля работы серверов
Теперь у меня число обращений к БД порядка 380 в секунду, что гораздо лучше по сравнению с начальным значением в 1200.
3.6 Что такое «циклы системы»?
Циклы — это программный код в файлах /scripts/cycles_ *.php . Данный код обеспечивает функционирование отдельных «фоновых» процессов, не связанных с непосредственным ответом на запрос пользователя, а именно: обновление системного времени, периодические операции, выполнение запланированных задач, опрос показаний отдельного оборудования. Корректный запуск системы предполагает одновременный запуск системных циклов. Часть циклов может быть закрыто автоматически после запуска в виду того, что их работа не актуальна в соответствии с имеющимся оборудованием или настройками пользователя.
Установка
Аппаратная часть
Прежде, чем начать развертывание, следует подобрать оборудование для системы. Под «Мажордомо» допустимо использовать практически любой не очень старый компьютер или ноутбук. Но, как правило, при реализации смарт-дома используют одноплатные миникомпьютеры: они бесшумны, надежны, дешевы и достаточно производительны.
Для этой задачи хорошо подходят платы Raspberry Pi 2/3, на примере которых мы далее рассмотрим основные моменты установки и конфигурирования.
Развертывание программы
Версии ПО существуют и под Windows, и для Linux. Неискушенному пользователю стоит выбрать Windows-вариант, поскольку он проще в настройке и конфигурации. В рамках данной статьи мы приведем базовые шаги в случае с Linux и RPI.
Win-версия устанавливается как обычное приложение. Для RPI разработчики создали и поддерживают специально собранный образ, доступный на странице https://mjdm.ru/skachat-majordomo/:
Существует возможность развертывания и с нуля на «чистый» Raspbian (или другую версию Linux). Для этого необходимо присутствие в ОС:
- сервера базы данных MySQL (MariaDB);
- веб-сервера, например, Apache;
- интерпретатора php с некоторыми модулями и оболочки PhpMyAdmin.
Установка MajorDoMo и его тонкая настройка подробно описаны в официальной документации к Windows- и Linux-вариантам. Энтузиасты также создали скрипт автоматизации, который развертывает весь программный комплекс самостоятельно. Получить его и запустить инсталляцию можно следующими командами:
Результаты появятся в командной строке. Красный цвет выводимого текста отмечает критические предупреждения.
Скрипт запросит пароль пользователя root создаваемой БД MySQL и учетной записи Pi. Данные аккаунта Pi вводить необходимо в любом случае, даже если такого пользователя в системе нет.
Иных действий не понадобится. После завершения работы скрипта будет выдано сообщение «Готово».
На этом этапе следует перезагрузить компьютер, после чего интерфейс умного дома MajorDoMo станет доступен для настройки через браузер по IP-адресу или имени узла md.lan. Имеется также доступ по протоколу SSH и проброс vlc over http.
Пример главной страницы:
Дополнительно потребуется установить PhpMyAdmin:
А также Java и сервер Blynk (нужен для разработки и функционирования приложений на iOS/Android).
Для добавления расширенной конфигурации выполняется команда:
Она дополняет базовую поставку некоторыми скриптами, сценами и элементами, а также оптимизирует работу с базой.
После этого можно приступать к тонкой настройке и сопряжению с периферией.
Backlinks
21
TrustRank
1,913
Backlinks
19
Domains
Domain Rank
Link value from domain — 0 / 100
Changes found in history for {years, plural, = 0 {# years} one {# year} few {# years} other {# years}{# years}} {months, plural, = 0 {# months} one { # month} few {# months} other {# months}{# months}}. First date: {firstDate}.
Хотите увидеть весь график?
Каждый день мы будем обновлять данные о вашем сайте, чтобы вы не пропустили важные события.
Доступно на платных тарифах.
Описание:
Domain Rank — это уровень качества домена по шкале от 1 до 100. Чем выше показатель, тем ценнее ссылки с него и тем быстрее страницы сайта попадут в индекс. Оценивает количество ссылок на домен-донор. Считается по формуле:
Log5(IP*0.75 + 1), где IP — число ссылающихся IP на донор
Ссылки, ведущие со страниц 3-4 уровня сайта с высоким Domain Rank могут быть ценнее, чем ссылки с главной сайта на домене с низким уровнем этой метрики.
Updated 10/18/2021 09:25
Техническая поддержка
Если наблюдаются проблемы и неполадки в работе аккаунта и сайте, то пользователи всегда могут воспользоваться помощью технической поддержки. Специалисты помогут быстро разобраться с возникшими сложностями, уладят и предоставят необходимые сведения.
Для клиентов доступны контакты:
- Информационная служба – ;
- Техническая поддержка – ;
- Служба по работе с доменами – .
The following two tabs change content below.
Александр Малыгин
В 2015 году окончил факультет «Финансы и кредит» в НОУ ВПО «Институт Бизнеса и права» по специальности экономист. В настоящее время являюсь онлайн-консультантом на сайте cabinet-bank.ru и с радостью готов Вас проконсультировать. (Страница автора)
Последние записи автора — Александр Малыгин
- Вход в личный кабинет ЭОС ВМедА: пошаговый алгоритм, возможности аккаунта — 12.10.2021
- Личный кабинет Эля Смит: особенности авторизации, возможности аккаунта — 12.10.2021
- Правила оформления кабинета ОКБ — 01.10.2021
3.4 Каким средствами осуществляются голосовые уведомления?
Одна из активно используемых возможностей системы, это голосовое оповещение о тех или иных событиях. Для реализации этого могут быть задействованы следующие средства:
- Движок Google TTS (Windows/Linux) — каждая фраза отправляется в соответствующее API сервиса Google, возвращается звуковой файл, который в последствии воспроизводится. Данный способ требует наличие интернет-соединения, хотя однажды запрошенные фразы «кэшируются» локально и могут быть воспроизведены и без обращения к внешним сервисам
- Windows TTS (Windows) — встроенная в систему Windows универсальная подсистема синтеза речи. Данная подсистема может быть модифицирована покупкой и установкой более современных языковых движков, например Alyona от Acapella Group.
Кроме того, через систему настроек можно интегрировать собственный голосовой движок, описав команды его вызова.
Функции профиля
Необходимую информацию о сервисе «Majordomo» можно получить на главной странице www.majordomo.ru. На нем указана характеристика компании, ее деятельность, период основания, доступные услуги.
Ниже пользователи могут ознакомиться с пакетами, которые доступны к подключению. Но предварительно стоит рассмотреть условия и особенности их использования, тарификация, стоимость за месяц и другие важные нюансы.
После приобретения услуг и подключения клиент получает доступ к аккаунту. В нем он может выполнять ряд действий:
- Просматривать информацию относительно подключенного пакета;
- Проверять срок действия;
- Вносить платежи за использование услуг;
- Изменять тариф;
- Проводить переподключение;
- Пользоваться дополнительными услугами;
- Узнавать об акциях, бонусах, выгодных предложениях;
- Проводить регистрацию доменов;
- Продвигать и настраивать рекламу.
1.5 Есть ли коммерческая версия комплекса?
Как таковой, платной версии программного комплекса не существует — система распостраняется абсолютно свободно под лицензией MIT, что подразумевает использование её без каких либо ограничений, кроме обязательного указания авторства, в любых проектах. Необходимо уточнить, что данный факт не исключает возможности оказания платных услуг с использованием платформы как инструмента в реализации проекта Умного Дома на коммерческой основе. При этом вполне возможна покупка/продажа на договорной основе дополнительного оборудования, а так же услуг по настройке системы для конкретного пользователя (программирование сценариев, разработка дизайна, отладка и т.п.). Подробнее о возможностях коммерческого сотрудничества читайте в соответствующем разделе сайта.
Запланированные задачи и события
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» – объект, множество которых в свою очередь делится на различные классы. И каждый из них имеет свои свойства и методы взаимодействия. К примеру, класс «лампочки», в который могут относиться объекты «люстра в зале», «подсветка зеркала», «свет на кухне». У каждого есть свойство «статус» со значением «включено» и «выключено», а также метод «зажечь» и «погасить».
Это наиболее простой вид объяснения разделения всего комплекса связанного оборудования в пределах понятий MajorDoMo. То есть, методы и свойства распределяются в зависимости от класса объекта и принадлежат только подобным ему.
Объекты
Объект MajorDoMo в изначальной своей, аппаратной форме –это контроллер с возможностью связи между управляемым устройством или датчиком и центральной системой, на которой находится программный комплекс MajorDoMo.
В качестве аппаратной составляющей выступает как оборудование самостоятельной сборки, так и выпускаемое некоторыми производителями уже в комплекте, к примеру фирмой Xiaomi. «Умный» дом MojorDomo поддерживает массу протоколов обмена – MQTT, Z-Wave, Broadlink (без возврата состояния) и множество других.
Классы
Как уже говорилось, класс объединяет объекты одного типа. К примеру, класс «выключатели» с состояниями (включено/выключено) и двумя методами (включить/погасить). Или класс «датчики движения» со свойством, у которого значения изменяются в пределах «присутствует движение/нет движения».
Есть и возможность дополнительного разветвления в одной общности – введение подкласса. Самым понятным примером станут выключатели. Бывают контроллеры света, которые не только умеют включать и выключать напряжение, но и плавно его изменять. То есть в парадигме понимания системы умного дома мажордомо у класса «выключатели» конкретного типа есть еще и дополнительное свойство «яркость». В общем виде можно расписать эту взаимосвязь следующим образом:
Класс «выключатели» |
Свойства: Статус = включен|выключен Методы: Включить|Выключить |
||
«Свет в кухне» |
|||
«Свет в прихожей» |
|||
«Свет в ванной» |
|||
Подкласс «ВыключателиСДиммером» |
Наследуемые свойства: Статус = включен|выключен Наследуемые методы: Включить|Выключить собственное устанавливаемое свойство: Яркость = значение |
||
«Свет в спальне» |
|||
«Свет в зале» |
Свойства
Для большинства устройств в пределах «умного дома» характерно не только следование указаниям контролирующей части, но и возврата своего состояния. Это и есть свойство объекта.
Кроме того, параметрам можно устанавливать значения, которые будут возвращаться в устройство. К примеру, у класса «кондиционеры» можно устанавливать значение свойства «температура», которое будет обрабатываться самим кондиционером, в зависимости от которого он и будет поддерживать режим работы.
Методы
В рамках системы, «методы» — это те управляющие действия, которые могут быть произведены с каким-либо входящим в ее состав устройством. К примеру, у класса «выключатели» это «включить»| «выключить», у «двери» – «открыть»| «закрыть» и тому подобные.
1.6 Оправдана ли покупка всего оборудования для использования в системе с экономической точки зрения?
Одна из функций подобных систем, это экономия расхода энерго-ресурсов и при правильной настройке и установке эта экономия начинает ощущаться в самое ближайшее время после ввода системы в эксплуатацию. Однако, действительно ли это выгодно надо считать, сопоставляя затраты и итоговую экономию. К сожалению, не всегда можно сделать однозначный вывод об экономическом эффекте. Тем не менее, было бы не правильно рассматривать данный класс систем только как средство экономии. Скорее, экономия это один из положительных эффектов, возникающий на ряду со многими другими — повышение безопасности, комфорта и качества жизни в целом. Насколько эти плюсы экономически оправданны, каждый решает для себя индивидуально.
3.8 Какие средства диагностики есть у системы?
Для отладки и диагностики в систему встроено сразу несколько функциональных возможностей. Во-первых, работа основных циклов протоколируется в лог-файлы и складывается в папку /debmes/ , там же хранится общий лог системы с отдельным файлом за каждый день. Кроме того, в панели управления имеется модуль XRay, основная задача которого показать состояние системы на текущий момент во всех подробностях (значения свойств, история запуска сценариев, таймеры и т.п.). Дополнительно в панели управления есть модуль «Ошибки системы», в который сохраняется большинство случаев некорректного поведения системы (ошибки кода, базы данных и т.п.).
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} — удаление комнаты
Поделитесь в соц сетях
Функции и возможности
Сами по себе модули содержат обширные настройки: в соответствующем разделе интерфейса можно, например, указать цвет пользователя, разрешенные ему компьютеры для входа, и так далее.
Электронный «мажордом» способен управлять многочисленными умными устройствами:
- розетками;
- лампами;
- бытовой техникой;
- домашним мультимедиа;
- кондиционерами;
- отопительными системами;
- охранными комплексами;
- инженерным и сантехническим оборудованием, и так далее.
Умеет он взаимодействовать и с интернет-сервисами (например, для поиска новостей). Кроме того, через глобальную сеть обеспечивается удаленный доступ и своевременное обновление.
Для продвинутых пользователей существует возможность дописывать модули и сценарии на языке программирования PHP. В системе также присутствует встроенный визуальный конструктор Blockly, обеспечивающий простое создание алгоритмов:
Комплекс наверняка станет интересен начинающим и продвинутым программистам. Разработка ПО под MajorDoMo не отличается высоким порогом входа, необходимо лишь обладать пониманием языка PHP и некоторых смежных дисциплин (таких, как JS, CSS). С них и следует начинать осваивающим разработку под эту платформу джуниор-кодерам.
4.5 Что значит “связанный” объект/свойство/метод?
В различных частях системы существует функционал “привязки” того или иного элемента с объектом, его свойством или его методом. Объекты являются основой хранения данных системы, а так же описанием функций работы с этими данными. Именно поэтому большинство модулей так или иначе ссылаются на объекты.
Например, элемент меню типа Выключатель используется связанное свойство для хранения данных о своём последнем состоянии, а так же метод объекта, как действие, которое надо выполнить после изменения состояния. С другой стороны, модули работы с оборудованием так же используют связанные свойства и объекты для хранения данных, полученных от соответствующих электронных устройств.
Например, привязав свойство какого-то объекта к свойству выключателя в модуле ZWave можно обращаться к этому свойству для получения последнего состояния физического выключателя, а так же использовать это свойства для установки значения (включения нагрузки), таким образом создаётся прозрачная двухсторонняя связь между физическим устройством и объектом системы MajorDoMo. Одно свойство объекта может быть привязано к нескольким элементам, так, если рассматривать предыдущие два примера, то можно объединить их в один, когда и для привязки выключателя в меню и для привязки выключателя ZWave мы используем одно свойство. В таком случае мы получаем управляемый через меню физический выключатель.
Время/интервалы
time() — возвращает текущее время в формате timestamp.
timeConvert($tm) — конвертирует время из hh:mm в формат time() на сегодняшнее число
timeNow($tm) — возвращает в текстовом виде время типа «16 часов 40 минут». Если $tm не задан, то возвращает текущее время. $tm в формате time.
isWeekEnd() — выходной да/нет = 1/0
isWeekDay() — будний день да/нет = 1/0
timeIs($tm) — проверяет совпадает ли текущее время с передаваемым в формате hh:mm
timeBefore($tm) — сравнивает время $tm (hh:mm) и текущее. Если текущее меньше, то 1 иначе 0
timeAfter($tm) — сравнивает время $tm (hh:mm) и текущее. Если текущее больше, то 1 иначе 0
timeBetween($tm1, $tm2) — проверяет входит ли текущее время в заданный интервал (каждое hh:mm, причем $tm1 может быть больше чем $tm2, например 23:00 05:00)
recognizeTime($text) — функция пытается из фразы извлечь конкретное время/дату. Например $text может быть «завтра в 9:30» или «через 5 минут»
При вызове любого метода (но не сценария!) доступны переменные:
$prevRun — время последнего вызова (в формате timestamp)
$prevRunPassed — сколько секунд прошло с последнего вызова
$this — Указатель на себя. Используется в методах классов. Например:
PHP
$this->setProperty(«status»,1); // устанавливает свойство status в 1, объекту для которого вызван
1 | $this->setProperty(«status»,1);// устанавливает свойство status в 1, объекту для которого вызван |
Что такое MajorDoMo?
Высокие технологии все глубже входят в жизнь человека. Это касается не только его труда, медицины или городской инфраструктуры. Абсолютно все жизненное окружение получает определенный «ум»: выключатели, системы климат-контроля помещений, различные датчики (открывания-закрывания, дыма, движения). Все объединяется в стройные логические системы при помощи цифровых управляющих контуров и контроллеров оборудования. Общность такого слияния называется «умный дом», который и предоставляет возможности единого управления и наблюдения за всем комплексом устройств в него входящего. Причем контроль может осуществляться как в ручном режиме через какой-либо общий интерфейс, так и автоматическими возможностями, наподобие выполнения определенных сценариев, реакции на показания датчиков или даже голосовыми командами.
Самое, наверное, простое и удобное, что стоит вспомнить про «умные» системы в быту – это управление светом. К примеру, выключатель, как ручной прибор, становится не нужен (хотя и возможен). Можно представить себе, что свет включается сам, если датчик в помещении определил наличие человека. Причем, в зависимости от времени суток, включается только то освещение, которое в текущий момент необходимо.
Самое простое – человек один, вечер. Зашел в зал. Зачем зажигать люстру? Автоматически загорается только бра. А вот если зашло несколько людей – тогда да, включается люстра. Опять же. Ночью пошел человек в туалет. Зачем зажигать все освещение? Достаточно включить подсветку ему по дороге, да свет в самом туалете.
Или такой пример: в будние дни люди на работе. Можно запустить робот-пылесос, который к их приходу уберет и встанет на подзарядку. А вот в выходные надобности в этом нет. Соответственно центральный контроллер и действует. Вот это и есть система «умный» дом, которая сама, в зависимости от определенных параметров, производит те или иные действия.
Одна из наиболее доступных, открытых и удобных из подобных – умный дом MajorDoMo. Кросс платформенный OpenSource проект, активно развивающийся и имеющий достаточно низкий порог вхождения. Основа его удобства – относительно простая страница — конфигуратор всего комплекса на домашнем или рабочем web-сервере.
Несмотря на простоту настройки системы MajorDoMo с нуля после установки, у нее множество возможностей по поддержке различного оборудования и протоколов обмена между ним. К комплексу можно подключить не только выключатели различных видов, но и датчики движения, температуры, освещенности или любые другие, информация от которых будет непосредственно выводиться на управляющей web-страничке или использоваться в скриптах MajorDoMo.
What you get
The Domoreport comes complete with all the tools you need to be confident in your purchase.
ZIP Code specific repair estimates broken down by materials and labor
Majordomo’s cost estimates are based on more than 30 years of research on 20,000 project estimates from 35,000 providers of materials and labor across the US. Every Domoreport is reviewed by an industry expert before it’s sent to you.
Prioritized repairs by severity and urgency
At the core of the Domoreport is a list of repairs based on defects identified in the inspection. We tell you where the repairs need to happen, prioritize them, estimate costs, and identify the type of contractors who could do the work – all linked to the page number of the home inspection report.
Integrated request list creator
Build a custom request list of repair requests, credit amounts, and items accepted as-is. Export a professional-looking addendum attachment to use when negotiating with sellers.
Что это такое
Majordomo — свободно распространяемая кроссплатформенная программа, предоставляющая все необходимы инструменты для организации смарт-жилища:
- серверную часть;
- плагины для различного оборудования;
- поддержку сценариев;
- работу с разнообразными существующими протоколами обмена данными.
«Мажордомо» умеет взаимодействовать с умными выключателями, розетками, датчиками и реле. Все элементы настройки и управления сведены в едином простом веб-интерфейсе, устанавливающемся на центральный хаб системы.
Таким образом, MajorDoMo — сервер «умного дома» обеспечивающий согласованную работу прочих его компонентов. Он может быть установлен как на обычный ПК, так и ноутбук или поддерживаемый микрокомпьютер (например, Raspberry Pi, Arduino и прочие). Программа получает данные от сопряженных с ней датчиков и отдает заданные владельцем команды, исполняемые конечными устройствами и контроллерами.
Для понимания работы программы необходимо выяснить ее логическое устройство.
Итог
Советовать Majordomo можно — хостинг неплохой, проверенный временем. И это не странно, учитывая, что речь идёт о создателе очень популярного конструктора сайтов Nethouse. Хотя и проблем хватает, но это, можно сказать, обычный уровень подобного вида услуг, где без форс-мажорных ситуаций ну никак.
По соотношению цены и качества более или менее адекватные возможности предлагает только использование VPS, который вы можете самостоятельно настроить. На виртуальном хостинге придётся мириться с медленной работой веб-интерфейса, а на выделенных физических серверах — с устаревшими компонентами и невысокой производительностью по сравнению с конкурентами.