{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":37754,"defaultBranch":"main","name":"Class1Team8","ownerLogin":"CUH405CMD2425FEBJUL","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2025-06-16T06:36:41.000Z","ownerAvatar":"https://github.coventry.ac.uk/avatars/u/7721","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1750097895.0","currentOid":""},"activityList":{"items":[{"before":"8e022a85f299e91ea317cf392810858c2cb34194","after":"73752659ea67ba4db9dc721a533c68a145a225a2","ref":"refs/heads/main","pushedAt":"2025-06-16T19:23:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luz34","name":"Ziyue Lu (luz34)","path":"/luz34","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/7809?s=80"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"ecb62e1a2945895cbb1cc4fec2f4fd51c717e406","after":"8e022a85f299e91ea317cf392810858c2cb34194","ref":"refs/heads/main","pushedAt":"2025-06-16T19:20:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luz34","name":"Ziyue Lu (luz34)","path":"/luz34","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/7809?s=80"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"1c1a86b5dead1a91c8028acca70b61421c55f1c1","after":"ecb62e1a2945895cbb1cc4fec2f4fd51c717e406","ref":"refs/heads/main","pushedAt":"2025-06-16T19:08:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luz34","name":"Ziyue Lu (luz34)","path":"/luz34","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/7809?s=80"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"bdc047df48e4dae9fb9cf4b5362a4d11c8947162","after":"1c1a86b5dead1a91c8028acca70b61421c55f1c1","ref":"refs/heads/main","pushedAt":"2025-06-16T16:31:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luz34","name":"Ziyue Lu (luz34)","path":"/luz34","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/7809?s=80"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"047f2211f9a4c40ea787c4f9e047266e77f45e20","after":"bdc047df48e4dae9fb9cf4b5362a4d11c8947162","ref":"refs/heads/main","pushedAt":"2025-06-16T14:51:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luz34","name":"Ziyue Lu (luz34)","path":"/luz34","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/7809?s=80"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"ab1c19ba09edf5632ce6c1ee1f29cc861f01b881","after":"047f2211f9a4c40ea787c4f9e047266e77f45e20","ref":"refs/heads/main","pushedAt":"2025-06-16T14:22:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luz34","name":"Ziyue Lu (luz34)","path":"/luz34","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/7809?s=80"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"7fb61617ff5563fd3e436bf1752c4593ff384502","after":"ab1c19ba09edf5632ce6c1ee1f29cc861f01b881","ref":"refs/heads/main","pushedAt":"2025-06-16T14:13:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luz34","name":"Ziyue Lu (luz34)","path":"/luz34","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/7809?s=80"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"012898828d875ebe5a7e09457ff7e59a2a1ec51c","after":"7fb61617ff5563fd3e436bf1752c4593ff384502","ref":"refs/heads/main","pushedAt":"2025-06-16T13:14:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luz34","name":"Ziyue Lu (luz34)","path":"/luz34","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/7809?s=80"},"commit":{"message":"Implement main modeling phase for Classroom Environment Monitoring System\n\n Core Functionality\r\n- 🌐 Cloud Broker Integration**: Connected all components to EMQX Cloud broker\r\n- 💾 Database Implementation**: MySQL storage for sensor data\r\n- 📊 Real-time Visualization**: Web dashboard with dynamic charts\r\n- ⚙️ Virtual Sensor Simulation**: Physics-based environment modeling\r\n\r\n Team Contributions\r\n Wang Ruofan\r\n- Developed initial virtual sensor simulator (`Publisher-Virtual Sensor`)\r\n - Implemented base data generation logic:\r\n - Temperature: Seasonal/diurnal variations + occupancy effects\r\n - Humidity: Inverse temp relationship + weather modeling\r\n - CO₂: Class-time accumulation with ventilation simulation\r\n- Created foundational web visualization (`Subscriber-VisualWeb`)\r\n - Real-time Chart.js integration\r\n - Alert threshold system with visual indicators\r\n - Multi-language support framework\r\n\r\n Lu Ziyue\r\n- Cloud Integration:\r\n - Connected Publisher to EMQX Cloud (broker: `f09fd0fe.ala.dedicated.aws.emqxcloud.cn`)\r\n - Integrated Subscriber with WebSocket MQTT (`wss://f09fd0fe...`)\r\n- Data Optimization:\r\n - Enhanced temp/humidity interdependence logic\r\n - Improved CO₂ class-time accumulation algorithm\r\n - Added Gaussian noise for realistic fluctuations\r\n- Database System:\r\n - Designed MySQL schema (`campus_monitoring.sensor_data`)\r\n - Implemented data persistence in Publisher\r\n \r\n- Visualization Enhancements:\r\n - Chart smoothing with tension configuration\r\n ```js\r\n datasets: [{\r\n tension: 0.4, // Smoother curves\r\n pointRadius: 1 // Cleaner visualization\r\n }]\r\n\r\nShen Yeli\r\nCo-developed initial virtual sensor architecture\r\nContributed to core data generation algorithms\r\nAssisted in MQTT connectivity implementation","shortMessageHtmlLink":"Implement main modeling phase for Classroom Environment Monitoring Sy…"}},{"before":"d02ea61f9696d07e763e5bb8418e117f12d1aa30","after":"012898828d875ebe5a7e09457ff7e59a2a1ec51c","ref":"refs/heads/main","pushedAt":"2025-06-16T12:00:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luz34","name":"Ziyue Lu (luz34)","path":"/luz34","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/7809?s=80"},"commit":{"message":"Migrate MQTT implementation to EMQX Cloud broker\n\n Authorship & Responsibilities\r\n- Lu Ziyue:\r\n - Primary development: Temperature & Humidity sensors\r\n - Cloud integration for all sensor scripts\r\n - Payload standardization (JSON format)\r\n- Wang Ruofan:\r\n - Primary development: CO₂ sensor simulation\r\n - Multi-location data modeling\r\n- Shen Yeli:\r\n - Subscriber system development\r\n - Authentication implementation\r\n - Alert threshold system\r\n - Collaborative modifications (CO₂ sensor and Subscriber\r\n\r\n Cloud Integration Modifications\r\n1. Broker Configuration:\r\n python\r\n # Before\r\n BROKER = \"localhost\"\r\n PORT = 1884\r\n\r\n # After\r\n BROKER = \"t3d30209.ala.dedicated.aliyun.emqxcloud.cn\"\r\n PORT = 1883\r\n\r\n2.Authentication System:\r\nImplemented credential-based access\r\nPer-device unique credentials:\r\n\r\npython\r\n# Temperature Sensor\r\nUSERNAME = \"temp_sensor\"\r\nPASSWORD = \"temp23:39;4/10\"\r\n\r\n# CO₂ Sensor\r\nUSERNAME = \"CO2-sensor\"\r\nPASSWORD = \"CO223:39;4/10\"\r\n\r\n# Subscriber\r\nUSERNAME = \"administrator_subscriber\"\r\nPASSWORD = \"12345\"\r\n\r\n3.Payload Standardization:\r\nUnified JSON structure across devices:\r\njson\r\n{\r\n \"device_id\": \"sensor_identifier\",\r\n \"value\": 25.4,\r\n \"timestamp\": \"2025-03-20 22:15:30\"\r\n}\r\n\r\n4.Topic Architecture:\r\nImplemented hierarchical namespace:\r\n campus/{building}/{room}/{sensor_type}\r\nAdded retained messaging for temperature data\r\n\r\nKey Improvements\r\n☁️ Cloud Deployment: Transition from local to cloud-based MQTT broker\r\n🔒 Enhanced Security: TLS-ready implementation (port 8883 available)\r\n⚙️ QoS Implementation: Added Quality of Service level 1 for critical data\r\n⏱️ Timestamp Standardization: ISO 8601 format across all sensors\r\n🛡️ Error Handling: Robust connection exception management","shortMessageHtmlLink":"Migrate MQTT implementation to EMQX Cloud broker"}},{"before":"fc68345cfe16a1ef16263b1a00c63de4959f9284","after":"d02ea61f9696d07e763e5bb8418e117f12d1aa30","ref":"refs/heads/main","pushedAt":"2025-06-16T09:56:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luz34","name":"Ziyue Lu (luz34)","path":"/luz34","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/7809?s=80"},"commit":{"message":"Add MQTT sensor simulation scripts with local broker integration\n\n Sensor Implementation Authorship\r\n- `CO2_sensor.py`: Developed by Wang Ruofan (CO2 concentration simulation)\r\n- `Humidity_sensor.py`: Developed by Lu Ziyue (Humidity data simulation)\r\n- `Temperature_sensor.py`: Developed by Lu Ziyue (Temperature data simulation)\r\n- `Subscriber.py`: Developed by Shen Yeli (Central monitoring system)\r\n\r\n Modifications by Shen Yeli\r\n1. Local Broker Standardization:\r\n - Unified connection parameters across all devices:\r\n ```python\r\n BROKER = \"localhost\"\r\n PORT = 1884\r\n \r\n - Implemented consistent exception handling\r\n - Added graceful disconnect procedures\r\n\r\n2. Protocol Enhancements:\r\n - JSON payload standardization for all sensors\r\n - QoS level 1 implementation for CO2 topic\r\n - Topic hierarchy normalization:\r\n campus/{location}/{sensor_type}\r\n \r\n3. Monitoring System Improvements:\r\n - Threshold-based alerting system\r\n ```python\r\n CO2_threshold = 600 ppm\r\n temp_high_threshold = 40 °C\r\n \r\n - Multi-topic subscription architecture\r\n - Payload validation safeguards\r\n\r\n Test Configuration\r\n- Broker: Mosquitto v2.0+ (localhost:1884)\r\n- Dependencies:\r\n ```requirements.txt\r\n paho-mqtt==1.6.1","shortMessageHtmlLink":"Add MQTT sensor simulation scripts with local broker integration"}},{"before":"b18f4da510f06a178e09aa98c9da2cc7e373189c","after":"fc68345cfe16a1ef16263b1a00c63de4959f9284","ref":"refs/heads/main","pushedAt":"2025-06-16T06:46:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luz34","name":"Ziyue Lu (luz34)","path":"/luz34","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/7809?s=80"},"commit":{"message":"Update .gitignore","shortMessageHtmlLink":"Update .gitignore"}},{"before":null,"after":"b18f4da510f06a178e09aa98c9da2cc7e373189c","ref":"refs/heads/main","pushedAt":"2025-06-16T06:36:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"luz34","name":"Ziyue Lu (luz34)","path":"/luz34","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/7809?s=80"},"commit":{"message":"Initial commit","shortMessageHtmlLink":"Initial commit"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks4ABx34AA","startCursor":null,"endCursor":null}},"title":"Activity · CUH405CMD2425FEBJUL/Class1Team8"}