DSN-MINI-360 というものらしい。
Home Assistant 2022.9 から、ESPHome の Bluetooth Proxy が対応したので、今まで BLE Aadvertise を Listen して独自に処理していたものを、SwitchBot 統合を利用した方法に変更してみた。
git merge development
レーザーポインターは燃焼レーザーとしてどのような条件がありますか?
今日オンラインで利用できるレーザーとレーザーポインターの文字通り何百もの異なるタイプがあります。 したがって、高出力ユニットの市場にいる場合は、「レーザーポインターを燃焼レーザーとして認定するものは何ですか?」と自問するかもしれません。 ここでは、さまざまな種類のハンドヘルドレーザーと、レーザーが燃焼できるかどうかを判断する要因について説明しますので、読み続けてください。
1.出力電力(mWまたはW)
これは、個々のレーザーが燃焼ユニットであるかどうかを判断する際に最も重要な要素です(ビームの色ではありません)。 現在、レーザーは5mW未満から5,000mWまたは5Wまで使用できます。 つまり、燃焼しきい値がどこにあり、そのしきい値が原則として最低100mWであるかを知ることを意味します。 つまり、100mW未満のレーザーは、何かを燃やすために強く押し付けられ、平らになり、燃やすことができなくなります。 100mWを超える高出力レーザーポインターは燃焼ユニットと見なされますが、すべてが同じように作成されるわけではありません。 mWパワーが高いほど燃焼能力が高くなるため、100mWで黒い風船を弾いてマッチに火をつけるだけでは、電気テープを切ることができなくなります。 最大の燃焼能力を実際に得るには500mW以上が必要であり、常に出力が高いほど距離と燃焼に適しています。
2.レーザースタイルと燃焼能力
最小100mWが必要であり、出力が高いほど燃焼能力が高いことがわかったので、さまざまなタイプのレーザーを調べる必要があります。 原則として、AAAバッテリー駆動のペンまたはキーチェーンレーザーは、燃焼レーザーとはほとんど見なされません。 それらの多くは約5mWの低電力であるため、表示されて便利ですが、マッチに火をつけたり、風船を弾いたりすることはできません。 充電式バッテリーを使用する大型ユニットは、燃焼として分類されるほとんどすべてのレーザーを構成します。 ですから、個々のユニットの本体とバッテリーを必ずチェックしてください。 ペンがAAAバッテリーで動作している場合、高出力の燃焼レーザーではない可能性があります。
3.偽パワークレーム&バーニング
今日では、文字通り、10,000mW以上のレーザーを提供している中国の企業やメーカーがたくさんあります。 簡単に言えば、これらは完全な嘘です。 中国での製品クレームに関しては実際の規制はありません。つまり、問題のレーザーは非常に高いと多くの人が主張するでしょう。 現在、私たちは2020年からhtrlaser.comでビジネスを行っており、長年にわたってテクノロジーの変化を見てきました。 厳格な軍事契約以外では、5,000mWまたは5Wを超えるハンドヘルドレーザーはありません。 この技術は一般の人々には利用できないだけであり、最強レーザーポインターを購入する際にはそれを心に留めておく必要があります。
さらに、世の中で最も安価なレーザーはIR(赤外線)フィルターを使用していないため、出力の読み取り値が誤っているだけでなく、不正確でもあります。 フィルタのないユニットは可視光と不可視光の両方を放出するため、実際に見えるよりも高いパワーの読み取り値が得られます。 IRフィルターを使用することにより、ビームが本質的に安全であり、正確な電力測定値が得られることを保証します。 私たちからは、532nmの100mWの緑色レーザー光は実際には100mWの緑色レーザー光であり、読み取り値を歪める不可視光はありません。
#navi
SwitchBot の温湿度計は、リーズナブルで家庭で使うには問題のない精度があるので、なかなか便利です。
この温湿度計は、公式の API (Meter BLE open API) が公開されていて、BLE Advertisement パケットをリッスンすることで、温湿度データを取得できます。
これを、ESP32 を使い HomeAssistant で利用できるようにしました。ESP32 のファームには ESPHome を使用しています。
#code(yaml){{
substitutions:
devicename: switchbot_meter
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" - platform: wifi_signal name: "$devicename WiFi" update_interval: 60s unit_of_measurement: "%" filters: - lambda: x = 2 * (x + 100); if (x < 0) {x = 0;} else if (x > 100) {x = 100;} return x;
esp32_ble_tracker:
scan_parameters: duration: 60s on_ble_advertise: - mac_address: f4:42:fa:b4:72:2a 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); } }
}}
シンプルですね。カスタムコンポーネントを作るまでもないので、lambda を使いました。
Tasmotaの設定は、いつもの通り -> 2021-02-11
そして、オプション設定。Relay 1, Switch 2, Switch_n 3 (PIRセンサー用) の前提。
WAKE | WAKE pin should connect to ground to communicate with sensor conveniently. WAKEピンは、センサーと簡単に通信できるようにアースに接続する必要があります。 |
INT | This is the interrupt output pin that detects when a new reading is read or the reading becomes too high or too low. これは、新しい読み取り値が読み取られたとき、または読み取り値が高すぎたり低すぎたりしたときに検出する割り込み出力ピンです。 |