{"id":18383908,"url":"https://github.com/phillipjhl/artoo","last_synced_at":"2026-04-18T06:32:57.023Z","repository":{"id":41584703,"uuid":"328026053","full_name":"phillipjhl/ARTOO","owner":"phillipjhl","description":"Home automation software. Python program to run all external smart devices in the home.","archived":false,"fork":false,"pushed_at":"2023-07-08T17:47:13.000Z","size":1311,"stargazers_count":0,"open_issues_count":20,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-16T00:12:46.180Z","etag":null,"topics":["artoo","artoo-engine","django","django-oauth-toolkit","django-rest-framework","python","raspberry-pi","react","sensor-reading"],"latest_commit_sha":null,"homepage":"","language":"Python","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/phillipjhl.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":"2021-01-08T22:27:55.000Z","updated_at":"2023-01-25T18:44:07.000Z","dependencies_parsed_at":"2024-12-24T06:23:00.846Z","dependency_job_id":"043755c2-49ce-45df-bdcb-549d992436ed","html_url":"https://github.com/phillipjhl/ARTOO","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillipjhl%2FARTOO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillipjhl%2FARTOO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillipjhl%2FARTOO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillipjhl%2FARTOO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phillipjhl","download_url":"https://codeload.github.com/phillipjhl/ARTOO/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248494218,"owners_count":21113398,"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":["artoo","artoo-engine","django","django-oauth-toolkit","django-rest-framework","python","raspberry-pi","react","sensor-reading"],"created_at":"2024-11-06T01:12:57.266Z","updated_at":"2026-04-18T06:32:51.996Z","avatar_url":"https://github.com/phillipjhl.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ARTOO\n\n### Home automation and monitoring software. \n\nCollection of Python programs to run all smart devices in the home and enable a fully custom automation and monitoring toolkit.\n\n\"I don't remember ever owning a droid...\"\n\nThis program will read sensor data from main hub along with data from external control boards reading different sensors around the house including temperature, gas, humidity, etc. and then automate a responsive action. \n\nIncludes RESTful API that will handle requests and communication between all local devices. \n\nMain board will be directly connected to HVAC system for direct control.\n\nThe artoo_engine program is optimized for running on Rasberry Pi boards so it can interop with local system modules that read sensor data including buses and GPIO pins.\n\nRunning the artoo_engine program via a `systemctl` boot process.\n\nThe artoo django project is the main server hub that will handle database connections and incoming requests from the other external devices.\n(Theoretically I could the main hub server on node-express if I need differenct libraries but I don't know my memory limitations yet.)\n\nCurrently running server with nginx for main hub for static files, and then gunicorn for multi-worker production django server.\n\nReact UI for interaction with connected sub-systems. UI will be accessable from main 7\" ips screen on central RPI board. Since UI will be React based, this will lead to possible react-native apps as well as accessable from any browser on the local network.\n\n### Starting\n\nInstall all client libraries.\n```bash\n$ cd artoo\n$ npm install\n```\n\nInstall all requirements.\n`$ pipenv install`\n\nStart shell within virtual environment.\n`$ pipenv shell`\n\nStart artoo engine.\n`(ARTOO) $ python artoo_engine/main.py`\n\nCreate a `dev.py` and `prod.py` file in the `artoo/artoo/settings` directory.\nIn there you'll need to add the appropriate variables to override the settings from `common.py`.\n\nIf there isn't already a postgres DB, you'll need to create one and add the connection to the appropriate settings file.\nGo ahead and `createsuperuser` to access the django admin if on a newly created DB.\n\nRun migrations.\n`$ python artoo/manage.py migrate --settings artoo.settings.dev`\n\nStart django dev server and pass in pass in dev settings for dev environment.\n`(ARTOO) $ python artoo/manage.py runserver --settings artoo.settings.dev`\n\nFor react development:\n\nYou will need a generated access token from the django_oauth_toolkit to access some server resources.\nYou can leace it an empty string if you don't need to be authorized.\nCreate config file and directory for client in `root/artoo/client/config/dev.js`:\n```js\n// in config/dev.js\n\nlet AUTH_TOKEN = \"your_access_token\";\n\nexport { AUTH_TOKEN };\n```\n\nIf you need to start client. Run:\n`$ npm run watch:client`\n\nor\n\n`$ npm run build:client` for production builds.\n\nRun `python manage.py collectstatic` to generate static assets for production servers.\n\n#### To Do In No Particular Order:\n\n- [ ] Alexa integration\n- [ ] Local server integrations (local cloud backups, 3d printer)\n- [ ] Family Calender synchonization and display\n- [ ] Weather, Traffic, and News service and display\n- [ ] PUB/SUB features to servers\n- [ ] Python code for sensor reading and PUB/SUB to ARTOO\n    - [X] DHT11/22 sensor reading\n    - [X] Relay activation\n    - [ ] CO sensor reading\n- [ ] HVAC scheduling\n- [ ] IR motion sensors for lights and occupancy readings\n- [ ] Temperature readings across the house to gauge appropriate air flow. Corresponding microcontrollers using stepper motors could be attached to air vents to then manage air flow based off of temp. readings\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphillipjhl%2Fartoo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphillipjhl%2Fartoo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphillipjhl%2Fartoo/lists"}