{"id":13801864,"url":"https://github.com/cbrand/esp32-ir-remote","last_synced_at":"2025-05-13T12:32:01.837Z","repository":{"id":44468390,"uuid":"317051575","full_name":"cbrand/esp32-ir-remote","owner":"cbrand","description":"A micropython project for running esp32 ir remotes","archived":false,"fork":false,"pushed_at":"2022-07-11T10:38:35.000Z","size":513,"stargazers_count":9,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-08-05T00:06:53.932Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/cbrand.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}},"created_at":"2020-11-29T22:01:27.000Z","updated_at":"2024-03-23T13:53:57.000Z","dependencies_parsed_at":"2022-09-22T00:10:39.441Z","dependency_job_id":null,"html_url":"https://github.com/cbrand/esp32-ir-remote","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbrand%2Fesp32-ir-remote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbrand%2Fesp32-ir-remote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbrand%2Fesp32-ir-remote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbrand%2Fesp32-ir-remote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cbrand","download_url":"https://codeload.github.com/cbrand/esp32-ir-remote/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225217886,"owners_count":17439712,"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":[],"created_at":"2024-08-04T00:01:28.899Z","updated_at":"2024-11-18T17:30:26.528Z","avatar_url":"https://github.com/cbrand.png","language":"Python","funding_links":[],"categories":["Libraries"],"sub_categories":["Communications"],"readme":"# ESP32 Remote #\n\nThis repository includes code for an IR remote configurable controller. It connects to an MQTT server\nand allows to play Scenes. Currently, the following protocols are supported:\n\n- Infrared NEC\n- Infrared RC6\n- Onkyo EISCP protocol\n\nThe firmware runs on an ESP32. It doesn't require additional external PSRAM, at least with the configration provided\nhere. Most of the python code is directly embedded in the Micropython library. If you want to run everything directly\nfrom the file system, additional PSRAM might be advisable.\n\n## Hardware Layout ##\n\n![Hardware Breadboard](images/wiring-breadboard.png)\n\n![Hardware Layout](images/wiring-layout.png)\n\n## Installation ##\n\nYou require an MQTT broker for communication.\n\nFor configuration, you should put a `config.json` in the root directory and copy the `main.py` file in there too.\n\nAn example of the `config.json` can be found [here](config.example.json).\n\n## Preliminary Software ##\n\n\u003cimg height=\"600\" alt=\"A picture of the user interface utilizing the ESP32 software\" src=\"images/ui.png\"\u003e\n\nFor fully using this application, there also exists a cloud backend and frontend:\n\n- The backend is written in Go and is available [here](https://github.com/cbrand/ir-remote-backend).\n- The frontend is written in TypeScript and Vue.js and is availalable [here](https://github.com/cbrand/ir-remote-frontend).\n\n## Caveats ##\n\nI couldn't get with the newest version of micropython propper client side certificates to run. I am not quite sure what the root cause\nis and stepped down to authenticate with username and password to the broker. However, if anybody can point me to the issue I would gladly\nfix this.\n\n## Used Libraries ##\n\nSome libraries are directly embedded in the repository, but have been taken from somewhere else. For easier reference these are:\n\n### [mqtt_as.py](modules/mqtt_as.py) ### \n\n[![micropython-mqtt](https://img.shields.io/badge/micropython--mqtt-mqtt__as.py-blue)](https://github.com/peterhinch/micropython-mqtt/blob/9032983936a30c23a9d53bcabe1ca85d7ee99fdd/mqtt_as/mqtt_as.py)\n\nSlightly modified for rebooting the whole ESP32 on various connection issues after an unsuccesful connection as in my experience wrapping\nan TLS connection on the ESP32 runs in an endless loop of reconnection issues. My best guess is that something in the TLS pipeline isn't releasing\nresources without a hard reboot.\n\n### [ntptime.py](modules/ntptime.py) ###\n\n[![micropython ntptime.py](https://img.shields.io/badge/micropython-ntptime.py-blue)](https://github.com/micropython/micropython/blob/master/ports/esp8266/modules/ntptime.py)\n\nRetrieved from the ESP8266 code base in micropython, it is used to initially synchronize the esp clock on reboot and reconnect.\n\n## License ##\n\nThe code is licensed via the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbrand%2Fesp32-ir-remote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcbrand%2Fesp32-ir-remote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbrand%2Fesp32-ir-remote/lists"}