我有一个基于Flask微框架的自定义智能家居设置。我目前正试图通过我的华为Watch 2 Sport报告的心率,将连接到该网络的无线灯“同步”。我没有妄想可以实际更新我的心率,但是我已经设置了我的手表,使用Play商店的Heart Rate OS应用程序在白天每5分钟轮询一次心率。我已经在手机上交叉检查了Google健身应用以及手机上的Heart Rate OS应用,我的手表确实每5分钟报告一次心率。 Google Fit应用似乎在一个小时左右的时间内平均了数据点,但这可能只是图表布局设置。但是,当我使用Google API客户端从Google Fit服务中获取数据时,我得到的最新数据点已经落后12到24小时。
我不会向您介绍OAuth设置的详细信息,但我将凭证存储在Flask会话变量中作为字典,并且只需为每次调用心率端点重新实例化Credentials对象。以下是检索心率的端点代码:
@app.route('/heartBeat')
def heartBeat():
credentials = google.oauth2.credentials.Credentials(
**session['credentials'])
fit = build('fitness', 'v1', credentials=credentials)
print long((time.time()-60*30)*1000*1000*1000)
dataSet = '*'#str(long((time.time()-60*30)*1000*1000*1000)) + "-" + str(long(time.time()*1000*1000*1000))
print dataSet
dataSource = fit.users().dataSources().datasets().get(userId='me', dataSourceId='A_VALID_DATA_SOURCE', datasetId=dataSet).execute()
return str(dataSource)
正如我所说,我正在使用此代码检索数据点,但它们已经过时了。为了使这更有意义,我希望读数至少在目前的15分钟内。我真的不知道为什么,但出于某种原因,Google Fit在发送我的钟表心脏的过程中落后于某个地方 从我手机的应用程序到在线服务的数据速率。有没有办法强制Google Fit从我的手机中获取最新的读数并观看?