1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-22 03:49:36 +00:00
Files
core/homeassistant/components/xbox/diagnostics.py

57 lines
1.5 KiB
Python

"""Diagnostics platform for the Xbox integration."""
from __future__ import annotations
from typing import Any
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.core import HomeAssistant
from .coordinator import XboxConfigEntry
TO_REDACT = {
"bio",
"display_name",
"display_pic_raw",
"gamertag",
"linked_accounts",
"location",
"modern_gamertag_suffix",
"modern_gamertag",
"real_name",
"unique_modern_gamertag",
"xuid",
}
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, config_entry: XboxConfigEntry
) -> dict[str, Any]:
"""Return diagnostics for a config entry."""
coordinator = config_entry.runtime_data.status
consoles_coordinator = config_entry.runtime_data.consoles
presence = [
async_redact_data(person.model_dump(), TO_REDACT)
for person in coordinator.data.presence.values()
]
consoles_status = [
{
"status": console.status.model_dump(),
"app_details": (
console.app_details.model_dump() if console.app_details else None
),
}
for console in coordinator.data.consoles.values()
]
consoles_list = consoles_coordinator.data.model_dump()
title_info = [title.model_dump() for title in coordinator.data.title_info.values()]
return {
"consoles_status": consoles_status,
"consoles_list": consoles_list,
"presence": presence,
"title_info": title_info,
}