Esempio n. 1
0
 def test_expose_sensor(self):
     """Test string representation of expose sensor object."""
     xknx = XKNX()
     sensor = ExposeSensor(xknx,
                           name="MeinSensor",
                           group_address="1/2/3",
                           value_type="percent")
     self.assertEqual(
         str(sensor),
         '<ExposeSensor name="MeinSensor" sensor="GroupAddress("1/2/3")/None/None/None" value="None" unit="%"/>',
     )
     self.loop.run_until_complete(sensor.set(25))
     self.loop.run_until_complete(
         sensor.process(xknx.telegrams.get_nowait()))
     self.assertEqual(
         str(sensor),
         '<ExposeSensor name="MeinSensor" sensor="GroupAddress("1/2/3")/None/<DPTArray value="[0x40]" />/25" value="25" unit="%"/>',
     )
Esempio n. 2
0
    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"), payload=GroupValueRead())
        self.loop.run_until_complete(expose_sensor.process(telegram))
        self.assertEqual(xknx.telegrams.qsize(), 1)
        telegram = xknx.telegrams.get_nowait()
        self.assertEqual(
            telegram,
            Telegram(
                destination_address=GroupAddress("1/2/3"),
                payload=GroupValueResponse(DPTArray((0x0C, 0x1A))),
            ),
        )
Esempio n. 3
0
    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))))
Esempio n. 4
0
    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))))
Esempio n. 5
0
    def test_process_percent(self):
        """Test reading percent expose sensor from bus."""
        xknx = XKNX()
        expose_sensor = ExposeSensor(xknx,
                                     "TestSensor",
                                     value_type="percent",
                                     group_address="1/2/3")
        expose_sensor.sensor_value.payload = DPTArray((0x40, ))

        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((0x40, )),
            ),
        )