heyheytower

日々のメモです。誰かのお役に立てれば幸いです。

家庭内の情報共有【その2】(Alexa Echo Plus, Any.do)

anydo
Pic.1 Any.do でのToDoリストの様子

目次

目的

以前のエントリ家庭内の情報共有(Slack, Trello, IFTTT, HUBOT, Zaim, MyThings) - heyheytowerで家庭内の情報共有についてまとめておりました。

今回 Alexa Echo Plus を購入したので、Alexa の "買い物リスト"、"やることリスト" と自分の定期タスク管理を連動したく、ToDoアプリ選定・Slack*1 連動を目的としました。

概要

本エントリでは下記の調査・実施を行った。

  • Alexa の "買い物リスト"、"やることリスト" と連動できるToDoアプリの選定(Any.do一択でした)
  • タスク管理ソフト "Any.do" と Slack を連動する方法
  • 未処理タスクの slack リマインド実行の実装

方法

ToDoアプリの選定

日本語圏で使えるToDoアプリは "Any.do"*2 一択でした。

しかしながら Trello*3 と同じように、下記が実行できるので問題ないと判断しました。

  • 定期タスク追加が可能(週・月一は設定できるが、2週に一回などは設定できないが)
  • やったかやっていなかチェックできる
  • Slack と連動できる(IFTTTなど経由で。アプリネイティブではサービスは無し。)

タスク管理ソフト "Any.do" と Slack を連動する方法

単純に IFTTT*4 を利用します。

  • Item added to your To Do List
  • Item completed on your To Do List
  • Item added to your Shopping List
  • Item completed on your Shopping List

Alexa の上記トリガーと、Slack 出力を連携させます。 ※2018/11初旬ほどから日本語化けが直り、ようやく運用に乗るようになりました。

anydo_shopping
Pic.2 Alexaから買い物リストに追加を行い slack へ投稿される様子

anydo_task
Pic.3 Any.do からタスク完了チェックを行い slack へ投稿される様子

未処理タスクのリマインド実行の実装

Any.do のリストをコマンドから操作できるado-cli - npmを利用し、必要な出力を抜き出し、Slack へ投稿します。 (公式APIなどはなさそうでした。) Slack への投稿は[10分で出来る]シェルスクリプトの結果をslackに投稿 - Qiitaスクリプトを使わせていただきました。

$ cat /home/pi/Programs/shell/181103-slack-anydo/anydo-daily.sh
#!/bin/sh
/home/pi/.anyenv/envs/ndenv/versions/v8.9.3/bin/ado login -e mail@address -p password
/home/pi/.anyenv/envs/ndenv/versions/v8.9.3/bin/ado list | sed ':lbl1;N;s/SOMEDAY.*TODAY.*\n//;b lbl1;' | grep -E "掃除|todo" | /home/pi/Programs/shell/181103-slack-anydo/slack-todo.sh
/home/pi/.anyenv/envs/ndenv/versions/v8.9.3/bin/ado list | sed ':lbl1;N;s/SOMEDAY.*TODAY.*\n//;b lbl1;' | grep -v -E '^$' | grep -v -E "掃除|todo" | /home/pi/Programs/shell/181103-slack-anydo/slack-shopping.sh
$ 
$ ls -la /home/pi/Programs/shell/181103-slack-anydo/anydo-daily.sh
-rwxrwxrwx 1 pi pi 528 11月  5 01:44 /home/pi/Programs/shell/181103-slack-anydo/anydo-daily.sh

ado-cli は表示するリストを指定できないので下記をうまくGrepしてそれぞれ、買い物リスト・やることリストの項目として Slack 通知しています。

  • Alexa から買い物リスト追加だと Any.do では SOMEDAY に登録される
  • Alexa からやることリスト追加だと Any.do ではTODAYに登録される
$ /home/pi/.anyenv/envs/ndenv/versions/v8.9.3/bin/ado list 

SOMEDAY (0)
  - パン用スキム
UPCOMING (19)
  - [掃除]床の水拭き
  - [掃除]ホコリ取り
  -snip-
  - [todo]ドキュメント整理
  - [todo]通帳記帳
TOMORROW (0)

TODAY (1)
  - [todo]ドキュメント整理

定時投稿は cron を使います。

$ sudo crontab -e
# Daily
0 17 * * * /home/pi/Programs/shell/181103-slack-anydo/anydo-daily.sh

anydo_shopping_reminder
Pic.4 Any.do からの買い物リスト定期リマインドの様子

anydo_task_reminder
Pic.5 Any.do からのやることリスト定期リマインドの様子

まとめ

目的については達成しました。
これで声によって、やることリスト・買い物リストへの追加が行え、そしてそのリストの残タスクを Slack にて確認することもできるようになりました。

現在試験運用中なので、これから使用感・運用に伴う変更点や追加点など随時更新したいと思います。

以上