Авторизация
Забыли пароль?
Сброс пароля
Вернуться к авторизации

Сервис мониторинга состояния зарядных станций для автомобилей

05 декабря ‘24

Заказчик: —

Разработали сервис для вывода информации по потреблению электроэнергии пользователями зарядных автомобильных станций.

Агентство-исполнитель кейса

Spectr

Разрабатываем онлайн-сервисы, корпоративный софт и мобильные приложения, которые автоматизируют и оптимизируют бизнес-процессы или сами являются ядром бизнеса наших клиентов.

1. Вводная задача от заказчика, проблематика, цели

Клиент обратился с задачей в сжатые сроки разработать сервис для вывода информации по потреблению электроэнергии зарядными станциями. Проект представляет собой сервис сбора, обработки данных и вывод информации по мониторингу загрузки узлов, состоянию станций, графики потребления и потребление электроэнергии пользователями по каждой зарядной станции. Сами данные поступают от сервиса клиента.

Разработать фронтенд и бэкенд локального сервис-сбора, обработки данных и управления устройствами в локальной сети до 500 устройств.

2. Описание реализации кейса и творческого пути по поиску оптимального решения

ТЕХНОЛОГИИ И АРХИТЕКТУРА

Backend

  • Фреймворк для разработки web-интерфейса FastAPI / CSS / Client JS / Bootstrapx
  • База данных MongoDB, асинхронная ORM Beanie
  • Библиотека для сериализации и валидации данных Pydantic
  • Poetry для управления зависимостями
  • Динамические данные Redis DB. ПО комплекса выгружает все необходимые для веб-интерфейса данные в базу Redis, для работы с Redis используется библиотека Redis OM
  • Управление ПО комплекса осуществляется через REST API
  • Протокол общения клиента с веб-сервером HTTPS и Secure Web Sockets
  • Для работы приложения используется сервис клиента (ocpp-server), при его помощи в Redis загружаются данные от комплекса

Frontend

  • Библиотека для разработки пользовательского интерфейса React
  • Управление состоянием Zustand
  • Компоненты пользовательского интерфейса Radix UI
  • Выполнение HTTP-запросов, кеширование данных TanStack Query, Axios
  • Маршрутизация TanStack Router
  • Таблицы и виртуализация TanStack Table, TanStack Virtual
  • Библиотеки для работы с формами в React React Hook Form, Yup, Hookform Resolvers
  • CSS и стилизация clsx
  • Визуализация данных в виде графиков Recharts
  • Работа с датами date-fns
  • Уведомления React Toastify
  • Интернационализация i18n
  • Дополнительные утилиты ahooks, Lodash, Immer, qs

Архитектура проекта

  • ПО комплекса выгружает все необходимые для веб-интерфейса данные в базу Redis
  • Управление ПО комплекса осуществляется через REST API
  • Протокол общения клиента с веб-сервером HTTPS и Secure Web Sockets
  • Для работы приложения используется сервис клиента (ocpp-server), при его помощи как раз в Redis загружаются данные от комплекса

ЭТАПЫ РАБОТЫ

В связи со сжатыми сроками были оперативно подготовлены макеты, схема базы данных, изучено ТЗ и проведено согласование бэклога с клиентом. По результатам согласования выстроили приоритетность по задачам и запланировали сроки реализации.

Первый этап

В рамках первого этапа были реализованы приоритетные функциональные части системы.

  • Авторизация
  • Перечень всех узлов зарядного комплекса
  • Состояние станций на странице мониторинга
  • Общее состояние комплекса на странице мониторинга

Второй этап

В рамках второго этапа был реализован базовый функционал.

  • Балансировка конфигурации
  • Работа со списком пользователей зарядных станций
  • Иерархическая загрузка узлов на странице мониторинга
  • Функционал добавления новых узлов и редактирование
  • Раздел со списком транзакций

Третий этап

  • Графики потребления на странице мониторинга
  • Отчет по потреблению электроэнергии пользователями

ФУНКЦИОНАЛ

Для авторизации в системе необходимо ввести почту и пароль. Учетные данные для авторизации создаются администратором и направляются пользователю.

После авторизации пользователь попадает в главное меню системы. В соответствии с настроенными правами учетной записи может видеть разделы, разрешенные для просмотра и настроек. Можно посмотреть общее состояние и загрузку узлов, состояние станций и графики потребления.

Работа с пользователями потребляющие электроэнергию. Каждому пользователю присваивается ключ RF ID, по которому фиксируется количество потребляемой электроэнергии.

Состояние станций и график потребления

После авторизации пользователь попадает в главное меню системы. В соответствии с настроенными правами учетной записи может видеть разделы, разрешенные для просмотра и настроек. Можно посмотреть общее состояние и загрузку узлов, состояние станций и графики потребления.

Работа с узлами зарядного комплекса

В системе есть возможность создания и корректировки узлов зарядного комплекса.

Управление станциями

Доступен просмотр и создание зарядных станций, с возможностью фильтрации.

Управление пользователями

Реализована работа с пользователями потребляющими электроэнергию. Каждому пользователю присваивается ключ RF ID, по которому фиксируется количество потребляемой электроэнергии.

Отчеты

В разделе «Отчеты» можно посмотреть, сколько электроэнергии потребляет пользователь за период. Присутствует фильтрация по пользователям, RF ID и периоду. Также можно просуммировать потребление по RF ID И ФИО. Есть возможность скачать отчет в csv-формате.

Транзакции

Ведется полный учет транзакций в системе.

3. Результаты сотрудничества

Реализован функционал для мониторинга потребления электроэнергии по зарядным станциям с возможностью просмотра потребления по пользователям. Это покрывает изначальные требования и сценарии использования сервиса.

На текущий момент осуществляется дальнейшее развитие и улучшение сервиса.

4. Заключение

Для решения этой задачи в кратчайшие сроки командой Spectr было оперативно изучено техническое задания от заказчика и подготовлены макеты будущей системы. Вся проработка велась в плотном взаимодействии с клиентом.

Агентство-исполнитель кейса

Spectr

Разрабатываем онлайн-сервисы, корпоративный софт и мобильные приложения, которые автоматизируют и оптимизируют бизнес-процессы или сами являются ядром бизнеса наших клиентов.