{"id":15172730,"url":"https://github.com/hpats/pimonitorsystem","last_synced_at":"2026-02-11T20:02:30.782Z","repository":{"id":295902756,"uuid":"967780503","full_name":"hpats/PiMonitorSystem","owner":"hpats","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-17T01:55:06.000Z","size":1403,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-19T22:55:53.783Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hpats.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-17T01:52:39.000Z","updated_at":"2025-04-17T01:56:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"727384a9-dfc6-4781-8498-b0398c23c56f","html_url":"https://github.com/hpats/PiMonitorSystem","commit_stats":null,"previous_names":["hpats/pimonitorsystem"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hpats/PiMonitorSystem","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpats%2FPiMonitorSystem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpats%2FPiMonitorSystem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpats%2FPiMonitorSystem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpats%2FPiMonitorSystem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hpats","download_url":"https://codeload.github.com/hpats/PiMonitorSystem/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpats%2FPiMonitorSystem/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29343683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T18:58:20.535Z","status":"ssl_error","status_checked_at":"2026-02-11T18:56:44.814Z","response_time":97,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pi","python","raspberry-pi","raspberry-pi-4"],"created_at":"2024-09-27T10:04:08.391Z","updated_at":"2026-02-11T20:02:30.743Z","avatar_url":"https://github.com/hpats.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Raspberry Pi System Monitoring Dashboard\r\n\r\nA Flask-based web dashboard for monitoring system performance, WireGuard stats, network metrics, and external sensor/weather data on a Raspberry Pi.\r\n\r\n[![example image 1](example_images/example_main_1.png)](#)\r\n\r\n# Raspberry Pi System Monitoring Dashboard\r\n\r\nA Flask-based web dashboard for monitoring system performance, WireGuard stats, network metrics, and external sensor/weather data on a Raspberry Pi.\r\n\r\n---\r\n\r\n## ⚙️ Features\r\n\r\n### 🖥️ System Monitoring\r\n- CPU Temperature  \r\n- CPU Usage %  \r\n- RAM Usage (used/total)  \r\n- Disk Space (used/total and %)  \r\n- Load Average (1, 5, 15 min)  \r\n- System Uptime  \r\n- Hostname and IP addresses  \r\n\r\n### 🔐 WireGuard Statistics\r\n- Transmitted (TX) Packets  \r\n- Received (RX) Packets  \r\n- TX/RX Deltas  \r\n\r\n### 🌐 Network Diagnostics\r\n- Local and Public IP  \r\n- Online Status (via 1.1.1.1)  \r\n- Gateway and DNS Servers  \r\n- Ping Latency  \r\n- Packet Loss %  \r\n\r\n### 🌦️ Sensor and Weather Integration\r\n- Sensor support (local HTTP endpoint)  \r\n- NOAA Weather API integration  \r\n- Logs:\r\n  - Temperature, Humidity, Pressure, Gas  \r\n  - PM10, PM2.5, PM100  \r\n\r\n### 📁 Data Logging\r\n- Logs data to CSV with rolling log (2560 lines)  \r\n- Three separate CSVs: system, WireGuard, sensor/weather  \r\n\r\n### 📡 JSON API Endpoints\r\n- `/json_data`: System metrics (CPU, RAM, Disk)  \r\n- `/json_dataWG`: WireGuard TX/RX and deltas  \r\n- `/json_data_weather`: External sensor/weather data  \r\n- `/json_system_info`: Realtime snapshot with network diagnostics  \r\n\r\n---\r\n\r\n## 🛠️ Requirements\r\n\r\n- Python 3.x  \r\n- Flask  \r\n- Raspberry Pi OS or compatible Linux  \r\n- PiVPN (WireGuard)  \r\n\r\n---\r\n\r\n## 🚀 Installation\r\n\r\n1. **Clone the repository:**\r\n\r\n   ```bash\r\n   git clone https://github.com/your-username/system-monitoring-app.git\r\n   cd system-monitoring-app\r\n   ```\r\n\r\n2. **Install required dependencies:**\r\n\r\n   ```bash\r\n   pip install flask requests\r\n   ```\r\n\r\n3. **Run the application:**\r\n\r\n   ```bash\r\n   python piMonitorWebServer.py\r\n   ```\r\n\r\n---\r\n\r\n## 🌐 Usage\r\n\r\nOpen your browser and navigate to:\r\n\r\n```\r\nhttp://localhost:5005\r\n```\r\n\r\nYou can also access it from any device on the same network using your Pi’s IP address.\r\n\r\n---\r\n\r\n## 📡 Endpoints\r\n\r\n| Route                  | Description                                           |\r\n|------------------------|-------------------------------------------------------|\r\n| `/`                    | Main dashboard (includes PiVPN status)               |\r\n| `/json_data`           | Returns recent system performance metrics (CSV→JSON) |\r\n| `/json_dataWG`         | Returns WireGuard TX/RX + deltas                     |\r\n| `/json_data_weather`   | Returns external sensor + weather data               |\r\n| `/json_system_info`    | Returns live system and network info (no history)    |\r\n\r\n---\r\n\r\n## 🔧 Customization\r\n\r\nYou can tweak the following:\r\n- CSV log length: change `MAX_LINES`  \r\n- Monitoring interval: edit `time.sleep(300)` in `update_*` threads  \r\n- Sensor/weather source URLs in `get_sensor_data()` and `get_weatherGOV_data()`  \r\n- Add more endpoints via Flask if needed  \r\n\r\n---\r\n\r\n## 🤝 Contributing\r\n\r\nPull requests are welcome! For major changes, please open an issue first to discuss what you'd like to change or add.\r\n\r\n---\r\n\r\n## 📄 License\r\n\r\nMIT License — see the `LICENSE` file for full details.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhpats%2Fpimonitorsystem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhpats%2Fpimonitorsystem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhpats%2Fpimonitorsystem/lists"}