hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

TOP » UsersWiki » nao-pon » blog » 2022-09-22

RSS of nao-pon/blog
Thu 22 Sep 2022
 

ESP32 + ESPHome の Bluetooth Proxy で SwitchBot Mater anchor.png

Home Assistant 2022.9 から、ESPHome の Bluetooth Proxy が対応したので、今まで BLE Aadvertise を Listen して独自に処理していたものを、SwitchBot 統合を利用した方法に変更してみた。

手順はとても簡単。ESPHome の設定に "bluetooth_proxy:" を書き加えて、SwitchBot 統合を追加するだけで、自動的にデバイスを発見して追加してくれた。

素晴らしい!

220922-170734.png

Home Assistant で ESPHome の ESP32 が動いているなら、

esp32_ble_tracker:
bluetooth_proxy:

を追加するだけで、Bluetooth Proxy としても動作するので、対応した Bluetooth デバイスを気軽に追加できるようになった!本当に素晴らしい!

ちなみに以前、独自に BLE Aadvertise を Listen していた設定は次のような感じ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
sensor:
  - platform: template
    name: "$devicename Humidity"
    id: humidity0
    unit_of_measurement: '%'
    accuracy_decimals: 0
    icon: "mdi:water-percent"
  - platform: template
    name: "$devicename Temperature"
    id: temperature0
    unit_of_measurement: '°C'
    accuracy_decimals: 1
    icon: "mdi:thermometer"
  - platform: template
    name: "$devicename BT RSSI"
    id: rssi0
    unit_of_measurement: 'dB'
    accuracy_decimals: 0
    icon: "mdi:bluetooth"
  - platform: template
    name: "$devicename Battery"
    id: battery0
    unit_of_measurement: '%'
    accuracy_decimals: 0
    icon: "mdi:battery"
 
esp32_ble_tracker:
  on_ble_advertise:
    - mac_address: f4:42:fa:xx:xx:xx
      then:
        - lambda: |-
            for (auto data : x.get_service_datas()) {
                if(data.data.size() == 6) {
                  float temperature = (float)(data.data[4] & 0b01111111) + ((float)(data.data[3] & 0b00001111) / 10);
                  if (!(data.data[4] & 0b10000000)) {
                    temperature = -temperature;
                  }
                  int8_t humidity= data.data[5] & 0b01111111;
                  int8_t battery = data.data[2] & 0b01111111;
                  int8_t rssi=x.get_rssi();
                  id(humidity0).publish_state(humidity);
                  id(temperature0).publish_state(temperature);
                  id(rssi0).publish_state(rssi);
                  id(battery0).publish_state(battery);
                }
            }


Front page   Freeze Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 830, today: 11, yesterday: 6
Princeps date: 2022-09-22 (Thu) 17:15:12
Last-modified: 2022-09-22 (Thu) 17:15:12 (JST) (66d) by nao-pon
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録
最近の更新
オンライン状況
227 人のユーザが現在オンラインです。 (2 人のユーザが UsersWiki を参照しています。)

登録ユーザ: 0
ゲスト: 227

もっと...
サイト情報