ブログ - ドコデモセンサー WS-USB02-PIR APIで9時間補正してデータを取り出す
ドコデモセンサーのデータが保存されるPlanex Cloud上のデータは,時刻がUTCで保存されているので日本のJSTとは9時間差がある.日本は日出ずる国なのでUTCが9時間早い.
そこで,9時間差をコマンドで計算する.
まずは現在時間.
そして,9時間前を計算.
これは現在時間からの相対時間で計算されるから,日付をまたいでも問題なく計算されます.
そしてこれを応用して作ったコマンドがこれ.
なんかcurlのパラメータを作るのに苦労してこんなことになった.とりあえず動くので腕のある人は整形してもらえればと...
このコマンドでは,実行した日時の間のデータを取得することになる.
応用する為には,これの数をカウントする.
実際のデータが11点なので,3行多いことを念頭に入れて利用する.
ここで使ったのは,GNU dateコマンドなので注意.
そこで,9時間差をコマンドで計算する.
まずは現在時間.
$ date
月 8 12 19:00:38 JST 2019
$
$ date --date "`date +%Y%m%d` `date +%H:%M` 9 hours ago" "+%Y%m%d %H:%S"
20190812 10:00
$
そしてこれを応用して作ったコマンドがこれ.
$ cat DocodemoSensor.sh🆑
#!/bin/bash
main () {
MODEL='"WS-USB02-PIR"'
MACADDR='"24:72:60:40:XX:XX"'
TOKEN=2f2887db3498XXXXXXXXXXXXXXXXXX
DATE1=`date +%Y%m%d`
DATE2=`date +%H:%M`
DATEUTC1=`date --date "${DATE1} ${DATE2} 9 hours ago" "+%Y-%m-%d %H"`
DATEUTC=`echo ${DATEUTC1}|sed 's/ /+/g'`
DATE1=${DATEUTC}:00:00
DATE2=${DATEUTC}:59:59
DATEF="${DATE1}"
DATET="${DATE2}"
PARAM1="https://svcipp.planex.co.jp/api/get_data.php?type=${MODEL}&mac=${MACADDR}&"
PARAM3="from="
PARAM4="${DATEF}"
PARAM5="&to="
PARAM6="${DATET}"
PARAM7="&token=${TOKEN}"
/usr/local/opt/curl/bin/curl -s ${PARAM1}${PARAM3}\"${PARAM4}\"${PARAM5}\"${PARAM6}\"${PARAM7}
}
main
$
このコマンドでは,実行した日時の間のデータを取得することになる.
$ ./DocodemoSensor.sh🆑
[
["2019-08-13 10:04:34", "24"]
,["2019-08-13 10:06:46", "24"]
,["2019-08-13 10:12:11", "24"]
,["2019-08-13 10:12:38", "24"]
,["2019-08-13 10:21:31", "24"]
,["2019-08-13 10:21:36", "24"]
,["2019-08-13 10:22:48", "24"]
,["2019-08-13 10:25:15", "24"]
,["2019-08-13 10:27:26", "24"]
,["2019-08-13 10:27:31", "24"]
,["2019-08-13 10:36:17", "24"]
]
$ ./DocodemoSensor.sh|wc -l🆑
14
$
ここで使ったのは,GNU dateコマンドなので注意.