def coordinator(app, ieee): dev = Device(app, ieee, 0x0000) ep = dev.add_endpoint(1) ep.profile_id = 0x0104 ep.device_type = 0xBEEF ep.add_output_cluster(security.IasZone.cluster_id) return bellows.zigbee.application.EZSPCoordinator(app, ieee, 0x0000, dev)
def test_ctrl_neutral1(): """Test ctrl neutral 1 sends correct request.""" sec = 8 ieee = 0 nwk = 1234 data = b"\x01\x08\x01" cluster = 6 src_ep = 1 dst_ep = 2 app = zigpy.application.ControllerApplication() app.request = mock.MagicMock() app.get_sequence = mock.MagicMock(return_value=sec) rep = Device(app, ieee, nwk) rep.add_endpoint(1) rep.add_endpoint(2) dev = CtrlNeutral1(app, ieee, nwk, rep) dev[2].in_clusters[cluster].command(1) assert app.request.call_args == call(dev, 260, cluster, src_ep, dst_ep, sec, data, expect_reply=True)
def _device(new=False, zdo_init=False, nwk=t.uint16_t(0x1234)): from zigpy.device import Device, Status as DeviceStatus ieee, _ = t.EUI64.deserialize(b"\x08\x07\x06\x05\x04\x03\x02\x01") dev = Device(app, ieee, nwk) if new: dev.status = DeviceStatus.NEW elif zdo_init: dev.status = DeviceStatus.ZDO_INIT else: dev.status = DeviceStatus.ENDPOINTS_INIT return dev
def fake_get_device(device): if device.endpoints.get(1) is not None and device[1].profile_id == 65535: return FakeCustomDevice( device.application, make_ieee(1), 199, Device(device.application, make_ieee(1), 199), ) return device
def generate_device(manufacturer: str, model: str) -> Optional[Device]: """Generate device from quirks. Should be called earlier: zhaquirks.setup() Or direct import: from zhaquirks.xiaomi.mija.sensor_switch import MijaButton Used like a Cluster: hdr, value = device.deserialize(<endpoint_id>, <cluster_id>, data) """ quirks = zigpy.quirks.get_quirk_list(manufacturer, model) if not quirks: return None device = Device(None, None, 0) device.manufacturer = manufacturer device.model = model quirk: zigpy.quirks.CustomDevice = quirks[0] if SIG_ENDPOINTS in quirk.replacement: for endpoint_id in quirk.replacement[SIG_ENDPOINTS].keys(): device.add_endpoint(endpoint_id) return quirks[0](None, None, 0, device)
def mock_get_device(*args, **kwargs): dev = Device(app, mock.sentinel.ieee, mock.sentinel.nwk) dev.node_desc = mock.MagicMock() dev.node_desc.is_end_device = is_an_end_dev return dev