Add diagnostics platform to airgradient (#126886)
parent
2749b1f057
commit
ec66c7e534
|
@ -0,0 +1,18 @@
|
||||||
|
"""Diagnostics support for Airgradient."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from dataclasses import asdict
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from homeassistant.core import HomeAssistant
|
||||||
|
|
||||||
|
from . import AirGradientConfigEntry
|
||||||
|
|
||||||
|
|
||||||
|
async def async_get_config_entry_diagnostics(
|
||||||
|
hass: HomeAssistant, entry: AirGradientConfigEntry
|
||||||
|
) -> dict[str, Any]:
|
||||||
|
"""Return diagnostics for a config entry."""
|
||||||
|
|
||||||
|
return asdict(entry.runtime_data.data)
|
|
@ -0,0 +1,42 @@
|
||||||
|
# serializer version: 1
|
||||||
|
# name: test_diagnostics_polling_instance
|
||||||
|
dict({
|
||||||
|
'config': dict({
|
||||||
|
'co2_automatic_baseline_calibration_days': 8,
|
||||||
|
'configuration_control': 'local',
|
||||||
|
'country': 'DE',
|
||||||
|
'display_brightness': 0,
|
||||||
|
'led_bar_brightness': 100,
|
||||||
|
'led_bar_mode': 'co2',
|
||||||
|
'nox_learning_offset': 12,
|
||||||
|
'pm_standard': 'ugm3',
|
||||||
|
'post_data_to_airgradient': True,
|
||||||
|
'temperature_unit': 'c',
|
||||||
|
'tvoc_learning_offset': 12,
|
||||||
|
}),
|
||||||
|
'measures': dict({
|
||||||
|
'ambient_temperature': 22.17,
|
||||||
|
'boot_time': 28,
|
||||||
|
'compensated_ambient_temperature': 22.17,
|
||||||
|
'compensated_pm02': None,
|
||||||
|
'compensated_relative_humidity': 47.0,
|
||||||
|
'firmware_version': '3.1.1',
|
||||||
|
'model': 'I-9PSL',
|
||||||
|
'nitrogen_index': 1,
|
||||||
|
'pm003_count': 270,
|
||||||
|
'pm01': 22,
|
||||||
|
'pm02': 34,
|
||||||
|
'pm10': 41,
|
||||||
|
'raw_ambient_temperature': 27.96,
|
||||||
|
'raw_nitrogen': 16931,
|
||||||
|
'raw_pm02': 34,
|
||||||
|
'raw_relative_humidity': 48.0,
|
||||||
|
'raw_total_volatile_organic_component': 31792,
|
||||||
|
'rco2': 778,
|
||||||
|
'relative_humidity': 47.0,
|
||||||
|
'serial_number': '84fce612f5b8',
|
||||||
|
'signal_strength': -52,
|
||||||
|
'total_volatile_organic_component_index': 99,
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
# ---
|
|
@ -0,0 +1,29 @@
|
||||||
|
"""Tests for the diagnostics data provided by the AirGradient integration."""
|
||||||
|
|
||||||
|
from unittest.mock import AsyncMock
|
||||||
|
|
||||||
|
from syrupy import SnapshotAssertion
|
||||||
|
|
||||||
|
from homeassistant.core import HomeAssistant
|
||||||
|
|
||||||
|
from . import setup_integration
|
||||||
|
|
||||||
|
from tests.common import MockConfigEntry
|
||||||
|
from tests.components.diagnostics import get_diagnostics_for_config_entry
|
||||||
|
from tests.typing import ClientSessionGenerator
|
||||||
|
|
||||||
|
|
||||||
|
async def test_diagnostics_polling_instance(
|
||||||
|
hass: HomeAssistant,
|
||||||
|
hass_client: ClientSessionGenerator,
|
||||||
|
mock_airgradient_client: AsyncMock,
|
||||||
|
mock_config_entry: MockConfigEntry,
|
||||||
|
snapshot: SnapshotAssertion,
|
||||||
|
) -> None:
|
||||||
|
"""Test diagnostics."""
|
||||||
|
await setup_integration(hass, mock_config_entry)
|
||||||
|
|
||||||
|
assert (
|
||||||
|
await get_diagnostics_for_config_entry(hass, hass_client, mock_config_entry)
|
||||||
|
== snapshot
|
||||||
|
)
|
Loading…
Reference in New Issue