• Amministratore
  •  
    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.

Moderatori: asoo, lvpokka, Internal error, Watchmens

Regole del forum
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.
Rispondi
hikashi
WF maker
Messaggi: 16
Iscritto il: 18 nov 2019, 14:48
Has thanked: 1 time
Been thanked: 14 times
Contatta:

Complete Json Syntax Guide for GTR

Messaggio da 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

Codice: Seleziona tutto

  "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

Codice: Seleziona tutto

"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

Codice: Seleziona tutto

"Activity": {
Pulse

Codice: Seleziona tutto

	"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

Codice: Seleziona tutto

	"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

Codice: Seleziona tutto

	"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

Codice: Seleziona tutto

	"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

Codice: Seleziona tutto

"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

Codice: Seleziona tutto

"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

Codice: Seleziona tutto

"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

Codice: Seleziona tutto

"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

Codice: Seleziona tutto

"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

Codice: Seleziona tutto

"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

Codice: Seleziona tutto

"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

Codice: Seleziona tutto

"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

Codice: Seleziona tutto

"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
Messaggi: 16
Iscritto il: 18 nov 2019, 14:48
Has thanked: 1 time
Been thanked: 14 times
Contatta:

Messaggio da hikashi »

Reference work in progress.
shirumitsu
WF maker
Messaggi: 15
Iscritto il: 07 lug 2019, 01:48
Località: Brazil
Has thanked: 2 times
Been thanked: 1 time
Contatta:

Messaggio da shirumitsu »

can you explain better how to put an animation?
Avatar utente
Maikeldevil
Messaggi: 64
Iscritto il: 17 ago 2019, 12:05
Località: unknown
Has thanked: 3 times
Been thanked: 44 times
Contatta:

Messaggio da 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
Messaggi: 1
Iscritto il: 25 mar 2020, 21:19
Località: Portugal
Contatta:

Messaggio da 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
Messaggi: 2
Iscritto il: 02 apr 2020, 05:20
Località: Phoenix
Contatta:

Messaggio da 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
Messaggi: 130
Iscritto il: 12 apr 2018, 16:29
Has thanked: 127 times
Been thanked: 19 times
Contatta:

Messaggio da 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
Avatar utente
SashaCX75
Messaggi: 820
Iscritto il: 26 ott 2019, 15:18
Località: Ukraine
Has thanked: 13 times
Been thanked: 1029 times
Contatta:

Messaggio da SashaCX75 »

[mention]taw_bip[/mention]
At the moment, the order of drawing elements cannot be changed.
Avatar utente
kyle
Messaggi: 23
Iscritto il: 22 apr 2018, 14:32
Località: CHINA
Has thanked: 3 times
Been thanked: 5 times
Contatta:

Messaggio da kyle »

之前没回复,这次要给大佬点个赞
Contact please email:[email protected]
如有需要可联系!
Sandro28
WF maker
Messaggi: 1
Iscritto il: 28 apr 2020, 16:46
Località: Tbilisi
Contatta:

Messaggio da 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 ?
Avatar utente
SashaCX75
Messaggi: 820
Iscritto il: 26 ott 2019, 15:18
Località: Ukraine
Has thanked: 13 times
Been thanked: 1029 times
Contatta:

Messaggio da 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
Messaggi: 1
Iscritto il: 02 ago 2020, 16:52
Località: Venezia
Contatta:

Messaggio da viper89 »

Hi, there is any way to set layers? For example i want to put big seconds under hours and minutes thx
Avatar utente
SashaCX75
Messaggi: 820
Iscritto il: 26 ott 2019, 15:18
Località: Ukraine
Has thanked: 13 times
Been thanked: 1029 times
Contatta:

Messaggio da 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
Messaggi: 19
Iscritto il: 02 lug 2020, 00:06
Località: Austin TX USA
Been thanked: 1 time
Contatta:

Messaggio da 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
Messaggi: 1
Iscritto il: 02 feb 2022, 16:31
Località: German
Contatta:

Messaggio da 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) Visto 20385 volte
Pulse Graph
Pulse Graph
IMG_20220202_174315_v2.png (759.36 KiB) Visto 20385 volte
Thank you for any infos
Flo
Rispondi

Torna a “Watchfaces tools”

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti