Add update of model and version for nibe (#83347)

This commit is contained in:
Joakim Plate 2022-12-06 20:20:55 +01:00 committed by GitHub
parent 8d1a70391e
commit 46669a1704
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -11,7 +11,7 @@ from typing import Any, Generic, TypeVar
from nibe.coil import Coil from nibe.coil import Coil
from nibe.connection import Connection from nibe.connection import Connection
from nibe.connection.modbus import Modbus from nibe.connection.modbus import Modbus
from nibe.connection.nibegw import NibeGW from nibe.connection.nibegw import NibeGW, ProductInfo
from nibe.exceptions import CoilNotFoundException, CoilReadException from nibe.exceptions import CoilNotFoundException, CoilReadException
from nibe.heatpump import HeatPump, Model, Series from nibe.heatpump import HeatPump, Model, Series
@ -99,14 +99,25 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
data[entry.entry_id] = coordinator data[entry.entry_id] = coordinator
reg = dr.async_get(hass) reg = dr.async_get(hass)
reg.async_get_or_create( device_entry = reg.async_get_or_create(
config_entry_id=entry.entry_id, config_entry_id=entry.entry_id,
identifiers={(DOMAIN, entry.unique_id or entry.entry_id)}, identifiers={(DOMAIN, entry.unique_id or entry.entry_id)},
manufacturer="NIBE Energy Systems", manufacturer="NIBE Energy Systems",
model=heatpump.model.name,
name=heatpump.model.name, name=heatpump.model.name,
) )
def _on_product_info(product_info: ProductInfo):
reg.async_update_device(
device_id=device_entry.id,
model=product_info.model,
sw_version=str(product_info.firmware_version),
)
if isinstance(connection, NibeGW):
connection.subscribe(connection.PRODUCT_INFO_EVENT, _on_product_info)
else:
reg.async_update_device(device_id=device_entry.id, model=heatpump.model.name)
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
# Trigger a refresh again now that all platforms have registered # Trigger a refresh again now that all platforms have registered