Exemplo n.º 1
0
    def test_stop(self):
        """Test stopping cover."""
        xknx = XKNX()
        cover_short_stop = Cover(
            xknx,
            "TestCover",
            group_address_long="1/2/1",
            group_address_short="1/2/2",
            group_address_position="1/2/3",
            group_address_position_state="1/2/4",
        )
        self.loop.run_until_complete(cover_short_stop.stop())
        self.assertEqual(xknx.telegrams.qsize(), 1)
        telegram = xknx.telegrams.get_nowait()
        self.assertEqual(telegram,
                         Telegram(GroupAddress("1/2/2"), payload=DPTBinary(1)))

        cover_manual_stop = Cover(
            xknx,
            "TestCover",
            group_address_long="1/2/1",
            group_address_short="1/2/2",
            group_address_stop="1/2/0",
            group_address_position="1/2/3",
            group_address_position_state="1/2/4",
        )
        self.loop.run_until_complete(cover_manual_stop.stop())
        self.assertEqual(xknx.telegrams.qsize(), 1)
        telegram = xknx.telegrams.get_nowait()
        self.assertEqual(telegram,
                         Telegram(GroupAddress("1/2/0"), payload=DPTBinary(1)))
Exemplo n.º 2
0
    def test_stop(self):
        """Test stopping cover."""
        xknx = XKNX(loop=self.loop)
        cover_short_stop = Cover(xknx,
                                 'TestCover',
                                 group_address_long='1/2/1',
                                 group_address_short='1/2/2',
                                 group_address_position='1/2/3',
                                 group_address_position_state='1/2/4')
        self.loop.run_until_complete(asyncio.Task(cover_short_stop.stop()))
        self.assertEqual(xknx.telegrams.qsize(), 1)
        telegram = xknx.telegrams.get_nowait()
        self.assertEqual(telegram,
                         Telegram(GroupAddress('1/2/2'), payload=DPTBinary(1)))

        cover_manual_stop = Cover(xknx,
                                  'TestCover',
                                  group_address_long='1/2/1',
                                  group_address_short='1/2/2',
                                  group_address_stop='1/2/0',
                                  group_address_position='1/2/3',
                                  group_address_position_state='1/2/4')
        self.loop.run_until_complete(asyncio.Task(cover_manual_stop.stop()))
        self.assertEqual(xknx.telegrams.qsize(), 1)
        telegram = xknx.telegrams.get_nowait()
        self.assertEqual(telegram,
                         Telegram(GroupAddress('1/2/0'), payload=DPTBinary(1)))
Exemplo n.º 3
0
 def test_stop(self):
     """Test stopping cover."""
     xknx = XKNX(loop=self.loop)
     cover = Cover(
         xknx, 'TestCover',
         group_address_long='1/2/1',
         group_address_short='1/2/2',
         group_address_position='1/2/3',
         group_address_position_state='1/2/4')
     self.loop.run_until_complete(asyncio.Task(cover.stop()))
     self.assertEqual(xknx.telegrams.qsize(), 1)
     telegram = xknx.telegrams.get_nowait()
     self.assertEqual(telegram,
                      Telegram(GroupAddress('1/2/2'), payload=DPTBinary(0)))
Exemplo n.º 4
0
 def test_supports_stop_false(self):
     """Test support_position_true."""
     xknx = XKNX(loop=self.loop)
     cover = Cover(xknx,
                   'Children.Venetian',
                   group_address_long='1/4/14',
                   group_address_position='1/4/16',
                   group_address_angle='1/4/18')
     self.assertFalse(cover.supports_stop)
     with patch('logging.Logger.warning') as mock_warn:
         self.loop.run_until_complete(asyncio.Task(cover.stop()))
         self.assertEqual(xknx.telegrams.qsize(), 0)
         mock_warn.assert_called_with('Stop not supported for device %s',
                                      'Children.Venetian')
Exemplo n.º 5
0
 def test_supports_stop_false(self):
     """Test support_position_true."""
     xknx = XKNX()
     cover = Cover(
         xknx,
         "Children.Venetian",
         group_address_long="1/4/14",
         group_address_position="1/4/16",
         group_address_angle="1/4/18",
     )
     self.assertFalse(cover.supports_stop)
     with patch("logging.Logger.warning") as mock_warn:
         self.loop.run_until_complete(cover.stop())
         self.assertEqual(xknx.telegrams.qsize(), 0)
         mock_warn.assert_called_with("Stop not supported for device %s",
                                      "Children.Venetian")
Exemplo n.º 6
0
    def test_is_traveling(self):
        """Test moving cover to absolute position."""
        xknx = XKNX()
        cover = Cover(
            xknx,
            "TestCover",
            group_address_long="1/2/1",
            group_address_stop="1/2/2",
            group_address_position="1/2/3",
            group_address_position_state="1/2/4",
            travel_time_down=10,
            travel_time_up=10,
        )
        with patch("time.time") as mock_time:
            mock_time.return_value = 1517000000.0
            self.assertFalse(cover.is_traveling())
            self.assertFalse(cover.is_opening())
            self.assertFalse(cover.is_closing())
            self.assertTrue(cover.position_reached())
            # we start with state open covers (up)
            cover.travelcalculator.set_position(0)
            self.loop.run_until_complete(cover.set_down())
            self.assertTrue(cover.is_traveling())
            self.assertTrue(cover.is_open())
            self.assertFalse(cover.is_closed())
            self.assertFalse(cover.is_opening())
            self.assertTrue(cover.is_closing())

            mock_time.return_value = 1517000005.0  # 5 Seconds, half way
            self.assertFalse(cover.position_reached())
            self.assertTrue(cover.is_traveling())
            self.assertFalse(cover.is_open())
            self.assertFalse(cover.is_closed())
            self.assertFalse(cover.is_opening())
            self.assertTrue(cover.is_closing())

            mock_time.return_value = 1517000010.0  # 10 Seconds, fully closed
            self.assertTrue(cover.position_reached())
            self.assertFalse(cover.is_traveling())
            self.assertFalse(cover.is_open())
            self.assertTrue(cover.is_closed())
            self.assertFalse(cover.is_opening())
            self.assertFalse(cover.is_closing())
            # up again
            self.loop.run_until_complete(cover.set_up())
            self.assertFalse(cover.position_reached())
            self.assertTrue(cover.is_traveling())
            self.assertFalse(cover.is_open())
            self.assertTrue(cover.is_closed())
            self.assertTrue(cover.is_opening())
            self.assertFalse(cover.is_closing())

            mock_time.return_value = 1517000015.0  # 15 Seconds, half way
            self.assertFalse(cover.position_reached())
            self.assertTrue(cover.is_traveling())
            self.assertFalse(cover.is_open())
            self.assertFalse(cover.is_closed())
            self.assertTrue(cover.is_opening())
            self.assertFalse(cover.is_closing())

            mock_time.return_value = 1517000016.0  # 16 Seconds, manual stop
            self.loop.run_until_complete(cover.stop())
            self.assertTrue(cover.position_reached())
            self.assertFalse(cover.is_traveling())
            self.assertFalse(cover.is_open())
            self.assertFalse(cover.is_closed())
            self.assertFalse(cover.is_opening())
            self.assertFalse(cover.is_closing())