家庭内の情報共有【その2】(Alexa Echo Plus, Any.do)
目次
目的
以前のエントリ家庭内の情報共有(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初旬ほどから日本語化けが直り、ようやく運用に乗るようになりました。
未処理タスクのリマインド実行の実装
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
まとめ
目的については達成しました。
これで声によって、やることリスト・買い物リストへの追加が行え、そしてそのリストの残タスクを Slack にて確認することもできるようになりました。
現在試験運用中なので、これから使用感・運用に伴う変更点や追加点など随時更新したいと思います。
以上