core/homeassistant/components/fully_kiosk/diagnostics.py

66 lines
1.5 KiB
Python

"""Provides diagnostics for Fully Kiosk Browser."""
from __future__ import annotations
from typing import Any
from homeassistant.components.diagnostics.util import async_redact_data
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr
from .const import DOMAIN
DEVICE_INFO_TO_REDACT = {
"serial",
"Mac",
"ip6",
"hostname6",
"ip4",
"hostname4",
"deviceID",
"startUrl",
"currentPage",
"SSID",
"BSSID",
}
SETTINGS_TO_REDACT = {
"startURL",
"mqttBrokerPassword",
"mqttBrokerUsername",
"remoteAdminPassword",
"wifiKey",
"authPassword",
"authUsername",
"mqttBrokerUrl",
"kioskPin",
"wifiSSID",
"screensaverWallpaperURL",
"barcodeScanTargetUrl",
"launcherBgUrl",
"clientCaUrl",
"urlWhitelist",
"alarmSoundFileUrl",
"errorURL",
"actionBarIconUrl",
"kioskWifiPin",
"knoxApnConfig",
"injectJsCode",
"mdmApnConfig",
"mdmProxyConfig",
"wifiEnterpriseIdentity",
"sebExamKey",
"sebConfigKey",
"kioskPinEnc",
"remoteAdminPasswordEnc",
}
async def async_get_device_diagnostics(
hass: HomeAssistant, entry: ConfigEntry, device: dr.DeviceEntry
) -> dict[str, Any]:
"""Return device diagnostics."""
coordinator = hass.data[DOMAIN][entry.entry_id]
data = coordinator.data
data["settings"] = async_redact_data(data["settings"], SETTINGS_TO_REDACT)
return async_redact_data(data, DEVICE_INFO_TO_REDACT)