从Thingspeak阅读:每天平均是容易的。我怎样得到一个月平均?
28日视图(30天)
显示旧的评论
我从Thingspeak使用REST API来读取数据,这很有效:
每天这个请求正确地返回一个值。但是我需要一个月平均每月——一个值。理想的类似:
有办法实现这样的?
接受的答案
克里斯托弗Stapels
2019年11月15日
有内置的模板代码来帮助您开发MATLAB代码。如果你去MATLAB分析或MATLAB可视化应用程序,您可以选择从模板选择创建一个应用程序的新实例。
在你的例子中,我想你会proably想预处理的数据并将其存储在另一个频道。读取仅限于8000点,所以你希望能够阅读所有的数据在一个电话。
我会推荐编写一个脚本,该脚本读取数据并写入每日avaerages到另一个频道。那么你的手机应用程序可以读取的值或API调用图表导出频道。展望未来,你可以设置一个timeControl写每日平均每天导出通道(Vinod建议)。Historicall你可能需要几批处理它们。
我可以提供更多细节如果你坚持代码。
答案(1)
克里斯托弗Stapels
2019年11月18日
编辑:克里斯托弗Stapels
2023年1月21日
我也喜欢看你的结果。但是我怕它让一群API请求到服务器在一个大破裂。偶尔的好,但你经常使用这样的代码,你可能最终引发速率限制ThingSpeak服务器的响应。代码已经生成月度数据,您可以编写的历史数据导出频道,并降低未来的负担。
如果你不想用自己的服务器端资源,您可以使用TimeControl安排定期MATLAB代码运行。我知道不想使用一种新的语言,但是MATLAB很难很容易学习。
以防你正在考虑它,格式会看起来像这样:
创建一个新的MATLAB分析伪代码
编辑/评论
numDays = 30;%为每月
readChannelId = 123455;
writeChannelId = 543211;
myReadKey =“XXXXXXXXXXXXXXXX”;
myWriteKey =“yyyyyyyyyyyyyyyy”;
myData = thingSpeakRead (readChannelID,“ReadKey”myReadKey,“OutputFortmat”,“时间表”,“numDays”,numDays);
aveData =调整时间(myData,“普通”,“的意思是”,“步伐”天(numDays));
thingSpeakWrite (writeChannelId aveData,“WriteKey”,writeAPIKey);
然后使用TimeControl每numDays运行分析。
3评论
克里斯托弗Stapels
2023年1月21日
谢谢你的语法的建议,我上面有固定它。
我很抱歉听到你对我们的文档,其realtively众所周知的高质量与大多数报道。如果你提供一个例子,你不喜欢,我可以看看它。