Модуль Noolite
Re: Модуль Noolite
Добрый день, коллеги.
подскажите как можно перенести привязанные устройства с одного mjd в другой.
Делаю сейчас перенос на новый сервер оборудования.. очень уж ен хочется сбрасывать все привязки и привязать снова.
по сути стик остался тот же.. нужно лишь как то через Sql или еще как то перенести девайсы с привязками на новый mjd
подскажите как можно перенести привязанные устройства с одного mjd в другой.
Делаю сейчас перенос на новый сервер оборудования.. очень уж ен хочется сбрасывать все привязки и привязать снова.
по сути стик остался тот же.. нужно лишь как то через Sql или еще как то перенести девайсы с привязками на новый mjd
- xor
- Сообщения: 2001
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 272 раза
- Поблагодарили: 619 раз
Re: Модуль Noolite
таблицы с noo в имени перенести + объекты, ссылающиеся/привязанные должны быть соответственные. или просто на новом сервере восстановиться из архива со старогоHasper писал(а): ↑Пт июл 02, 2021 1:08 pmДобрый день, коллеги.
подскажите как можно перенести привязанные устройства с одного mjd в другой.
Делаю сейчас перенос на новый сервер оборудования.. очень уж ен хочется сбрасывать все привязки и привязать снова.
по сути стик остался тот же.. нужно лишь как то через Sql или еще как то перенести девайсы с привязками на новый mjd
win10 connect https://connect.smartliving.ru/profile/303
Re: Модуль Noolite
Да спасибо.. перенес таблицы. все завелосьxor писал(а): ↑Пт июл 02, 2021 5:12 pmтаблицы с noo в имени перенести + объекты, ссылающиеся/привязанные должны быть соответственные. или просто на новом сервере восстановиться из архива со старогоHasper писал(а): ↑Пт июл 02, 2021 1:08 pmДобрый день, коллеги.
подскажите как можно перенести привязанные устройства с одного mjd в другой.
Делаю сейчас перенос на новый сервер оборудования.. очень уж ен хочется сбрасывать все привязки и привязать снова.
по сути стик остался тот же.. нужно лишь как то через Sql или еще как то перенести девайсы с привязками на новый mjd
-
- Сообщения: 26
- Зарегистрирован: Ср ноя 05, 2014 11:21 pm
- Благодарил (а): 19 раз
- Поблагодарили: 3 раза
Re: Модуль Noolite
Добрый день, коллеги.
Подскажите как обновлять статус в SRF-10-1000 через mtrf-64-usb
Если делать опрос по одному каналу то вроде работает Но если сделать опрос по каждому каналу каждые 3 секунды, то происходит перебивание запросов и статус по каналам не возвращается.
Так же есть проблема с отправкой нескольких команд, нужна задержка между отправкой на устройство SRF-10-1000.
Как можно реализовать последовательный опрос каналов? Может есть команда опроса сразу всех каналов? Как реализовать задержку?
Подскажите как обновлять статус в SRF-10-1000 через mtrf-64-usb
Если делать опрос по одному каналу то вроде работает Но если сделать опрос по каждому каналу каждые 3 секунды, то происходит перебивание запросов и статус по каналам не возвращается.
Так же есть проблема с отправкой нескольких команд, нужна задержка между отправкой на устройство SRF-10-1000.
Как можно реализовать последовательный опрос каналов? Может есть команда опроса сразу всех каналов? Как реализовать задержку?
Последний раз редактировалось sashmen Вт авг 31, 2021 10:28 am, всего редактировалось 2 раза.
Сервер на raspberry pi Noolite SRF-10-1000, PT111, PU-411, mtrf-64-usb
Connect
Connect
-
- Сообщения: 39
- Зарегистрирован: Ср сен 21, 2016 9:03 am
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
Re: Модуль Noolite
Добрый день всем!
Подскажите пожалуйста (лучше из личного опыта), насколько полноценно модуль работает с PRF-64 через Ethernet gate/HTTP-gate?
Интересует все: Noolite, Noolite-F, датчики...
Заранее спасибо!
Подскажите пожалуйста (лучше из личного опыта), насколько полноценно модуль работает с PRF-64 через Ethernet gate/HTTP-gate?
Интересует все: Noolite, Noolite-F, датчики...
Заранее спасибо!
-
- Сообщения: 8
- Зарегистрирован: Сб июн 25, 2022 8:14 am
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: Модуль Noolite
Доброго времени всем!
не могу разобраться. Установил плагин, приложение noolite под linux/
Из-под командной строки "/usr/local/bin/noolite -api -sw_ch 1" - отлично работает, устройства связываются и всё переключает.
В mjdm настроил всё по инструкции, выбрав вариант "linux api", добавил устройство и связал его в плагине. Свойства успешно меняются любыми методами (и по кнопке, и просто задав принудительно статус 1/0), но реле никак не реагирует. Что я делаю не так?
не могу разобраться. Установил плагин, приложение noolite под linux/
Из-под командной строки "/usr/local/bin/noolite -api -sw_ch 1" - отлично работает, устройства связываются и всё переключает.
В mjdm настроил всё по инструкции, выбрав вариант "linux api", добавил устройство и связал его в плагине. Свойства успешно меняются любыми методами (и по кнопке, и просто задав принудительно статус 1/0), но реле никак не реагирует. Что я делаю не так?
-
- Сообщения: 8
- Зарегистрирован: Сб июн 25, 2022 8:14 am
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: Модуль Noolite
Традиционно. Сам спросил, - сам отвечу.
1. добавить пользователя "www-data" в группу "dialout", чтобы появились права записи в USB;
2. файл "noolite.class.php" откорреrтировать так, чтобы итоговая команда формировалась в соответствии с описанием команд приложения "noolite". В приведённом классе всё заточено на систему команд "noolitepc".
строка 661 исходная:
должна получиться такой:
3. осталась проблема со вторым условием в классе, где проверяется, выполнялась ли недавно какая-либо команда, и если выполнялась, - то добавить паузу перед выполнением следующей и отправить в очередь. На ней происходит неясный затык и всё превращается в бесконечную "мигалку" со случайным интервалом. На неё уходят все ресурсы и система зависает.
вот это место:
1. добавить пользователя "www-data" в группу "dialout", чтобы появились права записи в USB;
2. файл "noolite.class.php" откорреrтировать так, чтобы итоговая команда формировалась в соответствии с описанием команд приложения "noolite". В приведённом классе всё заточено на систему команд "noolitepc".
строка 661 исходная:
Код: Выделить всё
} elseif ($this->config['API_TYPE'] == 'linux') {
$cmdline = 'sudo noolitepc ' . $api_command;
}
Код: Выделить всё
} elseif ($this->config['API_TYPE'] == 'linux') {
$cmdline = '/usr/local/bin/noolite -api ' . $api_command;
}
вот это место:
Код: Выделить всё
} else {
$diff = $diff + 1;
DebMes("Noolite delayed (" . ($diff) . ") cmd: " . $cmdline, 'noolite');
setGlobal('ThisComputer.LatestNooliteCommand', time() + $diff, 0, $this->name);
setTimeOut('noocommand' . md5($cmdline), 'exec(\'' . $cmdline . '\');', $diff);
}
- xor
- Сообщения: 2001
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 272 раза
- Поблагодарили: 619 раз
Re: Модуль Noolite
Что-то было такое, кажется. Из-за отсутствия поддержки новых термостатов от ноо и непонятного поведения отказался от модуля и ноо у меня под виндой работает через скрипт и свой цикл. С точностью до кода это решение вам не подойдёт, но, может, даст идею. Переписал цикл ноо так - все команды к ноо закидываются в очередь - стек редиса, а цикл забирает из стека команды и пуляет их с небольшой задержкой 0,4 с между нимиEugene писал(а): ↑Сб авг 06, 2022 10:01 am3. осталась проблема со вторым условием в классе, где проверяется, выполнялась ли недавно какая-либо команда, и если выполнялась, - то добавить паузу перед выполнением следующей и отправить в очередь. На ней происходит неясный затык и всё превращается в бесконечную "мигалку" со случайным интервалом. На неё уходят все ресурсы и система зависает.
вот это место:
Код: Выделить всё
} else { $diff = $diff + 1; DebMes("Noolite delayed (" . ($diff) . ") cmd: " . $cmdline, 'noolite'); setGlobal('ThisComputer.LatestNooliteCommand', time() + $diff, 0, $this->name); setTimeOut('noocommand' . md5($cmdline), 'exec(\'' . $cmdline . '\');', $diff); }
вот фрагмент цикла:
Код: Выделить всё
$cycleVarName='ThisComputer.'.str_replace('.php', '', basename(__FILE__)).'Run';
saveToCache("MJD:$cycleVarName", time());
echo date("H:i:s") . " running " . basename(__FILE__) . PHP_EOL;
$redis = new Redis();
$redis->pconnect('127.0.0.1','6500');
$cmdline = 'c:/_majordomo/apps/noo/nooLiteF.exe api ';
while (1) {
if ((time() - $checked_time) > 20) {
$redis->close();
$checked_time = time();
$redis = new Redis();
$redis->pconnect('127.0.0.1','6500');
saveToCache("MJD:$cycleVarName", $checked_time);
}
$payload = $redis->lpop('noo'); //возьмём из очереди
if ($payload === false) {
usleep(1000);
}else{
exec($cmdline.$payload);
//DebMes(" !Noolite->: nooLiteF.exe api " . $payload, 'noolite');
}
if (isRebootRequired() || IsSet($_GET['onetime'])) {
$db->Disconnect();
exit;
}
usleep(400000);
}
Код: Выделить всё
/*
работает совместно с циклом опроса очереди cycle_redis_que.php
помещает все приходящие команды в очередь noo
sendNooAPICmd("2 0 0 4 2 0 0 0 0 0 00000000 1");
*/
function sendNooAPICmd($api_command,$noo='',$source='')
{ //debmes('sendNooAPICmd '.$api_command.' src='.$source,'sendNooAPICmd');
if ($api_command) {
$redis = new Redis();
$redis->connect('127.0.0.1','6500');
$redis->rpush('noo',$api_command);
$redis->close();
}
}
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 8
- Зарегистрирован: Сб июн 25, 2022 8:14 am
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: Модуль Noolite
Спасибо за идею конечно, но уж как-то заморочно.
Я пока убрал вообще запихивание в таймер. У меня нет нужды в обратной связи, пока так работает, - и хорошо.
Я пока убрал вообще запихивание в таймер. У меня нет нужды в обратной связи, пока так работает, - и хорошо.
- xor
- Сообщения: 2001
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 272 раза
- Поблагодарили: 619 раз
Re: Модуль Noolite
а работа без задержек, вроде, не гарантируется свистками ноо. они об этом в доках на свистки пишут(
win10 connect https://connect.smartliving.ru/profile/303