Пример #1
0
	def get_payload(self):
		data = super(SetProgramMessage, self).get_payload()
		data += bytearray([py_day_to_cube_day(self.weekday)])

		# the cube happily accepts less than 13 * 2 bytes for the schedules on a day
		# and will replace the the rest with "low temperature till midnight" schedules
		for schedule in self.program:
			result = pack_temp_and_time(schedule.temperature, schedule.end_minutes)
			rev_temp, rev_minutes = unpack_temp_and_time(result)
			#print("{0}°C, {1} results in {2:2X} {3:2X} ({2:08b} {3:08b}), revd: {4}°C, {5} minutes ({6} h)".format(schedule.temperature, schedule.end_minutes, result[0], result[1], rev_temp, rev_minutes, rev_minutes / 60.0))
			data += result

		self.dump_bytes(data, "SetProgramMessage payload")

		return data
Пример #2
0
    def get_payload(self):
        data = super(SetProgramMessage, self).get_payload()
        data += bytearray([py_day_to_cube_day(self.weekday)])

        # the cube happily accepts less than 13 * 2 bytes for the schedules on a day
        # and will replace the the rest with "low temperature till midnight" schedules
        for schedule in self.program:
            result = pack_temp_and_time(schedule.temperature, schedule.end_minutes)
            rev_temp, rev_minutes = unpack_temp_and_time(result)
            #print("{0}°C, {1} results in {2:2X} {3:2X} ({2:08b} {3:08b}), revd: {4}°C, {5} minutes ({6} h)".format(schedule.temperature, schedule.end_minutes, result[0], result[1], rev_temp, rev_minutes, rev_minutes / 60.0))
            data += result

        self.dump_bytes(data, "SetProgramMessage payload")

        return data
Пример #3
0
 def test_pack_temp_and_time(self):
     self.assertEqual(pack_temp_and_time(16, datetime.time(6, 5)), bytearray([0x40, 0x49]))
     self.assertEqual(pack_temp_and_time(24, datetime.time(22, 0)), bytearray([0x61, 0x08]))