Открытая система MajorDoMo

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
sergejey
Сообщения: 131
Зарегистрирован: 03 окт 2011, 17:38

Открытая система MajorDoMo

Сообщение sergejey » 03 окт 2011, 18:14

Здравствуйте,

Вдохновившись опытом других, я решил попробовать свои силы на данном порище и заняться изобретением собственного велосипеда :) Не то чтобы я был очень недоволен имеющимися системами управления автоматикой, а, скорее, было интересно сделать что-то своё. У меня собралось некоторе количество идей, а потом и некоторое количество кода, который я обкатываю на своём загородном доме. А буквально недавно решил, что можно поделиться наработками со всем миром, чтобы ошибок поисправлять да и идей новых нахватать. Придумал название -- MajorDoMo (Major Domestic Module) и начал выкладывать информацию о системе.

Итак, в кратце о системе MajorDoMo:

На данный момент, это программная платформа управления и программирования логики Умного Дома. Вся разработка в открытом коде. Работает под управлением открытых протоколов и приложений: Apache/MySQL/PHP. Конкретно у меня "крутится", под Windows XP, однако легко может быть адаптирована под работу в Linux-среде. Под Windows есть обычный установочнй пакет и система разворачивается в считанные минуты и сразу готова к использованию даже без привязки к какому-то железу -- там встроено пару приложени (учёт продуктов, слежение за онлайн-хостами и т.п.). Привязка к железу (или софту) реализуется через создание событий для виртуальных объектов внутри системы -- для этого используется либо командная строка либо простой API по http-протоколу. Последним способом у меня сейчас организована связь с Arduino контроллером, который передаёт напрямую через http значения с подключенных к нему датчиков. Через командную строку, к примеру, реализован функционал обнаружения определённых людей в радиусе действия по bluetooth-меткам их телефонов.

Более подробно система описана на сайте smartliving.ru. Там же можно скачать установочный пакет (пока только под Windows). Сайт сыроват и много чего не описано, но это буду со временем восполнять.

Для вопросов/обсуждения предлагаю использовать эту ветку замечательного форума :)

magic
Сообщения: 25
Зарегистрирован: 16 сен 2011, 22:42

Re: Открытая система MajorDoMo

Сообщение magic » 03 окт 2011, 21:19

Очень хочется пощупать эту систему под линуксами. Скачаю пока под винду, посмотрю что в архиве!

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Открытая система MajorDoMo

Сообщение Andrey_B » 04 окт 2011, 11:28

Сергей, опишите пожалуйста подробнее как у вас работает обнаружение людей по bluetooth-меткам телефонов.

Boris
Сообщения: 150
Зарегистрирован: 06 июн 2011, 17:35

Re: Открытая система MajorDoMo

Сообщение Boris » 04 окт 2011, 14:33

magic писал(а):Очень хочется пощупать эту систему под линуксами. Скачаю пока под винду, посмотрю что в архиве!
Поддерживаю, попробовал перенести на Linux, получил
Not Found
The requested URL /getnextevent.html was not found on this server.

sergejey
Сообщения: 131
Зарегистрирован: 03 окт 2011, 17:38

Re: Открытая система MajorDoMo

Сообщение sergejey » 04 окт 2011, 20:23

magic писал(а):Очень хочется пощупать эту систему под линуксами. Скачаю пока под винду, посмотрю что в архиве!
Теоретически можно сделать дамп базы данных, взять содержимое htdocs и запустить как виртуальный хост. В ближайшее время попробую такую сборку сделать, запустить и описать моменты, где нужно что подправить под Linux-ом.
Not Found
The requested URL /getnextevent.html was not found on this server.
Эта ошибка может быть либо из-за того что htdocs не является отдельным веб-хостом, а установлен в папку (сорри, пока там все пути идут от "корня")
Либо, если не загружен .htaccess

sergejey
Сообщения: 131
Зарегистрирован: 03 окт 2011, 17:38

Re: Открытая система MajorDoMo

Сообщение sergejey » 04 окт 2011, 20:40

Andrey_B писал(а):Сергей, опишите пожалуйста подробнее как у вас работает обнаружение людей по bluetooth-меткам телефонов.
Принцип простой -- при наличии на сервере bluetooth-стэка можно запустить сканер, который периодически сканирует эфир на наличие bt-устройств, собирая их метки. Такой сканер встроен в сборку под Windows, но под Linux можно довольно просто собрать что-то аналогичное -- заменив скрипт сканирования эфира (они есть в инете). Метками являются mac-адреса, они по идее должны быть уникальными. Не поручусь, что на самом деле так, но пока с проблемой повтора мак-адреса не сталкивался. Так вот, задача сканера генерировать событие в системе при обнаружении нового bt-устройства, либо при исчезновении его из радиуса действия. База устройств содержит привязку к пользователям -- если какое-то из устройств пользователя обнаружено, то он где-то неподалёку.

Надёжность этого способа не велика -- из-за ограниченности радиуса и всяких помех устройства могут выпадать и возвращаться сами по себе, даже если пользователь где-то дома. Но добавив несколько условий, можно использовать в полезных сценариях. Например, система определяет, что я вернулся домой, если событие обнаружения моего телефона произошло не ранее 3-х часов с момента его "исчезновения". Сценариев можно придумать много, на самом деле.

Случаются нестыковки с железом телефона -- например iPhone не транслирует свой мак-адрес в эфир, если bluetooth-соединение не активно (хоть и включено). Транслирует только если подключить гарнитуру. Хотя с телефонами Nokia никаких проблем -- всегда видна в эфире :)

---

Кроме вышеописанного есть еще варианты обнаружения пользователей:
а) По пингам их через WiFi (так к примеру у меня iPhone обнаруживается и Android-телефон)
б) Через GPS (об этом чуть позже расскажу -- тут вообще интересно, можно следить за пользователем и обнаруживать его вход/выход в любую локацию и соответственно реагировать. типа услышать по каналу оповещения: "Сергей едет домой, через 5 минут будет проезжать магазин. Может что-то купить по дороге?")

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Открытая система MajorDoMo

Сообщение Andrey_B » 04 окт 2011, 22:18

Сергей, по bluetooth понятно. Один только вопрос - какова реальная дальность обнаружения в условиях дома? И зависит ли дальность от конкретных моделей.
По поводу GPS. Можно фиксировать положение объекта. Это факт. Это можно использовать. А вот в доме от GPS никакого толка нет. Из 3-х моих устройств с GPS ни одно внутри дома не ловит спутники.

sergejey
Сообщения: 131
Зарегистрирован: 03 окт 2011, 17:38

Re: Открытая система MajorDoMo

Сообщение sergejey » 05 окт 2011, 14:35

Andrey_B писал(а):Сергей, по bluetooth понятно. Один только вопрос - какова реальная дальность обнаружения в условиях дома? И зависит ли дальность от конкретных моделей.
У меня дом из бетонных блоков -- вроде бы не сильно мешает прохождению сигнала, однако для bluetooth и это проблема. Сервер у меня находится в топочной, сам "свисток" я на USB удлинителе поднял к окну и получается, что событие моего заезда во двор ловится хорошо (метров 15-20 от окна), а вот в доме проблемы -- уже через две стены (около 5 метров если по прямой) обнаруживается крайне нестабильно. Т.е. в условиях дома технология не надёжная -- хотя может быть это к лучшему, можно более точно определять где находится пользователь (в какой части дома или участка, если несколько таких точек организовать).

Про модели ничего сказать не могу -- эксперименты не ставил. Ещё думаю может быть можно встроенную в "свисток" антенну как-то проапгрэйдить, надо "курить" интернет :)
По поводу GPS. Можно фиксировать положение объекта. Это факт. Это можно использовать. А вот в доме от GPS никакого толка нет. Из 3-х моих устройств с GPS ни одно внутри дома не ловит спутники.
Дома да -- согласен. Но то, что дом "следит" за пользователем, может быть очень полезно. Пользуясь случаем, расскажу как это у меня работает.

Итак, имеем в наличии телефон на Android-е с включенным GPS. Имеем домашний сервер, к которому можно подключиться "из вне". На Андроид ставим бесплатное приложение Big Brother GPS, которое настраиваем на фоновую отправку координат на скрипт [url=http://]http://[/url]<адрес домашнего сервера>/gps.php (скрипт входит в пакет MajorDoMo, а приложение передаёт кроме координат еще уникальный ID устройства, заряд батареи и еще несколько параметров). После этого положение пользователя с заданной периодичностью (настраивается в Big Brother GPS) отправляется на домашний сервер.

Через админку MajorDoMo (модуль GPS Tracker) настраиваем привязку устройств к пользователю, добавляем локации (координаты + радиус вхождения), устанавливаем вызов скриптов при вхождении/выходе из локации.

К этому модулю ещё в планах доделать нормальную визуализацию с помощью Google Maps (текущее положение, дневной маршрут и т.п.)

Boris
Сообщения: 150
Зарегистрирован: 06 июн 2011, 17:35

Re: Открытая система MajorDoMo

Сообщение Boris » 05 окт 2011, 17:14

MajarDomo получилось поднять на Linux CentOs 6

magic
Сообщения: 25
Зарегистрирован: 16 сен 2011, 22:42

Re: Открытая система MajorDoMo

Сообщение magic » 06 окт 2011, 23:33

Boris писал(а):MajarDomo получилось поднять на Linux CentOs 6
Расскажите как!

Boris
Сообщения: 150
Зарегистрирован: 06 июн 2011, 17:35

Re: Открытая система MajorDoMo

Сообщение Boris » 07 окт 2011, 11:28

magic писал(а):
Boris писал(а):MajarDomo получилось поднять на Linux CentOs 6
Расскажите как!
1. Делаем експорт базы db_terminal и переносим на Linux.
2. Переносим C:\_majordomo\htdocs в /var/www/html
3. В файле httpd.conf на Linux находим тег <Directory "/var/www/html"> ниже находим AllowOverride None и меняем на AllowOverride All
4. В файле php.ini на Linux находим short_open_tag = Off и меняем на short_open_tag = On
5. Перегружаем httpd и заходим на MajorDoMo

sueno
Сообщения: 14
Зарегистрирован: 05 окт 2011, 04:15

Re: Открытая система MajorDoMo

Сообщение sueno » 07 окт 2011, 22:13

В андроиде есть приложение locale оно может по возникновению разных событий делать разные действия к примеру при входу в зону wifi или при нахождении в какой то определенной соте, ну или по gps делать get запрос к серверу или выставлять статус в gtalk или слать письмо.

Таким образом можно оповестить систему что "Сергей едет домой.."

sergejey
Сообщения: 131
Зарегистрирован: 03 окт 2011, 17:38

Re: Открытая система MajorDoMo

Сообщение sergejey » 11 окт 2011, 16:23

sueno писал(а):В андроиде есть приложение locale оно может по возникновению разных событий делать разные действия к примеру при входу в зону wifi или при нахождении в какой то определенной соте, ну или по gps делать get запрос к серверу или выставлять статус в gtalk или слать письмо.
Таким образом можно оповестить систему что "Сергей едет домой.."
Да, можно и так. У меня просто клиентское приложение отправляет координаты, а домашний сервер уже решает как на них реагировать.

magic
Сообщения: 25
Зарегистрирован: 16 сен 2011, 22:42

Re: Открытая система MajorDoMo

Сообщение magic » 13 окт 2011, 20:55

Boris писал(а):
magic писал(а):
Boris писал(а):MajarDomo получилось поднять на Linux CentOs 6
Расскажите как!
1. Делаем експорт базы db_terminal и переносим на Linux.
2. Переносим C:\_majordomo\htdocs в /var/www/html
3. В файле httpd.conf на Linux находим тег <Directory "/var/www/html"> ниже находим AllowOverride None и меняем на AllowOverride All
4. В файле php.ini на Linux находим short_open_tag = Off и меняем на short_open_tag = On
5. Перегружаем httpd и заходим на MajorDoMo
Я извиняюсь, может быть у вас есть готовая "сборка" или архив под Линукс. Не имею винды дома и на работе - только Линукс.

Boris
Сообщения: 150
Зарегистрирован: 06 июн 2011, 17:35

Re: Открытая система MajorDoMo

Сообщение Boris » 14 окт 2011, 10:38

Готовой сборки нет, думаю вам стоит обратится к разработчику. Информации, под какой лицензией распространяется MajarDomo, я не нашел.

sergejey
Сообщения: 131
Зарегистрирован: 03 окт 2011, 17:38

Re: Открытая система MajorDoMo

Сообщение sergejey » 22 окт 2011, 13:35

magic писал(а):Я извиняюсь, может быть у вас есть готовая "сборка" или архив под Линукс. Не имею винды дома и на работе - только Линукс.
Добрый день,

Сегодня обновил сборку под Windows и собрал набор файлов для установки под Linux:

http://smartliving.ru/Main/Download (краткая инструкция по установке Linux-пакета находится внутри в файле readme.txt)

Так же немного обновил документацию на сайте:

http://smartliving.ru/Main/ModuleCommands -- описание одного из основных модулей "Меню управления"
http://smartliving.ru/Main/ModuleWebvars -- описание нового модуля "Веб-переменные"

VicktorVR
Сообщения: 2
Зарегистрирован: 23 окт 2011, 18:00

Re: Открытая система MajorDoMo

Сообщение VicktorVR » 23 окт 2011, 18:59

Извините, я что так и не понял, система с 1-wire работает? Через какой адаптер USB, RS232? Что-то все заумно как-то... Я вот с объектно-ориентированным программированием так и не подружился(хотя жена пишет), мне для моих задач вполне хватало на ПК ТurboС, на МК - микроассемблера.

Можно подробно пояснить, как работать с системой? Вот допустим хочу я опрашивать n датчиков(температурных и всяких других) и в зависимости от результатов по определенному алгоритму включать/выключать k исполнителей, все по 1-wire. Какие-то сценарии надо создавать или как? Или скрипты писать на каком-нибудь перле?

sergejey
Сообщения: 131
Зарегистрирован: 03 окт 2011, 17:38

Re: Открытая система MajorDoMo

Сообщение sergejey » 26 окт 2011, 16:24

VicktorVR писал(а):Извините, я что так и не понял, система с 1-wire работает? Через какой адаптер USB, RS232? Что-то все заумно как-то... Я вот с объектно-ориентированным программированием так и не подружился(хотя жена пишет), мне для моих задач вполне хватало на ПК ТurboС, на МК - микроассемблера.

Можно подробно пояснить, как работать с системой? Вот допустим хочу я опрашивать n датчиков(температурных и всяких других) и в зависимости от результатов по определенному алгоритму включать/выключать k исполнителей, все по 1-wire. Какие-то сценарии надо создавать или как? Или скрипты писать на каком-нибудь перле?
Встроенной поддержки "железа" в системе пока нет вовсе. Т.е. это интерфейс управления и программирования логики -- мозг, но без конечностей :)

Хотя немного вру -- у меня к нему подключен контроллер arduino с датчиками, но сопряжение там без каких-то драйверов, а засчет того, что контроллер может напрямую отправлять http-запросы через сеть ethernet и поэтому он сам инициализирует события и изменение свойств объектов системы.

Поддержка стороннего железа будет появляться по мере того как оно будет появляться у меня либо у кого-то, кто на свой страх и риск стал пользоваться проектом. В первую очередь, кстати, я бы на самом деле хотел бы встроить поддержку 1-wire -- для этого нужен буквально один скрипт сопряжения с OWFS, который будет реагировать на изменение состояния сети и отправлять событие об этом в систему.

sergejey
Сообщения: 131
Зарегистрирован: 03 окт 2011, 17:38

Re: Открытая система MajorDoMo

Сообщение sergejey » 17 ноя 2011, 16:07

По-немногу занимаюсь описанием, фиксингом багов и прочими вещами...

Завёл новый раздел Сценарии http://smartliving.ru/Main/Scenarios

Буду там описывать различные варианты применения Умного Дома с деталями настройки системы.

rial2001
Сообщения: 13
Зарегистрирован: 17 ноя 2011, 19:08

Re: Открытая система MajorDoMo

Сообщение rial2001 » 23 ноя 2011, 15:04

А можно поинтересоваться по поводу скайп-бота?
насколько я понимаю возможно общения с сервером посредством отправки опр.команд на скайп???
И еще: никак не получается изменить сетевой адрес MajorDoMo...

Ответить