{"id":14985222,"url":"https://github.com/domectrl/ha-pca9685","last_synced_at":"2025-10-13T06:44:10.159Z","repository":{"id":254301973,"uuid":"822753181","full_name":"domectrl/ha-pca9685","owner":"domectrl","description":"Home Assistant Raspberry Pi GPIO PWM Integration","archived":false,"fork":false,"pushed_at":"2025-06-11T06:52:20.000Z","size":299,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-11T07:42:13.940Z","etag":null,"topics":["analog","digital","hacs","hacs-integration","home-assistant","homeassistant","led","ledstrip","light","number","pca9685","pwm"],"latest_commit_sha":null,"homepage":"https://www.domectrl.com","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/domectrl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2024-07-01T18:46:33.000Z","updated_at":"2025-06-11T06:49:02.000Z","dependencies_parsed_at":"2024-12-30T12:25:02.550Z","dependency_job_id":"da23e620-e017-4bca-9450-ebf67f90fb49","html_url":"https://github.com/domectrl/ha-pca9685","commit_stats":{"total_commits":52,"total_committers":4,"mean_commits":13.0,"dds":"0.46153846153846156","last_synced_commit":"c6ea11c84c43bbb27589ae92d067b3bc1384ccfb"},"previous_names":["domectrl/ha-pca9685"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/domectrl/ha-pca9685","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domectrl%2Fha-pca9685","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domectrl%2Fha-pca9685/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domectrl%2Fha-pca9685/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domectrl%2Fha-pca9685/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/domectrl","download_url":"https://codeload.github.com/domectrl/ha-pca9685/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domectrl%2Fha-pca9685/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279013970,"owners_count":26085429,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["analog","digital","hacs","hacs-integration","home-assistant","homeassistant","led","ledstrip","light","number","pca9685","pwm"],"created_at":"2024-09-24T14:10:31.979Z","updated_at":"2025-10-13T06:44:10.140Z","avatar_url":"https://github.com/domectrl.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Home Assistant PCA9685 PWM custom integration\r\n\r\n**This is a spin-off from an original Home Assistant integration which was removed in Home Assistant Core 2022.4. The original rpi_gpi_pwm was stored [here](https://github.com/RedMeKool/HA-Raspberry-pi-GPIO-PWM/) but due to changes in 2022.7.5 support for pca9685 PWM devices was dropped. This module brings back  support for the pca9685 PWM LED driver in a separate component. As of Home Assitant version 2025.3.3 we also implemented an own driver to prevent upgrading users from dependency issues. Note that this driver will run only on linux-based systems.**\r\n\r\n[![GitHub Release][releases-shield]][releases]\r\n[![GitHub Activity][commits-shield]][commits]\r\n[![License][license-shield]](LICENSE)\r\n\r\n[![hacs][hacsbadge]][hacs]\r\n![Project Maintenance][maintenance-shield]\r\n\r\n[![Discord][discord-shield]][discord]\r\n[![Community Forum][forum-shield]][forum]\r\n\r\n**Description.**\r\n\r\nThe pca9685 component allows to control multiple lights using pulse-width modulation, for example LED strips. It supports one-color, RGB and RGBW LEDs driven by pca9685 devices. A PWM output can also be configured as a number. Connection to the pca9685 devices is made via the I2C bus.\r\n\r\nFor more details about the pca9685 I2C PWM LED controller you can find the datasheets here:\r\n- [PCA9685](https://www.nxp.com/docs/en/data-sheet/PCA9685.pdf)\r\n\r\n**This integration can set up the following platforms.**\r\n\r\nPlatform | Description\r\n-- | --\r\n`light` | Write LED signal to digital PWM outputs.\r\n`number` | Writes signal represented by a number to PWM outputs.\r\n\r\n\r\n\r\n\r\n### HACS (Preferred)\r\n1. [Add](http://homeassistant.local:8123/hacs/integrations) the custom integration repository: https://github.com/domectrl/ha-pca9685\r\n2. Select `PCA9685` in the Integration tab and click `download`\r\n3. Restart Home Assistant\r\n4. Done!\r\n\r\n### Manual\r\n1. Using the tool of choice open the directory (folder) for your HA configuration (where you find `configuration.yaml`).\r\n1. If you do not have a `custom_components` directory (folder) there, you need to create it.\r\n1. In the `custom_components` directory (folder) create a new folder called `pca9685`.\r\n1. Download _all_ the files from the `custom_components//` directory (folder) in this repository.\r\n1. Place the files you downloaded in the new directory (folder) you created.\r\n1. Restart Home Assistant\r\n\r\n## Configuration via user interface:\r\n* In the user interface go to \"Configuration\" -\u003e \"Integrations\" click \"+\" and search for \"PCA9685\"\r\n* After the creation of the PCA9685 integration, you will land on it's particular integration page (\"Configuration\" -\u003e \"Integrations\" -\u003e \"PCA9685 PWM device\")\r\n* Click on the menu-icon, than on the '+' sign to add the entities of your choice per pin\r\n![alt text](https://github.com/domectrl/ha-pca9685/blob/main/images/add_entity.png)\r\n* For a description of the configuration parameters, see Configuration parameters\r\n\r\n## YAML Configuration\r\n\r\nThis integration can no longer be configured via YAML. Use the config flow function instead. \r\n### Configuration parameters\r\n\r\n***Generic settings:***\r\n- I2C bus: Select the I2C bus where the PCA9685 is connected. Use tools like i2cdetect to find the right bus.\r\n  \u003e default: first bus found in the system\r\n- I2C address: I2C address of the LED driver\r\n  \u003e default: 0x40 (decimal 64)\r\n- frequency: The PWM frequency. \r\n  \u003e default: 200 Hz\r\n\r\n***Choosing entities:***\r\nIn the next menu, one can choose what entities to add. The possible entities shown depend on the amount of pins left without a function. If all pins are occupied, or if the user presses the 'Finish' button, the integration will be added.\r\n\r\n***Light specific settings:***\r\n- name: Name of the Light to create.\r\n  \u003e default: empty \r\n- pin(s): Select the pins to be used for your entity. \r\n  Note that the numbering of the pins starts from 0 up to 15. Only the pins not yet occupied by other entities can be selected.\r\n  \u003e default: first / next pin available\r\n\r\n***number specific settings:***\r\n- name: Name of the Number to create.\r\n  \u003e default: empty \r\n- pin: The pin connected to the number. Numbering starts from 0 up to 15.\r\n  \u003e default: first / next pin available\r\n- invert: Invert signal of the PWM generator\r\n  \u003e default: false\r\n- minimum: Minimal value of the number.\r\n  \u003e default: 0\r\n- maximum: Maximal value of the number. \r\n  \u003e default: 100\r\n- normalize_lower: Lower value to normalize the output of the PWM signal on. \r\n  \u003e default: 0\r\n- normalize_upper: Upper value to normalize the output of the PWM output on.\r\n  \u003e default: 100\r\n\r\nThese last four parameters might require a little more explanation:\r\n- The minimum/maximum define the range one can select on this number, for example 0..100%.\r\n- The 'normalize' parameters define at what range the output of the PWM normalizes. The PCA9685 registers can be programmed with a range of 0..4095. In normal cases, the the output register of the PCA9685 is set to 0 for value 0, and 4095 for value 100. If the normalize value is for example to 10..60, it will set the register value 0 for each value \u003c10. Above 10, it will start raising the register, up to 4095 for value 60. Above 60, the register value will remain 4095.\r\n- Using a negative value for the normalize_lower parameter, will clip the output to the register. This way, someone can assure that the value of the register will be always for larger than, for example, 10%. Using a larger-than-maximum value will clip the output to the register on the upper side.\r\n\r\n## Contributions are welcome!\r\n\r\nIf you want to contribute to this please read the [Contribution guidelines](CONTRIBUTING.md)\r\n\r\n***\r\n\r\n[commits-shield]: https://img.shields.io/github/commit-activity/y/domectrl/ha-pca9685.svg?style=for-the-badge\r\n[commits]: https://github.com/domectrl/ha-pca9685/commits/main\r\n[hacs]: https://hacs.xyz/\r\n[hacsbadge]: https://img.shields.io/badge/HACS-Custom-orange.svg?style=for-the-badge\r\n[discord]: https://discord.gg/Qa5fW2R\r\n[discord-shield]: https://img.shields.io/discord/330944238910963714.svg?style=for-the-badge\r\n[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg?style=for-the-badge\r\n[forum]: https://community.home-assistant.io/\r\n[license-shield]: https://img.shields.io/github/license/domectrl/ha-pca9685.svg?style=for-the-badge\r\n[maintenance-shield]: https://img.shields.io/badge/maintainer-domectrl-blue.svg?style=for-the-badge\r\n[releases-shield]: https://img.shields.io/github/release/domectrl/ha-pca9685.svg?style=for-the-badge\r\n[releases]: https://github.com/domectrl/ha-pca9685/releases\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdomectrl%2Fha-pca9685","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdomectrl%2Fha-pca9685","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdomectrl%2Fha-pca9685/lists"}