HomeAssistantでSESAME5を使う(ESP32を使用)

2024年1月5日

update 2023/12/30

本項の目的

・スマートロック「SESAME5」をHomeAssistantで制御するにはWiFiモジュールが必要となりますが、2023/12/30時点では、売り切れ状態が続いておりHomeAssistantと連携できない状態です。
 GitHubにSESAME5のESPHomeのモジュールを見つけましたのでESP32経由でSESAME5を制御することにしました。
 結果的にHomeAssistantからロック/ロック解除が可能となりWiFiモジュールなしでも快適な環境ができました。

・導入時のバージョン情報
OS Version :Home Assistant OS 11.2
Home Assistant Core:2023.12.1
ESPHome:2023.12.5
esphome-sesame3:v0.5.0

<できること>
・SESAME5のロック/ロック解除、電池の使用率が確認できます。

<できないこと>
・SESAMEタッチ/SESAMEタッチ PRO の制御ができないので、電池情報が取れないです。


ESP32の設定方法

01.インストール方法は、esphome-sesame3に記載の通りです。
  なぜか、「v0.7.0」では、うまくコンパイルができなかったので、「v0.5.0」を指定しました。

esphome:
  name: esp32-100
  libraries:
    - https://github.com/homy-newfs8/libsesame3bt#0.11.0
    # - symlink://../../../../../../PlatformIO/Projects/libsesame3bt
    - davetcc/TaskManagerIO @ ^1.4.0
  platformio_options:
    build_flags:
      - -std=gnu++17 -Wall -Wextra
      - -DMBEDTLS_DEPRECATED_REMOVED -DCONFIG_BT_NIMBLE_ROLE_BROADCASTER_DISABLED -DCONFIG_BT_NIMBLE_ROLE_PERIPHERAL_DISABLED
      - -DTM_ENABLE_CAPTURED_LAMBDAS
# Configure the maximum number of connections as required
      - -DCONFIG_BT_NIMBLE_MAX_CONNECTIONS=4
    build_unflags:
      - -std=gnu++11
external_components:
  - source:
      type: git
      url: https://github.com/homy-newfs8/esphome-sesame3
      ref: v0.5.0
    components: [ sesame_lock, sesame_ble ]
  # - source: 'components'

esp32:
  board: esp32dev
  framework:
    type: arduino

logger:
api:
  encryption:
    key: "XXXXXXXXXXXXXXXXXXXXX"
ota:
wifi:
  ssid: XXXXXXXXXXXX
  password: XXXXXXXXXXXX

lock:
  - platform: sesame_lock
    name: Lock1
    id: lock_1
    model: sesame_5
    address: "XX:XX:XX:XX:XX:XX"
    secret: "XXXXXXXXXXXXXXXXXXXXXXXXXX"
    public_key: ""

sensor:
  - platform: template
    name: "Lock1_battery_level"
    device_class: battery
    unit_of_measurement: '%'
    update_interval: 30s
    lambda: |-
      auto v = id(lock_1).get_battery_pct();
      return isnan(v) ? optional<float>{} : v;
  - platform: template
    name: "Lock1_battery_voltage"
    device_class: voltage
    unit_of_measurement: 'V'
    update_interval: 30s
    lambda: |-
      auto v = id(lock_1).get_battery_voltage();
      return isnan(v) ? optional<float>{} : v;

02.無事にSESAME5をHomeAssistantで制御できるようになりました。