{"id":15164282,"url":"https://github.com/aortizgu/homekit","last_synced_at":"2026-02-05T10:03:51.674Z","repository":{"id":144369038,"uuid":"222302372","full_name":"aortizgu/homekit","owner":"aortizgu","description":"The purpose of this project is to create a smart thermostat that controls the temperature of a house based on certain rules according to the day, time and threshold temperature. It also allows to know the record of temperatures registered during a configured time. It has a web dashboard to know the status of the system and program its behaviour and an LCD screen to know the status of the system. Users are notified by mail about fails, changes of state, etc.. Communication between devices is via wifi ethernet using mDNS(multicast dns) and DNS-SD (dns service discovery), so address configuration is not needed.","archived":false,"fork":false,"pushed_at":"2020-01-10T23:33:32.000Z","size":17766,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-04T18:07:19.569Z","etag":null,"topics":["1wire","esp8266","golang","i2c-lcd","linux","mdns","mdns-sd","nodemcu-esp8266","orangepi","revel","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","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/aortizgu.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":"2019-11-17T19:44:38.000Z","updated_at":"2020-01-10T23:33:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"0fc357dc-2eb9-4ba7-b423-b40636129bcd","html_url":"https://github.com/aortizgu/homekit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aortizgu/homekit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aortizgu%2Fhomekit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aortizgu%2Fhomekit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aortizgu%2Fhomekit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aortizgu%2Fhomekit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aortizgu","download_url":"https://codeload.github.com/aortizgu/homekit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aortizgu%2Fhomekit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29119219,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T09:40:36.738Z","status":"ssl_error","status_checked_at":"2026-02-05T09:36:49.977Z","response_time":65,"last_error":"SSL_read: 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":["1wire","esp8266","golang","i2c-lcd","linux","mdns","mdns-sd","nodemcu-esp8266","orangepi","revel","websocket"],"created_at":"2024-09-27T03:03:32.175Z","updated_at":"2026-02-05T10:03:51.631Z","avatar_url":"https://github.com/aortizgu.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Homekit\n\nThe purpose of this project is to create a smart thermostat that controls the temperature of a house based on certain rules according to the day, time and threshold temperature.\nIt also allows to know the record of temperatures registered during a configured time.\nIt has a web dashboard to know the status of the system and program its behaviour and an LCD screen to know the status of the system.\nUsers are notified by mail about fails, changes of state, etc..\nCommunication between devices is via wifi ethernet using mDNS(multicast dns) and DNS-SD (dns service discovery), so address configuration is not needed.\n\nthe system consists of two subsystems:\n\n**Main controller**\n![](main_controller.png)\n  - Orange Pi Zero\n  - I2C LCD Display (PCF8574)\n  - 1Wire Temperature Sensor (DS18B20)\n\nThis system is in charge of diagnosis, logic of activation/deactivation of controller devices and human interface through web pages and LCD display.\nThe activation/deactivation of controller devices will be regarding the rules configured by the users and the temperature read from the temperature sensor.\nRevel framework is used for the web application, using session authentication and websockets for dynamic information.\n\nWeb app:\n![](dashboard_web.png)\n![](rules_web.png)\n\n**Device controller**\n![](device_controller.png)\n  - ESP8266 Node MCU\n  - Relay Module\n  - 1Wire Temperature Sensor (DS18B20)\n\nIs in charge of receive commands of activation/deactivation of the relay module output and inform about the temperature read by the sensor.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faortizgu%2Fhomekit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faortizgu%2Fhomekit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faortizgu%2Fhomekit/lists"}