<<
2021.4
>>
[nao-pon/blog] |
||||||
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
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 |
SwitchBot の温湿度計は、リーズナブルで家庭で使うには問題のない精度があるので、なかなか便利です。
この温湿度計は、公式の API (Meter BLE open API) が公開されていて、BLE Advertisement パケットをリッスンすることで、温湿度データを取得できます。
これを、ESP32 を使い HomeAssistant で利用できるようにしました。ESP32 のファームには ESPHome を使用しています。
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 47 48 49 50 51 |
|
シンプルですね。カスタムコンポーネントを作るまでもないので、lambda を使いました。
家中のエアコンのWiFi化を進めています。先日は東芝のエントリーモデルのエアコンRAS2558VをWiFi化しました。
いつものように、IRremoteESP8266 ですぐできると思ったのですが、IRremoteESP8266 が東芝エアコンのリモコンのIR信号を認識しません。
調べていくと、kToshibaAcMinGap で指定している値が大きすぎることに気付きました。この値を調整することで、正常に認識できるようになります、
Issue を立てました。
開発者の crankyoldgit はすぐに対応してくれました。素晴らしい!
他にも気になるところがあったので、次の Issue も立てましたが、全て解決してくれました。素晴らしい!
おかげで、いつもの通りHA端子ブリッジを備えた、IRコントローラを作成して、無事に Tasmota 経由で HomeAssistant からコントロールできるようになりました。
Tasmotaの設定は、いつもの通り -> 2021-02-11
先日の Mitsubishi エアコンに引き続き、古めの Panasonic (ナショナル) エアコン CS-X288A2 も WiFi 化して、HomeAssistant でコントロールできるようになった。
あまりに古くて、Panasonic のサイトにも、据付工事説明書がなかったので、メイン基板までアクセスできるか不安だったが、なんとか到達。
フロントパネルを外すと、右側のカバーが外すことができ、すぐにアクセスできた。
こんな感じに制作。ソケットは ESP8266 のモジュール用
そして、インストール。圧電ブザーの上が HA 端子。
赤外線レシーバーとトランスミッターは、こんな感じに配置。
無事に稼働しました。
高校の時に取った電気工事士(現在の第二種電気工事士)の免許。ずっとペーパーだったが、取っててよかった。
Tasmota で HA 端子と連携するには、すこし設定が必要なので、未来の自分のための健忘録。
ESPHome は、YAML で設定していくので、割と直感的に設定できるし設定ファイルを見れば後で再利用も簡単。
しかし、Tasmota はコマンド発行で設定を変えていく。設定一覧が見たいけど現状で、その方法が分からない。
今回は、HA 端子との連携なので、スイッチとバイナリーセンサーの組み合わせ。
ブリッジは自作したもの。フォトカプラー2個と1kΩ抵抗3個、200Ω抵抗1個のだけの簡単回路。200Ω抵抗は、ESP側のLEDをドライブするところ。
Tasumota では、スイッチを Relay、バイナリーセンサーを Switch として構成。
そして、オプション設定。Relay1, Switch2 の前提。
こんなとこかな。
Backlog で一括設定する場合は
Backlog SwitchMode1 13; PulseTime1 3; SwitchMode2 2; SetOption114 1; PowerOnState 0; TelePeriod 60; SetOption56 1; Timezone +9;
三菱エアコンは、esphome-mitsubishiheatpump により CN105 ポートを利用して、シリアル通信によるコントロールが可能で、私も2種類の三菱エアコン MSZ-GV2519 と MSZ-GE2520 に取り付けて、問題無くコントロールしいる。
昨年の11月頃に新たに、MLZ-RX5017 を設置したので、また同じように組み込みましたが、通信規格が違うのか全く動かすことができませんでした。
そこで、SmartIR を利用して、赤外線リモコン RS-WFIREX4 経由でコントロールしていた。しかし、少し問題が・・・。
運転自体の ON/OFF は、HA端子から信号を取って反映できていたが、付属のリモコンで温度を変えたり運転モードを変えたりした時に、HomeAssistant 側でその変更を感知することができない問題があった。
そこで、今度は Tasmota の IRremoteESP8266 を利用して、付属のリモコンで操作したときのIR信号を受け取り、HomeAssistant にフィードバックするすることにした。
HomeAssistant とのブリッジは、Tasmota-IRHVAC を今回のこともあり色々拡張した nao-pon/Tasmota-IRHVAC を使用。
実際に使ってみると、概ねうまく行ったものの、少し不備な点が・・・
ここまで、順調に進んできたがちょっと大きめの問題が・・・。
週間タイマーを利用するには、IR データ送信時に、現在時刻と曜日の情報を送信する必要があるようだ。
現在時刻は Clock として、IRremoteESP8266 側では実装されているが、Tasmota 側では利用していない。これは大きな問題ではないが、曜日の情報は全く定義されていないので、新たに定義する必要があり、他のメーカーのエアコンには必要ないかも知れないので、取り入れるにはハードルが高そうだ。
ということで、独自ビルドでお茶を濁すことにした。一度ファームが固定されれば、そうそう書き換えることもないだろう。
それがこれ。
ついでに、三菱エアコンは Beep が使われていないので、それに WeeklyTimer を割り当てることで、動的にコントロールできるようにした。
これで、付属リモコンと全く同じ IR 信号を送られることを確認したので、多分問題ないなかろう。
また、自作したシステムには CCS811 を使った二酸化炭素濃度センサーもつけてあるので、user_config_override.h でビルドオプションを変更し I2C の CCS811 コンポーネントを有効にして、サイズ削減のために他の I2C コンポーネントは無効にした。
テンプレート
テンプレート(Moblog)
#pagecss
Page Info | |
---|---|
Page Name : | nao-pon/blog |
Page aliases : | None |
Page owner : | nao-pon |
Can Read | |
Groups : | All visitors |
Users : | All visitors |
Can Edit | |
Groups : | No one |
Users : | ゲスト |