{"id":27424344,"url":"https://github.com/fabian-hk/homebot","last_synced_at":"2026-04-30T09:34:31.006Z","repository":{"id":136175752,"uuid":"206331964","full_name":"fabian-hk/HomeBot","owner":"fabian-hk","description":"This project is a bot which collects data and controls systems in your home.","archived":false,"fork":false,"pushed_at":"2020-11-04T20:36:50.000Z","size":6832,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-14T11:52:14.635Z","etag":null,"topics":["bot","cpp","google-grpc","google-protobuf","homeautomation","python3","telegram-bot","webscraper"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fabian-hk.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}},"created_at":"2019-09-04T13:56:55.000Z","updated_at":"2020-11-04T20:36:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"143f4964-d7e1-4099-a6ff-cf3b14ad257c","html_url":"https://github.com/fabian-hk/HomeBot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fabian-hk/HomeBot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabian-hk%2FHomeBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabian-hk%2FHomeBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabian-hk%2FHomeBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabian-hk%2FHomeBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fabian-hk","download_url":"https://codeload.github.com/fabian-hk/HomeBot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabian-hk%2FHomeBot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32460781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"online","status_checked_at":"2026-04-30T02:00:05.929Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bot","cpp","google-grpc","google-protobuf","homeautomation","python3","telegram-bot","webscraper"],"created_at":"2025-04-14T11:49:16.935Z","updated_at":"2026-04-30T09:34:31.001Z","avatar_url":"https://github.com/fabian-hk.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project description\n\nThis project is a bot which collects data and controls systems in your home. Currently the bot saves\npower values from a Tesla Powerwall, scraps a website for fuel\nprices at my location, can start my desktop pc and controls\nmy window shades. It has several user interfaces\nlike an Android app, a website and a Telegram Bot. In the following\ngraphic you can see how the devices interact with each other:\n\n![Bot schema](doc/BotSchema.png)\n\nThis project is written in Python, C++, Kotlin, PHP and HTML and uses\nlibraries like Google Protobuf, Google gRPC, Scipy, Telepot, Matplotlib and Pandas.\nI develop it besides my studies in my free time and the system\nis running flawlessly on a Raspberry Pi 3 Model B since the beginning of 2019.\n\n## Overview\n\n- **Android app** (folder: [android_app](android_app)): The app listens to the Android Broadcast \n\"NEXT_ALARM_CLOCK_CHANGED\" which is sent if a new alarm is set. \nThen the app tells the RPI via gRPC when the alarm is triggered. \n15 minutes before the alarm is triggered the RPI will open the window \nshades a little bit. After the alarm when the smartphone locks into \nthe wifi network the RPI opens the window shades completely. \nAdditionally the app provides a Android Widget to move the window \nshades completely up or down manually.\n\n- **IOT devices** (folder: [iot_devices](iot_devices/ControlShade/ControlShade.ino)): This folder contains the Arduino\nprogram for the NodeMCU ESP32 microcontroller to control the buttons \nof the window shades remote via transistors. The RPI can\neither ask the microcontroller in which state it is or it sets a new\nstate via messages sent over TCP. Furthermore the microcontroller\nhas a light detector on an analog input to move the window\nshades down when it gets dark outside.\n\n- **Main program** (folder: [main](main)): This is the main program which\nruns on the Raspberry Pi and communicates with all the devices like\nthe microcontroller for the window shades, the Tesla Powerwall,\nthe Android app and Telegram. It also saves the collected data\nand draws graphs of it.\n\n- **Webinterface** (folder: [website](main/website)): Currently the website only\nshows the power values from the Powerwall for every day and every\nmonth as well as the graphs for the current day. Furthermore\nyou can download csv files with the values from every day and\nevery month.\n\n# Pictures\n![Bot pictures](doc/BotPictures.jpg)\n\n# Acknowledgement\n\nI want to thank my brother Benjamin Hauck who figured out how to control the buttons\nof the window shades remote via transistors and who helped me to assemble the\nwindow shades control unit.\n\n# License\n\nThe source code of this project is licensed under the GNU GPLv3 except for\nthe [Base64.h](main/fuelprice/webscraper/src/Base64.h) file (Copyright (c) 2016 tomykaira) which is\nlicensed under the MIT license. For further information see the [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabian-hk%2Fhomebot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffabian-hk%2Fhomebot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabian-hk%2Fhomebot/lists"}