Страница 1 из 1
Как на практике начать работать с MaJorDomo?
Добавлено: Чт май 14, 2015 2:52 pm
fatergs
Друзья, прошу помощи, возможно -- в виде ссылки на тему.
Имеется:
1. Компьютер cubieboard2 с установленной ОС Cubian, связкой Apache2, MySql, PhpAdmin. Делал все строго по мануалам, следом поставил Majordomo -- пока все чудесно, сайт на локалхосте открывается, кнопочки нажимаются, Алиса сообщает, что статус "Зеленый".
2. Много читал сайт и форум (в том числе Азбуку и FAQ конечно, иначе не пришел бы к осознанному выбору этой платформы).
Огромное спасибо всем участникам проекта, без ваших разъяснений вряд ли у меня бы что получилось.
Итак, система установлена. Термины (по отдельности) изучены. Не хватает понимания, как начать применять все на практике.
Я был бы очень признателен за помощь в решении тестовой задачи.
Допустим, у меня стоит в Гостиной Телевизор (пишу с заглавной буквы, потому, что и то и другое -- объект). Телевизор (когда включен) -- виден в локалке и отвечает на пинг (датчик присутствует).
_Вопрос_: как мне в своей локальной системе (читай -- сайте) сделать вкладку (?) Гостиная, при входе на которую начинал бы с периодичностью раз в минуту отображаться статус вкл/выкл Телевизора?
Наверняка разъяснение способа решения было бы полезно и другим начинающим. Заранее спасибо, и прошу не кидаться камнями, если нечто подобное уже рассматривалось -- честно, не смог найти.
Всех благ, Алексей
Re: Как на практике начать работать с MaJorDomo?
Добавлено: Чт май 14, 2015 3:37 pm
Victor_S
fatergs писал(а):Допустим, у меня стоит в Гостиной Телевизор (пишу с заглавной буквы, потому, что и то и другое -- объект). Телевизор (когда включен) -- виден в локалке и отвечает на пинг (датчик присутствует).
_Вопрос_: как мне в своей локальной системе (читай -- сайте) сделать вкладку (?) Гостиная, при входе на которую начинал бы с периодичностью раз в минуту отображаться статус вкл/выкл Телевизора?
1. Создаешь класс Units(к примеру). У класса - свойство status.
2. В классе - объект TV.
3. Выбираешь Устройства Online. Добавляешь свой объект Телевизор(указываешь связанное свойство status объекта TV и ip-address)
4. Создаешь сцену Гостинная.
5. На сцену - элемент Телевизор. Тип картинка. там же создаешь 2 состояния On и Off с разными картинками. Условия отображения каждой картинки = status объекта TV.
Re: Как на практике начать работать с MaJorDomo?
Добавлено: Чт май 14, 2015 3:38 pm
Geban
Думается мне что в панели управления надо найти пункт Домашние страницы. создать там новую, поставить пеод автообновления 60. Выбрать HTML. В поле для код написать типа Телевизор: %Телевизор.state%<br>
Для этого у объекта Телевизор должно быть свойство state. В Устройствах Online создаете новый пункт. в котором пишете адрес телека и привязываете к нему объект Телевизор и свойство state. когда МДМ будет видить пинг от телека свойство state объекта Телевизор будет иметь значение 1. Ну а дальше развлекайтесь как хотите с этим параметром. Можно его выводить как есть, можно использоватьего как флаг для чего-то
Re: Как на практике начать работать с MaJorDomo?
Добавлено: Чт май 14, 2015 3:55 pm
fatergs
Спасибо за быстрый отклик. Доберусь до полигона -- попробую начать реализовывать. Больше ответов и комментариев только приветствуется, спасибо!
Re: Как на практике начать работать с MaJorDomo?
Добавлено: Пт май 15, 2015 1:42 pm
fatergs
Коллеги, в общем, воплотил я в жизнь советы Victora_S, все получилось. Появились новые вопросы.
1. Я создал класс Units со свойствами status и textStatus; объект PhoneAndroid (вместо телевизора:). Соответственно, хост PhoneEthernet в "Устройствах Online" сам меняет связанное свойство status (почему-то, кстати, на 2 в случае оффлайна), но я еще хочу изменять сам свойство textStatus (в окошечке Код). Корректно ли написать вот так:
sg('PhoneAndroid.textStatus','Включено');
say('Online!');
или лучше как-то по-другому?
2. Алиса выводит 'Online!' в системном окне, это хорошо, дает возможность отладки, но! Существует ли какой-нибудь другой способ оперативно выводить текст внутри системы?
3. Прикрученная к дистрибутиву БД несомненно помогает в процессе освоения, но сразу возникает вопрос: что можно удалять из нее не опасаясь за возможный крах системы?
4. Я верно понимаю, что для того, чтобы исключить ненужные мне циклы опросов (блютус например) -- достаточно поправить конфигурационный файл?
5. На форуме часто понимается вики -- это в переносном смысле, или есть некий сайт, построенный по принципу Википедии для МДМ?
Спасибо за будущие ответы!
Re: Как на практике начать работать с MaJorDomo?
Добавлено: Пт май 15, 2015 3:36 pm
ErmolenkoM
fatergs писал(а):Появились новые вопросы.
1. Я создал класс Units со свойствами status и textStatus; объект PhoneAndroid (вместо телевизора:). Соответственно, хост PhoneEthernet в "Устройствах Online" сам меняет связанное свойство status (почему-то, кстати, на 2 в случае оффлайна), но я еще хочу изменять сам свойство textStatus (в окошечке Код). Корректно ли написать вот так:
sg('PhoneAndroid.textStatus','Включено');
say('Online!');
или лучше как-то по-другому?
2. Алиса выводит 'Online!' в системном окне, это хорошо, дает возможность отладки, но! Существует ли какой-нибудь другой способ оперативно выводить текст внутри системы?
3. Прикрученная к дистрибутиву БД несомненно помогает в процессе освоения, но сразу возникает вопрос: что можно удалять из нее не опасаясь за возможный крах системы?
4. Я верно понимаю, что для того, чтобы исключить ненужные мне циклы опросов (блютус например) -- достаточно поправить конфигурационный файл?
5. На форуме часто понимается вики -- это в переносном смысле, или есть некий сайт, построенный по принципу Википедии для МДМ?
1. Не знаю на сколько это очевидно из описания системы, но общая логика следующая: МЖД это набор переменных и набор процедур(блок исполняемого кода). Переменные просто хранят значения. Процедуры выполняются или по времени или по событию. Вот что представляет из себя МажорДоМо. Далее. Есть ряд _предустановленных_ переменных и _предустановленных_ процедур. Ими можно пользоваться или вместо них можно написать свои. НО если вы их используете - старайтесь не вторгаться или не менять логику до тех пор пока в точности ее не понимаете. Ответ на первый вопрос - скорее всего нет(хотя я не проверял, но если у вас работает то ничего страшного). И вот почему: если не вы создали переменную, то не стоит менять ее значение на непредусмотренное. Делаем так: создаем свою переменную, заполняем ее своим текстом в скрипте вызываемом по событию. После чего на странице светим сое свойство. Все.
2. Это называется ЧАТ. Это удобно для отладки и логирования. Оперативно выводить текст "в сети/ не в сети" можно следующими способами: первое - открыть программный модуль ONLINE, второе создать "Домашнюю страницу", третье - создать сцену, четвертый - в меню создать пункт меню, пятое - произнести голосом. Наверное есть еще способы. Мой вам совет: попробуйте в качестве обучения системе использовать все пять способов вывода информации. Будут вопросы - задавайте, но поверьте - это просто.
3. Удалять ничего нельзя. Пользы это не принесет, а вред - запросто.
4. Ненужные циклы запустятся один раз и остановятся. Блютулз отключается в настройках(через админку МЖД).
5. Вики это
http://smartliving.ru/ - так как любой пользователь может менять любую страницу. Автор призывает всех активно участвовать в создании контента не только на форуме, но и на сайте.
Re: Как на практике начать работать с MaJorDomo?
Добавлено: Пт май 15, 2015 5:03 pm
fatergs
Спасибо за ответ. Уточнение вопроса 1. У меня есть объект PhoneAndroid со свойством textStatus. То есть, есть переменная PhoneAndroid.textStatus. Каким кодом присвоить ей значение (изменить значение свойства)?
Re: Как на практике начать работать с MaJorDomo?
Добавлено: Пт май 15, 2015 5:40 pm
skysilver
fatergs писал(а):То есть, есть переменная PhoneAndroid.textStatus. Каким кодом присвоить ей значение (изменить значение свойства)?
Вы верно писали
Данная строка кода как раз запишет в textStatus значение "Включено".
Если у объекта PhoneAndroid есть какой-либо метод, и свойства объекта хотите изменить в этом методе, то кошернее применять
Код: Выделить всё
$this->setProperty('textStatus', 'Включено');