• Administrator
  •  
    Support Ukraine
    If you experience any problems with the forum (it is not visible, there is no way to post messages, or some functionality does not work), please let us know. If you have problems with registration or you did not receive confirmation letter, let us know and we will activate your account manually.
    If you get an "The submitted form was invalid. Try submitting again" error, delete cookies, then try again.
     

Complete Json Syntax Guide for GTR

This forum is designed to discuss and develop tools creating watch faces.

Moderators: asoo, lvpokka, Internal error, Watchmens

Forum rules
All communication in this branch should only be in English.
To discuss tools that are not in this section, use the “Watchfaces tools (discussion)” forum.
Post Reply
hikashi
WF maker
Posts: 16
Joined: 18 Nov 2019, 14:48
Has thanked: 1 time
Been thanked: 14 times
Contact:

Complete Json Syntax Guide for GTR

Post by hikashi »

This guide is meant for the py amazfit tool developed by dpeddi and co. Download the py_amazfit_tool fix array branch here:https://github.com/amazfitbip/py_amazfi ... /fix_array

Thanks dpeddi, loly and gthalpo for the continuous development on the py amazfit tool. You guys are amazing!

The syntax will be updated time to time due to the changes and update in the commit.

Some syntax has not been tested and may not work.

BACKGROUND

Code: Select all

  "Background": {
    "Image": {	#Image
      "X": 0,
      "Y": 0,
      "ImageIndex": 0
    },
    "Preview": {
      "X": 0,
      "Y": 0,
      "ImageIndex": 1
    }
    "FrontImage": {    #not much of a use. You can delete this. 
    	"X": 0,
      	"Y": 0,
      "ImageIndex": 2
  },
DIGITAL TIME

Code: Select all

"Time": {
	"Hours": {
		"Tens": {				#ImageSet
			"X": 1,			#coordinateX
			"Y": 2,			#coordinateY
			"ImageIndex": 3,	#Starting Index number from the image number "0"
			"ImagesCount" : 10	#0 to 9
			},
		"Ones": {				#ImageSet
			"X": 1,			#coordinateX
			"Y": 2,			#coordinateY
			"ImageIndex": 3,	#Starting Index number from the image number "0"
			"ImagesCount" : 10	#0 to 9
			},
			},
			
	"Minutes": {
		"Tens": {				#ImageSet
			"X": 1,			#coordinateX
			"Y": 2,			#coordinateY
			"ImageIndex": 3,	#Starting Index number from the image number "0"
			"ImagesCount" : 10	#0 to 9
			},
		"Ones": {				#ImageSet
			"X": 1,			#coordinateX
			"Y": 2,			#coordinateY
			"ImageIndex": 3,	#Starting Index number from the image number "0"
			"ImagesCount" : 10	#0 to 9
			},
			},
			
	"Seconds": {
		"Tens": {				#ImageSet
			"X": 1,			#coordinateX
			"Y": 2,			#coordinateY
			"ImageIndex": 3,	#Starting Index number from the image number "0"
			"ImagesCount" : 10	#0 to 9
			},
		"Ones": {				#ImageSet
			"X": 1,			#coordinateX
			"Y": 2,			#coordinateY
			"ImageIndex": 3,	#Starting Index number from the image number "0"
			"ImagesCount" : 10	#0 to 9
			},
			},
			
	"AmPm": {
		"X": 1,	#coordinateX
		"Y": 2, 	#coordinateY
		"ImageIndexAMCN": 1,	#Image index number for AMPM chinese? You can delete CN and replace with EN
		"ImageIndexPMCN": 2,
		"ImageIndexAMEN": 1,
		"ImageIndexPMEN": 2 
		},
		
	"Delimiter: {	#Image for ':'
     		 "X": 0,
      		"Y": 0,
      		"ImageIndex": 0
      		},
      		},
		
ACTIVITY(Its a long list. Separated into pulse, calories, steps and distance

Code: Select all

"Activity": {
Pulse

Code: Select all

	"Pulse": {		#Number
		"TopLeftX": 0,
		"TopLeftY": 0,
		"BottomRightX": 0,
		"BottomRightY": 0,
		"Alignment": ,		#TopLeft, TopCenter, TopRight, Left, Center, Right, BottomLeft, BottomCenter, BottomRight
		"Spacing":	1,		#Number of pixel space in between number
		"ImageIndex": 1,
		"ImagesCount": 10
		},
		
	"PulseMeter": {	#CircleScale
		"CenterX": 0,
		"CenterY": 0,
		"RadiusX": 5, 
		"RadiusY": 5,
		"StartAngle": 0,		#Circle scale will always rotate clockwise. Zero angle starts from north.
		"EndAngle": 360,	#If starting angle from 3rd and 4th quadrant, use negative angle ie -90
		"Width": 2,		#Pixel width of the circle line
		"Flatness": 0,		#End tip of the scale,  0 for round tip, 180 for flat tip
		"ImageIndex":		#Used for image clipping. Not working for the moment.
		}, 
		
	"ColouredSquares": {		#IconSet, 
		"ImageIndex": 1, 	#Starting image index
		"Coordinates": [		#6 images is recommended for heart rate. 
			{			#Image 1 "Relaxed"
			"X": 0,
			"Y": 0
			},
			{			#Image 2 "Light work"
			"X": 1,
			"Y": 1
			},
			{			#Image 3 "Intense work"
			"X": 2,
			"Y": 2
			},			
			{			#Image 4 "Aerobic region"
			"X": 3,
			"Y": 3
			},
			{			#Image 5 "Anaerobic region"
			"X": 4,
			"Y": 4
			},
			{			#Image 6 "VO2max"
			"X": 5,
			"Y": 5
			}
			]
			},
		
	"PulseGraph":	{		
		"ClockHand":	{	#Clockhand Analog dial for heart rate
			"OnlyBorder": false,
			"Color":	"0x00000000",
			"CenterOffset":	{
				"X": 0,
				"Y": 0
				},
			"Shape":	{
				"X": 0,
				"Y": 0
				},
			"Sector":	{	#Starts from 50bpm and end at 200 bpm. 
				"StartAngle": 0,	#Analog dial requires addition of 2 more digits for decimal points. 
				"EndAngle": 36000	#example 360.00 written as 36000
				},
			"Image":	{	#Image for the analog dial
				"X": 0,
				"Y": 0,
				"ImageIndex": 1
				}
				}
				},	
Calories

Code: Select all

	"Calories": {		#Number
		"TopLeftX": 0,
		"TopLeftY": 0,
		"BottomRightX": 0,
		"BottomRightY": 0,
		"Alignment": ,		#TopLeft, TopCenter, TopRight, Left, Center, Right, BottomLeft, BottomCenter, BottomRight
		"Spacing":	1,		#Number of pixel space in between number
		"ImageIndex": 1,
		"ImagesCount": 10
		},
		
	"CaloriesGraph":	{
		"Circle":	{	#CircleScale
			"CenterX": 0,
			"CenterY": 0,
			"RadiusX": 5, 
			"RadiusY": 5,
			"StartAngle": 0,		#Circle scale will always rotate clockwise. Zero angle starts from north.
			"EndAngle": 360,	#If starting angle from 3rd and 4th quadrant, use negative angle ie -90
			"Width": 2,		#Pixel width of the circle line
			"Flatness": 0,		#End tip of the scale,  0 for round tip, 180 for flat tip
			"ImageIndex":		#Used for image clipping. Not working for the moment.
			}, 
			
		"Clockhand":	{	#Clockhand
			"OnlyBorder": false,
			"Color":	"0x00000000",
			"CenterOffset":	{
				"X": 0,
				"Y": 0
					},
			"Shape":	{
				"X": 0,
				"Y": 0
					},
			"Sector":	{	
				"StartAngle": 0,	#Analog dial requires addition of 2 more digits for decimal points. 
				"EndAngle": 36000	#example 360.00 written as 36000
					},
			"Image":	{	#Image for the analog dial
				"X": 0,
				"Y": 0,
				"ImageIndex": 1
					}
				}
			},	
Steps

Code: Select all

	"Steps":	{	#FormattedNumber
		"Step":	{	#Number
			"TopLeftX": 0,
			"TopLeftY": 0,
			"BottomRightX": 0,
			"BottomRightY": 0,
			"Alignment": ,		#TopLeft, TopCenter, TopRight, Left, Center, Right, BottomLeft, BottomCenter, BottomRight
			"Spacing":	1,		#Number of pixel space in between number
			"ImageIndex": 1,
			"ImagesCount": 10
				},
			},
			
	"StepsGoal":	{	#Number
			"TopLeftX": 0,
			"TopLeftY": 0,
			"BottomRightX": 0,
			"BottomRightY": 0,
			"Alignment": ,		#TopLeft, TopCenter, TopRight, Left, Center, Right, BottomLeft, BottomCenter, BottomRight
			"Spacing":	1,		#Number of pixel space in between number
			"ImageIndex": 1,
			"ImagesCount": 10
				},
				
	"StarImage":	{	#Image that appears when step goal reached
		"X": 0,
 		"Y": 0,
 		"ImageIndex": 0
    		},
Distance

Code: Select all

	"Distance":	{
		"Number":	{	#Number
			"TopLeftX": 0,
			"TopLeftY": 0,
			"BottomRightX": 0,
			"BottomRightY": 0,
			"Alignment": ,		#TopLeft, TopCenter, TopRight, Left, Center, Right, BottomLeft, BottomCenter, BottomRight
			"Spacing":	1,		#Number of pixel space in between number
			"ImageIndex": 1,
			"ImagesCount": 10
				},
		"SuffixImageIndex": 0,	#image for "km"
		"DecimalPointImageIndex": 0
		}
DATE

Code: Select all

"Date":	{
	"MonthAndDay":	{
		"Seperate":	{
			"Month":	{	#Number
				"TopLeftX": 0,
				"TopLeftY": 0,
				"BottomRightX": 0,
				"BottomRightY": 0,
				"Alignment": ,		#TopLeft, TopCenter, TopRight, Left, Center, Right, BottomLeft, BottomCenter, BottomRight
				"Spacing":	1,		#Number of pixel space in between number
				"ImageIndex": 1,
				"ImagesCount": 10
					},
				
			"MonthName":	{		#ImageSet
				"X": 1,			#coordinateX
				"Y": 2,			#coordinateY
				"ImageIndex": 3,	#Starting Index number from the image number "Jan"
				"ImagesCount" : 12	#Jan to Dec
				},
			
			"Day":	{	#Number
				"TopLeftX": 0,
				"TopLeftY": 0,
				"BottomRightX": 0,
				"BottomRightY": 0,
				"Alignment": ,		#TopLeft, TopCenter, TopRight, Left, Center, Right, BottomLeft, BottomCenter, BottomRight
				"Spacing":	1,		#Number of pixel space in between number
				"ImageIndex": 1,
				"ImagesCount": 10
					},
				},
		"OneLine":	{
			"Number":	{	#Number
				"TopLeftX": 0,
				"TopLeftY": 0,
				"BottomRightX": 0,
				"BottomRightY": 0,
				"Alignment": ,		#TopLeft, TopCenter, TopRight, Left, Center, Right, BottomLeft, BottomCenter, BottomRight
				"Spacing":	1,		#Number of pixel space in between number
				"ImageIndex": 1,
				"ImagesCount": 10
				},
			"DelimiterImageIndex":	0	#Image index for seperator "/" or "."
			}
		"TwoDigitsMonth":	,	#True or False
		"TwoDigitsDay":		#True or False
		},
	
	"WeekDay":	{	#ImageSet
		"X": 1,			#coordinateX
		"Y": 2,			#coordinateY
		"ImageIndex": 3,	#Starting Index number from the image number "Monday"
		"ImagesCount" : 7	#Mon to Sun
		},

	"Year":	{
		"OneLine":		{
			"Number":	{	#Number
				"TopLeftX": 0,
				"TopLeftY": 0,
				"BottomRightX": 0,
				"BottomRightY": 0,
				"Alignment": ,		#TopLeft, TopCenter, TopRight, Left, Center, Right, BottomLeft, BottomCenter, BottomRight
				"Spacing":	1,		#Number of pixel space in between number
				"ImageIndex": 1,
				"ImagesCount": 10
				},
			"DelimiterImageIndex":	0	#Image index for seperator "/" or "."
			}
		},
		
	"WeekDayProgress":	{	#IconSet, 
			"ImageIndex": 1, 	#Starting image index
			"Coordinates": [		#7 images is recommended for weekday. 
				{			#Image 1 "Mon"
				"X": 0,
				"Y": 0
				},
				{			#Image 2 "Tue"
				"X": 1,
				"Y": 1
				},
				{			#Image 3 "Wed"
				"X": 2,
				"Y": 2
				},			
				{			#Image 4 "Thu"
				"X": 3,
				"Y": 3
				},
				{			#Image 5 "Fri"
				"X": 4,
				"Y": 4
				},
				{			#Image 6 "Sat"
				"X": 5,
				"Y": 5
				},
				{			#Image 7 "Sun"
				"X": 6,
				"Y": 6
				}
				]
			}
	},			
WEATHER

Code: Select all

"Weather": {
	"Icon":	{
		"Images":	{	#ImageSet
			"X": 1,			#coordinateX
			"Y": 2,			#coordinateY
			"ImageIndex": 3,	#Starting Index number from the image number "Partly Cloudy"
			"ImagesCount" : 25	#PartlyCloudy, CloudyRain, CloudySnow, Sunny, Cloudy, LightRain, LightSnow, Rain, Snow, HeavySnow, HeavyRain, SandStorm, SnowyRain, Fog, Haze, Storm, VeryHeavySnow, FloatingDust, DownPour, Hail, HailStorm, HeavyDownPour, BlowingDust, Tornado, VeryHeavyDownPour
				},
		"NoWeatherImageIndex": 0
			},
			
	"Temperature":	{
		 "Current":	{	#Number
					"TopLeftX": 0,
					"TopLeftY": 0,
					"BottomRightX": 0,
					"BottomRightY": 0,
					"Alignment": ,		#TopLeft, TopCenter, TopRight, Left, Center, Right, BottomLeft, BottomCenter, BottomRight
					"Spacing":	1,		#Number of pixel space in between number
					"ImageIndex": 1,
					"ImagesCount": 10 
		 			},
		 "Today":	{
		 	"Seperate":	{
		 		"Day":		{	#Number
					"TopLeftX": 0,
					"TopLeftY": 0,
					"BottomRightX": 0,
					"BottomRightY": 0,
					"Alignment": ,		#TopLeft, TopCenter, TopRight, Left, Center, Right, BottomLeft, BottomCenter, BottomRight
					"Spacing":	1,		#Number of pixel space in between number
					"ImageIndex": 1,
					"ImagesCount": 10 
		 					},
		 		"Night":		{	#Number
					"TopLeftX": 0,
					"TopLeftY": 0,
					"BottomRightX": 0,
					"BottomRightY": 0,
					"Alignment": ,		#TopLeft, TopCenter, TopRight, Left, Center, Right, BottomLeft, BottomCenter, BottomRight
					"Spacing":	1,		#Number of pixel space in between number
					"ImageIndex": 1,
					"ImagesCount": 10 
		 					}
		 				},
		 	"AppendDegreesForBoth" :		#True or False
		 		},
		 "Symbols":	{
		 	"MinusImageIndex": 0,
		 	"DegreesImageIndex":0,
		 	"NoDataImageIndex":	0
		 			},
		 "TemperatureMeter":	{	#CircleScale
		 	"CenterX": 0,
			"CenterY": 0,
			"RadiusX": 5, 
			"RadiusY": 5,
			"StartAngle": 0,		#Circle scale will always rotate clockwise. Zero angle starts from north.
			"EndAngle": 360,	#If starting angle from 3rd and 4th quadrant, use negative angle ie -90
			"Width": 2,		#Pixel width of the circle line
			"Flatness": 0,		#End tip of the scale,  0 for round tip, 180 for flat tip
			"ImageIndex":		#Used for image clipping. Not working for the moment.
		 					}
		 				}
		 			}
STEPS PROGRESS

Code: Select all

"StepsProgress":	{
	"Sliced"			{	#IconSet, 
			"ImageIndex": 1, 	#Starting image index
			"Coordinates": [		#11 images is recommended for step progress. 
				{			#Image 1 "0%"
				"X": 0,
				"Y": 0
				},
				{			#Image 2 "10%"
				"X": 1,
				"Y": 1
				},
				{			#Image 3 "20%"
				"X": 2,
				"Y": 2
				},			
				{			#Image 4 "30%"
				"X": 3,
				"Y": 3
				},
				{			#Image 5 "40%"
				"X": 4,
				"Y": 4
				},
				{			#Image 6 "50%"
				"X": 5,
				"Y": 5
				},
				{			#Image 7 "60%"
				"X": 6,
				"Y": 6
				},
				{			#Image 8"70%"
				"X": 7,
				"Y": 7
				},
				{			#Image 9"80%"
				"X": 8,
				"Y": 8
				},
				{			#Image 10"80%"
				"X": 9,
				"Y": 9
				},				
				{			#Image 11 "100%"
				"X": 10,
				"Y": 10
				}
				]
					},
					
	"Circle"			{	#CircleScale
		 	"CenterX": 0,
			"CenterY": 0,
			"RadiusX": 5, 
			"RadiusY": 5,
			"StartAngle": 0,		#Circle scale will always rotate clockwise. Zero angle starts from north.
			"EndAngle": 360,	#If starting angle from 3rd and 4th quadrant, use negative angle ie -90
			"Width": 2,		#Pixel width of the circle line
			"Flatness": 0,		#End tip of the scale,  0 for round tip, 180 for flat tip
			"ImageIndex":		#Used for image clipping. Not working for the moment.	
					},
	"ClockHand"		{	#Analog dial for step progress
			"OnlyBorder": false,
			"Color":	"0x00000000",
			"CenterOffset":	{
				"X": 0,
				"Y": 0
					},
			"Shape":	{
				"X": 0,
				"Y": 0
					},
			"Sector":	{	
				"StartAngle": 0,	#Analog dial requires addition of 2 more digits for decimal points. 
				"EndAngle": 36000	#example 360.00 written as 36000
					},
			"Image":	{	#Image for the analog dial
				"X": 0,
				"Y": 0,
				"ImageIndex": 1
					}	
					}	
				}
STATUS

Code: Select all

"Status":	{
	"Bluetooth":	{
		"Coordinates":	{
			"X": 0,
			"Y": 0
					},
		"ImageIndexOn": 0	,
		"ImageIndexOff: 1	
				},
	"Alarm":	{
		"Coordinates":	{
			"X": 0,
			"Y": 0
					},
		"ImageIndexOn": 0	,
		"ImageIndexOff: 1	
				},
	"Lock":	{
		"Coordinates":	{
			"X": 0,
			"Y": 0
					},
		"ImageIndexOn": 0	,
		"ImageIndexOff: 1	
				},
	"DoNotDisturb":	{
		"Coordinates":	{
			"X": 0,
			"Y": 0
					},
		"ImageIndexOn": 0	,
		"ImageIndexOff: 1	
				},				
		}	
BATTERY

Code: Select all

"Battery":	{
	"Text":	{	#Number
		"TopLeftX": 0,
		"TopLeftY": 0,
		"BottomRightX": 0,
		"BottomRightY": 0,
		"Alignment": ,		#TopLeft, TopCenter, TopRight, Left, Center, Right, BottomLeft, BottomCenter, BottomRight
		"Spacing":	1,		#Number of pixel space in between number
		"ImageIndex": 1,
		"ImagesCount": 10 
			},
	"Images":	{	#ImageSet
			"X": 1,			#coordinateX
			"Y": 2,			#coordinateY
			"ImageIndex": 3,	#Starting Index number from the image number "0%"
			"ImagesCount" : 11 	#From 0% to 100%
			},
	"Icons":	{	#IconSet
			"ImageIndex": 1, 	#Starting image index
			"Coordinates": [		#11 images is recommended for Battery. 
				{			#Image 1 "0%"
				"X": 0,
				"Y": 0
				},
				{			#Image 2 "10%"
				"X": 1,
				"Y": 1
				},
				{			#Image 3 "20%"
				"X": 2,
				"Y": 2
				},			
				{			#Image 4 "30%"
				"X": 3,
				"Y": 3
				},
				{			#Image 5 "40%"
				"X": 4,
				"Y": 4
				},
				{			#Image 6 "50%"
				"X": 5,
				"Y": 5
				},
				{			#Image 7 "60%"
				"X": 6,
				"Y": 6
				},
				{			#Image 8"70%"
				"X": 7,
				"Y": 7
				},
				{			#Image 9"80%"
				"X": 8,
				"Y": 8
				},
				{			#Image 10"80%"
				"X": 9,
				"Y": 9
				},				
				{			#Image 11 "100%"
				"X": 10,
				"Y": 10
				}
				]
			},
	"Unknown4":	{	#Analog dial for battery life indicator
			"OnlyBorder": false,
			"Color":	"0x00000000",
			"CenterOffset":	{
				"X": 0,
				"Y": 0
					},
			"Shape":	{
				"X": 0,
				"Y": 0
					},
			"Sector":	{	
				"StartAngle": 0,	#Analog dial requires addition of 2 more digits for decimal points. 
				"EndAngle": 36000	#example 360.00 written as 36000
					},
			"Image":	{	#Image for the analog dial
				"X": 0,
				"Y": 0,
				"ImageIndex": 1
					}	
				},
	"Percent":		{
		"X": 0,
		"Y": 1,
		"ImageIndex": 2
				},
	"Scale":		{	#CircleScale
		"CenterX": 0,
		"CenterY": 0,
		"RadiusX": 5, 
		"RadiusY": 5,
		"StartAngle": 0,		#Circle scale will always rotate clockwise. Zero angle starts from north.
		"EndAngle": 360,	#If starting angle from 3rd and 4th quadrant, use negative angle ie -90
		"Width": 2,		#Pixel width of the circle line
		"Flatness": 0,		#End tip of the scale,  0 for round tip, 180 for flat tip
		"ImageIndex":		#Used for image clipping. Not working for the moment.	
				}
		}
ANALOG DIALS FOR TIME

Code: Select all

"AnalogDialFace":	{
	"Hours":			{
			"OnlyBorder": false,
			"Color":	"0x00000000",
			"CenterOffset":	{
				"X": 0,
				"Y": 0
					},
			"Shape":	{
				"X": 0,
				"Y": 0
					},
			"Image":	{	#Image for the analog dial
				"X": 0,
				"Y": 0,
				"ImageIndex": 1
					}	
					},
	"Minutes":			{
			"OnlyBorder": false,
			"Color":	"0x00000000",
			"CenterOffset":	{
				"X": 0,
				"Y": 0
					},
			"Shape":	{
				"X": 0,
				"Y": 0
					},
			"Image":	{	#Image for the analog dial
				"X": 0,
				"Y": 0,
				"ImageIndex": 1
					}	
					},
	Seconds":			{
			"OnlyBorder": false,
			"Color":	"0x00000000",
			"CenterOffset":	{
				"X": 0,
				"Y": 0
					},
			"Shape":	{
				"X": 0,
				"Y": 0
					},
			"Image":	{	#Image for the analog dial
				"X": 0,
				"Y": 0,
				"ImageIndex": 1
					}	
					}
				}
ANIMATION

Code: Select all

"Unknown11":	{
	"Unknown11_1":	[	#motion path animation
		{	#Object 1. You can add more objects
		"Unknown11d1p1":	0,	#unknown
		"Unknown11d1p2":	{	#Coordinate of initial position
			"X": 0,
			"Y": 0
						},
		"Unknown11d1p2":	{	#Coordinate of final position
			"X": 1,
			"Y": 1
						},
		"ImageIndex": 2,	#Image object
		"Unknown11d1p5":	2000,	#movement speed of object
		"Unknown11d1p6":0,		#unknown
		"Unknown11d1p7": 0,	#unknown
		"Unknown11d1p8": 1,	#unknown
		"Unknown11d1p9": 0,	#unknown
		"Unknown11d1p10": 0	#bounce?
		},
		{	#Object 2. You can add more objects
		"Unknown11d1p1":	0,	#unknown
		"Unknown11d1p2":	{	#Coordinate of initial position
			"X": 0,
			"Y": 0
						},
		"Unknown11d1p2":	{	#Coordinate of final position
			"X": 1,
			"Y": 1
						},
		"ImageIndex": 2,	#Image object
		"Unknown11d1p5":	2000,	#movement speed of object
		"Unknown11d1p6":0,		#unknown
		"Unknown11d1p7": 0,	#unknown
		"Unknown11d1p8": 1,	#unknown
		"Unknown11d1p9": 0,	#unknown
		"Unknown11d1p10": 0	#bounce?
		}
					],
					
	"Unknown11_2":	{	#Frame by frame animation
		"Unknown11d2p1":	{	#ImageSet
			"X": 1,			#coordinateX
			"Y": 2,			#coordinateY
			"ImageIndex": 3,	#Starting Index number
			"ImagesCount" : 10	#Depending on number of animation frames set
						},
		"Unknown11d2p2": 100,		#Animation speed
		"Unknown11d2p3": 0	,		#unknown
		"Unknown11d2p4": 17000	,	#Animation time
		"Unknown11d2p5": 100	,	#Pause time
					}
			}

ANALOG DIALS FOR DATE, DAY AND MONTH

Code: Select all

"DaysProgress":	{
	"AnalogMonth":	{
			"OnlyBorder": false,
			"Color":	"0x00000000",
			"CenterOffset":	{
				"X": 0,
				"Y": 0
					},
			"Shape":	{
				"X": 0,
				"Y": 0
					},
			"Sector":	{	
				"StartAngle": 0,	#Analog dial requires addition of 2 more digits for decimal points. 
				"EndAngle": 36000	#example 360.00 written as 36000
					},
			"Image":	{	#Image for the analog dial
				"X": 0,
				"Y": 0,
				"ImageIndex": 1
					}	
				},
	"UnknownField2":	{	#This is for analog date
			"OnlyBorder": false,
			"Color":	"0x00000000",
			"CenterOffset":	{
				"X": 0,
				"Y": 0
					},
			"Shape":	{
				"X": 0,
				"Y": 0
					},
			"Sector":	{	
				"StartAngle": 0,	#Analog dial requires addition of 2 more digits for decimal points. 
				"EndAngle": 36000	#example 360.00 written as 36000
					},
			"Image":	{	#Image for the analog dial
				"X": 0,
				"Y": 0,
				"ImageIndex": 1
					}	
					},
	"AnalogDOW":	{		#Day of the week
			"OnlyBorder": false,
			"Color":	"0x00000000",
			"CenterOffset":	{
				"X": 0,
				"Y": 0
					},
			"Shape":	{
				"X": 0,
				"Y": 0
					},
			"Sector":	{	
				"StartAngle": 0,	#Analog dial requires addition of 2 more digits for decimal points. 
				"EndAngle": 36000	#example 360.00 written as 36000
					},
			"Image":	{	#Image for the analog dial
				"X": 0,
				"Y": 0,
				"ImageIndex": 1
					}	
				}		
			}
SHORTCUTS

Code: Select all

"ShortCuts" :	{
	"State" :		{	#Steps?
		"Element":	{
			"TopLeftX": 0,
			"TopLeftY": 0,
			"Width": 10,
			"Height": 10
					}
				},
	"Pulse" :		{
		"Element":	{
			"TopLeftX": 0,
			"TopLeftY": 0,
			"Width": 10,
			"Height": 10
					}
				},
	"Weather" :	{
		"Element":	{
			"TopLeftX": 0,
			"TopLeftY": 0,
			"Width": 10,
			"Height": 10
					}
				},
	"Unknown4" :	{	#PowerSaver?
		"Element":	{
			"TopLeftX": 0,
			"TopLeftY": 0,
			"Width": 10,
			"Height": 10
					}
				},
			}
hikashi
WF maker
Posts: 16
Joined: 18 Nov 2019, 14:48
Has thanked: 1 time
Been thanked: 14 times
Contact:

Post by hikashi »

Reference work in progress.
shirumitsu
WF maker
Posts: 15
Joined: 07 Jul 2019, 01:48
Location: Brazil
Has thanked: 2 times
Been thanked: 1 time
Contact:

Post by shirumitsu »

can you explain better how to put an animation?
User avatar
Maikeldevil
Posts: 64
Joined: 17 Aug 2019, 12:05
Location: unknown
Has thanked: 3 times
Been thanked: 44 times
Contact:

Post by Maikeldevil »

I see in the PY code (Our tool to create our GTR watchfaces) there is worked on child parent base, i also see that the function dayprogress hasnt got its own element yet. I have a problem that i try to get this function dayprogress behind other elements, ideal would be behind the background.

Also in the background there we have a option to set the X and Y for this element but it doesnt work. When image is smaller then 454 x 454 on the gtr its shown in the left upper corner, if we could fix this i can fix my date problem. (rotating date behind clock).

Please help!
goma
Posts: 1
Joined: 25 Mar 2020, 21:19
Location: Portugal
Contact:

Post by goma »

is it possible to put the time in a different time zone? i.e add a few hours to the displayed time?
If I want to display dual time, has to be with an analog display?
Melmers
WF maker
Posts: 2
Joined: 02 Apr 2020, 05:20
Location: Phoenix
Contact:

Post by Melmers »

I see moon phase icons on a few watchfaces but the display is never active.
Is there any hope for moon phase data?

Current Phase, Moonrise, moonset, sunrise, sunset?
Maybe in the weather data?
Most weather sources have that information too.

Sure would help make some watchfaces a lot nicer :-)
taw_bip
WF maker
Posts: 131
Joined: 12 Apr 2018, 16:29
Has thanked: 128 times
Been thanked: 19 times
Contact:

Post by taw_bip »

Regarding JSON syntax, I have a Verge Lite and was looking to layer images in a certain order, similar to the Bip watchface below where the day/date appears above the time. Is there any way to define the order elements display on a watchface?
https://amazfitwatchfaces.com/bip/view/23458
User avatar
SashaCX75
Posts: 820
Joined: 26 Oct 2019, 15:18
Location: Ukraine
Has thanked: 13 times
Been thanked: 1029 times
Contact:

Post by SashaCX75 »

[mention]taw_bip[/mention]
At the moment, the order of drawing elements cannot be changed.
User avatar
kyle
Posts: 23
Joined: 22 Apr 2018, 14:32
Location: CHINA
Has thanked: 3 times
Been thanked: 5 times
Contact:

Post by kyle »

之前没回复,这次要给大佬点个赞
Contact please email:[email protected]
如有需要可联系!
Sandro28
WF maker
Posts: 1
Joined: 28 Apr 2020, 16:46
Location: Tbilisi
Contact:

Post by Sandro28 »

Hello. I have Xiaomi Amazfit bip. can you explain how to add image ? "Background": {
"Image": { #Image
"X": 0,
"Y": 0,
"ImageIndex": 0
},
"Preview": {
"X": 0,
"Y": 0,
"ImageIndex": 1
}
"FrontImage": { #not much of a use. You can delete this.
"X": 0,
"Y": 0,
"ImageIndex": 2
},

I know that this cod must be ... but when I upload watchface in my amazfit I can not see the image (background). how can I fix it ? Or this cod is not for amazfit ?
User avatar
SashaCX75
Posts: 820
Joined: 26 Oct 2019, 15:18
Location: Ukraine
Has thanked: 13 times
Been thanked: 1029 times
Contact:

Post by SashaCX75 »

[mention]Sandro28[/mention]
"Image" - watchface background
"Preview" - Preview on the clock
In amazfit, the preview image does not change.
This code is suitable for GTR. For Bip, the code may differ, depending on which program to package the bin file.
viper89
WF maker
Posts: 1
Joined: 02 Aug 2020, 16:52
Location: Venezia
Contact:

Post by viper89 »

Hi, there is any way to set layers? For example i want to put big seconds under hours and minutes thx
User avatar
SashaCX75
Posts: 820
Joined: 26 Oct 2019, 15:18
Location: Ukraine
Has thanked: 13 times
Been thanked: 1029 times
Contact:

Post by SashaCX75 »

If you move the second hand from the center, it will be displayed below the minute and hour hands. The rendering order of other elements cannot be changed.
wanders
Posts: 19
Joined: 02 Jul 2020, 00:06
Location: Austin TX USA
Been thanked: 1 time
Contact:

Post by wanders »

I recently got a GTS and I wonder if there is watchface extract / encode / JSON support for three features which I know the watch supports, namely:

* sunrise time
* sunset time
* PAI value (maybe even a shortcut to PAI?)

I know that GTS / GTR are now older models, but I have to believe that the code is not that different from GTS 2. I also noticed that my GTS has an SpO2 sensor on it - what's up with that?

Thanks for any info...
Floooooo24
Posts: 1
Joined: 02 Feb 2022, 16:31
Location: German
Contact:

Post by Floooooo24 »

Hello Everyone,

is there a way, to display a graph of the Puls, like the preinstalled from amazfit bip s (one of the two customizable?

And ist there a way to display a Calender reminder, also like the preinstalled from amazfit bip s?
Spoiler
Calender reminder
Calender reminder
IMG_20220202_174325.png (780.5 KiB) Viewed 20517 times
Pulse Graph
Pulse Graph
IMG_20220202_174315_v2.png (759.36 KiB) Viewed 20517 times
Thank you for any infos
Flo
Post Reply

Return to “Watchfaces tools”

Who is online

Users browsing this forum: No registered users and 1 guest