コモノポリタン

コモノ、デジモノが好きなKomonopolitan住民 (はてなダイアリーからの引っ越しです)

【Home AssistantでDIY Smart Home】アドオンストアが表示されない時には

【Home Assistant(Hass.io)】
アドオンアイコン/アドオンストア不調の解消方法

 Home Assistantの緊急再導入で「アドオンストア直った!」なんてはしゃいでましたが、実は直っていませんでした。スクリーンショット取り忘れましたが、症状は下記の様でした。

  1. アドオン画面でアドオンのアイコンが表示されない
  2. アドオンストアに進んでも何も表示されない
    (もしくは一部だけ(Official Add-onsだけとか)表示)
  3. アドオンのアップデートが検知されない
    (=アップデートできない)

これは困る。なんとか直してみました。

この記事の前提条件
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.8GoogleDNS)や1.1.1.1(cloudflareのDNS)あたりを直に設定してみました。

 おお!直った。しかも再発せず。
 様子を見ましょう。

maky-ba.hatenablog.com