mruby on YABMなモジュールからThingSpeakを叩いてInternet of Testしてます。以前書いた簡単なスクリプトをアップデートしてみました。
Internetなので失敗する事もあり、成功率を計算してみました。
エントリー数と、mruby側のカウントの比較になります。
mrubyのスクリプトはこれです。
Channel Settingsでfead dataをクリアして始めます。
MATLABはこんな感じです。
% Channel ID to read data from
readChannelID = xxx;
% Channel Read API Key
% If your channel is private, then enter the read API Key between the '' below:
readAPIKey = 'naisyo';
% Humidity Field ID
valueFieldID = 1;
now = datetime('now');
t1 = now;
t2 = t1 - days(1);
total = 0;
while 1
data = thingSpeakRead(readChannelID,'Fields',valueFieldID,'ReadKey',readAPIKey,'OutputFormat','table','DateRange',[t2,t1]);
[m,n] = size(data);
total = total + m;
if t1 == now
last = data.Timestamps(m);
current = data.FieldLabel1(m);
end
if m == 0
break;
else
fast = data.Timestamps(n);
t1 = t2;
t2 = t1 - days(1);
end
end
uptime = last - fast;
display(total,'total');
display(total / current * 100,'rate');
display(fast,'fast');
display(last,'last');
display(days(uptime),'days');
出力はこんな感じです。
total =
72007
rate =
99.9958
fast =
datetime
07-Nov-2024 08:59:56
last =
datetime
03-Dec-2024 14:35:00
days =
26.2327