diff --git a/homeassistant/components/roon/manifest.json b/homeassistant/components/roon/manifest.json index 272c353601e..97faa1390f6 100644 --- a/homeassistant/components/roon/manifest.json +++ b/homeassistant/components/roon/manifest.json @@ -3,7 +3,7 @@ "name": "RoonLabs music player", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/roon", - "requirements": ["roonapi==0.1.2"], + "requirements": ["roonapi==0.1.3"], "codeowners": ["@pavoni"], "iot_class": "local_push", "loggers": ["roonapi"] diff --git a/homeassistant/components/roon/media_player.py b/homeassistant/components/roon/media_player.py index ab811e0853b..09ecc3cec9f 100644 --- a/homeassistant/components/roon/media_player.py +++ b/homeassistant/components/roon/media_player.py @@ -180,13 +180,16 @@ class RoonDevice(MediaPlayerEntity): volume_data = player_data["volume"] volume_muted = volume_data["is_muted"] volume_step = convert(volume_data["step"], int, 0) + volume_max = volume_data["max"] + volume_min = volume_data["min"] + raw_level = convert(volume_data["value"], float, 0) - if volume_data["type"] == "db": - level = convert(volume_data["value"], float, 0.0) / 80 * 100 + 100 - else: - level = convert(volume_data["value"], float, 0.0) + volume_range = volume_max - volume_min + volume_percentage_factor = volume_range / 100 + level = (raw_level - volume_min) / volume_percentage_factor volume_level = convert(level, int, 0) / 100 + except KeyError: # catch KeyError pass @@ -329,7 +332,7 @@ class RoonDevice(MediaPlayerEntity): def set_volume_level(self, volume: float) -> None: """Send new volume_level to device.""" volume = int(volume * 100) - self._server.roonapi.change_volume(self.output_id, volume) + self._server.roonapi.set_volume_percent(self.output_id, volume) def mute_volume(self, mute=True): """Send mute/unmute to device.""" @@ -337,11 +340,11 @@ class RoonDevice(MediaPlayerEntity): def volume_up(self) -> None: """Send new volume_level to device.""" - self._server.roonapi.change_volume(self.output_id, 3, "relative") + self._server.roonapi.change_volume_percent(self.output_id, 3) def volume_down(self) -> None: """Send new volume_level to device.""" - self._server.roonapi.change_volume(self.output_id, -3, "relative") + self._server.roonapi.change_volume_percent(self.output_id, -3) def turn_on(self) -> None: """Turn on device (if supported).""" diff --git a/requirements_all.txt b/requirements_all.txt index 63a022015f5..701597e059d 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -2220,7 +2220,7 @@ rokuecp==0.17.0 roombapy==1.6.5 # homeassistant.components.roon -roonapi==0.1.2 +roonapi==0.1.3 # homeassistant.components.rova rova==0.3.0 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index cb8ddf571a8..62a9b7f9507 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -1547,7 +1547,7 @@ rokuecp==0.17.0 roombapy==1.6.5 # homeassistant.components.roon -roonapi==0.1.2 +roonapi==0.1.3 # homeassistant.components.rpi_power rpi-bad-power==0.1.0