Home AssistantがサービスにIPアドレスでは接続できるのにホスト名では接続できない場合、エラーに名前解決やDNSタイムアウトが明記されている場合、または同じホスト名の挙動がネットワークによって異なる場合、DNSが有力な原因候補です。ただし、単なる「接続に失敗しました」というメッセージだけでは、DNSが原因だと断定できません。
実際に失敗しているマシンとネットワーク経路からDNSをテストしてください。ノートパソコンでホスト名を正しく解決できても、Home Assistantのホスト、コンテナ、モバイルアプリ、またはローカルリゾルバーが同じ結果を取得できるとは限りません。
エラーに記載された正確なホスト名から始める
Home Assistantのログまたはコンパニオンアプリのエラーを確認し、インテグレーション名だけでなく、正確なホスト名を書き留めてください。接続拒否、TLSエラー、タイムアウト、DNSルックアップ失敗は、それぞれ異なるレイヤーの問題です。
Home Assistantの現在の接続ガイダンスでは、ルーター、DNS、DHCP、到達不能なデバイス、利用できないサービスが接続エラーの一般的な原因とされています。ログの文言から、次にテストすべき原因の分岐を絞り込めます。
エラーに「name or service not known」「temporary failure in name resolution」、またはDNSタイムアウトとすでに表示されている場合は、すぐにリゾルバーのテストへ進んでください。「connection refused」と表示される場合は、DNSの解決はすでに成功しており、リモートサービスまたはポートのほうが疑わしい可能性があります。
影響を受けているHome Assistantの経路からDNSテストを実行する
Home Assistantのホスト、コンテナ、または同じリゾルバーを使用する別のシステムから、digまたはnslookupを使ってください。返されたアドレスが、そのホスト名に対応すると想定しているものと一致するか確認します。
コンパニオンのトラブルシューティングガイドでは、Home Assistantがホスト名の検索中にタイムアウトを報告した場合、digとnslookupを使用することが推奨されています。影響を受けているマシンでのルックアップ失敗は、別のクライアントでの成功よりもはるかに強い証拠になります。
失敗が断続的な場合は、テストを数回繰り返してください。一度は成功しても、10回に1回の割合でタイムアウトするリゾルバーは、インテグレーションを不安定にする可能性があります。
ホスト名への到達性と直接IPアドレスへの到達性を比較する
安全かつサービスにとって意味がある場合は、既知のIPアドレスを使って接続先をテストしてください。IP経路では繰り返し動作するのにホスト名経路では失敗する場合、DNSまたはホスト名固有のルーティングが原因である可能性を示します。
HTTPSやバーチャルホスト型サービスでは、これを絶対的な証拠とみなさないでください。基盤となるIPアドレスに到達できても、TLS証明書、リバースプロキシ、Hostヘッダーによってホスト名が必要になる場合があります。
ZimaSpaceのセルフホスト型アプリケーションで断続的なDNS障害が発生する原因に関するガイドでは、リゾルバーの遅延、古い応答、スプリットDNS、コンテナ固有のリゾルバー経路を切り分けることで、このテストをさらに詳しく行えます。
AレコードとAAAAレコードの両方を確認する
ホスト名の解決自体は成功していても、使用できないアドレスファミリーが選択されることがあります。たとえば、AAAAレコードが存在していてもIPv6のルーティングが壊れていると、IPv4へのフォールバック前に長時間待たされることがあります。
Home AssistantのDNS診断では、DNSサーバーの障害と、AおよびAAAAリクエストの誤った処理が明示的に取り上げられています。Home Assistant OSでは、同じ診断機能からリゾルバーの状態とフォールバックDNSのオプションも確認できます。
AとAAAAの結果を個別に比較し、返されたアドレスファミリーを使って接続性をテストしてください。1つのホスト名に問題があるからといって、IPv6をシステム全体で無効にしないでください。まず失敗している経路を確認します。
場所によって失敗する場合は内部DNSと外部DNSを比較する
Home Assistantのホスト名がモバイルデータ通信では動作するのに自宅のWi-Fiでは動作しない場合、またはLAN内では動作するのにリモートでは動作しない場合は、両方の場所からDNS応答を比較してください。スプリットDNSによって、内部ではプライベートアドレス、外部ではパブリックアドレスやトンネル用アドレスが意図的に返されている可能性があります。
ルーターのDNSオーバーライド、Pi-holeやAdGuardの書き換え、mDNS名、ローカル検索ドメイン、パブリックDNSレコード、古いキャッシュを確認してください。正しいパブリックレコードがあっても、誤った内部オーバーライドは修正できません。また、正しいLANレコードがあっても、プライベートアドレスをインターネットから到達可能にすることはできません。
変更するリゾルバーの変数は一度に1つだけにしてください。一時的なパブリックリゾルバーはパブリック名の診断に役立ちますが、ホスト名がプライベートなローカルサービスに解決される想定である場合、パブリックDNSを固定設定しても解決にはなりません。
よくある質問
Home AssistantがIPでは動作するのにホスト名では動作しない場合、原因は必ずDNSですか?
強い証拠ではありますが、絶対的な証明ではありません。ホスト名を介さずに接続すると、HTTPS証明書、リバースプロキシ、バーチャルホスト、ルーティングルールの挙動が異なる場合があります。DNSの応答とアプリケーションの経路を併せて確認してください。
Home Assistantを8.8.8.8や1.1.1.1に恒久的に切り替えるべきですか?
自動的に切り替えるべきではありません。パブリックリゾルバーはパブリック名のテストには役立ちますが、プライベートなスプリットDNSレコードが別の場所で意図的に公開されていない限り、それらを解決できません。問題の名前に対して権威を持つべきリゾルバーを修正してください。
サポートとヒント
もっと読む

Home Assistantのデータベースにメンテナンスまたは交換が必要な兆候
大容量のHome Assistantデータベースでは通常、保存期間の管理やパージ作業が必要です。繰り返し発生する破損や整合性エラーは、交換を検討すべき強い兆候です。

Home Assistantは動作が遅くなる前に、同時に何人のユーザーに対応できますか?
Home Assistantには、実用上の固定されたユーザー数上限はありません。実際のダッシュボードとエンティティの更新を使ってアクティブなクライアントをベンチマークし、再現性のある遅延が発生する前に止めてください。

Home Assistantはアップグレードで問題を起こさずに外部データベースを利用できますか?
外部のRecorderデータベースはアップグレード後も維持できますが、可用性、スキーマ移行、バックアップ、復元、バージョン管理に関する独自の責任が生じます。

