LoginSignup
0
0

More than 3 years have passed since last update.

WatchDogチェック

Last updated at Posted at 2019-04-04

IoT(Internet of Test)でThingspeakにアクセスしているログでWatchdogリセットを確認するrubyスクリプトです。ThingspeakのExportのDownloadはTimezoneがUTCから変えられないので、こちらのページを参考にしてみました。追記:2019/4くらいにJSTでダンプできるようになりました。

#!/usr/bin/ruby

require 'csv'
require 'time'

class Time 
  def timezone(timezone = 'UTC')
    old = ENV['TZ']
    utc = self.dup.utc
    ENV['TZ'] = timezone
    output = utc.localtime
    ENV['TZ'] = old
    output
  end
end

csv_data = CSV.read(ARGV[0])

lastval = 0
lastdate = ""
count = 0

csv_data.each do |data|
  if data[2].to_i < lastval
    print "---\n"
    p Time.parse(lastdate).timezone('Asia/Tokyo')
    p Time.parse(data[0]) - Time.parse(lastdate) 
    p lastval
    p count
    count = 0
  end
  count = count + 1
  lastval = data[2].to_i
  lastdate = data[0]
end

print "---\n"
p lastval
p count

アクセス毎にインクリメントした数値を書き込んでいるので、逆転したところを探しています。

JSTでダウンロードできるようになったので、awkで簡単に確認する方法を考えました。シリアルを1番目のフィールドにします。これはチャンネルによってフィールド数が変わってくるので、シリアルを固定の位置にして確認しやすくするためです。

$ awk 'BEGIN{FS=","} NR>1{if(NR != 2 && last+1 != $3){sa=$3-last-1;print $1" "last" "$3" "sa};last=$3}' feeds.csv
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0