{"id":26015518,"url":"https://github.com/cavefire/bose-homeassistant","last_synced_at":"2025-12-12T06:04:26.023Z","repository":{"id":274763514,"uuid":"923981105","full_name":"cavefire/Bose-Homeassistant","owner":"cavefire","description":"Bose Soundbar / Speaker control for Homeassistant","archived":false,"fork":false,"pushed_at":"2025-03-05T08:18:03.000Z","size":66,"stargazers_count":9,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-05T09:26:13.093Z","etag":null,"topics":["bose","hacs-integration","homeassistant","homeassistant-custom-component","homeassistant-integration"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cavefire.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-29T07:31:16.000Z","updated_at":"2025-03-05T08:18:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"4b39576a-90e1-431c-862c-22043c6a14ba","html_url":"https://github.com/cavefire/Bose-Homeassistant","commit_stats":null,"previous_names":["cavefire/bose-homeassistant"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cavefire%2FBose-Homeassistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cavefire%2FBose-Homeassistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cavefire%2FBose-Homeassistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cavefire%2FBose-Homeassistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cavefire","download_url":"https://codeload.github.com/cavefire/Bose-Homeassistant/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242138923,"owners_count":20078015,"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":["bose","hacs-integration","homeassistant","homeassistant-custom-component","homeassistant-integration"],"created_at":"2025-03-06T03:18:49.351Z","updated_at":"2025-12-12T06:04:26.011Z","avatar_url":"https://github.com/cavefire.png","language":"Python","funding_links":["https://www.buymeacoffee.com/cavefire"],"categories":[],"sub_categories":[],"readme":"# Bose Homeassistant\n\nThis is a custom component for Home Assistant to integrate with Bose soundbars / speakers.\nThe speakers are controlled 100% locally. However, a cloud account is needed and required configured in the integration. Read more about this in the [BOSE Account](#bose-account) section.\n\n![Preview](images/entities.jpg)\n\n![Preview](images/media_player.jpg)\n\n## Installation\n\n### Using HACS\n\n[![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](http://mine.li/mTnn1)](http://mine.li/uuOUj)\n\n1. Click the link above to open the integration in HACS.\n2. Install the integration.\n\n### Manual Installation\n\n1. Clone or download this repository.\n2. Copy the `custom_components` directory of this repository to your Home Assistant `config` directory.\n3. Restart Home Assistant.\n\n## Setup\n\n1. Go to \"Configuration\" -\u003e \"Devices \u0026 Services\" -\u003e \"Add Device\" -\u003e \"Bose\".\n2. Enter your BOSE account credentials (required, see [BOSE Account](#bose-account)).\n3. Select the device you want to add (discovered by mDNS or manually).\n4. Click \"Add Device\".\n\n## BOSE Account\n\nBOSE requires you to have an account in order to control a soundbar / speaker. Even if you allow access for all users in the network, you still need to provide your account credentials.\n\nSo this integration is making use of `pybose`'s authentication. You can find more information about this in the [pybose repository](https://github.com/cavefire/pybose).\n\n`pybose` is a Python library that reverse-engineers the BOSE API. It is used to authenticate with the BOSE API and to control the soundbar / speaker. After the initial call to the BOSE API, an access token is stored, making the following calls to the device locally.\n\n## Features\n\nThis is the list of features implemented in the integration. Non-marked features are not yet implemented. Feel free to do so!\n\n- [x] Control power\n- [x] Control volume\n- [x] See current volume\n- [x] See currently playing media (title, artist, album, cover, duration and position)\n- [x] Control media (play, pause, next, previous)\n- [x] Select sources (aux, chinch, optical - based on the speaker)\n- [x] Control bluetooth \n- [x] Audio setup (bass, treble, center, surround)\n- [x] Enable / disable bass module and gain\n- [x] Enable / disable surround speakers \n- [x] Group speakers\n- [x] HDMI-CEC settings\n- [x] Standby timer settings\n- [x] Optical activation settings\n- [x] Battery Level (for portable speakers)\n- [x] Rebroadcast latency settings\n- [x] Standby timer settings\n- [x] Dialog settings (AI Dialog Mode, Dialog Mode, Normal - based on the speaker)\n- [x] Dual Mono settings\n- [x] Send arbitrary request via service\n\n### Group speakers\nYou can group multiple Bose speakers together, like in the Bose App. This is done by using the service `media_player.join`.\n\n**Target:** Select the entity you want to be the master speaker (max. 1 media player!)\n**Group members:** Select the entities you want to join the master speaker.\n\nYou can either join all desired speakers together, or you can join them one by one.\nJoining a speaker to a other speaker, that is already in a group, will join the new speaker to the existing group.\n\n**Example:**\n```yaml\naction: media_player.join\ndata:\n  group_members:\n    - media_player.bose_smart_ultra_soundbar\ntarget:\n  entity_id: media_player.bose_music_amplifier\n```\n\nTo remove a speaker from the group, use the service `media_player.unjoin`. If the target is the master speaker, the group will be dissolved. Otherwise the target will be removed from the group.\n\n### Services\n\n- `bose.send_custom_request` - Send a custom request to the speaker. This can be used to control features that are not yet implemented in the integration and for debugging purposes.\n\n### Supported Devices\n\nAll devices commected via WiFi and controllable using the BOSE App should work. Here is the list of devices, that have been tested:\n\n**Soundbars:**\n- [x] Soundbar 500\n- [x] Soundbar 700\n- [x] Soundbar 900\n- [x] Soundbar Ultra\n\n**Home Speakers:**\n- [x] Home Speaker 300\n- [x] Home Speaker 500\n\n**Others:**\n- [x] Music Amplifier\n- [x] Portable Speaker\n\nIf you have a device that is not listed here, please open an issue or a pull request.\nThese devices only work with the features that are marked as completed above. Some features might not work due to hardware or software limitations. \n**If a feature is missing on your device, please open an issue.**\n\n## Contributing\nThis project is a work in progress, and contributions are welcome!\nIf you encounter issues, have feature requests, or want to contribute, feel free to submit a pull request or open an issue.\n\nMy goal is to split the integration from the `pybose` library, so that it can be used in other projects as well. So every function that is calling the speaker's websocket, should be implemented in the `pybose` library. The integration should only be responsible for the Home Assistant part.\n\nIf you like this project, consider supporting me \n[![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/yellow_img.png)](https://www.buymeacoffee.com/cavefire)\n\n\n## Disclaimer\nThis project is not affiliated with Bose Corporation. The API is reverse-engineered and may break at any time. Use at your own risk.\n\n**To the BOSE legal team:**\n\nAll API keys used in this project are publicly available on the Bose website.\n\nThere was no need to be a computer specialist to find them, so: Please do not sue me for making people use their products in a way they want to.\n\nIf you have any issues with me publishing this, please contact me! I am happy to discuss this with you and make your products better.\n\n## License\nThis project is licensed under GNU GPLv3 - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcavefire%2Fbose-homeassistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcavefire%2Fbose-homeassistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcavefire%2Fbose-homeassistant/lists"}