止まれ見よ

独身30代サラリーマン@都内在住

独身30代サラリーマンの「ひとりSlack」運用について

はじめに

Slack Advent Calendar 2018 - Qiita の13日目の記事です。

Python初心者のエントリで恐縮ですが、ご笑納ください。

ひとりSlack

企業を中心にビジネスコラボレーションツールとして用いられている「Slack」。

家庭やカップルでこのSlackを使うと便利、というTIPS紹介は以前より多く、Slackの個人利用について調べていると、こんな記事に良く出会う(いずれも2016年の記事)。

確かにSlackはうまく活用すると、日常のちょっとした手間や不便をサポートしてくれる有能なアシスタントになりそうだ。

家族持ちではなく独り身の自分にとっても、便利なツールになるはず、と色々と試行錯誤しているところ。もしかしたら同じような試みをしている、似た人の参考になるかもしれないので、この機会に「オレオレ仕様のひとりSlack運用」について紹介してみる。

ひとりSlackで運用中のBot

MoneyForward連携 おこづかい管理

利用イメージ

f:id:stopll2:20181212215315p:plain

  • MoneyForward データを基に、当月支出額や予算進捗などを教えてくれる
  • 毎朝8:30に定期実行し、通勤途中に確認して、その日の無駄づかいを戒める
  • このペースだと月末にはいくら貯まるかを計算表示し、モチベーション強化

Bot運用のきっかけ

ずいぶん昔から、クレジットカードや電子マネーを連携して、MoneyForward を家計簿として利用している。プレミアム会員にもなって愛用しているサービスだが、個人的には次のような不満点があったため、この点をオレオレ仕様でカバーすることにした。

  • 細やかな家計管理には、自分で MoneyForward を能動的に開く必要あり
    • 無駄づかいの罪悪感があると、自分からは次第に見なくなってしまう
    • プッシュ通知で現況をサマリ表示し、現実を突きつけるように実装
  • 予算進捗のバー表示はわかりやすく便利だが、スマホアプリから見られない
    • Web版の「予算」画面をキャプチャし、添付画像としてSlack投稿を実装
  • 月次目標に支出を抑える、といった視点の管理だけでは疲弊してしまう
    • 月末の貯蓄見込みを毎日計算して追うことで、ゲーム感覚で貯金したい
    • 同ペースで推移すると月末にいくら貯金できるかの計算表示を実装

航空会社 マイル確認

利用イメージ

f:id:stopll2:20181212215422p:plain

  • 航空会社のマイレージデータを基に、マイル残高などを教えてくれる
  • 2週に1度クロールし、フライト搭乗後やクレカ決済でのマイル付与の確認が可能

Bot運用のきっかけ

社会人になった当初に、出張の機会が多く、搭乗が多い人向けの会員プログラムに入会する前は、自分から頻繁に航空会社のマイル確認をしていた。しかし、ステータスを達成しマイル残高もある程度溜まってくると、わざわざ自分から確認しに行くことはなくなり、代わりにSlackに自動通知するようにしてみた。

  • 以前ほど熱心にマイル残高を追いかけないが、たまには状況をチェックしたい
    • カード決済での付与マイルが、気がつくと溜まっていることもある
    • マイル有効期限や、目標マイル達成率も乗せると良さそうといま思った
  • 生涯マイル・生涯搭乗回数も記載があったので、 せっかくなので参考に拾ってみた
    • いわゆる「修行」をしている人にも便利かも?
    • 自分はJAL派だが、複数エアラインを利用している人は、一括確認できて便利そう

いきなりステーキ 肉マイレージ確認

利用イメージ

f:id:stopll2:20181212215436p:plain

  • マイレージの会員情報を基に、マネー残高・累計マイレージを教えてくれる
  • 週の真ん中 水曜日 18:00 に、おにくを食べてエネルギー回復を促す

Bot運用のきっかけ

なんとなく肌感覚ではブームが過ぎて落ち着いたと思うが、前に「いきなりステーキ」が流行ったときにカードを作成。ステーキを食べた量が一定量を超えると、会員ランクがアップして特典がもらえるため、その目標(?)管理と、プリペイドチャージしたことを忘れないようにBotを運用しみることにした。

  • 会員ランクで誕生月プレゼントが変わるため、計画的にランクアップを目指したい
    • 定期的に累計マイレージを確認し、誕生月直前に駆け込み修行することを避ける
  • プリペイドチャージした肉マネーを無駄にしないように、残高を確認したい
    • 29日にチャージするとお得だが、プリペイド忘却し結局丸損とならないように

洗濯・折りたたみ傘・重ね着ジャッジ

利用イメージ

f:id:stopll2:20181212215446p:plain

  • 洗濯を干して良いのか・傘は必要か・上着は着るべきか、をアドバイス
  • 毎日7:00と20:00に定期投稿し、今日・明日を迎える準備に役立てる
  • ひと目で見てわかるように、イメージを添付してSlack投稿

Bot運用のきっかけ

もともとはスマホアプリで、気温や降水確率をチェックしていたが、残念ながら自分の場合、その数値情報だけでは洗濯・折りたたみ傘・重ね着の要否判断を見誤ることが多かった。そこで、むかし母親が「今日は傘持っていきなさい!」「上着ないと寒いわよ!」と家を出る前に声がけしてくれたありがたみを噛み締めつつ、Yahoo! 天気・災害の指標情報 を用いて、同様のアドバイスが定期投稿されるようにした。

  • 気温・降水確率という数値はわかり易いようで、それだけではジャッジを見誤りがち
    • 洗濯・折りたたみ傘・重ね着の「指標情報」を利用するようにした
  • 時間のない朝でもサッと判断できるように、わかりやすい画像で内容を認識したい
    • 元ページの10段階のアイコン表示を利用、3種の情報を一覧イメージ化

nanaco擬似オートチャージ

利用イメージ

f:id:stopll2:20181212215501p:plain

  • nanacoオートチャージ対応クレカを持っていなくても、擬似的に実行してくれる
  • 週末 9:00 に定期実行し、クリーニングに行く前にチャージを済ませる

Bot運用のきっかけ

キャッシュレス化に関する話題が盛り上がっているが、自分も出来るだけ現金は使わないようにしている。週末に行く最寄りのクリーニング店では、交通系ICや各種電子マネーが利用でき、色々と考えた結果、nanacoを利用することにした。

nanacoプリペイド型だが、オートチャージ対応のクレカが限られており、放っておくと残高がなくなっていることがあり非常に不便。対応クレカを新規発行するのではなく、「残高確認→しきい値以下ならチャージ」を自動で定期実行することにした。

  • クリーニング店で、nanaco残高が不足していると非常にストレスフル
    • 残高が一定額を下回ったらチャージ、を自動で定期実行
    • クリーニングを出さなきゃいけない週末の朝に投稿し、リマインダも兼ねる
  • チャージ後にセブンATMで残高反映するひと手間がいる課題は相変わらず...

初心者なりのPythonでの実装

自分のスペックだが、タイトルでも触れているように、独身30代サラリーマン。いちおうIT業界に勤めているものの、エンジニアではなく企画職で、職場では Excel VBA をたまに書く程度。

今回紹介したbotは「やりたいことを妄想 → ひたすら不明点をググる → Qiita などを参考に力づくで実装 → なんとか自動で動くように」と初心者なりに作ったものなので、きっと開発者の方々なら、超スピーディかつ超スマートに実装できるのだと思う。

一方で、「どんなキーワードで関連情報を検索すべきか検討もつかない」状況で苦労したので、誰かのヒントになるかもと思い、Pythonで実装した際のメモを残しておく。

  • 上記Botに共通して、元データはすべてWebページ上にあり、SeleniumWebサービスにログインして必要情報をスクレイピングした
    • Money Forward のプログレスバー画面のキャプチャも、Seleniumで実現
    • 貯金額の着地見込みなどは、元ページに数値そのものは無いため、Pythonファイル内で計算
  • Slackへの投稿は、Slacker というPython用ライブラリを利用した
    • Slackのリファレンスを見ると分かる通り、Message Attachment というのを利用すると、単なる平文投稿ではなく、ちょっとリッチなスタイルでの投稿が可能
  • Yahoo! 天気の指標情報アイコンは、Webページからキャプチャするのではなく、10段階の指標をもとに画像を生成した
    • 指標情報が記載されているページ のアイコン周りをそのままキャプチャすると、自分には情報が多すぎたため
    • それぞれ10段階のイメージを用意しておき、OpenCVというPython用ライブラリを用いて画像を連携して投稿
  • 現時点では、ローカル上のPythonファイルをCrontabで決まった時間に実行している
    • 近い内にサーバレス運用というのを試してみたい

ひとり暮らしをもっと便利にしたい

今回紹介したBotはどれも、自分で行うのは面倒でついついサボってしまうことを、Pythonで定期実行・Slackに自動投稿するようにして、生活をちょっぴり便利にしてくれるもの。

家庭利用・カップル利用ではなく、独身の「ひとりSlack」であっても、ちょっとした工夫で日常生活が便利になるので、ぜひ今後も試行錯誤・ブラッシュアップしていきたい。

ひとりSlack運用に限らず、独身生活でトライアンドエラーを繰り返すなかで、自分なりに洗練させてきたノウハウがあると思うので、機会をみつけて記事化していこうと思う。