async def test_power(self):
        value = True
        console_device = Device.init_from_file('Console', '4')
        console_task = await wait_run_device(console_device)

        bridge_device = Device.init_from_file('SerialBridgeToRadio', '3')
        bridge_task = await wait_run_device(bridge_device)

        self.config['/oic/con']['bridge']['anchor'] = bridge_device.link[
            'anchor']
        self.config['/oic/con']['bridge']['eps'] = bridge_device.link['eps']
        self.device = Device.init_from_config(self.config,
                                              path=self.config_path)
        device_task = await wait_run_device(self.device)

        # подписываемся на все данные приятые из эфира
        # message = OcfRequest(op='retrieve', fr=console_device.link, to=dict(href='/radio_msg'), obs=0)
        link = bridge_device.get_link('/radio_msg')
        await console_device.observe(link, console_device.on_update_console)
        message = OcfRequest(op='update',
                             to=dict(href='/curtain'),
                             cn=dict(openLevel=100))
        # while True:
        result = await self.device.on_post_request(message)
        # await asyncio.sleep(5)
        pass

        await asyncio.sleep(999)
 async def test_update_open_level(self):
     bridge_device = Device.init_from_file('SerialBridgeToRadio', '3')
     bridge_task = await wait_run_device(bridge_device)
     self.config['/oic/con']['bridge']['anchor'] = bridge_device.link[
         'anchor']
     self.config['/oic/con']['bridge']['eps'] = bridge_device.link['eps']
     self.device = Device.init_from_config(self.config,
                                           path=self.config_path)
     device_task = await wait_run_device(self.device)
     message = OcfRequest(op='update',
                          to=dict(href='/curtain'),
                          cn=dict(openLevel=30))
     result = await self.device.on_post_request(message)
     await asyncio.sleep(100)
     bridge_task.cancel()
     device_task.cancel()
 def test_set_light_baseline(self):
     self.device = Device.init_from_config(self.config)
     data = dict(value=True, brightness=100)
     message = OcfRequest(
         **dict(operation='update', uri_path=['light'], data=data))
     self.device.on_init()
     result = self.device.on_post_request(message)
     self.assertDictEqual(result, data)
    def test_get_light_brightness(self):
        self.device = Device.init_from_config(
            None, dict(handler=Device.__name__, data=self.config))
        message = OcfRequest(**dict(operation='get',
                                    uri='/light',
                                    query={'rt': ['oic.r.light.brightness']}))
        self.device.on_get_request(message)

        # self.devices.run()
        pass
 async def test_find_devices(self):
     modbus_device = ModbusDevice.init_from_config(self.modbus_config,
                                                   path=self.config_path)
     mobus_task = await wait_run_device(modbus_device)
     self.config['/oic/con']['master'] = modbus_device.link
     self.device = Device.init_from_config(self.config,
                                           path=self.config_path)
     device_task = await wait_run_device(self.device)
     res = await self.device.action_find_devices()
     pass
 def test_signal_decode_encode_dooya(self):
     # data = 'L8000;H4724;L1433;H375;L695;H735;L348;H370;L703;H726;L353;H718;L366;H352;L717;H720;L359;H716;L360;H714;L363;H353;L718;H716;L366;H354;L713;H720;L361;H714;L368;H707;L364;H710;L369;H706;L370;H348;L719;H715;L368;H351;L718;H716;L363;H713;L364;H709;L369;H708;L367;H350;L720;H359;L720;H357;L712;H366;L714;H717;L361;H357;L712;H366;L711;H719;L358;H362;L715;H717;L362;H356;L711;H722;L360;H357;L715;H720;L363;H356;L713;H720;'
     data = 'L8000;H4730;L1433;H355;L710;H710;L355;H355;L710;H710;L355;H710;L355;H355;L710;H710;L355;H710;L355;H710;L355;H355;L710;H710;L355;H355;L710;H710;L355;H710;L355;H710;L355;H710;L355;H710;L355;H355;L710;H710;L355;H355;L710;H710;L355;H710;L355;H710;L355;H710;L355;H355;L710;H355;L710;H355;L710;H355;L710;H710;L355;H355;L710;H355;L710;H710;L355;H355;L710;H355;L710;H355;L710;H710;L355;H355;L710;H355;L710;H355;L710;H710;L2000;'
     signal = BinarySignal()
     data = signal.decode(data)
     res = DooyaCurtain433.detect_signal(signal)
     self.assertEqual(res.n, 'Dooya DC1651')
     signal2 = BinarySignal(di=res.di, cmd=res.cmd, n=res.n)
     raw = signal2.encode(DooyaCurtain433.signature)
     self.assertEqual(signal2.data, data)
     pass
 async def test_update_radio_msg(self):
     # raw = 'L8000;H4589;L1412;H353;L706;H706;L353;H353;L706;H706;L353;H706;L353;H353;L706;H706;L353;H706;L353;H706;L353;H353;L706;H706;L353;H706;L353;H706;L353;H706;L353;H706;L353;H706;L353;H706;L353;H353;L706;H706;L353;H353;L706;H706;L353;H706;L353;H706;L353;H706;L353;H353;L706;H353;L706;H353;L706;H353;L706;H706;L353;H353;L706;H353;L706;H706;L353;H353;L706;H353;L706;H353;L706;H706;L353;H353;L706;H353;L706;H353;L706;H706;L20000;'
     raw = 'L8000;H4730;L1433;H355;L710;H710;L355;H355;L710;H710;L355;H710;L355;H355;L710;H710;L355;H710;L355;H710;L355;H355;L710;H710;L355;H355;L710;H710;L355;H710;L355;H710;L355;H710;L355;H710;L355;H355;L710;H710;L355;H355;L710;H710;L355;H710;L355;H710;L355;H710;L355;H355;L710;H355;L710;H355;L710;H355;L710;H710;L355;H355;L710;H355;L710;H710;L355;H355;L710;H355;L710;H355;L710;H710;L355;H355;L710;H355;L710;H355;L710;H710;L2000;'
     cn = dict(raw=raw)
     bridge_device = Device.init_from_file('SerialBridgeToRadio', '3')
     bridge_task = await wait_run_device(bridge_device)
     message = OcfRequest(op='update', to=dict(href='/radio_msg'), cn=cn)
     result = await bridge_device.on_post_request(message)
     # self.assertEqual(result['openLevel'], 2)
     bridge_task.cancel()
     pass
 async def test_is_device(self):
     brightness = 60
     modbus_device = ModbusDevice.init_from_config(self.modbus_config,
                                                   path=self.config_path)
     mobus_task = await wait_run_device(modbus_device)
     self.config['/oic/con']['master'] = modbus_device.link
     self.device = Device.init_from_config(self.config,
                                           path=self.config_path)
     device_task = await wait_run_device(self.device)
     res = await self.device.modbus.is_device()
     self.assertTrue(res)
     pass
 async def test_update_switch(self):
     value = False
     modbus_device = ModbusDevice.init_from_config(self.modbus_config,
                                                   path=self.config_path)
     modbus_task = await wait_run_device(modbus_device)
     self.config['/oic/con']['master'] = modbus_device.link
     self.device = Device.init_from_config(self.config,
                                           path=self.config_path)
     device_task = await wait_run_device(self.device)
     message = OcfRequest(op='update',
                          to=dict(href='/power'),
                          cn=dict(value=value))
     result = await self.device.on_post_request(message)
     self.assertEqual(result['value'], value)
     modbus_task.cancel()
     device_task.cancel()
     pass
 def test_get_light1_baseline(self):
     self.device = Device.init_from_config(
         None, dict(handler=Device.__name__, data=self.config))
     message = OcfRequest(**dict(operation='get', uri='/light'))
     result = self.device.on_get_request(message)
     pass