ごきげんよう。最近、久々にしっかり風邪を引きました🤧
今日は小ネタをひとつ。
やりたいこと
LTE-M Buttonをクリックしたときに、そのパターンに応じてメッセージを変えたり、バッテリー残量をよりユーザーフレンドリーな形でメール通知したい。
背景
LTE-M ButtonはSORACOMのユーザーコンソールのデバイス設定画面からの設定だけで手軽にボタンクリック時にメールを送信できる機能があります。
メッセージの中身はプレースホルダーを使ってカスタムできるのですが、たとえばデフォルトのメッセージテンプレートではボタンクリックのパターンやバッテリー残量をそのままメッセージに出力するため、どうしても無機質なメッセージになってしまいます。
たとえばボタンクリックのパターンそれぞれに意味をもたせるような使い方(シングルクリックで出勤、ダブルクリックで退勤、など)をしていたり、バッテリー残量低下時にパーセンテージだけではなく「電池を交換してください」といったメッセージを含めたいときに、今回紹介する方法が役に立つかもしれません。
方法
デバイス設定のユーザードキュメントにも記載があるように、メール送信機能ではSIM(またはSIMグループ)のタグ情報にアクセスできます。具体的には {{(group.)tags.XXX}}
プレースホルダーを使って特定のタグ XXX
の値をメールのタイトルや本文に設定できます。
また、ご存知の通りボタンクリック状態 {{event.clickTypeName}}
は決まった文字列(SINGLE
DOUBLE
LONG
のいずれか)が返ります。
今回はこれを組み合わせて、ボタンクリック状態を含むタグをあらかじめ定義しておき、メッセージテンプレート内でボタンクリック状態に応じたタグの値を読み込むことで、メールの内容を動的に変更します。たとえばボタンクリックの3状態にそれぞれグー・チョキ・パーという意味を持たせたい場合、以下のようなキーワードを含むタグを定義します。
タグの名前 | タグの値の例 |
---|---|
SINGLE | グー✊️ |
DOUBLE | チョキ✌️ |
LONG | パー🖐️ |
また、ボタンクリック状態と同様にバッテリー残量 {{event.batteryLevelPercent}}
も25(%)刻みで決まった値を返すので、同じような形でタグを定義しておくことで残量に応じたメッセージへ置き換えることができそうです。
タグの名前 | タグの値の例 |
---|---|
100 | 電池残量はまだまだ大丈夫です |
75 | 電池残量はまだ大丈夫です |
50 | 電池残量は半分です |
25 | 電池を交換してください |
実際に設定するタグは下記のような形になります。わかりやすさのために JANKEN_
や BATT_
というプレフィックスをつけています。
定義したタグ情報を {{tags.JANKEN_{{event.clickTypeName}}}}
や {{tags.BATT_{{event.batteryLevelPercent}}}}
といったようにタグ情報の読み出し用プレースホルダ内にボタンクリック状態やバッテリー残量といった定数部分のプレースホルダをネストする形でメールテンプレート内に定義すると、{{tags.JANKEN_SINGLE}}
や {{tags.BATT_50}}
のような形で展開されることが期待され、それぞれのタグの設定値がメールのタイトルや本文に展開されます。
最後にメールテンプレートを保存してLTE-M Buttonのボタンをクリックすると、下記のようなメールが送信されました。
私が試したときはこの方法で動作しましたが、メール送信時のプレースホルダの評価(置き換え)順序という非明示仕様を使用しているため、将来的に使用できなくなったりうまく動作しなくなる可能性が想定されます。
あくまで手軽にテキストを置き換えたい場合の方法の一つとして参考にしてください。