-
Project submission Stable
released this
2026-06-04 19:45:20 +00:00 | 14 commits to main since this releaseThis is our project submission containing all of our work during this PI E2EEDA
Reports and self-assessment are all attached to this release as the node built binary.
Several Docker files are also available:Other parts, as the Gateway and the models are directly available on the source code
A changelog of the main parts is available below:
Nodes (@adrien-balleyguier)
[nodes-v1.1.0]
🚀 Features
- (nodes) Adding management of read error on each values, hence
- (nodes) Add the battery level in the ble frame
- (nodes) Adding battery percent as new key/value in the BLE frame
- (nodes) Using an explicit thread, as it may cause the huge battery usage
- (nodes) Setting the fastest BLE advertising frequency to 1 minute instead of 2
🐛 Bug Fixes
- (nodes) Changing incorrect comment
- (nodes) Using MAC address as BT_ADDR
- (nodes) Reduce battery consumption
📚 Documentation
- (nodes) Adding comments in the nodes code
[nodes-v1.0.0]
🚀 Features
- (nodes) WIP supervisor first implementation
- (nodes) Adding thermometer and hygrometer
- (nodes) WIP adding first implementation for BLE advertising.
- (nodes) Adding co2_level retrieval
- (nodes) Adding window status reading
- (nodes) Adding nodes firmware v1.0
🐛 Bug Fixes
- (nodes) Adjusting broadcasted data to fit definition
- (nodes) Fixing switch device tree and wrong ordering of ble values
- (nodes) Properly fetching data from temp/hygro sensor
- (nodes) Co2 level fetched as desibed in the documentation
- (nodes) Changing window status sensor to have unequipped nodes return 'window is closed' status
⚙️ Miscellaneous Tasks
- Init
Gateway (@DjeAvd)
[gateway-v1.0.0]
🚀 Features
- Add BLE-to-MQTT gateway implementation
- (gateway) Add configuration file
- (gateway) Implement BLE-to-MQTT gateway
- (gateway) Add MQTTS support with TLS and authentication
- (gateway) Add battery level support (key 0x05)
- (gateway) Add deduplication and continuous BLE scan
🐛 Bug Fixes
- (gateway) Fix architecture diagram code block in README
- (gateway) Fix architecture diagram code block in README
- (gateway) Fix payload decoding endianness and skip preamble Switch temperature and CO2 decoding from little-endian to big-endian to match the Zephyr firmware implementation. Skip the 2-byte company id preamble (0xffff) at the start of the manufacturer data payload.
- (gateway) Replace UUID filter with manufacturer data preamble filter
- (gateway) Replace UUID filter with manufacturer data preamble filter
- (gateway) Fix BLE filtering and MQTT connection validation
- (gateway) Use exact payload size filter and improve robustness
- (gateway) Revert CO2 range check and add MQTT auto-reconnect
🚜 Refactor
- (gateway) Switch from GATT connection to passive BLE advertising
📚 Documentation
- Add gateway README
- Add overnight test results and measurements graph
- Add overnight test results section to README
- (gateway) Add README with architecture and MQTT interface
- (gateway) Document MQTT_PASSWORD environment variable in README
- (gateway) Add deployment checklist, systemd service and update README
- (gateway) Update README with battery field, security fixes and warnings
⚙️ Miscellaneous Tasks
- Init
- (gateway) Add Python dependencies file
- (gateway) Exclude config.json from repo, add example config
- (gateway) Use placeholder values in config.example.json
- (gateway) Update config.example.json with TLS and auth fields
DB (@Klagarge)
[db-gateway-v1.0.0]
🚀 Features
- (db) Add influx in db stack
- (db) Add traefik config example with actual server
- (db) Add rabittmq as mqtt stack
- (db) Add influx gateway from previous project
- (db) Add mqtt gateway from previous project
- (db) Merge datapoint and message
- (db) Add SubscribeTyped function and refactor DataPoint structure
- (db) Add initial main implementation
- (db) Add rest gateway
- (db) Add GET current value endpoint
- (db) Add GET history endpoint
- (db) Add mapping
- (db) Add swagger doc
- (db) Add parameter for time window in history endpoint
- (db) Add basic auth
- (db) Add deploiement stack
- (db) Add node tag for influx
- (db) Remove CO2PPM data over 1'000'000'000
- (db) Add battery field
- (db) Add battery REST endpoint
- (db) Get mapping dynamically from file
- (db) Add endpoint to export influx data to csv
- (server) Add traefik entry for ui dashboard
- (db) Add co2 watchdog on each room
- (db) Add co2-status endpoint in REST API
🐛 Bug Fixes
- (db) Add missing entrypoint for influx explorer
- (db) Add missing hostname for influx access in traefik
- (db) Wrong mqtt port
- (db) Typo in certResolver
- (db) Fail if now defaut user / password for mqtt
- (db) Allow gRPC proxy in traefik
- (db) Proper api url instead of using swagger doc url
- (db) CORS request
- (db) Url for api start with https
- (db) Get rooms from mapping file
- (db) Set time interval for influx limitations
- (db) Set higher file limit for influx limitations
- (db) Remove authorization for battery status endpoint
- (db) Window -> window_open
- (db) Push data with partial mapping
- (db) Filter random value
- (db) Mqtt hostname to keep internal config identique in case of rebuild
- (db) Add the room in the returned json
- (db) Return time in RFC3339 to avoid breakchange
- (db) Return window tag in room status
- (db) Return only high co2 room for co2-status endpoint
- (db) Return error directly
🚜 Refactor
- (db) Move package
- (db) Unify env getters
- (db) Split campus and room mapping error detection
- (db) Map room and node on REST API
- (db) Add flag to run without MQTT part
- (db) Adapt SQL query for 5 min average
- (db) Round averages in SQL queries
- (db) Using moving average for room history
- (db) Change order for history
- (db) Add constante for max QOS
- (db) Add constante for defaultTimeout
📚 Documentation
- (db) Add deployement documentation
- (db) Fix typo in doc
⚙️ Miscellaneous Tasks
- Init
- (db) Typo and respect go guidelines
- (db) Get InfluxDB token by secrets
- (db) Update critical dependancy
- (db) Add pre-commit for swagger documentation
- (db) Add local gitignore
- (db) Set 30min before offline for battery endpoint
UI (@khalil-bot)
[unreleased]
🚀 Features
- (ui) Initialize Angular 18 dashboard project
- (ui) Create organized folder structure for application
- (ui) Configure routing with lazy-loaded components
- (ci) Add Docker build, push and SSH deploy pipeline
- (ui) Implement interactive room map with REST services and unit tests
- (ui) Interactive room map, detail panel redesign and polling
- (ui) Dynamic room polling, secure credentials and CO2 levels
🐛 Bug Fixes
- (ui) Add environment.prod.ts for production builds
- (ui) Address code review feedback
- (ui) Remove hardcoded credentials and make CO2 spec config-driven
🚜 Refactor
- (ui) Simplify room names and remove dead code
🎨 Styling
- (ui) Apply Prettier formatting
- (ui) Apply Prettier formatting
⚙️ Miscellaneous Tasks
- Init
- (ui) Setup GitHub Actions CI/CD pipeline
- (ui) Remove commented-out gitignore line for environment.prod.ts
- (ui) Add plan.svg floor plan asset
- Remove useless gitkeep file
Notification (@khalil-bot)
[unreleased]
🚀 Features
- (notification) Spring Boot Teams notification service (#19)
- (notification) Add mock mode for local testing without backend (#19 #21)
- (notification-service) Replace Teams with Telegram notifications
- (notification-service) Add Dockerfile, actuator health and alert deduplication
- (notification-service) Adapt to Go backend /api/v1/rooms/high-co2 endpoint
🐛 Bug Fixes
- (notification) Remove non-existent starter-scheduling dep, target Java 17
🧪 Testing
- (notification-service) Add unit tests and clean up Co2Level
⚙️ Miscellaneous Tasks
- (notification-service) Add CI/CD pipeline with Docker, SSH deploy and API credentials
- (notification-service) Add SAST, dependency scan and DAST security gates
Downloads