保育園の送迎を助けるLine Bot

ex-Kayacアドベントカレンダーの5日目です。
​​昨日の投稿は堤修一さんの技術書の著者になるためにやったことでした。

近況

​​本題に入る前に、近況を
​​2011年にカヤックに新卒で入社。Flasherとして入社するはずがiPhoneFlash非搭載事件があったので、何も出来ない子として入社。先輩と2人でUnityを始める。その後、展示、IoT、ミュージックビデオなど色々やらせてもらいました。 →カヤックで作ってたもの

​​2014年にフリーランスとして独立 & dot by dot inc.に所属 →dot by dotで作ってるもの
​​​​今年2018年9月にドイツ、ベルリンへ移住しました。フリーランス & dot by dot継続中です。

asus4.hatenablog.com

引っ越してまだ2ヶ月ちょい。やっとビザが出て生活できるようになってきたばかりです。ドイツでの苦労話はおいおい聞いてください。今日はこの話を書きます↓ ​​

​​保育園送迎を助けるLine Bot

モチベーション

我が家は私がフリーランス、妻が正社員(デザイナー)、子供1歳です。世田谷区の保活は大変でしたが、期間限定で入れてくれるところが見つかり、4月から共働き復帰しました。

フリーランスの私のほうが時間に自由が効くため、保育園の送迎は基本的に
朝:妻
夕:私
でした。保育園送迎を初めてから気づいたのですが、送迎のママ・パパは自転車が主な交通手段です。都内では車での送迎が禁止のところも多く、満員電車に子供は載せられない。毎日タクシーを使うわけにもいかない。必然的に自転車になるのです。

普段の我が家のスケジュールはこんな感じでした↓

f:id:asus4:20181206104223p:plain

割とうまく回っている気がします。子供が生まれる前はかなり長時間働いていたので、超集中して働く様になりました。
ところが、自転車にとっての一番の弱点が降るとスケジュールが狂います。

雨のときのスケジュール

f:id:asus4:20181206104304p:plain
​​ 朝はいつもより早く出ないと、ただでさえ短い勤務時間が更に減るし。
午後から雨が降っても、一日中モニターに向かっていると気づかず、いざ自転車で迎えに行こうと外に出ると、雨。仕方なくタクシーで迎えに行ったこともありました。

これはミスがでるな…と。
なんとかミスを減らそうとしました。

初号機:IFTTTで雨を教える

Slackを始めプログラマーフレンドリーなツールは沢山ありますが、妻はSlackを使っていなかった、できるだけ普段からよく見るツールにしたいと思いLineに通知が飛ぶようにしました。
そんなに開発工数をかけてもしょうが無いので、最速でつくれるものから始めました。

IFTTTで雨を天気予報を教えるだけです。

IFTTTは色々な条件をトリガーに色々なサービスを動かせるものです。

実装工数10分

f:id:asus4:20181206111049j:plain

ちなみに会社からかえるときにラインするは、GPSで私の位置をトラッキングして、オフィス周辺2kmから出ると「今から帰ります」と妻にラインするボットです。仕事に集中するとお迎えを忘れる危惧が合ったので、無事に迎えに言ったことを自動で妻に通知する様にしました。(やり過ぎた自動化)ちなみにこのアプレットは時間を指定できなかったので、昼間に打ち合わせで電車に乗ったときにも発動するバグがありました。

改訂版: IFTTT + AWS Lamdaで自分の条件にあった完璧な通知をする

​​ 運用してみて、土日も雨の予報が飛ぶし、当日の朝に雨が無いときも。​​結構通知がうざいなと。通知の自動化あるあるではないでしょうか…。
慣れというのは怖いもので、多すぎる通知を勝手に無視してしまうようになりました。

そのため、大事な通知だけ送るように、Lineへの通知をカスタマイズしました。
普段の仕事の延長で考えるとRaspberryPiなどでやるところですが、勉強を兼ねてAWS Lambdaでつくりました。

作った機能

  • 朝 6:00 :その日の夕方に雨が振りそうなら、予めバスで通勤するようにお知らせ
    • 雨の強さをお知らせ
    • 平日のみ通知
  • 夕方 16:30: 雨が降っていたら、自転車で帰れないから、早めにバスに乗った方がいいとお知らせ
    • 雨の強さをお知らせ
    • 平日のみ通知
  • GPSでオフィス(渋谷)から離れると実行。
    • 平日かつ、お迎えの時間(夕方)のみ通知
    • 打ち合わせの移動、昼間の移動はフィルタリング
    • ついでに保育園の入り口のロック番号を4桁を通知(4桁も覚えられない…)

使ったAPI・ライブラリ

最終的にこんな感じになりました。

https://cdn-ak.f.st-hatena.com/images/fotolife/b/blog-media/20180905/20180905164141.png

おかげなのか、せっかく作ったから意地なのか、(忙しいときは変わってもらったことも合ったけど)、保育園のお迎えは一度も遅れずいけました!