2019年3月28日木曜日

【Alexa】Blueprintsや定型アクションで、喋らせる文章を区切る方法

【症状】
定型アクションのカスタムおしゃべりや、Blueprintsのスキルで設定した返答で、句読点が読み方に反映されない。2019.3現在、日本語の句読点は無視され、流れるように読んでしまう。
例外として、「は」のあとに読点を入れた場合は少し間を開けてくれる(?詳細不明)

【対策】
半角ピリオドを入れてやればいい。
全角ピリオドやスペース、!、?等はすべて区切りとしては機能しない。

【裏技】
ちなみに、もっと長い待機時間を設定したい場合、半角ピリオドと小さい「っ」を連続で入力すると、無音をキープすることができる。

.っ.っ.っ.っ.っ.っ.っ.っ.っ.っ.っ.っ.っ.っ.

ピリオドの連続では無音時間は増えない。「っ」の連続ではちょっと増えるけどコスパが悪い。

【補足】
がっつり自分でスキルを作るなら、
<break time='5s'/>
のような挿入が可能。Blueprintでは無理みたい。

2019年3月14日木曜日

【SESAME・SESAME mini】 GAS から Web API を利用する。(サンプル)

【作成日:2019/3/14】
【更新日:2020/12/20】Google Apps Scriptの新エディタに関する補足を追加。
【更新日:2020/6/16】SESAME3(Sesame OS2)のAPIに対応したバージョンへの案内を追加。

【追記】
※GASがV8対応する前に作ったものですが、動くので更新はしてません。
※SESAME3ではAPIが刷新されたので、この方法は使用できません。新しい方法はこちら

2019年3月13日水曜日

【SESAME mini】導入にあたって、注意点と活用アイデア

スマートロック SESAME mini を便利に使っている。
けれど、もっと便利にしたいなーということで本領発揮できる活用法を考えてみた。

【その前に】


導入時に気づいた注意点メモ: 

  • Wi-Fiアクセスポイント登録時、ルーターのチャンネルが13になっていたため、SSIDが表示されず、どういうこと?となった。11以下にする必要があるらしい。
  • 取付前の動作チェック時、一度電池を外して、何の気なしに手でつまみをグルグルまわしていて、その後また電池で動かしたら、手で回した分グルグルグルグル……と何周も回って元の設定位置に戻った。
    つまり、めったに無いとは思うが、一度ドアから外し再取付する場合など、つまみに触れてしまうと見た目の位置が同じでもセサミにとって違う位置になっていることがあるかも。
    追記:セサミはつまみを動かせないほどの負荷がかかると自動で動作を止めるらしい。だから多分壊れはしない。



さて、

【標準機能】


まず標準の機能についての感想。

  • 手ぶら解錠
    どうやら別の方法で開けた後、遅れた手ぶら解錠でまた開いてしまうケースがあるらしい。

    半径250m以上離れないと機能しないから、近所のコンビニに行くとき機能しない。

    訂正:SESAMEの位置設定をわざと偽ることで、コンビニを250m圏外に設定できた。でもコンビニと反対側に行くときは400m以上離れないといけなくなった…。

    再訂正:近くのコンビニから帰っても「おかえりなさい通知」が帰宅後数分してからしか届かない。やはり円の中心に自宅を置かないと、帰宅判断→準備が間に合わない?

  • オートロック
    閉め出されるリスク。

  • Alexa、Google Home 直接連携での施錠解錠
    悪くないけど、今のところ使うタイミングがあまりない。

【考え中の案】

とりあえず思いついた案を列挙。

前提の環境

  • Wi-Fiアクセスポイント
  • Androidユーザー(一部はiPhoneも可)
  • Google Apps Scriptをいじれる。(APIの利用)
     GASのサンプルはこちら
  • 家族がいる。(ゴミ出しや庭いじりでスマホも鍵も持たないで外にいる可能性)




解錠トリガー編
  • 【MacroDroid】NFCタグ
    ドアの外側にNFCタグを貼る。スマホをロック解除してかざすだけ。
    ほぼモバイルSuica的な使い方をシール一枚で可能にする。ただし数秒待機。(貼る面が金属だと読み取れないため、金属製のドアに直接は貼れない)
  • 【MacroDroid】各種デバイスアクション
    ボタン連打、長押し、シェイクなどなど。(誤動作がありそう)
  • MacroDroid】GPS
    家に近づいたら解錠。セサミアプリより柔軟なGPS設定が可能。
  • 【IFTTT】GPS
    同上。
  • MacroDroid】家のWi-Fiに接続
    接続タイミングが気まぐれだから、ちょっとダメかな。
  • MacroDroid】基地局グループ
    自宅ピンポイントの基地局グループを構築できれば良いけど、うちでは失敗。
  • 【IFTTT】Googleアシスタント
    任意のフレーズ。パスワード不要はセキュリティとトレードオフ。
  • 【IFTTT】Googleアシスタント(時差解錠)
    出先でスマホの充電がピンチのとき用。
    「30分後にセサミを開けて」など任意の数字を含むフレーズをGAS側で処理する。
  • 【LINE BOT】メッセージからの時刻指定ダイアログ(時差解錠)
    出先でスマホの充電がピンチのとき用。
    自前のBOTアカウントで時刻指定ダイアログを利用→GASに送る。
  • MacroDroid→LINE BOT】スマホバッテリーが10%に減った時差解錠)
    外出中かつ時差解錠の予約も入っていなかったら、LINE BOTから警告メッセージが届く。返信で解錠予約。
  • MacroDroid】スマホバッテリーが1%に減った(緊急解錠)
    外出中かつ時差解錠の予約も入っていなかったら自動解錠。(防犯対策必須)
  • IFTTT/MacroDroid】 スマホのホーム画面にボタン設置
    IFTTTウィジェット、MacroDroidショートカットなど。ショートカットの方がフォルダやAppランチャーに入れられる。


施錠トリガー編

  • MacroDroid】NFCタグ
    施錠のほうが、数秒の時差は関係ないから使える。

    理屈では施錠時は解錠、解錠時は施錠と、1枚のタグで対応できるけど、実際は不明。内側から手で開けて外に出た場合に、API側で即座に解錠状態と認識できるのかどうか。
    できなかった。状態変化が反映されるまで20~30秒かかる。syncをかけても即時は無理のよう。
  • IFTTT/MacroDroid】 ホーム画面にボタン設置
    解錠版と同様。
  • 【Dash Button】(追記:ダッシュボタンさんはほぼお亡くなりになりました)
    施錠ボタンなら外に置いてもいいかも?
    または、作動まで数秒時差があるから、ドアの内側に付けて、出る直前に押す。
    スマホ忘れ注意。
  • MacroDroid】家のWi-Fiから切断
    家族がスマホ・鍵持をたずに外にいた場合、閉め出される。
  • 【MacroDroid】GPS
    家族がスマホ・鍵を持たずに外にいた場合、閉め出される。
  • 【MacroDroid】スマホバッテリーが2%に増えた
    外出中かつ解錠中なら施錠。
    (1%で緊急解錠したのち、出先でモバイルバッテリーを使ったという判断)
    家族がスマホ・鍵を持たずに外にいた場合、閉め出される。


    んー
    完全自動化を目指すと家族の居所がネックになる感じか。



    続いて、

    解錠→施錠  一括編

    解錠も自動にして、解錠施錠のタイミングをGASで制御。
    出かける直前、靴履く前などに室内でアクション。
    例:解錠 → 1分後に施錠 など
    (標準オートロックと違うのは、不要なとき勝手に施錠されないところ)
    • 【Dash Button】
      室内にボタン設置
    • MacroDroid】NFCタグ
      室内にタグ設置
    • 【IFTTT】Googleアシスタント
      任意のフレーズ「いってきます」など
    • 【GAS単独】
      毎日、分単位で出かける時間が決まっているなら、
      時刻指定トリガーで完全自動解錠→施錠。

    いずれも外に出た後に「あ、スマホ忘れた」となると終わり。
    そもそも室内から開ける動作を自動にする必要性は普通ないか。




    (解錠→)施錠→解錠  一括編

    逆のパターン。スマホを一切使わない。
    例:「OK Google、ゴミ出し行ってくる」 → すぐ解錠、10秒後に施錠して3分後に解錠。(朝だけ機能するようにしておく)
    • 【IFTTT】Googleアシスタント
      任意のフレーズ
    • 【Dash Button】
      室内にボタン設置


    その他

    • SESAMEのバッテリーが減ったらお知らせ (API → メール、LINE)
    • 30分以上解錠状態が続いている場合、お知らせ → 施錠 (API → LINE → API)
      例:「ドアが開けっ放しだよ。閉める?」「はい/いいえ」
    • セサミアプリからの解錠施錠通知をMacroDroidのトリガーにして、任意のアクション
      IFTTTの解錠施錠トリガーは時差があるから、この方がいいかも。手段も取得できる。



    【雑感】

    どれがいいのか現時点ではわからないけど、閉め出し以外にも故障なども考えれば、自宅外の安全な場所に物理鍵を保管することは必須になるのだろう。
    逆に言うと、そうしておけばレアケースのリスクも考えずに済み、かなり自由に運用できそう。

    レスポンスは、うちの環境では、IFTTT経由もAPIも時差に違いはなく、5~8秒というところ。施錠時は全く問題ないが、ドア前解錠だとちょっと…。


    【SESAMEサイクル(SESAMEシリーズ)】 NFCタグをエミュレートするアプリをつくった (Android)

    セサミのNFCタグ機能を実際のタグなしで自由に発動させたくて、アプリを作った話。 ( ページ下部より APKダウンロードできます )  【まえがき】 うちでは玄関のセサミ3は前回記事で書いたGASで運用していてNFCタグ機能は使っていないのだけど、最近セサミサイクル(ママチャリ)...