さてさて、7月になってHome Assistantだけでなく、ESPHomeもアップデートされたんですが、このアップデートで使っているESP32のアップデートが失敗するようになってしまいました。またもやbreaking changeか!!えいやっと、面倒臭いのでバックアップを使ってロールバックして、無事復帰しました。
しかしこの状態をいつまでも続けるわけにもいかないので、暇を見つけちゃんと調べてみることにしました。我が家ではESP32は2台(個?)あって、一つはBluetooth、もう一つはソーラーポストの雨センサー等に使っています。
Bluetooth用に使っているものは、ビルドの結果が大きくなってflashメモリに入りきらなくなったのが原因でした。ESPHomeのbluetoothモジュールは結構メモリを食うみたいで、前からかなりカツカツの状態だったんですが、ついにこの時が来てしまいました。無闇に高機能化してコードが肥大化したせいだ、と思い込んで、ESPHomeの開発者達を恨んでみたものの、なんの解決にもなりません。仕方なくググったところ、どうやら yaml ファイルの一部を以下のように書き換えることでこの問題を回避できるようです。
なぜか?どうやら答えはここにあるようです。
もともとArduino互換(?)のESP32は、arduinoのフレームワークを使えるようにESP32の製造元が出しているesp-idfのフレームワークに皮を被せてarduinoフレームワークとしていたそうです。Esp-idfを直接使うことでこの「皮」に相当する分が減って、ファイルサイズも小さくなった、ということらしいです。実際試してみたところ、見事にファイルサイズが減ってこの問題は解決しました。でも、そもそも何で私は arduinoフレームワークを選んだんだろう?最初の時は良くわかっていなくて、単なる「おまじない」という理解でどこかに書いてあったものをコピーしてきたはずなのに...
さてさて、もう一つのソーラポストで使っているESP32ですが、こちらもesp-idfに変更しました。でもまだ何やらビルド時に警告メッセージが出ます。これもググったところ、何やらADCの仕様が変わったとかなんとか。ソーラーポストでは光センサーにADCを使っています。残念ながら、これの具体的な対処方法は良く分かりませんでした。警告なので、無視してみても動くようです。でもいつかは何かしら対処しないといけないんですよねぇー。
Home Assistantは便利なんですけど、お世話が結構大変です。何やら近い将来プログラミングという職業の多くはAIに取って変わるとかいう話があるようですが、こういうお世話もAIでやってもらえるんでしょうか?どちらかと言えば、お世話だけAIでやってもらえるといいんだけどなぁー。