{"id":23059418,"url":"https://github.com/n0m0r3pa1n/geoready","last_synced_at":"2026-04-28T08:31:27.497Z","repository":{"id":150315004,"uuid":"133217061","full_name":"n0m0r3pa1n/geoready","owner":"n0m0r3pa1n","description":"Android app that detects user location and corrects the heating device schedule to the appropriate time based on travel time","archived":false,"fork":false,"pushed_at":"2018-05-14T11:12:32.000Z","size":543,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-03T06:35:48.846Z","etag":null,"topics":["android","geolocation","heating","heating-control","kalman-filter"],"latest_commit_sha":null,"homepage":"https://drive.google.com/file/d/1OCKvlg3PwZJ6xebZ3fZCCJj0jY5DcStc/view?usp=sharing","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/n0m0r3pa1n.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2018-05-13T08:00:04.000Z","updated_at":"2018-05-14T11:12:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"db39ba7e-b5ba-4d6f-98cc-c0323c63475e","html_url":"https://github.com/n0m0r3pa1n/geoready","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/n0m0r3pa1n/geoready","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n0m0r3pa1n%2Fgeoready","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n0m0r3pa1n%2Fgeoready/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n0m0r3pa1n%2Fgeoready/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n0m0r3pa1n%2Fgeoready/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/n0m0r3pa1n","download_url":"https://codeload.github.com/n0m0r3pa1n/geoready/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n0m0r3pa1n%2Fgeoready/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32373404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"online","status_checked_at":"2026-04-28T02:00:07.250Z","response_time":56,"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":["android","geolocation","heating","heating-control","kalman-filter"],"created_at":"2024-12-16T02:26:07.201Z","updated_at":"2026-04-28T08:31:27.479Z","avatar_url":"https://github.com/n0m0r3pa1n.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GeoReady\n\n## Hackathon\n\nThis app is part of the hackathon organized by Kevin Tsai in the Hive team during 12-13 of May 2018. The idea of the\nhackathon is to save the earth from all of the pollution that happens in a way that is close to the Hive idea. Hive is\nan energy company focused on IoT devices to manage your home automatically.\n\n## Idea\n\nOur idea was to improve the Hive app by creating using geolocation. \n\nHive has a device called thermostat that controls the heating in your home. By using geolocation we can update the schedule\nof this device to be more accurate so if it takes you 2 hours to get home, the device won't start until you are close by.\nThis way we save unnecessary energy that is used when you are not at home.\n\n## Implementation\n\n### Python\n\nThanks to Michal we used some of the users data to export an average function that can be used to tell how much time is\nneeded for you home to be heated up to the temperature that you want. This function used the Kalman filter.\n\nWe just setupped a Flask python server that accepts external temperature, internal temp and target temp and it returns\nto you the time needed to heat your home.\n\n### Android\n\nOn Android we have three screens\n\n#### Stats screen\n\nDisplay how much energy time (we cannot tell you how much money because it is individual for each boiler) you saved this week by using our automatic schedule feature.\n\n#### Main screen\n\nThis is where we take your current location every 10 seconds. After you press the button that you are going home we \nassume your current location is your work location. And if you press you are going to work - your current location is\nyour home location. This was implemented this way because we didn't have much time to make the process automatically.\n\n#### Going Home screen\n\nBecause we already have the Going to work screen where after you leave certain geofencing area we turn off all of your devices,\nwe decided to implement the Going Home screen.\n\nYou say how you plan to go home (bus, train, car) and we calculate the needed time to get to there by making a request to\nGoogle Maps API. After that we make a request to the Python server to tell us how much time is needed to heat up your home\nto the target temp you want.\n\nAfter we do the above 2 requests we get your current schedule and do the math to suggest to you the appropriate time to\nturn on your heating. So if you are going to be late with 1 hour because of the traffic, we can turn your heating 1 hour later and save you this time. The idea is to have your home heated when you already reach it.\n\n#### Libs\n\n - Retrofit for requests to Google Maps API\n - GSON for Json parsing\n - JJoe64 GraphView as graph visualization library\n - Hotchemi PermissionsDispatcher to handle permissions in 6.0+\n - JodaTime for Android to manage time\n\n#### Screenshots\n\n\u003cimg src=\"./screens/Screenshot_1526292329.png\" width=\"250\"\u003e \u003cimg src=\"./screens/Screenshot_1526292334.png\" width=\"250\"\u003e \u003cimg src=\"./screens/Screenshot_1526292339.png\" width=\"250\"\u003e\n\n## More Info\n\n[LINK](https://drive.google.com/open?id=1OCKvlg3PwZJ6xebZ3fZCCJj0jY5DcStc)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn0m0r3pa1n%2Fgeoready","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fn0m0r3pa1n%2Fgeoready","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn0m0r3pa1n%2Fgeoready/lists"}