🎮 Управление устройствами
Чтобы упростить подключение веб-приложения к Entrance Observer, IoT-датчикам улья, роботизированному улью и сторонним источникам телеметрии, нужен отдельный экран управления устройствами.
Сейчас устройства напрямую используют API-токены. Из-за этого позже сложно понять, используется ли токен, каким устройством он используется и когда устройство последний раз взаимодействовало с Gratheon.
Ещё одна проблема - если Gratheon начнёт поставлять собственные устройства, понадобится аналитика, отладка и версионирование по каждому устройству. Для этого нужна отдельная модель данных устройств.
Предлагаемое решение
В репозитории web-app:
- Добавить новый пункт верхнего меню
Устройства. - Добавить список устройств:
- список должен получать данные через GraphQL-запрос.
- Добавить кнопку создания нового устройства и отдельный экран создания, похожий на создание нового улья:
- тип устройства: IoT-датчики улья, Entrance Observer, роботизированный улей или сторонняя интеграция;
- номер модели строкой, чтобы понимать, какое ПО работает на устройстве и какой набор функций доступен при серийном производстве;
- выбор улья с отправкой
hiveIdна backend;- опциональный выбор секции с отправкой
boxIdна backend;
- опциональный выбор секции с отправкой
- генерация нового API-токена в
user-cycleдля этого устройства;- в
user-cycleнужно добавить колонкуdeviceIdи сохранять её вместе с токеном;
- в
lastUsed- дата и время последнего использования;- поле должно обновляться при API-вызовах, если прошло больше 1 минуты;
- статус устройства:
- если
lastUsedменьше 1 минуты назад, показывать зелёный статусонлайн; - если
lastUsedбольше 5 минут назад, показывать жёлтый статусожидание; - если
lastUsedбольше 1 часа назад, показывать красный статусофлайн.
- если
- Добавить экран редактирования устройства:
- отзыв API-токена для этого устройства;
- кнопка
Подключиться к устройствудля Entrance Observer и роботизированного улья:- для Entrance Observer кнопка должна запускать удалённый рабочий стол через VNC;
- для роботизированного улья нужны отдельные экраны удалённого управления:
- таблица
Логи устройства:- в идеале здесь должны отображаться данные, которые отправляют клиентские приложения;
- таблица только для чтения.
- Кнопка удаления устройства должна выполнять soft-delete:
- перед удалением нужно отозвать API-токен.
- В аккаунте, в списке токенов, показывать, используется ли API-токен устройством. Вместо удаления такого токена нужно вести пользователя на экран устройства.