{"id":31286845,"url":"https://github.com/akospasztor/homebridge-create-ceiling-fan","last_synced_at":"2026-01-20T17:02:58.696Z","repository":{"id":315548981,"uuid":"1019096838","full_name":"akospasztor/homebridge-create-ceiling-fan","owner":"akospasztor","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-27T17:24:05.000Z","size":6033,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-27T18:32:10.621Z","etag":null,"topics":["ceiling-fan","create","fan","homebridge","homebridge-plugin","tuya","wind-calm"],"latest_commit_sha":null,"homepage":"https://akospasztor.github.io/homebridge-create-ceiling-fan/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akospasztor.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-13T18:18:43.000Z","updated_at":"2025-10-27T17:23:34.000Z","dependencies_parsed_at":"2025-09-19T09:40:31.409Z","dependency_job_id":"9fc4d250-783f-44d0-989f-27164939a819","html_url":"https://github.com/akospasztor/homebridge-create-ceiling-fan","commit_stats":null,"previous_names":["akospasztor/homebridge-create-ceiling-fan"],"tags_count":7,"template":false,"template_full_name":"homebridge/homebridge-plugin-template","purl":"pkg:github/akospasztor/homebridge-create-ceiling-fan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akospasztor%2Fhomebridge-create-ceiling-fan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akospasztor%2Fhomebridge-create-ceiling-fan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akospasztor%2Fhomebridge-create-ceiling-fan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akospasztor%2Fhomebridge-create-ceiling-fan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akospasztor","download_url":"https://codeload.github.com/akospasztor/homebridge-create-ceiling-fan/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akospasztor%2Fhomebridge-create-ceiling-fan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28607624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T16:10:39.856Z","status":"ssl_error","status_checked_at":"2026-01-20T16:10:39.493Z","response_time":117,"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":["ceiling-fan","create","fan","homebridge","homebridge-plugin","tuya","wind-calm"],"created_at":"2025-09-24T10:22:36.329Z","updated_at":"2026-01-20T17:02:58.679Z","avatar_url":"https://github.com/akospasztor.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/homebridge-create-logo.png\" alt=\"Homebridge Create Ceiling Fan Plugin Logo\" width=\"450\"\u003e\n\u003c/p\u003e\n\n# Homebridge Create Ceiling Fan Plugin\n\nThis plugin allows integrating the CREATE ceiling fans into HomeKit via\nHomebridge.\n\nAlthough there are several Homebridge plugins that provide similar\nfunctionality, this plugin aims to stand out via providing a smooth,\nuser-friendly fan speed control mechanism in the HomeKit UI and a robust device\ncommunication mechanism with a mutex. It also reflects and updates the changes\nvia the physical remote automatically in HomeKit.\n\n**Tested Devices:**\n\n- CREATE Wind Calm (with light, WiFi + Remote controller)\n\n## Contents\n\n- [Features](#features)\n- [Requirements](#requirements)\n- [Usage](#usage)\n- [Known issues](#known-issues)\n- [Acknowledgements](#acknowledgements)\n- [Developer documentation](#developer-documentation)\n\n## Features\n\n- [x] Support for devices with and without light\n- [x] User-friendly fan speed control via the HomeKit UI slider\n- [x] Local communication, does not require connection to the Tuya IoT cloud\n      platform [^1]\n- [x] Robust communication implementation\n- [x] Changes via physical remote controller and other applications are\n      automatically reflected in HomeKit\n- [ ] Add support for devices with dimmable light\n- [ ] Add support for toggling the beep sound feedback\n\n## Requirements\n\n### Getting the local key of the device\n\nThe TinyTuya project has great step-by-step instructions\n[how to obtain the local key](https://github.com/jasonacox/tinytuya/tree/master?tab=readme-ov-file#setup-wizard---getting-local-keys)\nof a device.\n\nIn order to obtain the local key of a device, it needs to be paired with the\nSmart Life App or Tuya Smart App. If the device has already been paired with the\nCREATE app, you can reset the device with its remote the following way:\n\n1. Power off the fan (i.e. cut the power by turning off its wall switch or with\n   the associated breaker depending on the installation).\n2. Power on the device.\n3. Press and hold the `1h` button on the remote until you hear a beep.\n4. Now the device is ready to be paired again.\n\nNote from the CREATE app: if you do not hear a beep after 10 seconds, press and\nhold the buttons `1h` and `2h` simultaneously at the same time.\n\n### Fixed IP address\n\nIt's strongly recommended to set up a DHCP IP reservation for the device. This\nway the fan will always have a fixed IP address assigned. The TuyAPI library\nused for device communication works reliably when the IP address of the device\nis used alongside with the device ID.\n\nNote: the device used for the initial plugin development is a CREATE Wind Calm\npurchased in 2025, and it refuses most connection attempts via the TuyAPI when\nthe IP address is not supplied (connection requests with ID only).\n\n## Usage\n\n### Installation\n\nInstall the plugin either via the Homebridge UI by going to the Plugins tab and\nsearching for the plugin.\n\nAlternatively, the plugin can be installed directly from the command line\ninterface:\n\n```shell\nhb-service add @akospasztor/homebridge-create-ceiling-fan\n```\n\n### Configuration\n\nBy default, one HomeKit tile is exposed in the Home application for a device.\nYou can group or ungroup the different accessories of the fan (e.g. the fan\nslider and the light switch) in the group section of the accessory settings\nwithin the Home app.\n\n### Setting the rotation speed via the HomeKit slider\n\nThe following UI slider inputs represent the different speed settings of the\nfan. The fan is turned off when the slider is set to zero.\n\n| Device fan speed | Corresponding UI slider value | User input range on the slider |\n| :--------------: | :---------------------------: | :----------------------------: |\n|        1         |              10               |            1 - 19              |\n|        2         |              30               |           20 - 39              |\n|        3         |              50               |           40 - 59              |\n|        4         |              70               |           60 - 79              |\n|        5         |              90               |           80 - 94              |\n|        6         |             100               |           95 - 100             |\n\nWhenever the user operates the slider, a so-called debouncing timer is set. When\nthe timer expires (without the user changing the slider), the current state of\nthe slider value is converted to the nearest value that corresponds to the\ndevice fan speed. The purpose of the debounce timer is to provide great user\nexperience: without the debounce timer, the slider would jump around\nimmediately, without waiting for the user to finish adjusting the speed.\n\n**Demo:**\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/fan-speed-slider.gif\" alt=\"Fan Speed Slider UI\" width=\"300\"\u003e\n\u003c/p\u003e\n\n### Setting the rotation direction via the HomeKit button\n\nThe Home app shows a small icon below the fan speed slider representing the\nrotation direction of the fan. The implementation follows the general convention\nthat the direction is represented from the perspective when the user looks at\nthe fan; i.e. standing below and looking up in the case of a ceiling fan.\n\nThe counter-clockwise icon in the Home shows that the fan rotates\ncounter-clockwise when looked at directly from below. In this mode the fan blows\nair downwards, called the \"summer\" mode. Changing the direction to clockwise\nrotation makes the fan rotate in the opposite direction, causing the air being\npushed upwards. This mode is called the \"winter\" mode.\n\n## Known issues\n\n### Color temperature\n\nIt appears that the color temperature of the CREATE Wind Calm ceiling fan\n(purchased in 2025) cannot be set properly. Regardless of using the physical\nremote, the mobile application or manually sending the commands via TinyTuya,\nthe device simply cycles through the 3 different color temperatures and it does\nnot remember it's previously set state. This issue has also been observed here:\n[https://github.com/velzend/create_ikohs_fan](https://github.com/velzend/create_ikohs_fan)\n\nTherefore, this plugin does not support setting the color temperature until this\nhas been fixed by CREATE.\n\n## Acknowledgements\n\n- [TinyTuya](https://github.com/jasonacox/tinytuya)\n- [TuyAPI](https://github.com/codetheweb/tuyapi)\n\n## Developer documentation\n\n[https://akospasztor.github.io/homebridge-create-ceiling-fan/](https://akospasztor.github.io/homebridge-create-ceiling-fan/)\n\n\u003c!-- Footnotes --\u003e\n\n[^1]: Please note that the Tuya IoT cloud platform registration is still needed\nto obtain the local keys for the device. After obtaining the keys, the device\ncan be blocked from accessing the internet.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakospasztor%2Fhomebridge-create-ceiling-fan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakospasztor%2Fhomebridge-create-ceiling-fan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakospasztor%2Fhomebridge-create-ceiling-fan/lists"}