ESPHome E-Ink 天気・カレンダー 壁掛けモニター
概要
本リポジトリは、ESPHomeを用いた壁掛け型E-Inkディスプレイの完全な実装例を提供します。Home Assistantと密に連携し、天気情報、複数カレンダーのイベント、複数の室温センサー、ローカル(スロベニア)形式の日時表示を統合して画面にレンダリングします。E-Inkの特性を活かした「スマートリフレッシュ」ロジック(部分更新の活用、必要に応じた全画面更新の実行)、ダーク/ライトモード切替、カスタムフォントや位置調整のための設計支援ツールも含まれており、実運用に耐える完成度があるのが特徴です。
リポジトリの統計情報
- スター数: 18
- フォーク数: 0
- ウォッチャー数: 18
- コミット数: 6
- ファイル数: 7
- メインの言語: 未指定
主な特徴
- ESPHomeベースのYAML設定でE-Inkディスプレイを駆動し、Home Assistantと緊密に連携
- 天気・カレンダー・室温・日時をまとめて表示、ダーク/ライトモード対応
- E-Ink特有の消耗を抑えるスマートリフレッシュ(部分更新と全画面更新の組合せ)
- カスタムフォントとレイアウト調整用のツールを用意、画面デザインの試行錯誤を削減
技術的なポイント
このプロジェクトの肝は「ハードウェア(E-Ink)制約」と「ホームオートメーション(Home Assistant)」の間で実用的な折衷案を提示している点です。E-Inkは表示保持に優れる一方、頻繁な全画面更新はフリッカーや消耗を招くため、更新戦略が重要になります。本リポジトリでは、ESPHome側のロジックとHome Assistantのオートメーションを組み合わせ、以下のように制御を分担しています。
- 部分更新の積極活用: カレンダーの単一イベント追加や温度変化など、小さな変更は部分更新で済ませ、画面全体を再描画しないことで消費電力と更新時間を抑制。
- 定期的な全画面更新のスケジューリング: 部分更新では残像や画面の劣化が避けられないため、夜間など人目の少ないタイミングで全画面更新を行うことで表示品質を回復。
- ダーク/ライトモード対応: 単純に色(黒/白)を反転するのではなく、フォントやアイコンの読みやすさを考慮したレイアウト調整を行い、両モードで最適な視認性を確保。
- フォントとレイアウトの管理: スロベニア語の特殊文字や、見やすいピクセル配置のためにカスタムフォントを用意。表示領域ごとの要素(日時、天気、イベントリスト、温度)を固定座標で描画するため、事前にデザインシミュレータ(READMEで紹介されているツール)で配置を確認してからフラッシュするワークフローを採用している。
- Home Assistantとの連携: 複数カレンダーを統合する「ha-combine-calendar」的な処理や、更新トリガー(カレンダー変更、気象センサー更新、定時実行)をHA側で管理し、ESPHomeデバイスには最小限の描画要求だけを送るアーキテクチャ。これにより、ESP上の負荷を抑えつつ柔軟な運用が可能。
- 設定のモジュール化: esphome-wall-monitor.yamlのようなメイン構成ファイルに、フォントや表示レイヤーを分けた構成で管理。OTAやWi‑Fiの設定はESPHomeの標準機能を利用するため、運用時のメンテナンスも容易です。
ハードウェア面ではE-Inkのモデル依存の表示命令(部分更新対応や解像度)に注意が必要で、YAML内でのドライバ設定やGPIO割当て、電源管理(深いスリープの検討)などの項目も重要になります。本リポジトリはこうした点に配慮したテンプレートと、Home Assistant側での前処理(イベント整形、結合、フィルタリング)を提供しています。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file — プロジェクトの背景、使い方、デザインツールの紹介
- esphome-wall-monitor.yaml: file — ESPHome側のメイン設定(ディスプレイ、フォント、センサー、表示ロジック)
- fonts: dir — カスタムフォント群(スロベニア語対応や見やすさ重視のフォント)
- ha-combine-calendar.yaml: file — Home Assistantで複数のカレンダーを統合する設定例
- ha-refresh-screen.yam: file — 画面リフレッシュを管理するHAオートメーション/スクリプト(拡張可能)
…他 2 ファイル(補助スクリプトや設定テンプレート)
各ファイルはYAML中心で統一されており、ESPHomeのノウハウとHome Assistantの自動化ルールを組み合わせているため、既存環境への適用やカスタマイズが比較的容易です。フォントやレイアウトを変更したい場合はfonts配下に追加し、esphome-wall-monitor.yamlの参照を更新するだけで反映できます。
まとめ
実用的なE-Ink壁掛け表示のリファレンス実装で、ESPHomeとHome Assistantの連携を学ぶのに最適です。
リポジトリ情報:
- 名前: ESPHome-E-Ink-Weather-Calendar-Wall-Monitor
- 説明: This project provides a complete solution for a wall-mounted e-ink display powered by ESPHome and tightly integrated with Home Assistant. It displays weather, calendar events, room temperatures, and Slovenian date/time, with smart refresh logic and support for dark/light modes.
- スター数: 18
- 言語: null
- URL: https://github.com/thehijacker/ESPHome-E-Ink-Weather-Calendar-Wall-Monitor
- オーナー: thehijacker
- アバター: https://avatars.githubusercontent.com/u/13857043?v=4
READMEの抜粋:
ESPHome E-Ink Weather Calendar Wall Monitor
This project provides a complete solution for a wall-mounted e-ink display powered by ESPHome and tightly integrated with Home Assistant. It displays weather, calendar events, room temperatures, and Slovenian date/time, with smart refresh logic and support for dark/light modes.
Element positioning was planned with this design simulator page (https://jnan.co/tools/displaysim/), which significantly reducing trial-and-error reflashing. I also used di…