Raspberry Piに繋げたセンサーのデータはGoogle Spreadsheetに保存できたので、
【 Raspberry Piで取得したセンサー情報をGoogleスプレッドシートに保存する(Python) 】
今度はデータがCO2の値が更新された際に閾値を超えていたら自分にメール通知するように設定した
CO2の値を見て一応換気の目安にでもなればいいなと思うが、恐らく寒くて換気はしない気もする
まずは該当のspreadsheetを開いて、【拡張機能】>【Apps Script】を開く
以下の内容でスクリプトを作成
function getLastRowValue() {
//アクティブなシートを取得
var sheet = SpreadsheetApp.getActiveSheet();
//空白で無い最終行の行番号を取得してlastRowに代入
var lastRow = sheet.getLastRow();
//最終行の行番号(lastRow)列番号5.0(E列)に入力された値をvalueに代入
var value = sheet.getRange(lastRow, 5.0).getValue();
/*valueが1500を超えていればメール送信
MailApp.sendEmail(<送信先メールアドレス),<件名>,<本文>);
送信元は自身のgmail*/
if (value > 1500){
MailApp.sendEmail("<送信先メールアドレス>", "CO2濃度通知","閾値オーバー、換気しましょう");
}
}
この内容で保存して、画面左の時計マークの【トリガー】を開いてScriptの実行条件を以下の内容で設定する
【実行する関数】 上で作成した関数
【実行するデプロイ】Head
【イベントのソース】スプレッドシートから
【イベントの種類】変更時
【エラー通知】毎日通知を受け取る
これでRaspberry Piから入力された値からCO2の部分だけを見て処理してくれるようになった
テスト時はsheet.getRange()の値で行番号はlastRowを見ればいいので問題なかったが、列番号はE列だから5でいいかと思っていたが、整数だとエラーとなったので5.0とした
アルファベット1桁MS Excelもそうだが、A~ZまでではなくAAなど2桁以上になるからそのためだろうか
細かく調べていないのでその辺りの仕様はまだ理解できていない
if文の内容をもう少し細かくすれば乾燥だったり、夏場の熱中症対策などに役立てることもできそうだ