From 7c1eabadfa5b4f178f1cefc610629213a8735393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Mon, 24 Jan 2022 14:15:05 +0100 Subject: [PATCH] Add diagnostics to Nanoleaf (#64835) --- .coveragerc | 1 + .../components/nanoleaf/diagnostics.py | 45 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 homeassistant/components/nanoleaf/diagnostics.py diff --git a/.coveragerc b/.coveragerc index 3c94f89e09d..72a40e47ff9 100644 --- a/.coveragerc +++ b/.coveragerc @@ -716,6 +716,7 @@ omit = homeassistant/components/nad/media_player.py homeassistant/components/nanoleaf/__init__.py homeassistant/components/nanoleaf/button.py + homeassistant/components/nanoleaf/diagnostics.py homeassistant/components/nanoleaf/entity.py homeassistant/components/nanoleaf/light.py homeassistant/components/neato/__init__.py diff --git a/homeassistant/components/nanoleaf/diagnostics.py b/homeassistant/components/nanoleaf/diagnostics.py new file mode 100644 index 00000000000..61d7abea989 --- /dev/null +++ b/homeassistant/components/nanoleaf/diagnostics.py @@ -0,0 +1,45 @@ +"""Diagnostics support for Nanoleaf.""" +from __future__ import annotations + +from aionanoleaf import Nanoleaf + +from homeassistant.components.diagnostics import async_redact_data +from homeassistant.config_entries import ConfigEntry +from homeassistant.const import CONF_TOKEN +from homeassistant.core import HomeAssistant + +from .const import DOMAIN + + +async def async_get_config_entry_diagnostics( + hass: HomeAssistant, + config_entry: ConfigEntry, +) -> dict: + """Return diagnostics for a config entry.""" + device: Nanoleaf = hass.data[DOMAIN][config_entry.entry_id].device + + return { + "info": async_redact_data(config_entry.as_dict(), (CONF_TOKEN, "title")), + "data": { + "brightness_max": device.brightness_max, + "brightness_min": device.brightness_min, + "brightness": device.brightness, + "color_mode": device.color_mode, + "color_temperature_max": device.color_temperature_max, + "color_temperature_min": device.color_temperature_min, + "color_temperature": device.color_temperature, + "effect": device.effect, + "effects_list": device.effects_list, + "firmware_version": device.firmware_version, + "hue_max": device.hue_max, + "hue_min": device.hue_min, + "hue": device.hue, + "is_on": device.is_on, + "manufacturer": device.manufacturer, + "port": device.port, + "saturation_max": device.saturation_max, + "saturation_min": device.saturation_min, + "saturation": device.saturation, + "serial_no": device.serial_no, + }, + }