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

TOP » UsersWiki » nao-pon » blog » Diff of nao-pon/blog/2022-09-22
  
Cur: 2022-09-22 (Thu) 17:15:12 nao-pon source
Line 1: Line 1:
 +#navi
 +RIGHT:&rsslink(../);
 +#boxdate
 +* ESP32 + ESPHome の Bluetooth Proxy で SwitchBot Mater [#o4ddaff8]
 +RIGHT:&tag(ESP32,ESPHome,Bluetooth,SwitchBot,HomeAssistant);
 +
 +[[Home Assistant 2022.9:https://www.home-assistant.io/blog/2022/09/07/release-20229/#bluetooth-everywhere]] から、ESPHome の [[Bluetooth Proxy:https://esphome.io/components/bluetooth_proxy.html]] が対応したので、今まで BLE Aadvertise を Listen して独自に処理していたものを、SwitchBot 統合を利用した方法に変更してみた。
 +
 +手順はとても簡単。ESPHome の設定に "bluetooth_proxy:" を書き加えて、SwitchBot 統合を追加するだけで、自動的にデバイスを発見して追加してくれた。
 +
 +素晴らしい!
 +
 +#ref(site://modules/xelfinder/index.php/view/47/220922-170734.png,left,mw:400,mh:400)
 +
 +Home Assistant で ESPHome の ESP32 が動いているなら、
 + esp32_ble_tracker:
 + bluetooth_proxy:
 +を追加するだけで、Bluetooth Proxy としても動作するので、対応した Bluetooth デバイスを気軽に追加できるようになった!本当に素晴らしい!
 +
 +ちなみに以前、独自に BLE Aadvertise を Listen していた設定は次のような感じ。
 +
 +#code(yaml){{
 +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);
 +               }
 +           }
 +}}
 +
 +RIGHT:&font(90%){&page_comments;};
 +#navi
  

  • Backup diff of nao-pon/blog/2022-09-22(No. All)
    • Cur: 2022-09-22 (Thu) 17:15:12 nao-pon

Front page   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: 165, today: 8, yesterday: 13
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





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

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

もっと...
サイト情報