【Home Assistant(Hass.io)】
アドオンアイコン/アドオンストア不調の解消方法
Home Assistantの緊急再導入で「アドオンストア直った!」なんてはしゃいでましたが、実は直っていませんでした。スクリーンショット取り忘れましたが、症状は下記の様でした。
- アドオン画面でアドオンのアイコンが表示されない
- アドオンストアに進んでも何も表示されない
(もしくは一部だけ(Official Add-onsだけとか)表示) - アドオンのアップデートが検知されない
(=アップデートできない)
これは困る。なんとか直してみました。
この記事の前提条件 | |
---|---|
Home Assistant | 2022.8.6 |
Supervisor | 2022.08.3 |
Operating System | 8.5 |
Server | Raspberry Pi 4(2GB)/32bit |
上記バージョンを前提とした手順です。 (最新版では動かないこともあるかもしれませんが、私が使っている限り、備忘録を兼ねて最新化してゆきたいとは思っています)
1. 何が原因か調査
Home Assistantのコミュニティとかをさらって色々調べてみました。「リポジトリがちゃんと登録されていない」とかもありましたが、一番怪しいのが「Githubが見えなくなっている」です。
試しにping
を打ってみると、このありさま。
$ ping github.com ping bad address 'github.com'
nslookup
しても、「Can't find github.com: No answer」(github.comは見つからないよ)
アドオンのリポジトリは基本的にgithub.com上にあるので、それがうちのRaspberry Pi 4Bから見えなければ(サーバの名前解決ができなければ)、そりゃ到達できないので、表示もされませんよね。
じゃあなんでうまく名前解決が上手くいっていないのでしょう。Home Assistantが設定している(らしい)cloudflareと特定のルーターの相性が悪そう、とかなんとか色々言われてますが決定打なさそう。さて。
2. 対策検討
とりあえずHome Assistantサーバに「ちゃんとした」DNSサーバを指定してあげれば、何とか名前解決に至るのでは、と勝手に仮説を立ててやってみます。
うちの環境では、ルーターをかませて、DHCPでIPを割り当てています。そうすると普通はDNSとして自分(そのルータ)のアドレスが自動的に配信されます。DHCPでIPを配られたデバイス(Home Assistantサーバとか)はそのDNS情報に基づいて名前解決したいときはルーターを指定して聞きに行きます。で、ルータはさらに上位に聞きに行くという動作をしています。
むむ、「自動」や「問い合わせバケツリレー」あたりが怪しい。
<< 対策 >>
ということで、ルーターのDHCPの設定ページに行くとDNSの設定がありますので、そこに8.8.8.8
(GoogleのDNS)や1.1.1.1
(cloudflareのDNS)あたりを直に設定してみました。
おお!直った。しかも再発せず。
様子を見ましょう。