Refactor Shelly wrapper to coordinator (#79628)

This commit is contained in:
Shay Levy 2022-10-05 15:39:58 +03:00 committed by GitHub
parent 4d3d22320f
commit 22c68b95bf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 336 additions and 321 deletions

View file

@ -6,8 +6,8 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME
from homeassistant.core import HomeAssistant
from . import BlockDeviceWrapper, RpcDeviceWrapper
from .const import BLOCK, DATA_CONFIG_ENTRY, DOMAIN, RPC
from .coordinator import ShellyBlockCoordinator, ShellyRpcCoordinator
TO_REDACT = {CONF_USERNAME, CONF_PASSWORD}
@ -21,21 +21,21 @@ async def async_get_config_entry_diagnostics(
device_settings: str | dict = "not initialized"
device_status: str | dict = "not initialized"
if BLOCK in data:
block_wrapper: BlockDeviceWrapper = data[BLOCK]
block_coordinator: ShellyBlockCoordinator = data[BLOCK]
device_info = {
"name": block_wrapper.name,
"model": block_wrapper.model,
"sw_version": block_wrapper.sw_version,
"name": block_coordinator.name,
"model": block_coordinator.model,
"sw_version": block_coordinator.sw_version,
}
if block_wrapper.device.initialized:
if block_coordinator.device.initialized:
device_settings = {
k: v
for k, v in block_wrapper.device.settings.items()
for k, v in block_coordinator.device.settings.items()
if k in ["cloud", "coiot"]
}
device_status = {
k: v
for k, v in block_wrapper.device.status.items()
for k, v in block_coordinator.device.status.items()
if k
in [
"update",
@ -51,19 +51,19 @@ async def async_get_config_entry_diagnostics(
]
}
else:
rpc_wrapper: RpcDeviceWrapper = data[RPC]
rpc_coordinator: ShellyRpcCoordinator = data[RPC]
device_info = {
"name": rpc_wrapper.name,
"model": rpc_wrapper.model,
"sw_version": rpc_wrapper.sw_version,
"name": rpc_coordinator.name,
"model": rpc_coordinator.model,
"sw_version": rpc_coordinator.sw_version,
}
if rpc_wrapper.device.initialized:
if rpc_coordinator.device.initialized:
device_settings = {
k: v for k, v in rpc_wrapper.device.config.items() if k in ["cloud"]
k: v for k, v in rpc_coordinator.device.config.items() if k in ["cloud"]
}
device_status = {
k: v
for k, v in rpc_wrapper.device.status.items()
for k, v in rpc_coordinator.device.status.items()
if k in ["sys", "wifi"]
}