🔔
LaMetricを使って仕事中の状況を家族に知らせる
LaMetricを使って仕事中の状況を家族に知らせる
解決したいこと
- 家族に打ち合わせ中など今の状況を伝えたい。
- カレンダーの共有もしているが、打ち合わせが延長したりもするのでそれをリアルタイムに今の状況を伝えるのが難しい。
- MessageやLINEなどで都度送るのもログが溜まり続けるのが気になる。
結論
- LaMetricで現在の状況を表示することにした。
MTG中 | 作業中 | OK |
---|---|---|
更新はAlfred Workflow経由でコマンドを実行 |
---|
詳細
必要なもの
全体のフロー
- Alfred workflowでキーワードを入力
- スクリプトを実行
- JSONファイルを更新
- DropboxでJSONファイルを同期
- My Data DIYがJSONを取得(5秒間隔でポーリング)
- LaMetricの表示内容を更新
実装
My Data DIYのファイルを作成
1.- LaMetric内のアプリのMy Data DIYを使用。
- My Data DIYの表示内容はJSONで記述可能。
- icon idは https://developer.lametric.com/icons を使用可能。
{
"icon": "<icon id or base64 encoded data>",
"text": "UTF8 encoded text",
"duration": <integer, time in seconds>,
"goalData" : {
"start" : <integer, start value>,
"current" : <integer, current value>,
"end" : <integer, goal value>
},
"chartData" : [ <array of integers> ]
}
各定義
- MTG中
{
"frames" : [
{
"icon": "184",
"text": "MTG中"
}
]
}
- 作業中
{
"frames" : [
{
"icon": "555",
"text": "作業中"
}
]
}
- OK
{
"frames" : [
{
"icon": "74",
"text": "OK!"
}
]
}
2. 各JSONファイルをDropbox内に置く
- JSONファイルをDropboxに置き、共有リンクを発行。
- 共有リンクのクエリを
dl=1
にするとファイルに直接アクセス可能。
- 共有リンクのクエリを
- ファイル名は
mtg.json
,busy.json
,ok.json
にして、空のcurrent.json
も同一階層に保存しておく(以下のような形)。
.
├── current.json
├── busy.json
├── mtg.json
└── ok.json
3. ファイルの更新方法を用意
- My Data DIYは1つのJSONファイルを元に表示を更新するため、今表示したい
mtg.json
やok.json
の内容をcurrent.json
に反映する必要がある。 - 反映は
cat ./mtg.json > ./current.json
で行う。- 注意:
cp
だとファイル自体が変わってしまいDropboxのURLが変更されてしまうので使えない。
- 注意:
- スクリプトの実行を簡単にするために以下のmakefileをJSONファイルと同階層に保存する。
-
make mtg
を実行するとcurrent.json
にmtg.json
の内容が反映される。
-
MAKEFILE_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
MAKEFILE_PATH := $(MAKEFILE_DIR)/Makefile
CURRNET_JSON_NAME := current.json
make := make -f $(MAKEFILE_PATH)
.PHONY: mtg busy ok
.PHONY: notify
default: notify
mtg:
$(make) notify FROM=mtg.json
busy:
$(make) notify FROM=busy.json
ok:
$(make) notify FROM=ok.json
notify:
ifndef FROM
@echo "FROM is undefined"
@exit 1
endif
cat $(MAKEFILE_DIR)/$(FROM) > $(MAKEFILE_DIR)/$(CURRNET_JSON_NAME)
4. My Data DIYの設定
- 公式アプリのLaMetric TimeをiPhoneにインストール。
- LaMetric Timeアプリ内でMy Data DIYを追加し、以下の設定を行う。
LaMetric Time.app > My Data DIY |
---|
- Url:
current.json
のDropboxの共有リンクを設定 - Poll Frequency: ポーリング間隔(Dropboxの同期時間もあるので5秒に設定しても10-20秒くらいかかることはある)
- Sound: 更新時に音を鳴らしたい場合に設定
5. Alfred Workflowでmakeコマンドを実行
- 単純にWorkflow内でmakeコマンドを呼んでいるだけなので実装の説明は割愛。完成したWorkflowファイルはこちら: LaMetric - Notify.alfredworkflow
- Workflowのimport時に
makefile_path
は適宜ローカルのmakefileへのファイルパスを指定する。
Workflowの実行例
その他のアイデア
- MTG中に部屋の前の照明を赤色とかに変更して伝えるのもいいなと思った(友達がやってた)。
Discussion