То что вы описываете все называют SCADA.
Их уже полно всяких и отечественных: MasterSCADA, ЭНТЕК-Scada, СК-11.
Самому изобретать такой велосипед всегда полезно:
Структурная схема типовая:
Протокольный драйвер => Шина данных (потоки опроса устройств)
Шина данных => Визуализация (поток выдачи текущих значений)
Шина данных => События (поток обработки событий)
Шина данных => База данных (поток записи в базу)
События => База данных (поток обработки событий)
События => Уведомления (поток обработки событий)
События => Визуализация (поток обработки событий)
База данных => Тренды (поток доступа к историческим данным)
База данных => Отчеты (поток доступа к историческим данным)
Описание:
Визуализация - это некоторый интерфейс, возможно веб или нативное приложение - отображает схемы, и события на них.
Все остальное это бэкэнд возможно потоки одного процесса либо разные процессы.
Шина данных - среда обмена данными возможно MQTT или RabbitMQ или что-то похожее.
События - поток обработки данных - вышло ли значение за установленный предел.
Уведомления - поток рассылки уведомлений о событиях во внешние системы(Email,Telegramm,SMS).
Отчеты - сервис обработки исторических данных и генерации отчетов по шаблонам.
Тренды - поток собирает данные и строит графики.
База данных - организованное хранение, в виде файлов, таблиц.