Add diagnostics to bsblan (#80957)
* add diagnostics to bsblan * add device info check firmware. * add test for diagnostics * Update tests/components/bsblan/test_diagnostics.py Co-authored-by: Aarni Koskela <akx@iki.fi> * add fixture for diagnostics test Co-authored-by: Aarni Koskela <akx@iki.fi>
This commit is contained in:
parent
797dc51bc5
commit
fb132f8a26
3 changed files with 156 additions and 0 deletions
22
homeassistant/components/bsblan/diagnostics.py
Normal file
22
homeassistant/components/bsblan/diagnostics.py
Normal file
|
@ -0,0 +1,22 @@
|
|||
"""Diagnostics support for BSBLan."""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
from . import HomeAssistantBSBLANData
|
||||
from .const import DOMAIN
|
||||
|
||||
|
||||
async def async_get_config_entry_diagnostics(
|
||||
hass: HomeAssistant, entry: ConfigEntry
|
||||
) -> dict[str, Any]:
|
||||
"""Return diagnostics for a config entry."""
|
||||
data: HomeAssistantBSBLANData = hass.data[DOMAIN][entry.entry_id]
|
||||
return {
|
||||
"info": data.info.dict(),
|
||||
"device": data.device.dict(),
|
||||
"state": data.coordinator.data.dict(),
|
||||
}
|
110
tests/components/bsblan/fixtures/diagnostics.json
Normal file
110
tests/components/bsblan/fixtures/diagnostics.json
Normal file
|
@ -0,0 +1,110 @@
|
|||
{
|
||||
"info": {
|
||||
"device_identification": {
|
||||
"name": "Gerte-Identifikation",
|
||||
"unit": "",
|
||||
"desc": "",
|
||||
"value": "RVS21.831F/127",
|
||||
"dataType": 7
|
||||
},
|
||||
"controller_family": {
|
||||
"name": "Device family",
|
||||
"unit": "",
|
||||
"desc": "",
|
||||
"value": "211",
|
||||
"dataType": 0
|
||||
},
|
||||
"controller_variant": {
|
||||
"name": "Device variant",
|
||||
"unit": "",
|
||||
"desc": "",
|
||||
"value": "127",
|
||||
"dataType": 0
|
||||
}
|
||||
},
|
||||
"device": {
|
||||
"name": "BSB-LAN",
|
||||
"version": "1.0.38-20200730234859",
|
||||
"MAC": "00:80:41:19:69:90",
|
||||
"uptime": 969402857
|
||||
},
|
||||
"state": {
|
||||
"hvac_mode": {
|
||||
"name": "Operating mode",
|
||||
"unit": "",
|
||||
"desc": "Komfort",
|
||||
"value": "heat",
|
||||
"dataType": 1
|
||||
},
|
||||
"hvac_mode2": {
|
||||
"name": "Operating mode",
|
||||
"unit": "",
|
||||
"desc": "Reduziert",
|
||||
"value": "2",
|
||||
"dataType": 1
|
||||
},
|
||||
"target_temperature": {
|
||||
"name": "Room temperature Comfort setpoint",
|
||||
"unit": "°C",
|
||||
"desc": "",
|
||||
"value": "18.5",
|
||||
"dataType": 0
|
||||
},
|
||||
"target_temperature_high": {
|
||||
"name": "Komfortsollwert Maximum",
|
||||
"unit": "°C",
|
||||
"desc": "",
|
||||
"value": "23.0",
|
||||
"dataType": 0
|
||||
},
|
||||
"target_temperature_low": {
|
||||
"name": "Room temp reduced setpoint",
|
||||
"unit": "°C",
|
||||
"desc": "",
|
||||
"value": "17.0",
|
||||
"dataType": 0
|
||||
},
|
||||
"min_temp": {
|
||||
"name": "Room temp frost protection setpoint",
|
||||
"unit": "°C",
|
||||
"desc": "",
|
||||
"value": "8.0",
|
||||
"dataType": 0
|
||||
},
|
||||
"max_temp": {
|
||||
"name": "Summer/winter changeover temp heat circuit 1",
|
||||
"unit": "°C",
|
||||
"desc": "",
|
||||
"value": "20.0",
|
||||
"dataType": 0
|
||||
},
|
||||
"hvac_action": {
|
||||
"name": "Status heating circuit 1",
|
||||
"unit": "",
|
||||
"desc": "Raumtemp\u2019begrenzung",
|
||||
"value": "122",
|
||||
"dataType": 1
|
||||
},
|
||||
"current_temperature": {
|
||||
"name": "Room temp 1 actual value",
|
||||
"unit": "°C",
|
||||
"desc": "",
|
||||
"value": "18.6",
|
||||
"dataType": 0
|
||||
},
|
||||
"room1_thermostat_mode": {
|
||||
"name": "Raumthermostat 1",
|
||||
"unit": "",
|
||||
"desc": "Kein Bedarf",
|
||||
"value": "0",
|
||||
"dataType": 1
|
||||
},
|
||||
"outside_temperature": {
|
||||
"name": "Outside temp sensor local",
|
||||
"unit": "°C",
|
||||
"desc": "",
|
||||
"value": "6.1",
|
||||
"dataType": 0
|
||||
}
|
||||
}
|
||||
}
|
24
tests/components/bsblan/test_diagnostics.py
Normal file
24
tests/components/bsblan/test_diagnostics.py
Normal file
|
@ -0,0 +1,24 @@
|
|||
"""Tests for the diagnostics data provided by the BSBLan integration."""
|
||||
import json
|
||||
|
||||
from aiohttp import ClientSession
|
||||
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
from tests.common import MockConfigEntry, load_fixture
|
||||
from tests.components.diagnostics import get_diagnostics_for_config_entry
|
||||
|
||||
|
||||
async def test_diagnostics(
|
||||
hass: HomeAssistant,
|
||||
hass_client: ClientSession,
|
||||
init_integration: MockConfigEntry,
|
||||
):
|
||||
"""Test diagnostics."""
|
||||
|
||||
diagnostics_fixture = json.loads(load_fixture("bsblan/diagnostics.json"))
|
||||
|
||||
assert (
|
||||
await get_diagnostics_for_config_entry(hass, hass_client, init_integration)
|
||||
== diagnostics_fixture
|
||||
)
|
Loading…
Add table
Reference in a new issue