Sympapaのスマートホーム日記

スマートなんとかはスマートじゃない方法でつくられている

Qrio Lock(3): 帰宅時にハンズフリー解錠されていることをHome Assistantを使ってお知らせする

こんにちは。Sympapaです。

我が家ではスマートロック: Qrio Lockを使っていてとても気に入っています。
1.5年使用したレビューを書いているのでQrio Lockに興味があればご覧いただければと思います。
sympapa.hatenablog.com


Qrio Lockの何が便利かって何といってもハンズフリーで施錠解錠できる点でしょう。
Qrio Lockの場合、施錠の方はオートロック機能を有効にすればドアが閉まると自動で施錠してくれます。
一方解錠の方はハンズフリー解錠機能があります。
スマホGPSを使って家から数百m離れた場所へ行くと外出判定となり、その状態から家に近づきスマホQrio LockのBluetoothビーコンをキャッチするとアプリが自動的に解錠してくれるというものです。
凄く便利なのですが、残念ながらGPSの電波が届きやすい一戸建ての我が家でもハンズフリー解錠が成功する打率は90%くらいで確実ではありません。
まぁ10回に9回は解錠されているので帰宅すると解錠されている前提でまずはドアノブを回してドアを開こうとするわけですが、ここでドアが開かなかった時はなんとも「イラっ」とします。
打率が改善されるのが一番なのですが、せめてハンズフリー解錠が成功しているかどうかをドアノブに手を掛ける前に知ることができれば「イラっ」も減るのではないかと考え、Home Assistantを使って解錠していることをお知らせしてくれるようにしています。
今回はそれについて書いていこうと思います。

■とりあえずQrio Lockシリーズ記事まとめ

Qrio Lockシリーズ記事まとめ
Qrio Lock(1): 1.5年間使用レビュー(今更)
Qrio Lock(2): ドア開閉センサーを追加してロック状態を取得する

Qrio Lock(3): ハンズフリー解錠されている時にお知らせしてくれるようにする←今回
Qrio Lock(4): Home AssistantからQrio Lockを施錠する
Qrio Lock(5): 家の前を通過しただけなのにハンズフリー解錠された時に再施錠してくれるようにする
Qrio Lock(6): オートロックを一時無効化した後自動的に再有効化してくれるようにする(記事焼き直し)
Qrio Lock(7): Qrio Key Sレビュー

■前提条件

  • 我が家は一軒家
  • 基本的にクルマで出かけてクルマで帰宅する
  • 駐車場は家の目の前
  • Qrio Lockのロック状態を追加のドア開閉センサーで取得している
  • 玄関ドアの開閉状態をドア開閉センサーで取得している
  • 玄関の外にHome Assistantと接続された人感センサーがある
  • 玄関の外にポーチ灯がある
  • スマホAndroidである
  • スマホにはTaskerとAuto Notificationをインストールしている


■どうやってお知らせするか

Qrio Lockアプリが「ハンズフリー解錠しました」と通知するのでそれをキャッチしてスマホが喋って知らせてくれるようにしています。
でもそれだけだとマナーモードにしてカバンに入れていたら気づかない可能性があるので、玄関に近づいた時に解錠されていたらポーチ灯が点滅するようにしてみました。


ハンズフリー解錠をスマホが喋ってお知らせする

Android定番の自動化アプリ"Tasker"と、通知を監視してTaskerのトリガーにしたりTaskerのアクションとして通知を自動で操作したりできるプラグイン"Auto Notification"を使い、Qrio Lockアプリが「ハンズフリー解錠しました」と通知するとそれを喋るようにしています。
また車の中ではスマホがカーオーディオとBluethoothで接続されておりカーオーディオを信頼できるデバイスに設定しているためスマホのロックが解除されている場合が多いです。ロック解除されている場合はディスプレイが点灯して「ハンズフリー解錠しました」と表示するようにもしています。
play.google.com
play.google.com

    Profile: ハンズフリー解錠を通知する
    Settings: Restore: no
    Event: AutoNotification Intercept [ Configuration:Event Behaviour: true
    Notification Type: Only Created Notifications
    Persistency Type: Both
    Notification Apps: Qrio Lock
    Notification Title: ハンズフリー解錠しました ]
   
    Enter Task: Anon
    Settings: Abort Existing Task
   
    A1: HTTP Post [
         Server:Port: https://ハンズフリー解錠されたことをHome Assistantに知らせるwebhook URL ←お知らせとは無関係
         Timeout: 10 ]
   
    A2: AutoInput Unlock Screen [
         Configuration: Unlocking Screen.
          Timeout (Seconds): 10 ]
   
    A3: Turn On [
         Block Time (Check Help): 500 ]
   
    A4: Wait [
         MS: 0
         Seconds: 1
         Minutes: 0
         Hours: 0
         Days: 0 ]
   
    A5: Say [
         Text: ハンズフリー解錠しました
         Engine:Voice: default:default
         Stream: 3
         Pitch: 5
         Speed: 5
         Respect Audio Focus: On
         Continue Task Immediately: On ]
   
    A6: Popup [
         Text: ハンズフリー解錠しました
         Layout: Popup
         Timeout (Seconds): 5
         Show Over Keyguard: On ]


■ポーチ灯が点滅してお知らせするHome Assistantオートメーション

Home Assistantを使い、玄関の外に取り付けた人感センサーが人感を検出した時に玄関の鍵が解錠されている場合、ふぁっとポーチ灯が2回点滅してお知らせするようにしました。但し、そのままだと中から出てきた場合に毎度点滅してしまうのでドアが閉まっていた場合に限り点滅させています。
最初はスマホからハンズフリー解錠したことをHome Assistantへ伝達しハンズフリー解錠された時のみ発動するような仕組みを考えましたが、解錠されている理由がハンズフリー解錠であろうが他の理由であろうが解錠されていることに違いは無いので、シンプルに解錠されている場合にお知らせする仕組みとしています。
(解錠されているか施錠されているかはQrio Lockに追加で取り付けたドア開閉センサーで取得しています。)
点滅させた後は普段人感で点灯させるのと同じように時刻と周囲の明るさの条件によって電球の明るさと色温度を変えて点灯あるいは消灯させています。

alias: 帰宅時に玄関の鍵が開いているお知らせ
description: ''
trigger:
  - type: motion
    platform: device
    device_id: 玄関外の人感センサーのID
    entity_id: binary_sensor.sonoff_motion_sensor_1_entrance_ias_zone
    domain: binary_sensor
condition:
  - type: is_open
    condition: device
    device_id: 玄関ドアロック状態を取得するためのドア開閉センサーのID
    entity_id: binary_sensor.aqara_door_sensor_3_lock_on_off
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - type: is_not_open
    condition: device
    device_id: 玄関ドアのドア開閉センサーのID
    entity_id: binary_sensor.aqara_door_sensor_2_door
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
action:
  - service: light.turn_on
    target:
      device_id: ポーチ灯のHue電球のID
    data:
      transition: 1
      brightness_pct: 5
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - service: light.turn_on
    target:
      device_id: ポーチ灯のHue電球のID
    data:
      brightness_pct: 100
      transition: 1
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - service: light.turn_on
    target:
      device_id: ポーチ灯のHue電球のID
    data:
      brightness_pct: 5
      transition: 1
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - service: light.turn_on
    target:
      device_id: ポーチ灯のHue電球のID
    data:
      transition: 1
      brightness_pct: 100
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - service: light.turn_on
    target:
      device_id: ポーチ灯のHue電球のID
    data:
      transition: 1
      brightness_pct: 20
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - choose:
      - conditions:
          - condition: time
            after: '16:30'
            before: '19:59'
          - type: is_illuminance
            condition: device
            device_id: 玄関外の照度センサーのID
            entity_id: sensor.xiaomi_light_sensor_1_illuminance
            domain: sensor
            below: 6
        sequence:
          - service: light.turn_on
            data:
              transition: 1
              kelvin: 4800
              brightness_pct: 100
            target:
              device_id: ポーチ灯のHue電球のID
      - conditions:
          - condition: time
            after: '20:00'
            before: '20:59'
        sequence:
          - service: light.turn_on
            target:
              device_id: ポーチ灯のHue電球のID
            data:
              transition: 1
              kelvin: 3700
              brightness_pct: 90
      - conditions:
          - condition: time
            after: '21:00'
            before: '06:59'
          - type: is_illuminance
            condition: device
            device_id: 玄関外の照度センサーのID
            entity_id: sensor.xiaomi_light_sensor_1_illuminance
            domain: sensor
            below: 6
        sequence:
          - service: light.turn_on
            data:
              transition: 1
              kelvin: 3400
              brightness_pct: 70
            target:
              device_id: ポーチ灯のHue電球のID
      - conditions:
          - condition: time
            after: '21:00'
            before: '06:59'
          - type: is_illuminance
            condition: device
            device_id: 玄関外の照度センサーのID
            entity_id: sensor.xiaomi_light_sensor_1_illuminance
            domain: sensor
            above: 7
        sequence:
          - service: light.turn_off
            target:
              device_id: ポーチ灯のHue電球のID
            data:
              transition: 1
    default:
      - service: light.turn_off
        target:
          device_id: ポーチ灯のHue電球のID
        data:
          transition: 1
mode: single

■まとめ

ハンズフリー解錠されているかをドアノブに手を掛ける前に知ることが出来るようになったので、解錠されていなかった場合はスムーズにスマホを取り出して解錠できるようになり「イラッ」とすることが減りました。
本当はハンズフリー解錠の打率が100%になってくれるといいんですけどねぇ。
次回のQrio Lockシリーズでは、Home AssistantからQrio Lockを施錠する方法について書きたいと思います。
それでは。