Fix 'audiotrackdata' (#42)
## [0.4.1] Media Mystique: The Great Data Disappearing Act!
### Fixed
- Made media data (*track title*, *artist*, *length*) optional to acoomodate soundbars that don't provide this information (🥲)
### Added
- Add translations for the english translation file
This commit is contained in:
parent
0d2424b578
commit
bd313ea27a
10
CHANGELOG.md
10
CHANGELOG.md
|
@ -1,5 +1,15 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [0.4.1] Media Mystique: The Great Data Disappearing Act!
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Made media data (*track title*, *artist*, *length*) optional to acoomodate soundbars that don't provide this information (🥲)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Add translations for the english translation file
|
||||||
|
|
||||||
## [0.4.0] Started with an "ick", but is now packed with new features 💪
|
## [0.4.0] Started with an "ick", but is now packed with new features 💪
|
||||||
|
|
||||||
> ⚠️ Please read the following carefully:
|
> ⚠️ Please read the following carefully:
|
||||||
|
|
17
README.md
17
README.md
|
@ -2,21 +2,8 @@
|
||||||
|
|
||||||
Welcome to YASSI, the Home Assistant integration designed to bring comprehensive control over your Samsung Soundbar into your smart home ecosystem.
|
Welcome to YASSI, the Home Assistant integration designed to bring comprehensive control over your Samsung Soundbar into your smart home ecosystem.
|
||||||
|
|
||||||
> [!CAUTION]
|
> [!NOTE]
|
||||||
> **Soundbar Integration Issues**:
|
> Please use service calls for setting the attribute of a custom capability instead of the entity. (See #43 for more information)
|
||||||
>
|
|
||||||
> Samsung changed (un)intentionally? something in the SmartThings API. Therefore it is currently not possible to retrieve a status update for
|
|
||||||
> custom capabilities like *Soundmode, EQ, Woofer and Advanced Audio settings (Nightmode, Bassmode, Voice-enhancer).
|
|
||||||
> Other than this, the integration is working as expected.
|
|
||||||
>
|
|
||||||
> **I released a new beta version where you can select for which custom capability entities should be created. If one is disabled so is the update
|
|
||||||
> process, and therefore the error logs will disappear.**
|
|
||||||
>
|
|
||||||
> It is still possible to adjust all settings of the custom capabilties, therefore the beta version features service calls for each of those.
|
|
||||||
> For more and updated information please refer to [#26](https://github.com/samuelspagl/ha_samsung_soundbar/issues/26).
|
|
||||||
>
|
|
||||||
> Best Samuel ✌️
|
|
||||||
|
|
||||||
|
|
||||||
**Table of Contents:**
|
**Table of Contents:**
|
||||||
<!-- TOC -->
|
<!-- TOC -->
|
||||||
|
|
|
@ -72,18 +72,19 @@ class SoundbarDevice:
|
||||||
await self._update_equalizer()
|
await self._update_equalizer()
|
||||||
|
|
||||||
async def _update_media(self):
|
async def _update_media(self):
|
||||||
self.__media_artist = self.device.status._attributes["audioTrackData"].value[
|
if "audioTrackData" in self.device.status._attributes:
|
||||||
"artist"
|
self.__media_artist = self.device.status._attributes["audioTrackData"].value[
|
||||||
]
|
"artist"
|
||||||
self.__media_title = self.device.status._attributes["audioTrackData"].value[
|
]
|
||||||
"title"
|
self.__media_title = self.device.status._attributes["audioTrackData"].value[
|
||||||
]
|
"title"
|
||||||
if self.__media_title != self.__old_media_title:
|
]
|
||||||
self.__old_media_title = self.__media_title
|
if self.__media_title != self.__old_media_title:
|
||||||
self.__media_cover_url_update_time = datetime.datetime.now()
|
self.__old_media_title = self.__media_title
|
||||||
self.__media_cover_url = await self.get_song_title_artwork(
|
self.__media_cover_url_update_time = datetime.datetime.now()
|
||||||
self.__media_artist, self.__media_title
|
self.__media_cover_url = await self.get_song_title_artwork(
|
||||||
)
|
self.__media_artist, self.__media_title
|
||||||
|
)
|
||||||
|
|
||||||
async def _update_soundmode(self):
|
async def _update_soundmode(self):
|
||||||
await self.update_execution_data(["/sec/networkaudio/soundmode"])
|
await self.update_execution_data(["/sec/networkaudio/soundmode"])
|
||||||
|
@ -372,11 +373,15 @@ class SoundbarDevice:
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def media_duration(self) -> int | None:
|
def media_duration(self) -> int | None:
|
||||||
return self.device.status.attributes.get("totalTime").value
|
attr = self.device.status.attributes.get("totalTime", None)
|
||||||
|
if attr:
|
||||||
|
return attr.value
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def media_position(self) -> int | None:
|
def media_position(self) -> int | None:
|
||||||
return self.device.status.attributes.get("elapsedTime").value
|
attr = self.device.status.attributes.get("elapsedTime", None)
|
||||||
|
if attr:
|
||||||
|
return attr.value
|
||||||
|
|
||||||
async def media_play(self):
|
async def media_play(self):
|
||||||
await self.device.play(True)
|
await self.device.play(True)
|
||||||
|
|
|
@ -107,11 +107,27 @@
|
||||||
},
|
},
|
||||||
"set_speaker_level":{
|
"set_speaker_level":{
|
||||||
"name": "Lautsprecher level verändern",
|
"name": "Lautsprecher level verändern",
|
||||||
"description": "Verändere die Lautstärke der einzelnen Lautsprecher"
|
"description": "Verändere die Lautstärke der einzelnen Lautsprecher",
|
||||||
|
"fields":{
|
||||||
|
"speaker_identifier": {
|
||||||
|
"name": "Lautsprecher",
|
||||||
|
"description": "Auszuwählender Lautsprecher"
|
||||||
|
},
|
||||||
|
"level": {
|
||||||
|
"name": "Lautstärke Level",
|
||||||
|
"description": "Lautstärke Level zwischen -6 und 6."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"set_rear_speaker_mode":{
|
"set_rear_speaker_mode":{
|
||||||
"name": "Modus der hinteren Lautsprecher setzen",
|
"name": "Modus der hinteren Lautsprecher setzen",
|
||||||
"description": "Nutze deine Rücklautsprecher, als 'Vorder-' oder 'Rücklautsprecher'."
|
"description": "Nutze deine Rücklautsprecher, als 'Vorder-' oder 'Rücklautsprecher'.",
|
||||||
|
"fields":{
|
||||||
|
"speaker_mode": {
|
||||||
|
"name": "Lautsprecher Modus",
|
||||||
|
"description": "Nutze den Lautsprecher als Front oder Rear Speaker."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"set_active_voice_amplifier":{
|
"set_active_voice_amplifier":{
|
||||||
"name": "Stimmenverstärker setzen",
|
"name": "Stimmenverstärker setzen",
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
{
|
{
|
||||||
"config":{
|
"config": {
|
||||||
"step":{
|
"step": {
|
||||||
"user":{
|
"user": {
|
||||||
"data": {
|
"data": {
|
||||||
"api_key": "SmartThings API Token",
|
"api_key": "SmartThings API Token",
|
||||||
"device_id": "Device ID",
|
"device_id": "Device ID",
|
||||||
"device_name":"Device Name",
|
"device_name": "Device Name",
|
||||||
"device_volume": "Max Volume (int)"
|
"device_volume": "Max Volume (int)"
|
||||||
},
|
},
|
||||||
"description": "Please enter your credentials.",
|
"description": "Please enter your credentials.",
|
||||||
"title": "Authentication"
|
"title": "Authentication"
|
||||||
},
|
},
|
||||||
"device":{
|
"device": {
|
||||||
"data" : {
|
"data": {
|
||||||
"settings_advanced_audio": "Enable 'Advanced Audio switches' capabilities (NightMode, BassMode, VoiceEnhancer)",
|
"settings_advanced_audio": "Enable 'Advanced Audio switches' capabilities (NightMode, BassMode, VoiceEnhancer)",
|
||||||
"settings_eq": "Enable 'EQ selector' capabilities",
|
"settings_eq": "Enable 'EQ selector' capabilities",
|
||||||
"settings_soundmode": "Enable 'Soundmode selector' capabilities",
|
"settings_soundmode": "Enable 'Soundmode selector' capabilities",
|
||||||
|
@ -21,8 +21,8 @@
|
||||||
"description": "Some soundbars have a different featureset than others. Please the features supported by your soundbar (visible in the SmartThings App).",
|
"description": "Some soundbars have a different featureset than others. Please the features supported by your soundbar (visible in the SmartThings App).",
|
||||||
"title": "Device Settings"
|
"title": "Device Settings"
|
||||||
},
|
},
|
||||||
"reconfigure_confirm":{
|
"reconfigure_confirm": {
|
||||||
"data" : {
|
"data": {
|
||||||
"settings_advanced_audio": "Enable 'Advanced Audio switches' capabilities (NightMode, BassMode, VoiceEnhancer)",
|
"settings_advanced_audio": "Enable 'Advanced Audio switches' capabilities (NightMode, BassMode, VoiceEnhancer)",
|
||||||
"settings_eq": "Enable 'EQ selector' capabilities",
|
"settings_eq": "Enable 'EQ selector' capabilities",
|
||||||
"settings_soundmode": "Enable 'Soundmode selector' capabilities",
|
"settings_soundmode": "Enable 'Soundmode selector' capabilities",
|
||||||
|
@ -59,5 +59,95 @@
|
||||||
"Front": "Front"
|
"Front": "Front"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"services": {
|
||||||
|
"select_soundmode": {
|
||||||
|
"name": "Select Sound Mode",
|
||||||
|
"description": "Choose between 'Standard', 'Surround', 'Game', and 'Adaptive Sound'."
|
||||||
|
},
|
||||||
|
"set_woofer_level": {
|
||||||
|
"name": "Set Subwoofer Level",
|
||||||
|
"description": "Change the volume of your subwoofer.",
|
||||||
|
"fields": {
|
||||||
|
"level": {
|
||||||
|
"name": "Volume Level",
|
||||||
|
"description": "Subwoofer level, from -12 to +6"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"set_night_mode": {
|
||||||
|
"name": "Set Night Mode",
|
||||||
|
"description": "Turn 'Night Mode' on/off.",
|
||||||
|
"fields": {
|
||||||
|
"enabled": {
|
||||||
|
"name": "On/Off",
|
||||||
|
"description": "See name."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"set_bass_enhancer": {
|
||||||
|
"name": "Set Bass Mode",
|
||||||
|
"description": "Turn 'Bass Mode' on/off.",
|
||||||
|
"fields": {
|
||||||
|
"enabled": {
|
||||||
|
"name": "On/Off",
|
||||||
|
"description": "See name."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"set_voice_enhancer": {
|
||||||
|
"name": "Set Voice Enhancer",
|
||||||
|
"description": "Turn 'Voice Enhancer' on/off.",
|
||||||
|
"fields": {
|
||||||
|
"enabled": {
|
||||||
|
"name": "On/Off",
|
||||||
|
"description": "See name."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"set_speaker_level": {
|
||||||
|
"name": "Change Speaker Level",
|
||||||
|
"description": "Change the volume of individual speakers.",
|
||||||
|
"fields":{
|
||||||
|
"speaker_identifier": {
|
||||||
|
"name": "Speaker Identifier",
|
||||||
|
"description": "Identifier of the speaker."
|
||||||
|
},
|
||||||
|
"level": {
|
||||||
|
"name": "Level",
|
||||||
|
"description": "Level of the Speaker from -6 to 6."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"set_rear_speaker_mode": {
|
||||||
|
"name": "Set Rear Speaker Mode",
|
||||||
|
"description": "Use your rear speakers as 'Front' or 'Rear' speakers.",
|
||||||
|
"fields":{
|
||||||
|
"speaker_mode": {
|
||||||
|
"name": "Speaker mode",
|
||||||
|
"description": "Weather the speaker are used as rear / front speakers."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"set_active_voice_amplifier": {
|
||||||
|
"name": "Set Voice Amplifier",
|
||||||
|
"description": "Turn 'Voice Amplifier' on/off.",
|
||||||
|
"fields": {
|
||||||
|
"enabled": {
|
||||||
|
"name": "On/Off",
|
||||||
|
"description": "See name."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"set_space_fit_sound": {
|
||||||
|
"name": "Set SpaceFitSound",
|
||||||
|
"description": "Turn 'SpaceFitSound' on/off.",
|
||||||
|
"fields": {
|
||||||
|
"enabled": {
|
||||||
|
"name": "On/Off",
|
||||||
|
"description": "See name."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue