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