知道ESPresense已經一段時間一直沒有去研究要怎麼玩
今天沒事閑來就摸索了一下
看了很多資料每個人的設定方式都不太相同
導致整個頭暈腦脹
後來終於摸索出了一個可行的方式
現在將自己摸索出來的方式分享給大家
希望能幫助到想要玩ESPresense的朋友
前置作業
- 先準備一顆具有藍芽的esp晶片(我習慣用esp32s,所以後面都是以esp32s當範例)
- HA安裝MQTT Explorer
https://community.home-assistant.io/t/mqtt-explorer-addon/465758
正式開始
- 先前往ESPresense官網開始燒錄espresense firmware
https://espresense.com/firmware
等待安裝完成後設定wifi連線
在這邊遇到過第一個坑 轉很久 實際上已經連線完成
如果轉超過2分鐘可以檢查router是否已經連線取得ip
是的話直接F5刷新
重新connect設備有時候會跟一開始一樣只有兩個或者是三個選項關掉再重新連
出現四個選項才是正常
- 設定espresense
選擇visit device
此時會開啟espresense的設定頁面
這邊我們先做第一次的初次設定先將這顆espresenst加入HA裏面
依序輸入房間名稱 MQTT資料 儲存後重開設備
重開後即可在MQTT裡面就可以看到設備已經抓到
選擇Logs&console
此時就可以看到附近的藍芽設備慢慢的被掃進來
-
設定 Mqtt Explorer
依序輸入MQTT Server資料設好儲存連線
會列出你的所有mqtt的連線資料選擇 espresense
在rooms就能看到剛剛設定的資料 -
抓取要連線的手機資訊
有很多方式可以抓手機的資料這邊我只列出其中一種個人覺得簡單的方式
因我只有iphone所以我只用iphone舉例
連到espresense的設備綁定頁 http://espresense.ip/ui (注意是espresense的ip)
在name中輸入設備名稱
因我們只是要取得設備的資訊而已等下會另外處理所以隨便輸入另外一個即可
後續會把這個資料砍掉
設好以後確認
espresense會開啟藍芽配對模式
此時打開手機的藍牙搜尋espresense
配對完後即會馬上斷開這是正常的不用擔心
回到MQTT Explorer
此時可以看到剛剛連接的設備可以在settings這邊看到
確認name是否跟你剛剛設定的一樣
將irk:xxxxxxxxxxxx複製下來此資料後續需要用到
複製下來後即可以將此設定資料刪除了
5.最後的設定
依照官方資料須將下列資料加入 configuration.yaml 裏面
也可放在你習慣的yaml裏面
sensor:
# One entry for each beacon you want to track
- platform: mqtt_room
device_id: "iTrack:xxxxxxxxxxxx"
name: 'ESP Keys'
state_topic: 'espresense/devices/iTrack:xxxxxxxxxxxx'
timeout: 10
away_timeout: 120
- platform: mqtt_room
device_id: "iBeacon:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-3-58241"
name: 'ESP Chipolo'
state_topic: 'espresense/devices/iBeacon:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-3-58241'
timeout: 10
away_timeout: 120
此時將剛剛複製下來的irk資料填入
返回espresense 設定頁面
將irk資料填入此欄位 只需要輸入irk:後面的32碼即可
如果有兩個以上設備每個irk code之間用空格隔開
中間不要加入任何符號
設定好後儲存檢查沒有問題重開HA以及espresense
重開後即可在實體找到剛剛設定的設備
以上為這次的分享
希望能幫助到有需要的人
後記
-
第二顆開始只要照著1. 2.設定好esp晶片接入HA
再將第一顆 scanning 的資料複製過去即可 -
apple watch irk取得方式
依照官方資料
https://espresense.com/beacons/apple
在取得password時請注意只要找到
<key>Remote IRK</key>
<data>
xxxxxxxxxxxxxxxxxxxx
</data>
將Remote IRK data裡面的資料複製出來
在輸入官方的欄位去產出32碼的irk key即可
至於要怎麼調整範圍就給各位自己去摸索了
2023.7.29
新增資料
將sensor改為device_tracker可以加入Person
automation:
- alias: "手機轉換為裝置"
description: ""
trigger:
- platform: state
entity_id:
- sensor.your_espresense_device_id
condition: []
action:
- service: device_tracker.see
data:
dev_id: your_device_id
location_name: >
{% if trigger.to_state.state in ['bor_room', 'living_room'] %}
home
{% elif trigger.to_state.state == 'not_home' %}
not_home
{% else %}
unknown_room
{% endif %}
mode: single
max: 10
sensor.your_espresense_device_id 替換成你自己的
device_id: 自己定義要顯示的名稱
location_name: >
{% if trigger.to_state.state in [‘bor_room’, ‘living_room’] %}
這段請改房間名稱與你的相符即可
將上段code加入 ESPresense設定或者加在automation.yaml都可以