Home Assistant World Clock & Weather Dashboard 第1章

Version 1.3 Build Guide

Building a Global Time & Weather Dashboard with Home Assistant


Chapter 1

Introduction


1.1 はじめに

Home Assistant は、照明や空調、センサーなどのホームオートメーションを統合するための強力なプラットフォームです。

しかし、その柔軟性はホームオートメーションだけに留まりません。

Home Assistant は、さまざまな情報を一つのダッシュボードへ集約し、自分の目的に合わせた情報表示システムを構築できるプラットフォームでもあります。

本書では、その特長を活かし、

世界各都市の現在時刻と現在気温を、一つの画面で確認できるダッシュボード

を構築します。

このダッシュボードは単に「世界時計」を表示するだけではありません。

世界各地の現在時刻と気温を同時に見ることで、

「今、世界ではどのような一日が始まり、どのような一日が過ごされているのか」

を身近に感じられることを目指しています。


1.2 このプロジェクトの目的

世界では毎日のように、

  • 猛暑
  • 熱波
  • 寒波
  • 豪雨
  • 台風
  • 森林火災

など、気候に関するニュースが報道されています。

ニュースでは、

「ヨーロッパで記録的な熱波」

「アメリカで40℃を超える猛暑」

「オーストラリアでは冬を迎えている」

といった情報を耳にします。

しかし、そのニュースを見たとき、

「その都市は今、何時で、実際には何℃なのだろう?」

と考えることはないでしょうか。

本プロジェクトは、そうした疑問にすぐ答えられる環境を自分自身で構築することから始まりました。

世界各都市の、

  • 現在時刻
  • 現在気温

を一つの画面に集約することで、

「世界の今」を直感的に把握すること

を本プロジェクトの基本的な目的としています。


1.3 Version 1.3 のコンセプト

Version 1.3 は、単なる機能追加のバージョンではありません。

これまでの開発・検証で得られた結果を整理し、今後の発展に耐えられる構成としてまとめた、本プロジェクトの基盤となるバージョンです。

Version 1.3 では、

Home Assistant Standard First

を基本的な設計思想とします。

つまり、可能な限り Home Assistant が標準で提供している機能や仕組みを利用し、独自の仕組みは必要最小限にします。

この方針によって、

  • 保守性
  • 可読性
  • 拡張性
  • 将来性

を両立することを目指します。


1.4 Version 1.3 の特徴

Version 1.3 では、世界16都市の現在時刻と気温を表示します。

各都市について、

  • 国旗
  • 日本語による都市名
  • 現在時刻
  • 現在気温

を表示します。

さらに、都市カードをクリックすることで、その都市の気温履歴を確認できます。


Home Assistant 標準機能を優先

Version 1.3 では、可能な限り Home Assistant の標準的な機能を利用します。

これは単に「標準機能だから」という理由ではありません。

Home Assistant の仕組みに沿って構成することで、将来的な変更や拡張にも対応しやすくなるためです。


Open-Meteo Integration を利用

気象情報については、Home Assistant の Open-Meteo Integration を利用します。

Open-Meteo から取得した気象情報は、Home Assistant の Weather Entity として扱います。

例えば東京の場合、

weather.tokyo

が東京の気象情報を提供します。


Template Sensor を利用

Weather Entity が持つ気温情報を Template Sensor によって整理します。

例えば東京の場合、

weather.tokyo
       ↓
Template Sensor
       ↓
sensor.weather_tokyo

という構成になります。

これにより、ダッシュボード側では各都市の気温を統一されたエンティティとして扱うことができます。


button-card による表示

各都市の表示には button-card を使用します。

基本的な表示は、

🇯🇵 東京

08:30    29℃

のような構成です。

この構成を16都市分並べ、世界の現在時刻と気温を一覧できるようにします。


将来の拡張性

Version 1.3 では16都市を対象としています。

しかし、Version 1.3 の設計は16都市で終わることを前提としていません。

都市情報を追加することで、

20都市、30都市へ拡張できる構成

を目指しています。

また、将来的には気温だけではなく、

  • 天気
  • 湿度
  • 風速
  • 最高・最低気温
  • 日の出・日の入り

などの情報を追加することも可能です。

Version 1.3 は、これらの機能を追加していくための基盤でもあります。


1.5 本書で完成するダッシュボード

本書の手順を完了すると、Home Assistant に「世界の時刻と気温」を表示するダッシュボードが完成します。

基本的な表示は次のようになります。

🇯🇵 東京          08:30    29℃
🇬🇧 ロンドン      00:30    18℃
🇫🇷 パリ          01:30    20℃
🇺🇸 ニューヨーク  19:30    27℃

実際のダッシュボードでは、これを16都市について4列のGridとして配置します。

各都市のカードをクリックすると、その都市に対応する気温エンティティの詳細を確認でき、気温履歴を表示できます。

※ 最終版では、ここに Version 1.3 の完成画面のスクリーンショットを掲載します。

完成した画面を最初に見ることで、本書でこれから構築するものを直感的に理解できるようにします。


1.6 本書の対象読者

本書は、主に次のような方を対象としています。

  • Home Assistant を利用している方
  • Home Assistant で世界時計を作りたい方
  • 世界各都市の気温を一覧表示したい方
  • Open-Meteo を Home Assistant で利用したい方
  • Template Sensor の利用方法を知りたい方
  • Home Assistant の標準的な仕組みを利用してダッシュボードを構築したい方

Home Assistant の基本的な操作、

  • 設定画面の操作
  • 統合の追加
  • ダッシュボードの編集
  • YAML の基本的な編集

については、ある程度理解していることを前提としています。


1.7 本書で使用する基本構成

Version 1.3 の基本構成は次のようになっています。

┌─────────────────────┐
│     World Clock     │
│                     │
│ sensor.asia_tokyo   │
└──────────┬──────────┘
           │
           ▼
       現在時刻


┌─────────────────────┐
│     Open-Meteo      │
│                     │
│    weather.tokyo    │
└──────────┬──────────┘
           │
           ▼
     気象情報・気温
           │
           ▼
┌─────────────────────┐
│   Template Sensor   │
│                     │
│ sensor.weather_tokyo│
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│     button-card     │
│                     │
│ 🇯🇵 東京  08:30 29℃ │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│      Dashboard      │
└─────────────────────┘

この構成については、第3章「System Architecture」で詳しく説明します。


1.8 Version 1.3 の位置付け

Version 1.3 は、本プロジェクトにおける重要な転換点です。

それ以前のバージョンでは、目的を実現するための方法を検討しながら、さまざまな構成を試しました。

その結果を整理し、

「今後はこの構成を基本とする」

という形にまとめたものが Version 1.3 です。

したがって、本書では途中の試行錯誤をそのまま再現することはしません。

読者が同じ問題を一つずつ経験するのではなく、

検証を終えた Version 1.3 の完成形を最初から構築できること

を目的としています。


1.9 Project History

本プロジェクトは、Version 1.3 から始まったものではありません。

Version 1.0 から Version 1.2 にかけて、世界時計の表示、気温情報の追加、都市数の拡張などを段階的に行いながら、現在の構成へ発展してきました。

ただし、それらの初期バージョンでは、実現方法を検証するための試作や変更も多く含まれていました。

本書では、それらの試行錯誤の過程を詳しく扱わず、検証の結果として確立された Version 1.3 の構成を解説します。

これにより、本書を読む人は過去の開発過程をたどることなく、完成した構成を最初から構築できます。

Version 1.3 に至るまでの大まかな変化は次のとおりです。

Version概要
1.0世界時計ダッシュボードの試作
1.1気温表示機能を追加
1.2ダッシュボードを拡張し、13都市に対応
1.3構成を整理し、16都市対応の正式な Build Guide として体系化

Version 1.0~1.2 は、このプロジェクトにとって重要な開発過程でした。

そして Version 1.3 は、その経験を基にした最初の体系化された構成となります。


1.10 Version 1.3 から、その先へ

Version 1.3 は完成形であると同時に、次の段階への出発点でもあります。

現在は、

現在時刻
    +
現在気温

というシンプルな構成ですが、今後は、

現在時刻
現在気温
天気
湿度
風速
最高・最低気温
日の出・日の入り

といった情報へ発展させることができます。

その意味で Version 1.3 は、

「世界時計」から「世界の今を知るダッシュボード」へ発展していくための基盤

と位置付けることができます。


1.11 本書について

本書は単なる設定手順書ではありません。

Home Assistant World Clock & Weather Dashboard Version 1.3 の、

  • 設計思想
  • システム構成
  • 使用する統合
  • エンティティ構成
  • ダッシュボード構成
  • 構築手順
  • 動作確認

を体系的にまとめた Build Guide です。

また、本書では「何を設定するか」だけではなく、

「なぜこの構成にするのか」

についても可能な限り説明します。

これは、将来Version 1.4以降へ発展させる際にも、重要な設計資料となります。


Chapter 1 Summary

本章では、Home Assistant World Clock & Weather Dashboard Version 1.3 の目的と位置付けについて説明しました。

本プロジェクトは、世界各都市の現在時刻と気温を一画面に集約し、

「世界の今」を直感的に把握する

ことを目的としています。

Version 1.3 は、Version 1.0~1.2までの試作・検証を経て確立された構成を体系化した、最初の公式 Build Guide 対象バージョンです。

そして、このバージョンを基盤として、今後さらに多くの気象情報を追加し、「世界の今」をより詳しく知ることのできるダッシュボードへ発展させていきます。


次章

Chapter 2

Design Philosophy

次章では、Version 1.3 の構成を決めるうえで重要となった、

Home Assistant Standard First

という設計思想について詳しく説明します。

なぜ REST Sensor ではなく Open-Meteo Integration を使用するのか。

なぜ Template Sensor を採用するのか。

なぜ現在のダッシュボード構成を維持するのか。

そして、なぜ「将来20~30都市へ拡張できること」をVersion 1.3の段階から考えているのか。

これらを整理することで、後に登場する YAML や設定手順が「単なる設定例」ではなく、一つの設計思想に基づいていることが分かるようになります。


※ChatGPT により作成した。