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

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

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

Сообщение PAV » Вт окт 31, 2017 1:25 pm

Хочу сделать список всех устройств с отображением их статуса на одной странице. Чтобы зайти на страницу и сразу посмотреть, какие устройства живые, а какие нет.
Т.е. нужна выборка из mysql по свойству alive.
КАК?
Последний раз редактировалось PAV Вт окт 31, 2017 2:49 pm, всего редактировалось 1 раз.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

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

Сообщение Chainik » Вт окт 31, 2017 2:40 pm

Думаю, сам вопрос требует конкретизации. Что значит "живых" устройств?
Вот есть у меня лампочка. Она управляется устройством и сейчас выключена. В любой момент могу ее включить и выключить. Если нужно знать включена она или нет - это один вопрос.
Если надо знать, функционирует устройство (с помощью которой управляется лампочка) или не функционирует ("вывалилось" из сети, зависло, вышло из строя, демонтировано для каких-то целей и т.д.), то это другой вопрос.
Т.е. надо пояснить, что именно имеется ввиду под словом "живой"?
PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

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

Сообщение PAV » Вт окт 31, 2017 2:49 pm

У объектов есть свойство Alive.
Вот как вывести на страницу все объекты со свойством Alive и напротив 1 или 0?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Вт окт 31, 2017 3:16 pm

Есть же команда getObjectsByClass - выборка по классу...выбираете объекты нужных классов, и смотрите - если есть свойство Alive и оно не равно "" то - выводим куда вам надо...

Так же есть "динамический повтор" в элементах сцен и меню...то есть ставите %объект.свойство%, включаете smartrepeat, и он выдаёт список для всех объектов класса...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

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

Сообщение sergejey » Вт окт 31, 2017 3:33 pm

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

это будут массивы, которые можно периодически сохранять в какое-нибудь другой свойство и выводить в интерфейсе
За это сообщение автора sergejey поблагодарили (всего 2):
tarasfrompir (Вт окт 31, 2017 4:12 pm) • PAV (Вт окт 31, 2017 5:53 pm)
Рейтинг: 2.33%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

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

Сообщение PAV » Вт окт 31, 2017 6:10 pm

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

$list = getObjectsByProperty('alive', '=', 1) ; 
echo ($list);
SetGlobal("AllAlive.AllAlive",$list);
$list = getObjectsByProperty('alive', '=', 0) ; // неживые устройства
SetGlobal("AllAlive.AllDead",$list);
 
Выдает в свойства - Array и все
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

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

Сообщение sergejey » Вт окт 31, 2017 6:17 pm

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

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

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

Сообщение skysilver » Вт окт 31, 2017 6:18 pm

PAV писал(а):echo ($list);
Выдает в свойства - Array и все
array через echo не увидишь, надо var_dump($list);
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Вт окт 31, 2017 6:39 pm

skysilver писал(а):
PAV писал(а):echo ($list);
Выдает в свойства - Array и все
array через echo не увидишь, надо var_dump($list);
Или print_r, если запускать через консоль вверху админки - выведет в пустое поле под строку запуска.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

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

Сообщение PAV » Вт окт 31, 2017 7:30 pm

Сработало только так

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

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