自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

Node-RED×Yahoo気象情報API×Slack×Alexaで雨雲通知システムを作る

f:id:maru0014:20201223232055p:plain この記事は UG Advent Calendar 2020 24日目の記事です。

早速ですが記事タイトルの動作イメージからご紹介しましょう。

動作イメージ

Yahoo気象情報APIを15分毎に参照して自宅の座標に一定数以上の降水量予測が検知された場合、Slackのhome_speakerチャンネルに予測日時と予測降水量を投稿しつつ、Alexaに読み上げてもらうというものです。

Slack通知はこんなかんじ。実験なので過去の日時になっていますが基本は現在日時以降の予測情報からメッセージを生成します。

f:id:maru0014:20201223232223p:plain
Slackへの通知イメージ

続きを読む

毎朝GASでGoogle Tasks(ToDo)を取得して期限切れタスクをSlackで教えてもらう

f:id:maru0014:20201222211706p:plain

この記事は UG Advent Calendar 2020 23日目の記事です。

カレンダーやGmailの横にある Google Tasks はシンプルかつ使いやすい。

でもここに書いたは良いけど定期的に棚卸ししたりできているかというと...。

ということでGASで取得してスプレッドシートにサマリーを作成、期限超過していた場合は再度期限を設定してSlackに通知するシステムを作ってみる。

続きを読む

beebotteのクライアントにPowerShellを使ってリモートでWindowsをスリープモードにする

f:id:maru0014:20201220220847p:plain この記事は UG Advent Calendar 2020 22日目の記事です。

今日、何を思ったかPowerShellでMQTTクライアントを動かしてBeebotteのシステムコールトピックに「スリープモード」がパブリッシュされたら自動でデスクトップPCをスリープするというのを作ってみたくなった。

exeファイル単体でWindowsで動くNode-RED Desktopで実現しようか一瞬迷ったけどPowerShellなら10数行で書けるんじゃねと甘く見ての犯行です。

ちょいちょい躓きましたが一応動くものはできました。「OK Google システムコール スリープモード」と言えばPCがスリープモードになります。MQTTなら自宅ネットワークに穴あけなくて済むし安全。

続きを読む

GASでGoogleカレンダーの予定を取得して稼働計画表を生成する

f:id:maru0014:20201219235550p:plain

この記事は UG Advent Calendar 2020 21日目の記事です。

10月末くらいだったかに来年の稼働計画を立てる時期が来た。 今年の実績から概算で入力すればOKだから昨年作った自分用計算シートに値を入れてコピペかなぁと思っていたら、なんと今年は金額ベースの計画入力だけでなく案件ごとの時間数まで入力するフォーマットに変わっていた...。

時間数となると2021のカレンダーに合わせて祝日や曜日のズレも考慮して計算しないといけない。なんてめんどくさいんだ。 入力期限明日って言われたしちまちまやってたら間に合わない(余裕持って確認しなかったのが悪いんですけどね)。

Googleカレンダーには全部入力してあるんだしそこから自動生成してくれたらいいのに。

と思ったので作りました。ちまちまデータ入力するより楽しかったです。

  • 概要
    • 目標物確認
    • 動作イメージ
    • 完成品
  • 解説
    • 設定値取得
    • メニュー追加
    • シートの初期化と結果のセット
    • カレンダーから予定を取得して結果を配列に代入
    • 除外対象チェック
    • 経過時間数の計算
    • ピボットテーブルでの集計
  • あとがき

概要

この記事でできるようになること

  • GASでGoogleカレンダーに入っている予定を取得してスプレッドシートに出力
  • 複数のカレンダーも同時取得
  • 日付範囲を指定して取得
  • 特定の件名の予定は取得対象から除外する(正規表現)
  • 終日の予定を除外する
続きを読む

SESAMEスマートロックをMacroDrodのウィジェットボタンからAPI経由で操作する

f:id:maru0014:20201204225354p:plain

  • IFTTT対応なんだからIFTTT経由にすれば解決 のはずだった
  • PowerShellから試しにリクエストを投げてみる
    • Get Sesame list (SESAMEの一覧を取得)
    • Get Sesame status(SESAMEの状態を取得)
    • Control Sesame (SESAMEを開ける/閉める)
  • MacroDroidで実行できるようにする
    • トリガー:ウィジェットボタン
    • アクション:シェルスクリプト
    • ウィジェットボタンを配置
  • まとめ

marumo家では簡単に取り付けてアプリから解錠できる スマートロック SESAME を3年前から愛用しています。物理的な鍵を持たなくていい上に鍵の閉め忘れも無くなるので便利すぎてもうもとには戻れません。

しかし、不便な点がひとつあってアプリから開けようとする場合は

続きを読む