Schlafzimmer szenen, stillen usw

This commit is contained in:
Martin Bauer
2021-02-01 20:02:55 +00:00
parent fbfd8a3557
commit 6ee8c9c348
23 changed files with 2540 additions and 1208 deletions

View File

@@ -14,8 +14,9 @@ from homeassistant.components.media_player.const import (
ATTR_MEDIA_ENQUEUE, DOMAIN, MEDIA_TYPE_MUSIC,
SUPPORT_CLEAR_PLAYLIST, SUPPORT_NEXT_TRACK, SUPPORT_PAUSE,
SUPPORT_PLAY, SUPPORT_PLAY_MEDIA, SUPPORT_PREVIOUS_TRACK, SUPPORT_SEEK,
SUPPORT_SHUFFLE_SET, SUPPORT_TURN_OFF, SUPPORT_TURN_ON,
SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET)
SUPPORT_SHUFFLE_SET, SUPPORT_REPEAT_SET, SUPPORT_TURN_OFF, SUPPORT_TURN_ON,
SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, REPEAT_MODE_ALL, REPEAT_MODE_OFF,
REPEAT_MODE_ONE,)
from homeassistant.const import (
ATTR_COMMAND, CONF_HOST, CONF_PASSWORD, CONF_PORT, CONF_USERNAME, ATTR_ENTITY_ID,
STATE_IDLE, STATE_OFF, STATE_PAUSED, STATE_PLAYING)
@@ -29,7 +30,7 @@ DEFAULT_PORT = 9090
SUPPORT_SQUEEZEBOX = SUPPORT_PAUSE | SUPPORT_VOLUME_SET | \
SUPPORT_VOLUME_MUTE | SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | \
SUPPORT_SEEK | SUPPORT_TURN_ON | SUPPORT_TURN_OFF | SUPPORT_PLAY_MEDIA | \
SUPPORT_PLAY | SUPPORT_SHUFFLE_SET | SUPPORT_CLEAR_PLAYLIST
SUPPORT_PLAY | SUPPORT_SHUFFLE_SET | SUPPORT_CLEAR_PLAYLIST | SUPPORT_REPEAT_SET
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_HOST): cv.string,
@@ -299,8 +300,10 @@ class SqueezeBoxDevice(MediaPlayerDevice):
self._status['time'] = cmd[1]
elif cmd[:3] == ['prefset', 'server', 'volume']:
self._status['mixer volume'] = cmd[3]
elif cmd[:3] == ['prefset', 'server', 'shuffle']:
self._status['playlist shuffle'] = int(cmd[3])
elif cmd[:3] == ['prefset', 'server', 'repeat']:
self._status['playlist shuffle'] = cmd[3]
self._status['playlist repeat'] = int(cmd[3])
if self.media_position != last_media_position:
self._last_media_position_update = utcnow()
@@ -436,6 +439,25 @@ class SqueezeBoxDevice(MediaPlayerDevice):
elif 'playlist_shuffle' in self._status:
return self._status['playlist_shuffle'] == '1'
@property
def repeat(self):
repeat_status = self._status.get('playlist repeat', 0)
if repeat_status == 1:
return REPEAT_MODE_ONE
elif repeat_status == 2:
return REPEAT_MODE_ALL
else:
return REPEAT_MODE_OFF
def set_repeat(self, repeat: str) -> None:
"""Set repeat mode."""
if repeat == REPEAT_MODE_OFF:
self.call_method('playlist', 'repeat', 0)
elif repeat == REPEAT_MODE_ONE:
self.call_method('playlist', 'repeat', 1)
elif repeat == REPEAT_MODE_ALL:
self.call_method('playlist', 'repeat', 2)
@property
def supported_features(self):
"""Flag media player features that are supported."""
@@ -448,7 +470,7 @@ class SqueezeBoxDevice(MediaPlayerDevice):
self.call_method('mixer', 'volume', '-5')
def set_volume_level(self, volume):
volume_percent = str(int(volume*100))
volume_percent = str(int(volume * 100))
self.call_method('mixer', 'volume', volume_percent)
def mute_volume(self, mute):