ぽつんぽつんと書くブログ

飽きっぽいので、我慢せずに飽きることを許容しながら、ぽつんぽつんと生まれてくるブログ

PebbleをTaskerで操る(AutoPebble)

Taskerに有料のサードパーティープラグインであるAutoPebbleを追加して、オリジナルアプリもどきを作ってみたい。
ただし、残念なことに、自分のPebbleTime上では、カーソルなどの反転がうまく表示されず「黒塗りつぶし」になってしまった。自分専用のアプリなので気にならないが、潔癖症の人は避けた方がよいかもしれない。
なお、以下は通勤の合間にヘルプを読んででっち上げたコードであるから、本来の使い方を逸脱していたり、もっと簡単な方法もあるかもしれないのでご留意願いたい。

まず、AutoPebbleでできる「主な」ことを簡単におさらいしたい。

  • 右側の上中下ボタンで選択する3項目メニュー(長押しとダブルクリックやシェイクも取得できる)
  • その亜種である通知画面。実質的には3項目メニューと同じ。
  • 右側の上下ボタンで選択肢を切り替え、中央ボタンで決定する複数項目メニュー
  • Pebble側のAutoPebbleアプリが起動したことで発生するイベント
  • Pebble側で上記の選択ボタンが押された際に発生するイベント(Commandという変数で押されたボタンを識別できる)


この仕様から導かれるおよその戦略は以下の通り。

  • Pebble側でAutoPebbleが起動したらメインメニューを表示する
  • ボタン押下時に発生するイベントで、変数"Command"で返されたTaskerのTaskを実行する
  • サブメニュー用のTaskを作り階層構造にもする。

さらに応用として

  • 自宅Wifiから離脱した際に発生するイベントで、Pebbleに「消灯の確認」を通知し、決定ボタンが押されたときはIRKitから消灯するリモコン信号を発する。
  • 自宅Wifiに接続した際に発生するイベントで、Pebbleに「点灯の確認」を通知し、決定ボタンが押されたときはIRKitから点灯するリモコン信号を発する。

Pebble側でAutoPebbleを起動時にメニューを表示するプロフィール
3項目メニューを表示し、上ボタンを押すとリモコンという別のサブメニューに飛ぶ。中と下ボタンには今のところ割り当てなし。

Profile: Pebbleでアプリを開いた (186)
	Restore: no
	State: AutoPebble App [ Configuration:Watch App Opened: true
Pebble Connected: false
PebbleDisconnected: false
Media Button: false
Media Button Previous: false
Media Button Next: false ]
Enter: Pebbleメインメニュー (189)
	A1: AutoPebble List [ Configuration:Full Screen: false
Header: Taskerメニュー
Labels: リモコン
Actions: task:リモコン
Last Line Height Default: false
Remember Position: false
Motion Action: task:リモコン
No Prefix if Command: false
Do Not Disturb: false
Clear History: false
Open Phone App: false
Save Scren: false
Don't Send Screen: false
Go Back: false
Go Back Multi: false Timeout (Seconds):120 ] 


ボタン押下時の発生イベントで、Commandに従いTaskerのTaskを実行するイベント
このプロフィールを作ることで、冒頭にtask:を付してあるCommandを、タスクとして解釈するようになる。

Profile: Pebble:タスク呼び出し (195)
	Event: AutoPebble [ Configuration:Command Filter: task:
Case Insensitive: false
Exact: false
Case Insensitive: false ]
Enter: Task呼び出し (194)
	A1: Variable Set [ Name:%command To:%apmessage Recurse Variables:Off Do Maths:Off Append:Off ] 
	A2: Variable Search Replace [ Variable:%command Search:task: Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In:%command Replace Matches:On Replace With: ] 
	A3: Flash [ Text:%command を実行 Long:Off ] 
	A4: Perform Task [ Name:%command Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:Off ] 

サブメニューのタスク
複数項目メニューである。「外出就寝」というタスクを用意しておき、それを呼び出している。ちなみに、IRKitから、すべての家電に対して電源OFFのリモコン信号を発するタスクである。詳細はIRKitの記事を参照されたい。

リモコン (192)
	A1: AutoPebble List [ Configuration:Full Screen: false
Header: リモコン
Labels: 外出就寝,帰宅,照明
Actions: task:外出就寝,task:帰宅,task:時間に応じた照明をつける
Last Line Height Default: false
Remember Position: false
Title Font: Gothic 14 Bold
Text Font: Gothic 18
Motion Action: task:Close
No Prefix if Command: false
Do Not Disturb: false
Light Mode: Turn On Briefly
Clear History: false
Open Phone App: false
Save Scren: false
Don't Send Screen: false
Go Back: false
Go Back Multi: false Timeout (Seconds):120 ] 

応用編
 ここから先は別稿に譲る。