Example #1
0
    def canBeTurnedOffByAdjacentZone(self):
        '''
        Returns True if this light can be turned off when the light of an
        adjacent zone is turned on.
        A False value might be desired if movement in the adjacent zone causes
        the light to be turned off unexpectedly too often.

        :rtype: bool
        '''
        if self.noPrematureTurnOffTimeRange == None:
            return True
        elif time_utilities.isInTimeRange(self.noPrematureTurnOffTimeRange):
            return False
        else:
            return True
Example #2
0
    def turnOn(self, events):
        '''
        Turn on this light if it is not on yet.
        If the light is dimmable, and if the current time falls into the
        specified time ranges, it will be dimmed; otherwise it is turned on at
        100%. The associated timer item is also turned on.

        @override
        '''
        if OnOffType.ON != self.getItem().getState():
            if time_utilities.isInTimeRange(self.timeRanges):
                events.sendCommand(self.getItemName(), str(self.dimLevel))
            else:
                events.sendCommand(self.getItemName(), "100")

        self._handleCommonOnAction(events)
Example #3
0
    def _isInTimeRange(self, key, epochSeconds):
        if key not in self.timeRangeMap.keys():
            return False

        timeRangeString = self.timeRangeMap[key]
        return time_utilities.isInTimeRange(timeRangeString, epochSeconds)
 def testIsInTimeRange_singleRangeCurrentMinuteLessThanStartMinute_returnTrue(
         self):
     dt = datetime.datetime(2019, 3, 15, 22, 30)
     self.assertTrue(
         time_utilities.isInTimeRange('18:45 - 23:00',
                                      time.mktime(dt.timetuple())))
 def testIsInTimeRange_multipleRanges_returnTrue(self):
     dt = datetime.datetime(2018, 12, 25, 7, 58)
     self.assertTrue(
         time_utilities.isInTimeRange('4-5, 7- 8',
                                      time.mktime(dt.timetuple())))
 def testIsInTimeRange_negativeMultipleRanges_returnTrue(self):
     dt = datetime.datetime(2018, 12, 25, 10, 58)
     self.assertFalse(
         time_utilities.isInTimeRange('4-5, 8',
                                      time.mktime(dt.timetuple())))
 def testIsInTimeRange_wrapAround2_returnTrue(self):
     dt = datetime.datetime(2018, 12, 25, 18, 22)
     self.assertTrue(
         time_utilities.isInTimeRange('18 - 7',
                                      time.mktime(dt.timetuple())))
 def testIsInTimeRange_negativeWrapAround2_returnFalse(self):
     dt = datetime.datetime(2018, 12, 25, 20, 58)
     self.assertFalse(
         time_utilities.isInTimeRange('21 - 9',
                                      time.mktime(dt.timetuple())))
 def testIsInTimeRange_negativeNoEndMinute_returnFalse(self):
     dt = datetime.datetime(2018, 12, 25, 8, 58)
     self.assertFalse(
         time_utilities.isInTimeRange('7-8', time.mktime(dt.timetuple())))
 def testIsInTimeRange_noEndMinute_returnTrue(self):
     dt = datetime.datetime(2018, 12, 25, 7, 58)
     self.assertTrue(
         time_utilities.isInTimeRange('7 - 8', time.mktime(dt.timetuple())))
 def testIsInTimeRange_negativeLargerThanEndMinute_returnFalse(self):
     dt = datetime.datetime(2018, 12, 25, 7, 58)
     self.assertFalse(
         time_utilities.isInTimeRange('8 - 8:30',
                                      time.mktime(dt.timetuple())))
 def testIsInTimeRange_negativeSameHour_returnFalse(self):
     dt = datetime.datetime(2018, 12, 25, 7, 58)
     self.assertFalse(
         time_utilities.isInTimeRange('8', time.mktime(dt.timetuple())))
 def testIsInTimeRange_sameHour_returnTrue(self):
     dt = datetime.datetime(2018, 12, 25, 7, 58)
     self.assertTrue(
         time_utilities.isInTimeRange('7', time.mktime(dt.timetuple())))