{"id":20905376,"url":"https://github.com/nobodyinperson/co2monitor","last_synced_at":"2025-05-13T05:31:10.731Z","repository":{"id":117695262,"uuid":"63411652","full_name":"nobodyinperson/co2monitor","owner":"nobodyinperson","description":"!MOVED TO GITLAB.COM! Plug'n'play co2 monitoring for devices with USB id 04d9:a052 - e.g. AirCO2ntrol mini","archived":false,"fork":false,"pushed_at":"2017-08-01T12:48:19.000Z","size":174,"stargazers_count":6,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-10T06:06:28.364Z","etag":null,"topics":["co2","debian","monitoring","plug-n-play","ubuntu","usb"],"latest_commit_sha":null,"homepage":"https://gitlab.com/nobodyinperson/co2monitor","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nobodyinperson.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}},"created_at":"2016-07-15T09:54:26.000Z","updated_at":"2023-09-07T12:11:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"9079a4ef-fbce-4262-8875-2fe50c868543","html_url":"https://github.com/nobodyinperson/co2monitor","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobodyinperson%2Fco2monitor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobodyinperson%2Fco2monitor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobodyinperson%2Fco2monitor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobodyinperson%2Fco2monitor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nobodyinperson","download_url":"https://codeload.github.com/nobodyinperson/co2monitor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253882900,"owners_count":21978564,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["co2","debian","monitoring","plug-n-play","ubuntu","usb"],"created_at":"2024-11-18T13:24:37.710Z","updated_at":"2025-05-13T05:31:10.723Z","avatar_url":"https://github.com/nobodyinperson.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e # This project has moved to [Gitlab.com](https://gitlab.com/nobodyinperson/co2monitor)\n\u003e \n\u003e The GitHub repository here is not up-to date.\n\u003e Please refer to [the repository on Gitlab.com](https://gitlab.com/nobodyinperson/co2monitor) for \n\u003e Issues, Releases and the up-to-date repository code.\n\n# co2monitor\n\nAutomatic data logging for AirCO2ntrol mini USB co2 measurement devices.\n\n**Hint**: This application is compatible with Raspbian.\n\n**Note**: This application is in development state.\n\n![co2monitor svg](https://cloud.githubusercontent.com/assets/19148271/20570532/44d42ab0-b1a4-11e6-97aa-cef5713e21cc.png)\n\n## Background\n\nHendryk Plötz reverse-engineered the usb protocol on [hackaday.io](https://hackaday.io/project/5301-reverse-engineering-a-low-cost-usb-co-monitor).\nI wanted to have an easy-to-use plug'n'play data logging solution for Debian/Ubuntu systems.\nThat's what **co2monitor** is.\n\n## Debian package\n\nThere are ready-to-use debian packages on the [releases page](https://github.com/nobodyinperson/co2monitor/releases), you may download the [latest release](https://github.com/nobodyinperson/co2monitor/releases/latest) there.\n\nFor automatic updates, you may use my [apt repository](http://apt.nobodyinperson.de).\n\nTo build a debian package from the repository, run ```dpkg-buildpackage -us -uc``` (options mean without signing) from the repository root.\nThere will be a ```co2monitor_*.deb``` one folder layer above.\n\n## Installation\n\nInstall the debian package via ```sudo dpkg -i co2monitor_*.deb```.\nOlder versions of **co2monitor** will automatically be removed.\n\nIf you use my [apt repository](http://apt.nobodyinperson.de), install **co2monitor** like any other package via ```sudo apt-get update \u0026\u0026 sudo apt-get install co2monitor```\n\nRemove **co2monitor** from your system via ```sudo apt-get remove co2monitor```.\n\n## Folder structure\n\nThe folder structure (```etc```,```lib```,```usr```,```var```) is based on the [FHS](https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard) and will be installed as-is to the target system.\n\n### important files\n|           file                 |                  purpose              |\n|--------------------------------|---------------------------------------|\n| ```etc/co2monitor/service.conf``` | co2monitor service configuration file |\n| ```usr/bin/co2monitor-service``` |  the co2monitor service executable |\n| ```usr/bin/co2monitor``` | the co2monitor application executable |\n| ```var/lib/co2monitor/data/*``` | standard folder for logged co2 data |\n\n## Special thanks\n\n- Hendryk Plötz on [hackaday.io](https://hackaday.io/project/5301-reverse-engineering-a-low-cost-usb-co-monitor) for the device interaction\n- Mike Kazantsev on his blog on [fraggod.net](http://blog.fraggod.net/2012/06/16/proper-ish-way-to-start-long-running-systemd-service-on-udev-event-device-hotplug.html) for the systemd integration\n- Ascot on [StackOverflow.com](http://stackoverflow.com/a/26457317/5433146) for a workaround on ```signal.signal(signal, handler)``` when using a ```GLib.MainLoop```\n- don_crissti on [StackOveflow.com](http://unix.stackexchange.com/a/203678) for\n  getting a list of dbus objects\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnobodyinperson%2Fco2monitor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnobodyinperson%2Fco2monitor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnobodyinperson%2Fco2monitor/lists"}