1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
"""Data model for a Z-Wave JS node."""
from __future__ import annotations
from typing import TypedDict
from ..device_class import DeviceClassDataType
from ..device_config import DeviceConfigDataType
from ..endpoint import EndpointDataType
from ..value import ValueDataType
from .statistics import NodeStatisticsDataType
class FoundNodeDataType(TypedDict, total=False):
"""Represent a found node data dict type."""
nodeId: int
deviceClass: DeviceClassDataType
supportedCCs: list[int]
controlledCCs: list[int]
class NodeDataType(TypedDict, total=False):
"""Represent a node data dict type."""
nodeId: int # required
index: int # required
deviceClass: DeviceClassDataType | None
installerIcon: int
userIcon: int
name: str
location: str
status: int # 0-4 # required
zwavePlusVersion: int
zwavePlusNodeType: int
zwavePlusRoleType: int
isListening: bool
isFrequentListening: bool | str
isRouting: bool
maxDataRate: int
supportedDataRates: list[int]
isSecure: bool
supportsBeaming: bool
supportsSecurity: bool
protocolVersion: int
firmwareVersion: str
manufacturerId: int
productId: int
productType: int
deviceConfig: DeviceConfigDataType
deviceDatabaseUrl: str
keepAwake: bool
ready: bool
label: str
endpoints: list[EndpointDataType]
endpointCountIsDynamic: bool
endpointsHaveIdenticalCapabilities: bool
individualEndpointCount: int
aggregatedEndpointCount: int
interviewAttempts: int
interviewStage: int | str | None
values: list[ValueDataType]
statistics: NodeStatisticsDataType
highestSecurityClass: int
isControllerNode: bool
lastSeen: str
defaultVolume: int | float | None
defaultTransitionDuration: int | float | None
protocol: int
sdkVersion: str | None
|