Home Assistant

Home Assistant: bluetooth tracker

Hass Bluetooth Tracker

Theo dõi vị trí của các thiết bị qua kết nối bluetooth, nhận dạng “sự có mặt” của thiết bị hay người dùng quanh máy chủ Hass

Photo: digifloor.com
12 phút để đọc hết nội dung

Ở bài viết này ta sẽ sử dụng kết nối BluetoothBluetooth Adapter trên thiết bị máy chủ Home Assistant (như Raspberry Pi) để nhận dạng sự có mặt của các thiết bị xung quanh nó. Về lý thuyết, bluetooth khả dụng trong vòng bán kính khoảng 10m quanh thiết bị.

Để sử dụng được bluetooth tracker yêu cầu máy chủ Home Assistant phải truy cập được vào thiết bị bluetooth (như Pi bluetooth trên Raspberry Pi 3B, 3B+ và 4B) và gói – package pybluez đã được cài đặt. Nếu bạn đang sử dụng HassOS thì gói này có sẵn, nếu bạn đang chạy Home Assistant trên các hệ điều hành khác, bạn có thể cài đặt bằng cách chạy lệnh:

sudo apt install bluetooth libbluetooth-dev (trên Debian/Armbian) thông qua SSH hoặc console.

Mục đích nhận dạng các thiết bị bluetooth

Nhận dạng sự xuất hiện các thiết bị Bluetooth xung quanh có thể hữu ích nếu bạn muốn:

  • Nhận biết một ai đó đang ở trong phòng/khu vực máy chủ Hass thông qua thiết bị bluetooth của họ
  • Nhận biết các thiết bị đeo để nhận dạng, tránh thất lạc như ble beacon cho trẻ em, vật nuôi, móc khoá thông minh
  • Phát hiện trạng thái bật tắt của các thiết bị bluetooth (như loa bluetooth, TV box, điện thoại v.v…)

Nut3, một thiết bị chống thất lạc sử dụng kết nối Bluetooth LE

Cấu hình Bluetooth tracker

Để bắt đầu sử dụng bluetooth tracker trong Home Assistant, bạn hãy thêm cấu hình sau vào file cấu hình chính của Hass tại /config/configuration.yaml hoặc vào file riêng tuỳ cách cấu hình của bạn.

device_tracker:
  - platform: bluetooth_tracker
    request_rssi: true
  - platform: bluetooth_le_tracker
    track_new_devices: true
    interval_seconds: 30

Ở đây ta thêm vào 2 platform: bluetooth_tracker để phát hiện các thiết bị Bluetooth thông thường như điện thoại và bluetooth_le_tracker để phát hiện các thiết bị BLE (bluetooth năng lượng thấp) thường được sử dụng trên cách thiết bị nhỏ gọn như beacon, thiết bị đeo thông minh.

Nếu chỉ cần sử dụng một trong 2 platform, bạn xoá phần cấu hình của platform không cần dùng. Sau đây là cách hoạt động của các platform này và cách cấu hình trên:

bluetooth_tracker

Platform này sẽ phát hiện các thiết bị mới khi Home Assistant khởi động, do vậy nếu thiết bị bạn cần theo dõi – track chưa từng được thêm vào Hass, bạn cần mở bluetooth trên thiết bị và chuyển thiết bị sang chế độ scan/discoverable bằng cách mở phần thiết lập bluetooth thiết bị rồi tiến hành quét – scan (trên iOS, bạn vào Settings, Bluetooth để mở kết nối Bluetooth và giữ yên như thế; trên Android, bạn vào Settings, Connected Devices bấm vào mục Bluetooth và chờ một lúc).

Sau khi chuyển sang chế độ quét, bạn giữ yên chế độ này trong khi khởi động lại máy chủ Home Assistant. Sau khi khởi động xong, Hass sẽ thêm thiết bị mới này vào danh sách thiết bị đã biết (lưu giữ lại /config/known_devices.yaml).

! Lưu ý

Bạn chỉ cần giữ thiết bị ở chế độ Discovery trong lần đầu tiên thêm vào Hass. Platform tracker không yêu cầu thiết bị phải được ghép đôi – paired vào máy chủ Hass. Yêu cầu duy nhất là giữ bluetooth mở trên thiết bị cần track.

Trong một không gian hẹp, bluetooth tracker cho kết quả chính xác hơn rất nhiều so với track bằng kết nối wifi hay kết nối mạng, đặc biệt trên thiết bị iOS.

Sau khi được thêm vào Home Assistant, thiết bị sẽ xuất hiện trong danh sách các thực thể với tên dạng device_tracker.<tên> như trong ảnh dưới. Từ bây giờ Hass sẽ cập nhật state của thiết bị này với home nếu thiết bị được phát hiện ở gần máy chủ Hass và not_home nếu không phát hiện thấy (kết nối bluetooth) của thiết bị này.

Home Assistant phát hiện được bluetooth trên điện thoại iPhone và TV Box Mibox

bluetooth_ble_tracker

Do đặc điểm của một số thiết bị BLE luôn tự động thay đổi địa chỉ MAC sau một khoảng thời gian hoặc không gửi địa chỉ MAC cho thiết bị không được kết đôi – paired (như trên một số thiết bị đeo thông minh – fitness tracker), có vài điều bạn cần lưu ý:

  1. Thiết bị chỉ được thêm vào danh sách theo dõi – known_devices lần đầu khi nó được tìm thấy trong 5 lần quét liên tục (cách nhau bởi số giây quy định trong cấu hình interval_seconds). Thiết bị ble được thêm vào Hass sẽ có tên dạng device_tracker.ble_xx_yy.
  2. Khi bạn cần thêm thiết bị mới, hãy chuyển cấu hình track_new_devices thành true. Sau khi Hass nhận thiết bị mới này, hãy chuyển trở lại thành false. Giữ thiết lập track_new_devices: true sẽ dẫn đến các thiết bị ble tự đổi địa chỉ MAC được nhận là thiết bị mới và xuất hiện thành các thực thể “ma” liên tục trong Hass. Kết quả là bạn có một danh sách rất dài các thiết bị device_tracker với state not_home.
  3. Do đặc tính trên của BLE, platform này gần như chỉ hữu ích với các thiết bị ble không đổi địa chỉ MAC như thiết bị tránh thất lạc hay móc khoá thông minh.
  4. Nếu một thiết bị mới được thêm vào Hass nhưng không có thêm thông tin gì về model hay NSX, bạn có thể không biết được đó có phải thiết bị của mình hay không. Khi đó bạn có thể copy địa chỉ MAC của thiết bị (phần sau ble_) rồi sử dụng các trang tra cứu để tìm ra hãng sản xuất.

Sử dụng trang macvendors.com để tra cứu nhà sản xuất. Ở đây, mac là của một thiết bị cân sức khoẻ thông minh Xiaomi.

Ứng dụng Bluetooth Tracker

Từ bây giờ, bạn có thể sử dụng trạng thái của các thiết bị device_tracker này trong Home Assistant để nhận dạng một thành viên là ở nhà hay ở trong khu vực máy chủ Home Assistant (như Phòng khách) dựa trên điện thoại hay móc khoá thông minh, báo động khi một thiết bị ở trạng thái not_home quá lâu (nếu như chó mèo nhà bạn hay quanh quẩn ở khu vực máy chủ Hass mà cả ngày nay không thấy đâu thì có thể bạn cần đi tìm nó rồi đấy), phát hiện một thiết bị tắt hay mở (như loa bluetooth) v.v…

Tự động nhắc nhở khi một thành viên không ở nhà sau một khoảng thời gian

Dưới đây là một ví dụ về tự động nhắc nhở đi tìm mèo nếu sau 5 giờ liên tục không xuất hiện trong phòng. Ở đây ta nhận diện sự xuất hiện của vật nuôi bằng entity: device_tracker.ble_ec_5c_68_5f_4e_5a và gửi thông báo đến tất cả ứng dụng Home Assistant trên iOS/Android có liên kết đến máy chủ Hass bằng service notify.mobileapp.

Để vật nuôi hay xuất hiện quanh máy chủ Home Assistant, bạn có thể đặt khay thức ăn, nệm ngủ hay đồ chơi của chúng quanh khu vực, nhưng nhớ bảo vệ máy chủ Hass cẩn thận khỏi sự nghịch phá của chúng.

- id: '1585462232988413'
  alias: Nhac nho di tim Meo
  description: 'Thong bao den Mobile App'
  trigger:
  #device_tracker.ble_ec_5c_68_5f_4e_5a là thiết bị đeo cổ ble quản lý chó mèo
  - entity_id: device_tracker.ble_ec_5c_68_5f_4e_5a
    for: 05:00:00
    from: home
    platform: state
    to: not_home
  condition: []
  action:
  - data:
      message: Hoàng Thượng đi đâu 5g rồi chưa về. Mau xem Camera hoặc đi hỏi hàng xóm thử.
    service: notify.mobileapp

Thông báo trên iPhone trông thế này

Bật tắt thiết bị khi có người hiện diện

Một tự động hoá khác cũng khá hữu ích là bật/tắt thiết bị trong phòng khi có người hiện diện trong phòng. Như dưới đây là cấu hình automation tự động bật/tắt khi một thành viên (đại diện bằng entity device_tracker.iphone_cua_vo) vào hoặc ra khỏi phòng.

- id: '15854633423359441'
  alias: 'Phong Ngu: bat tat loc khong khi khi vo trong phong'
  description: Tự động bật tắt máy lọc không khí khi vợ ra vào phòng ngủ
  trigger:
  - entity_id: device_tracker.iphone_cua_vo
    from: not_home
    platform: state
    to: home
  - entity_id: device_tracker.iphone_cua_vo
    for: 00:10:00
    from: home
    platform: state
    to: not_home
  condition: []
  action:
  - entity_id: switch.bedroom_air_filter
    service_template: >-
      {% if trigger.to_state.state == 'home' %} 
      switch.turn_on
      {% else %} 
      switch.turn_off
      {% endif %}
! Cải tiến

Trong bài viết này, bạn sử dụng kết nối Bluetooth trên máy chủ Home Assistant để nhận dạng các thiết bị. Nhược điểm là chỉ có thể nhận dạng sự xuất hiện ở khu vực quanh máy chủ Hass (với bán kính tương đối 10m). Trong loạt bài sắp tới ở chuyên mục DIY, chúng tôi sẽ hướng dẫn phương pháp lắp đặt thêm các thiết bị theo dõi Bluetooth ở quanh nhà, tiến tới nhận dạng xuất hiện không chỉ ở phạm vi nhà mà còn là phạm vi phòng, đưa đến khả năng tự động hoá chính xác với sự xuất hiện của các thành viên hay thiết bị cho từng phòng riêng rẽ.

Đây là các platform để theo dõi sự xuất hiện của thiết bị Bluetooth, không phải để trao đổi thông tin (như với ble sensor). Chúng tôi sẽ có một bài khác về tích hợp các cảm biến bluetooth vào Hass.

Về Bài viết

Bài viết chưa đầy đủ hoặc bạn còn có ý kiến khác? Bạn có thắc mắc và cần thêm thông tin. Vui lòng đăng ý kiến vào mục bình luận để tác giả và Team có thêm thông tin cải thiện chất lượng bài viết. Chúng tôi sẽ giải đáp các thắc mắc ngay trong mục bình luận để giúp được nhiều đọc giả với cùng vấn đề hơn hoặc chúng tôi sẽ trả lời trong một bài viết riêng. Trân trọng cảm ơn bạn!

Cảm ơn bạn đã xem bài viết này!

konnectED Team.

Lên Đầu
  • Đăng ký
Bạn quên mất mật khẩu? Vui lòng nhập tên đăng nhập và địa chỉ email đã đăng ký. Bạn sẽ nhận được liên kết tạo mật khẩu mới qua email (bạn nhớ kiểm tra hộp spam trong trường hợp email đi lạc).