Go to file
Сергей Ванюшкин 70c5ff480d README 2024-01-14 13:29:45 +00:00
src sprint1 refactor 2024-01-14 15:59:35 +03:00
tests sprint1: base func 2024-01-12 20:22:48 +03:00
.gitignore sprint1: base func 2024-01-12 20:22:48 +03:00
README.md README 2024-01-14 13:29:45 +00:00
manage.py sprint1 refactor 2024-01-14 15:59:35 +03:00
poetry.lock sprint1 refactor 2024-01-14 15:59:35 +03:00
pyproject.toml sprint1 refactor 2024-01-14 15:59:35 +03:00
telemetry.txt sprint1: base func 2024-01-12 20:22:48 +03:00

README.md

IoT_monitoring

Система мониторинга и сбора информации с устройств.

О проекте

В ходе стажировки мне была поставлена задача реализовать систему мониторинга за удаленными сетевыми инверторами имеющими COM порт и отдающими данные по нему. Данные статистики от инвертора необходимо переодически считывать, обрабатывать и сохранять в БД. В качестве иструмента для хранения информации необходимо использовать timebased базу данных Influxdb.

Описание системы

Система реализованна в виде 3 основных классов:

Monitor

Основной диспетчер системы. Запрашивет информацию от конечных устройств через определенные интервалы времени, и отправляет их на сохранение в бд.

Device

Шаблон класса опрашиваемого устройства. Описывает необходимую структуру реализации коннектора. Все коннекторы должны наследоваться от него и реализовывать описанные методы. В частности, на данном этапе реализован класс Inverter, который парсит и возвращает полученные данные от инвертора. Так как физическое подключение к инвертору пока оставлено за скобками, то данные от инвертора представлены в файле telemetry.txt Для работы с ним создан класс FakeInverter, который симулирует получение данных за последние 23ч с интервалом запросов в 10минут.

InfDBSession

Реализует сессию взаимодействия с БД. Сессия реализует методы:

  • add добавление в сессию объекта для записи
  • commit записывает в бд все добавленные объекты

Установка

Используется poetry для управления зависимостями.

Если poetry не установлен:

pip install poetry

Клонируем:

git clone https://git.pi3c.ru/pi3c/IoT_monitoring.git

cd IoT_monitoring

Создаем вирт. окружение с установкой зависимостей

poetry install --no-root

ToDo

много чего :)