{"id":17242261,"url":"https://github.com/haimgel/hrv_controller","last_synced_at":"2026-04-12T04:35:00.648Z","repository":{"id":81641971,"uuid":"258616531","full_name":"haimgel/hrv_controller","owner":"haimgel","description":"MQTT controller firmware for HRV","archived":false,"fork":false,"pushed_at":"2020-04-24T23:26:22.000Z","size":146,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-31T01:41:11.510Z","etag":null,"topics":["arduino","esp8266","home-assistant","home-automation","homie-esp8266","iot","mqtt"],"latest_commit_sha":null,"homepage":"https://haim.dev/posts/2020-04-25-hrv-with-esp8266-1/","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/haimgel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2020-04-24T20:25:32.000Z","updated_at":"2024-09-28T04:52:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"7689c962-ba28-45d5-a8a6-19813e4de4d4","html_url":"https://github.com/haimgel/hrv_controller","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haimgel%2Fhrv_controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haimgel%2Fhrv_controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haimgel%2Fhrv_controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haimgel%2Fhrv_controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haimgel","download_url":"https://codeload.github.com/haimgel/hrv_controller/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245581150,"owners_count":20638936,"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":["arduino","esp8266","home-assistant","home-automation","homie-esp8266","iot","mqtt"],"created_at":"2024-10-15T06:12:45.544Z","updated_at":"2025-12-30T23:25:11.302Z","avatar_url":"https://github.com/haimgel.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MQTT HRV controller\n\nThis software provides MQTT interface for automatic control of a HRV (Heat Recovery Ventilator).\nIt was built to control specifically Lifebreath RNC5-TPD, but it could be modified\nto control other units if they support dry contact controls (e.g. relay-controllable).\n\nHardware setup, rationale, and integration with other services is discussed in a series of \n[blog posts](https://haim.dev/posts/2020-04-25-hrv-with-esp8266/)\n\n\"Standard\" HRV operation and the hardware interface is discussed in `HRV-interface.md`.\n\n## Hardware needed\n\n  1. ESP8266 WiFi SOC board. Any NodeMCU-compatible board would do, as only 4\n     GPIO lines are needed.\n  2. Relay board to control the HRV (Sunfounder 4-channel relay board, or similar)\n  3. 5V power supply to power the ESP8266 and the relays.\n\n## Customizing the software\n\nSee `data/homie/config.json.sample` for all customizable settings. Copy to `config.json` and enter\nthe correct Wi-Fi connection parameters, MQTT server address and username/password if\nneeded. Also, pin assignments need to be specified in `src/hrv_control.hpp`.\nNo other files need to be modified.\n\n## Uploading software\n\n  1. Need to download and install [PlatformIO](http://platformio.org/).\n  2. Either use the GUI, or do this from the command line:\n     `platformio run --target upload`\n     `platformio run --target uploadfs`\n\n## Frameworks\n\nThis software is built on top of [Homie](http://homieiot.github.io/homie-esp8266/), and Homie is built on top of\n[Arduino for ESP8266](https://github.com/esp8266/Arduino).\n\n## MQTT commands and status updates\n\nTo set the mode of operation: publish the desired mode to `hrv-control/hrv/schedule/set`. Valid options are:\n  * `off` - HRV is turned off.\n  * `10_50` - HRV is turned on for 10 minutes, then turned off for 50 minutes (low fan speed).\n  * `20_40` - HRV is turned on for 20 minutes, then turned off for 40 minutes (low fan speed).\n  * `low` - Constant-on, low fan speed operation.\n  * `high` - Constant-on, high fan speed operation.\n\nCurrent operation mode and fan speed are published to these topics:\n  * `hrv-control/hrv/schedule` - currently active schedule (same values as above).\n  * `hrv-control/hrv/status` - short human-readable status: `OFF`, `10 / 50`, `20 / 40`, `LOW`, `HIGH`.\n  * `hrv-control/hrv/text` - long human-readable status. Example: `HRV is on 10/50 schedule, fan is off now`.\n  * `hrv-control/hrv/fan` - current fan mode: `off`, `low`, `high`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaimgel%2Fhrv_controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaimgel%2Fhrv_controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaimgel%2Fhrv_controller/lists"}