Add value notification events to zwave_js integration (#45814)

This commit is contained in:
Marcel van der Veldt 2021-02-01 23:47:58 +01:00 committed by GitHub
parent 8222eb5e3e
commit b4559a172c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 199 additions and 14 deletions

View file

@ -1,9 +1,10 @@
"""Generic Z-Wave Entity Class."""
import logging
from typing import Optional, Union
from typing import Optional, Tuple, Union
from zwave_js_server.client import Client as ZwaveClient
from zwave_js_server.model.node import Node as ZwaveNode
from zwave_js_server.model.value import Value as ZwaveValue, get_value_id
from homeassistant.config_entries import ConfigEntry
@ -19,6 +20,12 @@ LOGGER = logging.getLogger(__name__)
EVENT_VALUE_UPDATED = "value updated"
@callback
def get_device_id(client: ZwaveClient, node: ZwaveNode) -> Tuple[str, str]:
"""Get device registry identifier for Z-Wave node."""
return (DOMAIN, f"{client.driver.controller.home_id}-{node.node_id}")
class ZWaveBaseEntity(Entity):
"""Generic Entity Class for a Z-Wave Device."""
@ -60,12 +67,7 @@ class ZWaveBaseEntity(Entity):
"""Return device information for the device registry."""
# device is precreated in main handler
return {
"identifiers": {
(
DOMAIN,
f"{self.client.driver.controller.home_id}-{self.info.node.node_id}",
)
},
"identifiers": {get_device_id(self.client, self.info.node)},
}
@property