{"id":19306155,"url":"https://github.com/nn708/esp-homekit-irhub","last_synced_at":"2025-04-22T12:35:39.024Z","repository":{"id":192336294,"uuid":"195729767","full_name":"NN708/ESP-Homekit-IRHub","owner":"NN708","description":"A Homekit-enabled IR hub to control all your IR devices (air conditioners and TVs).","archived":false,"fork":false,"pushed_at":"2023-04-24T06:31:04.000Z","size":46,"stargazers_count":11,"open_issues_count":1,"forks_count":4,"subscribers_count":5,"default_branch":"main","last_synced_at":"2023-09-04T09:16:46.714Z","etag":null,"topics":["air-conditioner","esp8266","hap","home-automation","homekit","homekit-accessory-protocol","homekit-device","iot","nodemcu","smart-home","television","tv"],"latest_commit_sha":null,"homepage":"","language":"C","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/NN708.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}},"created_at":"2019-07-08T03:24:46.000Z","updated_at":"2023-09-04T09:17:18.451Z","dependencies_parsed_at":"2023-09-04T09:26:57.153Z","dependency_job_id":null,"html_url":"https://github.com/NN708/ESP-Homekit-IRHub","commit_stats":null,"previous_names":["nn708/esp-homekit-irhub"],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NN708%2FESP-Homekit-IRHub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NN708%2FESP-Homekit-IRHub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NN708%2FESP-Homekit-IRHub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NN708%2FESP-Homekit-IRHub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NN708","download_url":"https://codeload.github.com/NN708/ESP-Homekit-IRHub/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223897022,"owners_count":17221475,"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":["air-conditioner","esp8266","hap","home-automation","homekit","homekit-accessory-protocol","homekit-device","iot","nodemcu","smart-home","television","tv"],"created_at":"2024-11-10T00:04:26.146Z","updated_at":"2024-11-10T00:04:26.812Z","avatar_url":"https://github.com/NN708.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESP-Homekit-IRHub\n\nA Homekit-enabled IR hub to control all your IR devices.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://gitee.com/nn708/images/raw/master/ir_hub.jpg\" width=300\u003e\u003c/p\u003e\n\n## Usage\n### Use Docker\n1. Install [Docker](https://www.docker.com) on your host machine.\n2. Pull and run the Docker image:\n    ```\n    docker run -it nn708/esp-homekit-irhub\n    ```\n    \u003e If your host machine runs Linux, you can add parameter `--device=/dev/\u003ctty_on_your_host_machine\u003e:/dev/ttyUSB0 -e ESPPORT=/dev/ttyUSB0` to expose your ESP8266 device to the container. In some cases, you need to add `-e FLASH_MODE=dout` (See https://github.com/espressif/esptool/wiki/SPI-Flash-Modes for more information).\n3. In the Docker container, run\n    ```\n    cd ir_hub\n    make\n    ```\n    to compile the code. To flash your device, use:\n    ```\n    make erase_flash\n    make flash\n    ```\n    Then debug through serial port:\n    ```\n    make monitor\n    ```\n    \u003e If you are using Windows or macOS, copy the binary file onto your host machine and flash it outside of the container.\n\n### Install Manually\n1. It is recommended to use [Ubuntu](https://ubuntu.com/), although it may work on other opreating systems.\n2. Install these development tools:\n    ```\n    sudo apt-get update\n    ```\n    Then\n    ```\n    sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf \\\n        flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial \\\n        sed git unzip bash help2man wget bzip2 libtool-bin\n    ```\n3. Clone [esp-open-sdk](https://github.com/pfalcon/esp-open-sdk/), and then compile it:\n    ```\n    git clone --recursive https://github.com/pfalcon/esp-open-sdk.git\n    cd esp-open-sdk\n    make\n    ```\n4. Add generated toolchain directory (something like `/path/to/esp-open-sdk/xtensa-lx106-elf/bin`) to your PATH.\n5. Download [esp-open-rtos](https://github.com/SuperHouse/esp-open-rtos/):\n    ```\n    git clone --recursive https://github.com/Superhouse/esp-open-rtos.git\n    ```\n    Then set environment variable ESP_OPEN_RTOS to the esp-open-rtos directory.\n6. In some cases, you need to change the flash mode (See https://github.com/espressif/esptool/wiki/SPI-Flash-Modes for more information):\n    ```\n    export FLASH_MODE=dout\n    ```\n7. Connect your ESP8266 to your computer, then set environment variable ESPPORT pointing to your ESP8266, for example:\n    ```\n    export ESPPORT=/dev/ttyUSB0\n    ```\n    And make sure you can write to it by adding your user to group dialout:\n    ```\n    sudo usermod -a -G dialout \u003cyour_user\u003e\n    ```\n8. Clone this repository and sync all submodules:\n    ```\n    git clone https://github.com/NN708/ESP-Homekit-IRHub.git\n    cd ESP-Homekit-IRHub\n    git submodule update --init --recursive\n    ```\n9. Change to ir_hub directory:\n    ```\n    cd ir_hub\n    ```\n    Then you can compile it using:\n    ```\n    make\n    ```\n    To flash your device, use:\n    ```\n    make erase_flash\n    make flash\n    ```\n    Then debug through serial port:\n    ```\n    make monitor\n    ```\n\n## To-do\n+ Store accessory information in flash, to make users able to add or delete accessories without editing source code.\n+ Add more accessories, and let users download accessory configurations from online servers.\n\n## License\nLicensed under the [MIT](https://opensource.org/licenses/MIT) license.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnn708%2Fesp-homekit-irhub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnn708%2Fesp-homekit-irhub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnn708%2Fesp-homekit-irhub/lists"}