Добавлен gRPC-контракт proto/device_control (TurnOn/TurnOff/SetLevel), общий Go-модуль proto/ для переиспользования сгенерированного кода. device-control-service принимает команды по gRPC, обновляет desired_state в Redis и публикует их в MQTT; слушает devices/+/telemetry и devices/+/ack для отметки живости устройства и обновления reported_state; горутина health-check переводит устройство в offline по таймауту и публикует событие в RabbitMQ (device.status_changed) для будущего notification-service. Проверено сквозным тестом через docker compose: grpcurl TurnOn/SetLevel меняет desired_state и уходит в MQTT, mosquitto_pub с ack обновляет reported_state и статус, health-check автоматически переводит устройство в offline по истечении таймаута.
31 lines
583 B
Plaintext
31 lines
583 B
Plaintext
# Go
|
|
services/**/bin/
|
|
services/**/*.exe
|
|
*.test
|
|
*.out
|
|
services/ingest-service/ingest-service
|
|
services/device-control-service/device-control-service
|
|
services/rule-engine-service/rule-engine-service
|
|
services/health-check-service/health-check-service
|
|
services/esp32-emulator/esp32-emulator
|
|
|
|
# Laravel
|
|
laravel-app/vendor/
|
|
laravel-app/node_modules/
|
|
laravel-app/.env
|
|
laravel-app/storage/*.key
|
|
laravel-app/bootstrap/cache/*
|
|
!laravel-app/bootstrap/cache/.gitkeep
|
|
|
|
# Env / secrets
|
|
.env
|
|
.env.local
|
|
|
|
# Docker volumes data (if bind-mounted locally)
|
|
volumes/
|
|
|
|
# IDE / OS
|
|
.idea/
|
|
.vscode/
|
|
.DS_Store
|