Приложение представляет собой систему для сбора и анализа данных от датчиков умного дома. Основная задача приложения — собрать информацию, обработать и определить, какие сценарии умного дома необходимо запустить.
Проект разделен на три основных модуля:
- telemetry - в этом Maven-модуле сервисы, связанные с обработкой телеметрических данных, то есть показаний датчиков
- collector - в нём содержится код сервиса, сохраняющего в топики Kafka данные от датчиков и хабов
- serialization - родительский Maven-модуль, объединяющий модули со схемами Avro и Protobuf:
- avro-schemas - схемы Avro и сгенерированные на их основе классы
- proto-schemas - схемы Protobuf и сгенерированные на их основе классы
- infra - Maven-модуль, в котором инфраструктурные компоненты
- commerce - Maven-модуль, включающий сервисы для поддержки продаж устройств умного дома
Cервис, который принимает данные от хабов пользователей.
Каждый хаб может отправлять две категории событий:
-
События от датчиков, подключённых к хабу.
К ним относятся показания:
- датчика освещённости,
- климатического датчика,
- датчика температуры,
- умного переключателя (это может быть выключатель света или лампочка с двумя состояниями: «вкл» и «выкл»), климатического датчика,
- датчика движения.
-
События, связанные с хабом или сценариями умного дома.
К ним относятся:
- регистрация и удаление в хабе нового датчика,
- добавление и удаление сценария умного дома.
- telemetry.sensors.v1 — данные, связанные с показаниями датчиков событиями устройств
- telemetry.hubs.v1 — данные, связанные с хабами и сценариями