Add all models to diagnostics for Cambridge Audio (#129157)

This commit is contained in:
Noah Husby 2024-10-25 12:20:54 -04:00 committed by GitHub
parent 0e789be09f
commit 16c8b1efab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 176 additions and 29 deletions

View File

@ -2,20 +2,22 @@
from typing import Any from typing import Any
from homeassistant.const import CONF_HOST
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.redact import async_redact_data
from . import CambridgeAudioConfigEntry from . import CambridgeAudioConfigEntry
TO_REDACT = {CONF_HOST}
async def async_get_config_entry_diagnostics( async def async_get_config_entry_diagnostics(
hass: HomeAssistant, entry: CambridgeAudioConfigEntry hass: HomeAssistant, entry: CambridgeAudioConfigEntry
) -> dict[str, Any]: ) -> dict[str, Any]:
"""Return diagnostics for the provided config entry.""" """Return diagnostics for the provided config entry."""
client = entry.runtime_data client = entry.runtime_data
return async_redact_data( return {
{"info": client.info, "sources": client.sources}, TO_REDACT "display": client.display.to_dict(),
) "info": client.info.to_dict(),
"now_playing": client.now_playing.to_dict(),
"play_state": client.play_state.to_dict(),
"presets_list": client.preset_list.to_dict(),
"sources": [s.to_dict() for s in client.sources],
"update": client.update.to_dict(),
}

View File

@ -1,51 +1,196 @@
# serializer version: 1 # serializer version: 1
# name: test_entry_diagnostics # name: test_entry_diagnostics
dict({ dict({
'display': dict({
'brightness': 'bright',
}),
'info': dict({ 'info': dict({
'__type': "<class 'aiostreammagic.models.Info'>", 'api_version': '1.8',
'repr': "Info(name='Cambridge Audio CXNv2', model='CXNv2', timezone='America/Chicago', locale='en_GB', udn='02680b5c-1320-4d54-9f7c-3cfe915ad4c3', unit_id='0020c2d8', api_version='1.8')", 'locale': 'en_GB',
'model': 'CXNv2',
'name': 'Cambridge Audio CXNv2',
'timezone': 'America/Chicago',
'udn': '02680b5c-1320-4d54-9f7c-3cfe915ad4c3',
'unit_id': '0020c2d8',
}),
'now_playing': dict({
'controls': list([
'play_pause',
'track_next',
'track_previous',
]),
}),
'play_state': dict({
'metadata': dict({
'album': "Greatest Hits: God's Favorite Band",
'art_url': 'http://192.168.20.218:80/album-art-2d89?id=1:246',
'artist': 'Green Day',
'bitrate': None,
'class_name': 'md.track',
'codec': 'ALAC',
'duration': 232,
'encoding': None,
'lossless': True,
'mqa': 'none',
'name': 'AirPlay',
'radio_id': None,
'sample_format': None,
'sample_rate': 44100,
'signal': None,
'source': 'AIRPLAY',
'station': None,
'title': 'Holiday',
}),
'mode_repeat': 'off',
'mode_shuffle': 'off',
'position': 179,
'presettable': False,
'state': 'play',
}),
'presets_list': dict({
'end': 99,
'max_presets': 99,
'presets': list([
dict({
'airable_radio_id': 5317566146608442,
'art_url': 'https://static.airable.io/43/68/432868.png',
'is_playing': False,
'name': 'Chicago House Radio',
'preset_class': 'stream.radio',
'preset_id': 1,
'state': 'OK',
'type': 'Radio',
}),
dict({
'airable_radio_id': None,
'art_url': 'https://i.scdn.co/image/ab67616d0000b27325a5a1ed28871e8e53e62d59',
'is_playing': True,
'name': 'Spotify: Good & Evil',
'preset_class': 'stream.service.spotify',
'preset_id': 2,
'state': 'OK',
'type': 'Spotify',
}),
dict({
'airable_radio_id': None,
'art_url': None,
'is_playing': False,
'name': 'Unknown Preset Type',
'preset_class': 'stream.unknown',
'preset_id': 3,
'state': 'OK',
'type': 'Unknown',
}),
]),
'presettable': True,
'start': 1,
}), }),
'sources': list([ 'sources': list([
dict({ dict({
'__type': "<class 'aiostreammagic.models.Source'>", 'default_name': 'Internet Radio',
'repr': "Source(id='IR', name='Internet Radio', default_name='Internet Radio', nameable=False, ui_selectable=False, description='Internet Radio', description_locale='Internet Radio', preferred_order=9)", 'description': 'Internet Radio',
'description_locale': 'Internet Radio',
'id': 'IR',
'name': 'Internet Radio',
'nameable': False,
'preferred_order': 9,
'ui_selectable': False,
}), }),
dict({ dict({
'__type': "<class 'aiostreammagic.models.Source'>", 'default_name': 'USB Audio',
'repr': "Source(id='USB_AUDIO', name='USB Audio', default_name='USB Audio', nameable=True, ui_selectable=True, description='USB Audio', description_locale='USB Audio', preferred_order=1)", 'description': 'USB Audio',
'description_locale': 'USB Audio',
'id': 'USB_AUDIO',
'name': 'USB Audio',
'nameable': True,
'preferred_order': 1,
'ui_selectable': True,
}), }),
dict({ dict({
'__type': "<class 'aiostreammagic.models.Source'>", 'default_name': 'D2',
'repr': "Source(id='SPDIF_COAX', name='D2', default_name='D2', nameable=True, ui_selectable=False, description='Digital Co-axial', description_locale='Digital Co-axial', preferred_order=3)", 'description': 'Digital Co-axial',
'description_locale': 'Digital Co-axial',
'id': 'SPDIF_COAX',
'name': 'D2',
'nameable': True,
'preferred_order': 3,
'ui_selectable': False,
}), }),
dict({ dict({
'__type': "<class 'aiostreammagic.models.Source'>", 'default_name': 'D1',
'repr': "Source(id='SPDIF_TOSLINK', name='D1', default_name='D1', nameable=True, ui_selectable=False, description='Digital Optical', description_locale='Digital Optical', preferred_order=2)", 'description': 'Digital Optical',
'description_locale': 'Digital Optical',
'id': 'SPDIF_TOSLINK',
'name': 'D1',
'nameable': True,
'preferred_order': 2,
'ui_selectable': False,
}), }),
dict({ dict({
'__type': "<class 'aiostreammagic.models.Source'>", 'default_name': 'Media Library',
'repr': "Source(id='MEDIA_PLAYER', name='Media Library', default_name='Media Library', nameable=False, ui_selectable=True, description='Media Player', description_locale='Media Player', preferred_order=10)", 'description': 'Media Player',
'description_locale': 'Media Player',
'id': 'MEDIA_PLAYER',
'name': 'Media Library',
'nameable': False,
'preferred_order': 10,
'ui_selectable': True,
}), }),
dict({ dict({
'__type': "<class 'aiostreammagic.models.Source'>", 'default_name': 'AirPlay',
'repr': "Source(id='AIRPLAY', name='AirPlay', default_name='AirPlay', nameable=False, ui_selectable=True, description='AirPlay', description_locale='AirPlay', preferred_order=11)", 'description': 'AirPlay',
'description_locale': 'AirPlay',
'id': 'AIRPLAY',
'name': 'AirPlay',
'nameable': False,
'preferred_order': 11,
'ui_selectable': True,
}), }),
dict({ dict({
'__type': "<class 'aiostreammagic.models.Source'>", 'default_name': 'Spotify',
'repr': "Source(id='SPOTIFY', name='Spotify', default_name='Spotify', nameable=False, ui_selectable=True, description='Spotify', description_locale='Spotify', preferred_order=6)", 'description': 'Spotify',
'description_locale': 'Spotify',
'id': 'SPOTIFY',
'name': 'Spotify',
'nameable': False,
'preferred_order': 6,
'ui_selectable': True,
}), }),
dict({ dict({
'__type': "<class 'aiostreammagic.models.Source'>", 'default_name': 'Chromecast built-in',
'repr': "Source(id='CAST', name='Chromecast built-in', default_name='Chromecast built-in', nameable=False, ui_selectable=True, description='Chromecast built-in', description_locale='Chromecast built-in', preferred_order=8)", 'description': 'Chromecast built-in',
'description_locale': 'Chromecast built-in',
'id': 'CAST',
'name': 'Chromecast built-in',
'nameable': False,
'preferred_order': 8,
'ui_selectable': True,
}), }),
dict({ dict({
'__type': "<class 'aiostreammagic.models.Source'>", 'default_name': 'Roon Ready',
'repr': "Source(id='ROON', name='Roon Ready', default_name='Roon Ready', nameable=False, ui_selectable=False, description='Roon Ready', description_locale='Roon Ready', preferred_order=5)", 'description': 'Roon Ready',
'description_locale': 'Roon Ready',
'id': 'ROON',
'name': 'Roon Ready',
'nameable': False,
'preferred_order': 5,
'ui_selectable': False,
}), }),
dict({ dict({
'__type': "<class 'aiostreammagic.models.Source'>", 'default_name': 'TIDAL Connect',
'repr': "Source(id='TIDAL', name='TIDAL Connect', default_name='TIDAL Connect', nameable=False, ui_selectable=False, description='TIDAL', description_locale='TIDAL', preferred_order=7)", 'description': 'TIDAL',
'description_locale': 'TIDAL',
'id': 'TIDAL',
'name': 'TIDAL Connect',
'nameable': False,
'preferred_order': 7,
'ui_selectable': False,
}), }),
]), ]),
'update': dict({
'early_update': False,
'update_available': False,
'updating': False,
}),
}) })
# --- # ---