Страница 1 из 2

Список живых устройст

Добавлено: Вт окт 31, 2017 1:25 pm
PAV
Хочу сделать список всех устройств с отображением их статуса на одной странице. Чтобы зайти на страницу и сразу посмотреть, какие устройства живые, а какие нет.
Т.е. нужна выборка из mysql по свойству alive.
КАК?

Re: Список живых устройст

Добавлено: Вт окт 31, 2017 2:40 pm
Chainik
Думаю, сам вопрос требует конкретизации. Что значит "живых" устройств?
Вот есть у меня лампочка. Она управляется устройством и сейчас выключена. В любой момент могу ее включить и выключить. Если нужно знать включена она или нет - это один вопрос.
Если надо знать, функционирует устройство (с помощью которой управляется лампочка) или не функционирует ("вывалилось" из сети, зависло, вышло из строя, демонтировано для каких-то целей и т.д.), то это другой вопрос.
Т.е. надо пояснить, что именно имеется ввиду под словом "живой"?

Re: Список живых устройст

Добавлено: Вт окт 31, 2017 2:49 pm
PAV
У объектов есть свойство Alive.
Вот как вывести на страницу все объекты со свойством Alive и напротив 1 или 0?

Re: Список живых устройст

Добавлено: Вт окт 31, 2017 3:16 pm
nick7zmail
Есть же команда getObjectsByClass - выборка по классу...выбираете объекты нужных классов, и смотрите - если есть свойство Alive и оно не равно "" то - выводим куда вам надо...

Так же есть "динамический повтор" в элементах сцен и меню...то есть ставите %объект.свойство%, включаете smartrepeat, и он выдаёт список для всех объектов класса...

Re: Список живых устройст

Добавлено: Вт окт 31, 2017 3:33 pm
sergejey
PAV писал(а):Хочу сделать список всех устройств с отображением их статуса на одной странице. Чтобы зайти на страницу и сразу посмотреть, какие устройства живые, а какие нет.
Т.е. нужна выборка из mysql по свойству alive.
КАК?
$list = getObjectsByProperty('ALIVE', '=', 1) ; // живые устройства
$list = getObjectsByProperty('ALIVE', '=', 0) ; // неживые устройства

это будут массивы, которые можно периодически сохранять в какое-нибудь другой свойство и выводить в интерфейсе

Re: Список живых устройст

Добавлено: Вт окт 31, 2017 6:10 pm
PAV

Код: Выделить всё

$list = getObjectsByProperty('alive', '=', 1) ; 
echo ($list);
SetGlobal("AllAlive.AllAlive",$list);
$list = getObjectsByProperty('alive', '=', 0) ; // неживые устройства
SetGlobal("AllAlive.AllDead",$list);
 
Выдает в свойства - Array и все

Re: Список живых устройст

Добавлено: Вт окт 31, 2017 6:17 pm
sergejey
Всё верно, функция возвращает массив, который можно преобразовать в строку например так SetGlobal("AllAlive.AllAlive",implode(', ',$list));

Re: Список живых устройст

Добавлено: Вт окт 31, 2017 6:18 pm
skysilver
PAV писал(а):echo ($list);
Выдает в свойства - Array и все
array через echo не увидишь, надо var_dump($list);

Re: Список живых устройст

Добавлено: Вт окт 31, 2017 6:39 pm
nick7zmail
skysilver писал(а):
PAV писал(а):echo ($list);
Выдает в свойства - Array и все
array через echo не увидишь, надо var_dump($list);
Или print_r, если запускать через консоль вверху админки - выведет в пустое поле под строку запуска.

Re: Список живых устройст

Добавлено: Вт окт 31, 2017 7:30 pm
PAV
Сработало только так

Код: Выделить всё

$list1 = getObjectsByProperty('status', '=', 1); 
$list0 = getObjectsByProperty('status', '<', 1);
SetGlobal("AllAlive.AllAlive",implode(', ',$list1));
SetGlobal("AllAlive.AllDead",implode(', ',$list0));
А как бы их на странице в столбик вывести?
Иначе %AllAlive.AllAlive% выдает все в строчку