John's Vademecum

Try to learn something about everything, and everything about something -Thomas Huxley “Darwin's bulldog” (1824-1895)

User Tools

Site Tools


public:watches:watchcheck

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
public:watches:watchcheck [04/05/22 10:22 BST] gm4slvpublic:watches:watchcheck [06/03/25 06:49 GMT] (current) – external edit 127.0.0.1
Line 12: Line 12:
 directory. the data from each measurement is stored in a **json** file in the same directory. directory. the data from each measurement is stored in a **json** file in the same directory.
  
- +++++ watchcheck.py | 
-<code python>+<file python watchcheck.py>
 #! /usr/bin/env python #! /usr/bin/env python
  
Line 210: Line 210:
  
 menu() menu()
-</code>+</file>
  
 +++++
  
 Running it for the first time, with no previous records stored, looks like this: Running it for the first time, with no previous records stored, looks like this:
Line 242: Line 243:
 </code> </code>
  
-I'll update this once I've done second measurementin day or so....+Running it again, after only 10 minutes looks like this
 + 
 +<code> 
 +Command > : n 
 +New 
 +Current Time = 10:30 
 +Watch time 10:30 
 +30 
 +Press enter when seconds = 0 
 + 
 +2022/05/04 10:30:30 
 + 
 +Delta -30.2 seconds 
 +First record time  2022/05/04 10:19:30 
 +First record delta  -30.1799800396 
 + 
 +Previous record time  2022/05/04 10:19:30 
 +Previous record delta  -30.1799800396 
 + 
 +Latest record time  2022/05/04 10:30:30 
 +Latest record delta  -30.1998269558 
 + 
 +Overall elapsed time  0:11:00 
 +Latest elapsed time  0:11:00 
 + 
 +Latest delta change  -0.0198469161987 
 +Latest elapsed time 660 seconds 
 + 
 +Daily PPM : -30.071 
 +Daily rate error: -2.6 s/d 
 + 
 +Total Time 660 seconds 
 +Total error  -0.0198469161987 
 +Total PPM : -30.071 
 +Total rate error: -2.6 s/d 
 + 
 +======================================================== 
 + Delta : -30.2 s | Rate : -2.6 s/d | Average : -2.6 s/d 
 +======================================================== 
 +</code> 
 + 
 +The ''error_list.json'' file now looks like: 
 + 
 +<code> 
 +[["2022/05/04 10:19:30", -30.179980039596558], ["2022/05/04 10:30:30", -30.199826955795288]] 
 +</code> 
 + 
 + 
 +There's also a small utility called ''watchstat.py'' that reads the ''error_list.json'' file to calculate and 
 +display the data 
 + 
 +++++ watchstat.py | 
 + 
 +<file python watchstat.py> 
 +#! /usr/bin/env python 
 + 
 +## text-terminal version of the WatchCheck app 
 +## to track errordaily error rate of timepieces. 
 + 
 +
 +import time 
 +import datetime 
 +import json 
 + 
 + 
 + 
 +def watch_stat(): 
 + 
 +    try: 
 +        saved_error = open('error_list.json'
 +        error_list = json.load(saved_error) 
 +    except: 
 +        error_list = [] 
 + 
 + 
 + 
 + 
 +    if len(error_list) > 1: 
 +        first_record = error_list[0] 
 +        latest_record = error_list[-1] 
 +        previous_record = error_list[-2] 
 + 
 +        first_time = first_record[0] 
 + 
 +        first_delta = first_record[1] 
 + 
 +        latest_time = latest_record[0]  
 +        latest_delta = latest_record[1] 
 + 
 +        previous_time = previous_record[0] 
 +        previous_delta = previous_record[1] 
 + 
 +        FMT = '%Y/%m/%d %H:%M:%S' 
 +     
 +        t_latest = datetime.datetime.strptime(latest_time, FMT) 
 +        t_previous = datetime.datetime.strptime(previous_time, FMT) 
 +        t_first = datetime.datetime.strptime(first_time, FMT) 
 + 
 +        tdelta = t_latest - t_previous 
 +        full_delta = t_latest - t_first 
 + 
 +        elapsed_time = tdelta.total_seconds() 
 + 
 +        full_time = full_delta.total_seconds() 
 + 
 +        print "First record time ", first_time 
 +        print "First record delta ", first_delta 
 +        print "" 
 + 
 +        print "Previous record time ", previous_time 
 +        print "Previous record delta ", previous_delta 
 +        print "" 
 + 
 +        print "Latest record time " , latest_time 
 +        print "Latest record delta ", latest_delta 
 +        print "" 
 +     
 +        print "Overall elapsed time ", full_delta 
 +        print "Latest elapsed time ", tdelta 
 +        print "" 
 + 
 +        # Current Error rate 
 +        time_error = latest_delta - previous_delta 
 +        error_rate = time_error / elapsed_time 
 +        daily_rate = error_rate * (60*60*24) 
 +        ppm_daily = error_rate * 1000000 
 + 
 +        # Overall Error rate 
 +        total_error = latest_delta - first_delta 
 +        average_error_rate = total_error / full_time 
 + 
 +        average_rate = average_error_rate * (60*60*24) 
 +        ppm_overall = average_error_rate * 1000000 
 + 
 + 
 +        print "Latest delta change ", time_error 
 + 
 +        print "Latest elapsed time %d seconds " % (elapsed_time) 
 + 
 +        print "" 
 +        print "Daily PPM : %0.3f" % ppm_daily 
 +        print "Daily rate error: %0.1f s/d " % (daily_rate) 
 + 
 +        print "" 
 +        print "Total Time %d seconds" % (full_time) 
 +        print "Total error ", total_error 
 +        print "Total PPM : %0.3f" % ppm_overall 
 +        print "Total rate error: %0.1f s/d" % (average_rate) 
 +        print "" 
 +        print "========================================================" 
 +        print " Delta : %0.1f s | Rate : %0.1f s/d | Average : %0.1f s/d" % (latest_delta, daily_rate, average_rate) 
 +        print "========================================================" 
 +        print "" 
 +    else: 
 +        print "No rate yet" 
 + 
 + 
 +watch_stat() 
 +</file> 
 + 
 +++++ 
 + 
 +Running watchstat.py on the newly updated ''error_list.json''  
 + 
 +<code> 
 +gm4slv@laptop:~/watchcheck_damasko $ python watchstat.py 
 +First record time  2022/05/04 10:19:30 
 +First record delta  -30.1799800396 
 + 
 +Previous record time  2022/05/04 10:19:30 
 +Previous record delta  -30.1799800396 
 + 
 +Latest record time  2022/05/04 10:30:30 
 +Latest record delta  -30.1998269558 
 + 
 +Overall elapsed time  0:11:00 
 +Latest elapsed time  0:11:00 
 + 
 +Latest delta change  -0.0198469161987 
 +Latest elapsed time 660 seconds 
 + 
 +Daily PPM : -30.071 
 +Daily rate error: -2.6 s/d 
 + 
 +Total Time 660 seconds 
 +Total error  -0.0198469161987 
 +Total PPM : -30.071 
 +Total rate error: -2.6 s/d 
 + 
 +======================================================== 
 + Delta : -30.2 s | Rate : -2.6 s/d | Average : -2.6 s/d 
 +======================================================== 
 +</code> 
 + 
 +''watchcheck.py'' also creates log file on each run. 
 + 
 +<code> 
 +04/05/2022 09:30:30     -30.2           -2.6            -2.6 
 +</code> 
 + 
 +The fields are "date time", current error, error in seconds per day since last record, average error in seconds per day since the start. 
 + 
 +This mimics the behaviour of the Android Watchcheck app
  
 +{{:public:watches:screenshot_20220504-104043.png?direct&400|}}
  
  //[[gm4slv@gm4slv.plus.com|John Pumford-Green]] Wed May  4 09:09:09 2022//  //[[gm4slv@gm4slv.plus.com|John Pumford-Green]] Wed May  4 09:09:09 2022//
public/watches/watchcheck.1651656172.txt.gz · Last modified: 06/03/25 06:49 GMT (external edit)