Умный дом по радиоканалу
Модератор: immortal
-
- Сообщения: 289
- Зарегистрирован: Вс сен 16, 2012 9:39 am
- Благодарил (а): 0
- Поблагодарили: 1 раз
Re: Умный дом по радиоканалу
Я так понимаю, для того чтобы в MDM и X13 могли обмениваться нужными переменными, необходимо со стороны X13 заводить их в var/now/, т.е, чтобы в MDM увидеть давление с датчика на ноде, необходимо эту переменную поместить в var/now/ и аналогично в обратную сторону, если хотим из X13 узнать состояние 1-wire ключа, нужно читать переменную которая лежит в var/now/ и в нее пишем свойства из MDM. Или есть еще какие варианты. И как приделать автоматический запуск mqtt.bat при запуске MDM, чтоб не лазить в папку каждый раз.
Re: Умный дом по радиоканалу
В моём понимании - это так:Panchez писал(а):Изначально доступ дал полный, пробовал как на скриншоте так и файликом, который был в теме для открытия полного доступа.
Разрешено для /var, доступ есть к /var. Я думаю если разрешить другие ветки, то и они станут доступны.Panchez писал(а): P.S.
Разобрался в /var вообще небыло ничего установлено в security, дал доступ и заработало.
Но только данные из /var обновляются, другие значения из ноды или export не хотят.
На скриншоте к сожалению невидно на что подписан MDM.
Не надо ереси.Urbas81 писал(а):Я так понимаю, для того чтобы в MDM и X13 могли обмениваться нужными переменными, необходимо со стороны X13 заводить их в var/now/, т.е, чтобы в MDM увидеть давление с датчика на ноде, необходимо эту переменную поместить в var/now/ и аналогично в обратную сторону, если хотим из X13 узнать состояние 1-wire ключа, нужно читать переменную которая лежит в var/now/ и в нее пишем свойства из MDM.
X13.Home - open source система домашней автоматизации
-
- Сообщения: 289
- Зарегистрирован: Вс сен 16, 2012 9:39 am
- Благодарил (а): 0
- Поблагодарили: 1 раз
Re: Умный дом по радиоканалу
Разобрался, если задать в качестве пути /# в MDM и дать права на папки в СС, то становятся доступны все значения.
Re: Умный дом по радиоканалу
Так точно!!!Urbas81 писал(а):Разобрался, если задать в качестве пути /# в MDM и дать права на папки в СС, то становятся доступны все значения.
Если не установлен SleepTime и обновления ноды раз в секунду клиент MDM постоянно переподключается, Сергей писал про эту проблему на ab-log.
- Вложения
-
- Timeout.JPG (30.25 КБ) 11458 просмотров
С уважением
Александр.
Александр.
Re: Умный дом по радиоканалу
Сергей, как быть с историей?
Можно добавить действие при изменении как в 1-wire?
Можно добавить действие при изменении как в 1-wire?
С уважением
Александр.
Александр.
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Умный дом по радиоканалу
Сейчас во всех свойствах объектов можно задать метод, который будет вызываться при установке значения. Он работает и для переменных привязанных к железу через другие модули. Можно такой способ использовать.Panchez писал(а):Сергей, как быть с историей?
Можно добавить действие при изменении как в 1-wire?
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 289
- Зарегистрирован: Вс сен 16, 2012 9:39 am
- Благодарил (а): 0
- Поблагодарили: 1 раз
Re: Умный дом по радиоканалу
Интересует такой вопрос, что нужно добавить в php файл, чтобы управлять переменной через mqtt, при этом чтоб этот код можно было вставить в самодельный цикл. Я создал свой цикл назвал его cycle_my.php, его содержимое:
<?php
chdir(dirname(__FILE__).'/../');
include_once("./config.php");
include_once("./lib/loader.php");
include_once("./lib/threads.php");
set_time_limit(0);
// connecting to database
$db = new mysql(DB_HOST, '', DB_USER, DB_PASSWORD, DB_NAME);
include_once("./load_settings.php");
include_once(DIR_MODULES."control_modules/control_modules.class.php");
$ctl = new control_modules();
while(1)
{
echo date("H:i:s") . " running " . basename(__FILE__) . "\n";
setGlobal((str_replace('.php', '', basename(__FILE__))).'Run', time());
DebMes("Запуск моего цикла");
$ctx = stream_context_create(array(
'http' => array(
'timeout' => 1
)
)
);
file_get_contents("http://192.168.1.14/sec/?pt=4&cmd=4:2", 0, $ctx);
if (file_exists('./reboot'))
{
$db->Disconnect();
exit;
}
sleep(2);
}
DebMes("Unexpected close of cycle: " . basename(__FILE__));
?>
добавил код выделенный красным, цикл запускается работает, теперь вместо красного кода мне необходимо изменять состояние элемента в X13
нужно скрестить с этим
<?php
require("phpMQTT.php"); /*https://github.com/bluerhinos/phpMQTT */
/*открываем соединение с брокером*/
$mqtt = new phpMQTT("localhost", 1883, "Test");
/*$mqtt->debug = true;*/
if(!$mqtt->connect(true, NULL, "root", "1")) /*Clean, Will, User, Password*/
{
exit(1);
}
/*Заявляем какие переменные нам нужны, и подписываемся на них */
/*В данном случае получаем системные переменные, как то - время и дату*/
$topics["/export/Ex/dbl02"] = array("qos"=>0, "function"=>"procmsg");
$mqtt->subscribe($topics,0);
/* цикл крутится пока есть соединение к серверу */
while($mqtt->proc()){}
$mqtt->proc();
$mqtt->close();
/*данная функция вызывается каждый раз, когда у нас есть обновление переменных*/
function procmsg($topic,$msg)
{
/* отрезаем тип переменной, так как в большинстве случаев он нам известен заранее */
$msgout = substr($msg,strpos($msg, ',', 1) + 1);
/*здесь мы обрабатываем переменные и решаем что с ними делать*/
echo "{$topic}\t$msgout\n";
}
?>
красным выделен путь к переменной которую я хочу изменять в цикле. Сергей, если есть возможность, помогите разобраться.
PS Если открываю в браузере последний код, то видно что идет подключение к системе пользователя Test? и дальше через минуту отключение и в браузере ошибка.
<?php
chdir(dirname(__FILE__).'/../');
include_once("./config.php");
include_once("./lib/loader.php");
include_once("./lib/threads.php");
set_time_limit(0);
// connecting to database
$db = new mysql(DB_HOST, '', DB_USER, DB_PASSWORD, DB_NAME);
include_once("./load_settings.php");
include_once(DIR_MODULES."control_modules/control_modules.class.php");
$ctl = new control_modules();
while(1)
{
echo date("H:i:s") . " running " . basename(__FILE__) . "\n";
setGlobal((str_replace('.php', '', basename(__FILE__))).'Run', time());
DebMes("Запуск моего цикла");
$ctx = stream_context_create(array(
'http' => array(
'timeout' => 1
)
)
);
file_get_contents("http://192.168.1.14/sec/?pt=4&cmd=4:2", 0, $ctx);
if (file_exists('./reboot'))
{
$db->Disconnect();
exit;
}
sleep(2);
}
DebMes("Unexpected close of cycle: " . basename(__FILE__));
?>
добавил код выделенный красным, цикл запускается работает, теперь вместо красного кода мне необходимо изменять состояние элемента в X13
нужно скрестить с этим
<?php
require("phpMQTT.php"); /*https://github.com/bluerhinos/phpMQTT */
/*открываем соединение с брокером*/
$mqtt = new phpMQTT("localhost", 1883, "Test");
/*$mqtt->debug = true;*/
if(!$mqtt->connect(true, NULL, "root", "1")) /*Clean, Will, User, Password*/
{
exit(1);
}
/*Заявляем какие переменные нам нужны, и подписываемся на них */
/*В данном случае получаем системные переменные, как то - время и дату*/
$topics["/export/Ex/dbl02"] = array("qos"=>0, "function"=>"procmsg");
$mqtt->subscribe($topics,0);
/* цикл крутится пока есть соединение к серверу */
while($mqtt->proc()){}
$mqtt->proc();
$mqtt->close();
/*данная функция вызывается каждый раз, когда у нас есть обновление переменных*/
function procmsg($topic,$msg)
{
/* отрезаем тип переменной, так как в большинстве случаев он нам известен заранее */
$msgout = substr($msg,strpos($msg, ',', 1) + 1);
/*здесь мы обрабатываем переменные и решаем что с ними делать*/
echo "{$topic}\t$msgout\n";
}
?>
красным выделен путь к переменной которую я хочу изменять в цикле. Сергей, если есть возможность, помогите разобраться.
PS Если открываю в браузере последний код, то видно что идет подключение к системе пользователя Test? и дальше через минуту отключение и в браузере ошибка.
Re: Умный дом по радиоканалу
Просьба к товарищам, которые сумели подключить MajorDoMo к X13: распишите пожалуйста по пунктам, что и как нужно делать.
А то совершенно непонятно. Вот я запускаю MajorDoMo иду по адресу http://127.0.0.1:81/ захожу в панель упарвления выбираю Устройства->MQTT
и вижу такую картинку Далее выбираю "Настроить" и вижу это А что дальше?
В X13 при старте MajorDoMo никаких записей о коннекте не появляется. Пробовал добавлять логин, пароль - не помогает.
И как нужно заполнять поля в форме "Добавить новую запись" Заранее спасибо за понимание и Ваш труд.
А то совершенно непонятно. Вот я запускаю MajorDoMo иду по адресу http://127.0.0.1:81/ захожу в панель упарвления выбираю Устройства->MQTT
и вижу такую картинку Далее выбираю "Настроить" и вижу это А что дальше?
В X13 при старте MajorDoMo никаких записей о коннекте не появляется. Пробовал добавлять логин, пароль - не помогает.
И как нужно заполнять поля в форме "Добавить новую запись" Заранее спасибо за понимание и Ваш труд.