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