Files
homeassistant_config/config/custom_components/ecoflow_cloud/diagnostics.py
2024-05-31 13:07:35 +02:00

31 lines
1018 B
Python

from datetime import timedelta
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from . import DOMAIN
from .mqtt.ecoflow_mqtt import EcoflowMQTTClient
def _to_serializable(x):
t = type(x)
if t is dict:
x = {y: _to_serializable(x[y]) for y in x}
if t is timedelta:
x = x.__str__()
return x
async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: ConfigEntry):
client: EcoflowMQTTClient = hass.data[DOMAIN][entry.entry_id]
values = {
'device': client.device_type,
'params': dict(sorted(client.data.params.items())),
'set': [dict(sorted(k.items())) for k in client.data.set],
'set_reply': [dict(sorted(k.items())) for k in client.data.set_reply],
'get': [dict(sorted(k.items())) for k in client.data.get],
'get_reply': [dict(sorted(k.items())) for k in client.data.get_reply],
'raw_data': client.data.raw_data,
}
return values