Skip to content

Commit

Permalink
Merge branch 'main' into fix/division-by-zero
Browse files Browse the repository at this point in the history
# Conflicts:
#	CHANGELOG.md
#	custom_components/samsung_soundbar/manifest.json
  • Loading branch information
samuelspagl committed Mar 18, 2024
2 parents efbf88c + 3bcabb8 commit c121747
Show file tree
Hide file tree
Showing 9 changed files with 220 additions and 134 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@
greater than `1` and lower than `100`. This will make sure that a division by zero cannot happen.
- Add default value `100` to `CONF_ENTRY_MAX_VOLUME`

## [0.3.1] Documentation enhancements

### Changed

- Updated the `README` as well as the documentation website

## [0.3.0] Icons and Chore

### Added
Expand Down
93 changes: 56 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
# HomeAssistant: Samsung Soundbar Integration

> Yet another Samsung Soundbar Integration (YASSI)
# YASSI: Yet Another Samsung Soundbar Integration (for Home Assistant)

Welcome to YASSI, the Home Assistant integration designed to bring comprehensive control over your Samsung Soundbar into your smart home ecosystem.

**Table of Contents:**
<!-- TOC -->
* [Why YASSI](#why-yassi)
* [Features](#features)
* [Installation / Setup](#installation--setup)
* [Prerequisites](#prerequisites)
* [Installation:](#installation)
* [Configuration](#configuration)
* [Support](#support)
* [Contributing](#contributing)
* [General Thanks](#general-thanks)
<!-- TOC -->

## Why YASSI

Expand All @@ -18,48 +31,54 @@ are not documented... ;)

## Features

- Set-Up through HomeAssistant-UI
- Theoretically it should be possible to have multiple Devices (not tested)

- `media_player` Entity
- On / Off
- Volume
- Mute
- Input Source
- Sound Mode
- Media
- Play / Pause / Stop
- Artist
- Title
- Music Cover Art url (iTunes Api)
- `switch` entity
- Night mode
- Bass mode
- Voice amplifier
- `number` entity
- bass level
- *[to come] equalizer bands*
- `select` entity
- sound mode (additional control in the "Device" tab)
- input (additional control in the "Device" tab)
- equalizer preset
- **UI Setup**: You can easily set up your Soundbar through the UI.
- **Media Player Controls**: Power, volume, mute, source selection, and media controls are all at your fingertips.
- **Selectable Sound Modes**: Choose from various sound modes and inputs for optimal audio.
- **Subwoofer & Equalizer Adjustment**: Fine-tune your audio experience.
- **Switchable Enhancements**: Toggle features like night mode and voice amplification.
- **Customizable Bass Level**: Set the bass to your preference.
- **Multiple Devices**: should be theoretically possible but **not** tested

For the full feature list per entity type, please take a look at the [documentation](ha-samsung-soundbar.vercel.app) website.

## Installation / Setup

### Prerequisites

Before you begin, ensure you have the following:

- A Samsung Soundbar compatible with SmartThings.
- Home Assistant installed and running.
- HACS (Home Assistant Community Store) for easy installation.

### Installation

1. Add this repository as a custom repository in HACS or manually copy the `samsung_soundbar` folder to the `custom_components` directory in your Home Assistant configuration.

[![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=samuelspagl&repository=ha_samsung_soundbar&category=integration)
2. Restart Home Assistant.

> [!NOTE]
> It is planned to add it to the default `HACS` repository list, but not done yet.
## How to install it:
### Configuration

### HACS:
> ⚠️ not done yet but planned (hopefully)
To integrate your Samsung Soundbar with Home Assistant using YASSI, you will be asked for the following variables:

### Adding this repository as custom repository
- **SmartThings API Key**: [Retrieve your API key from SmartThings Tokens.](https://account.smartthings.com/tokens)
- **Device ID**: [Find your device ID at SmartThings Devices.](https://my.smartthings.com/advanced/devices)
- **Device Name**: Choose a name for your soundbar to be recognized in Home Assistant.
- **Max Volume**: Define the maximum volume level for the `media_player` slider (between `1` and `100`).

Add this repository as custom repository in HACS and install it ;)
## Support

### Manual
For support, feature requests, or bug reporting, please visit the Issues section of this GitHub repository.

You can also copy the `samsung_soundbar` folder in the `custom_components` folder to
your `config/custom_components` folder.
## Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

## General Thanks

Like already mentioned, thanks to @PiotrMachowski / @thierryBourbon for the general
idea on how to do things.
- Like already mentioned, thanks to @PiotrMachowski / @thierryBourbon for the general idea on how to do things.
6 changes: 3 additions & 3 deletions docs/app.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export default defineAppConfig({
docus: {
title: 'YASSI',
description: 'HomeAssistant: Yet another Samsung soundbar integration',
title: '🔊 Yassi',
description: 'Yet another Samsung Soundbar integration for Home Assistant',
image: 'https://user-images.githubusercontent.com/904724/185365452-87b7ca7b-6030-4813-a2db-5e65c785bf88.png',
socials: {
github: 'samuelspagl/ha_samsung_soundbar',
Expand All @@ -28,7 +28,7 @@ export default defineAppConfig({
fluid: true
},
header: {
logo: true,
logo: false,
showLinkIcon: true,
exclude: [],
fluid: true
Expand Down
59 changes: 30 additions & 29 deletions docs/content/0.index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,19 @@ title: "YASSI"
---
cta:
- Why another HomeAssistant integration?
- #why-another-integration
- /first-things-first/why-another-integration
secondary:
- Open on GitHub →
- https://github.com/nuxtlabs/docus
snippet:
- Custom Components
- "- input selection"
- "- soundmode selection"
- "- eq-preset selection"
- "- woofer settings"
- "- other cool things"
- https://github.com/samuelspagl/ha_samsung_soundbar
---

#title
Yassi
Yassi - Yet another Samsung Soundbar integration

#description
Yet another Samsung soundbar integration for HomeAssistant
**YASSI** is a **HomeAssistant** integration for **Samsung Soundbars**. It enhances control, and adds features like equalizer settings. Install it via HACS or manually. Kudos to the original idea by @PiotrMachowski and @thierryBourbon! 🎶🔊

[![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=samuelspagl&repository=ha_samsung_soundbar&category=integration)
::

::card-grid
Expand All @@ -34,36 +29,42 @@ Quick-Start
#default
::card
#title
Getting Started.
❓ Why another integration?
#description
Whether you thought about it or not, here is the answer ;).
<br>
<br>
:button-link[click here]{href="/first-things-first/why-another-integration"}
::

::card
#title
🚀 Getting Started
#description
Go, Go, Go... Here you will find information on "How to install / configure".
<br>
<br>
:button-link[click here]{href="/getting-started"}
:button-link[click here]{href="/first-things-first/getting-started"}
::

::card
#title
Features
Features
#description
Many cool features are awaiting your eyes to see ✨.
<br>
<br>
:button-link[click here]{href="/features"}
::
::


## Why another integration

The current Samsung Soundbar Integration by @PiotrMachowski / @thierryBourbon are already pretty cool.
But I wanted it to appear as a device, and base the Foundation on the `pysmartthings` python package.

Additionally, I wanted full control over the *Soundmode* and more. So I tried out a few things with the API,
and found that also the **Subwoofer** as well as the **Equalizer** are controllable.

I created a new wrapper around the `pysmartthings.DeviceEntity` specifically set up for a Soundbar, and this
is the Result.

I hope to integrate also controls for **surround speaker** as well as **Space-Fit Sound**, but as these features
are not documented... ;)
::card
#title
⚙️ SmartThings API related information
#description
If you want to know some background information on how equalizer support and
other things were implemented, this is your section.
<br>
<br>
:button-link[click here]{href="/features"}
::
::
13 changes: 13 additions & 0 deletions docs/content/1.first-things-first/0.why-another-integration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# ❓ Why another integration

The current Samsung Soundbar Integration by @PiotrMachowski / @thierryBourbon are already pretty cool.
But I wanted it to appear as a device, and base the Foundation on the `pysmartthings` python package.

Additionally, I wanted full control over the *Soundmode* and more. So I tried out a few things with the API,
and found that also the **Subwoofer** as well as the **Equalizer** are controllable.

I created a new wrapper around the `pysmartthings.DeviceEntity` specifically set up for a Soundbar, and this
is the Result.

I hope to integrate also controls for **surround speaker** as well as **Space-Fit Sound**, but as these features
are not documented... ;)
43 changes: 43 additions & 0 deletions docs/content/1.first-things-first/1.getting-started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# 🚀 Getting Started with Yassi

Welcome to Yassi, the HomeAssistant integration for your Samsung Soundbar. This guide will help you get up and running in no time.

## 📦 Installation Options

### HACS (Home Assistant Community Store)

#### 🌟 Official Repository (Coming Soon)
The Yassi integration will be available through the official HACS repository shortly. Stay tuned for updates.

#### ➕ Custom Repository
In the meantime, you can manually add this repository to HACS:
1. Click the following button and 'open link':
[![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=samuelspagl&repository=ha_samsung_soundbar&category=integration)
2. Click 'add' to add the custom repository.
3. Download 'Yassi' and restart Home Assistant.

### 📂 Manual Installation
If you prefer to install Yassi manually:
1. Download the latest release from the repository.
2. Extract and copy the `custom_components/samsung_soundbar` folder.
3. Paste it into the `config/custom_components/samsung_soundbar` directory of your HomeAssistant setup.

## ⚙️ Configuration Steps

Once Yassi is installed, you can configure it via the HomeAssistant UI:

1. Go to 'Configuration' and then 'Integrations'.
2. Click on 'Add Integration' and search for 'Yassi'.
3. Enter the following details to complete the setup:
- 🔑 SmartThings API Key: [Obtain it here](https://account.smartthings.com/tokens).
- 🆔 Device ID: [Find your Soundbar's device ID here](https://my.smartthings.com/advanced/devices).
- ㍻ Soundbar Name: Choose a name for easy identification.
- 🔊 Max Volume: Set the maximum volume limit for your Soundbar.

Follow these steps, and you'll be enjoying seamless control over your Samsung Soundbar with Yassi in no time!

::alert{type="info"}
The `🔊 Max Volume` setting will readjust the internal values of the `media_player` entity from 0-100 to 0-MaxVolume.
Therefore will the slider not display the same value as the one provided by the `sensor` entity, which will always display
the raw value retrieved from the SmartThings API.
::
17 changes: 17 additions & 0 deletions docs/content/1.first-things-first/2.issues-and-other-things.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# ‼️ Issues and other things

As the creator of this personal and fun project, I am thrilled to see people using it. While I won’t always have immediate availability to address every request, I’ll do my best to fix issues and implement features. Thanks a lot in advance! 🙌

Here are some best practices to help me help you:

1. 🐞 GitHub Issues: For any issues or bugs, please submit them via GitHub Issues. ([🔗 click here](https://github.com/samuelspagl/ha_samsung_soundbar/issues/new))
2. 📋 Provide Details: Include essential information:
- Home Assistant OS Version
- Samsung Soundbar Model
- Other Relevant Details (like debug logs)
3. 🎇 Icons for Fun:
- 📦 = Feature Request
- 🐛 = Bug Report
- ❓ = General Questions

Let’s collaborate to enhance your soundbar experience! 🎶🔊
30 changes: 0 additions & 30 deletions docs/content/1.getting-started/0.index.md

This file was deleted.

Loading

0 comments on commit c121747

Please sign in to comment.