# 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 много чего :)