async def send(self, response=False): """Send payload as telegram to KNX bus.""" telegram = Telegram() telegram.group_address = self.group_address telegram.telegramtype = TelegramType.GROUP_RESPONSE \ if response else TelegramType.GROUP_WRITE telegram.payload = self.payload await self.xknx.telegrams.put(telegram)
async def send(self, response=False): """Send payload as telegram to KNX bus.""" telegram = Telegram() # always use the first group address to send telegram.group_address = self.group_address[0] telegram.telegramtype = ( TelegramType.GROUP_RESPONSE if response else TelegramType.GROUP_WRITE ) telegram.payload = self.payload # print("telegram", telegram) await self.xknx.telegrams.put(telegram)
def test_process_temperature(self): """Test reading temperature expose sensor from bus.""" xknx = XKNX(loop=self.loop) expose_sensor = ExposeSensor(xknx, 'TestSensor', value_type='temperature', group_address='1/2/3') expose_sensor.sensor_value.payload = DPTArray((0x0c, 0x1a)) telegram = Telegram(GroupAddress('1/2/3')) telegram.telegramtype = TelegramType.GROUP_READ self.loop.run_until_complete( asyncio.Task(expose_sensor.process(telegram))) self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual( telegram, Telegram(GroupAddress('1/2/3'), TelegramType.GROUP_RESPONSE, payload=DPTArray((0x0c, 0x1a))))
def telegram(self): """Return telegram.""" telegram = Telegram() telegram.payload = self.payload telegram.group_address = self.dst_addr def resolve_telegram_type(cmd): """Return telegram type from APCI Command.""" if cmd == APCICommand.GROUP_WRITE: return TelegramType.GROUP_WRITE if cmd == APCICommand.GROUP_READ: return TelegramType.GROUP_READ if cmd == APCICommand.GROUP_RESPONSE: return TelegramType.GROUP_RESPONSE raise ConversionError("Telegram not implemented for {0}".format(self.cmd)) telegram.telegramtype = resolve_telegram_type(self.cmd) # TODO: Set telegram.direction [additional flag within KNXIP] return telegram
def test_process_temperature(self): """Test reading temperature expose sensor from bus.""" xknx = XKNX() expose_sensor = ExposeSensor(xknx, "TestSensor", value_type="temperature", group_address="1/2/3") expose_sensor.sensor_value.payload = DPTArray((0x0C, 0x1A)) telegram = Telegram(GroupAddress("1/2/3")) telegram.telegramtype = TelegramType.GROUP_READ self.loop.run_until_complete(expose_sensor.process(telegram)) self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual( telegram, Telegram( GroupAddress("1/2/3"), TelegramType.GROUP_RESPONSE, payload=DPTArray((0x0C, 0x1A)), ), )