基本的なタスクを実行するためにクラウド接続を必要とするスマートホームデバイス(例えば、現在の温度を表示するだけでWi-Fiを必要とするグリルコントローラーなど)は、住宅所有者にとって重大な故障点となります。これらのリスクを軽減するために、一部のユーザーは、主要なロジックとデバイス間の通信がすべて家庭内の内部ネットワーク内で行われる「ローカルファースト」アーキテクチャを採用しています。

クラウド依存のリスク

多くの現代的なスマートホームデバイスは、動作するためにメーカーのクラウドサーバーに依存する「ブラックボックス」として設計されています。そのサーバーがオフラインになったり、企業が倒産してAPIを停止したりすると、ハードウェアは使い物にならなくなる可能性があります。例としては、アプリのバグにより温度を変更できなくなったスマート冷蔵庫や、サポート企業が事業を停止した途端に完全に動作しなくなった肉用温度計などが挙げられます。

証明書の警告を表示するSamsungの冷蔵庫と、WiFiコントローラーを備えたCamp Chefのグリル
基本的な機能に外部クラウド接続に依存するスマートホームデバイスの例。docodethatmatters.com

この画像は、テキストで言及されているスマート冷蔵庫やグリルコントローラーなど、クラウド依存のデバイスの具体的な例を説明しています。

サービスの停止だけでなく、クラウドへの依存はユーザーの日常生活における単一の故障点を作り出します。サーモスタットやスマートロックがコマンドに応答するためにアクティブなインターネット接続を必要とする場合、単純なISPの障害によって家のインフラが反応しなくなる可能性があります。ローカルファーストのアプローチでは、インターネットを基本動作のための必須条件ではなく、リモートアクセスのためのオプションの二次的な経路として扱います。

「インターネットがなくても問題ない。核心となる機能は、インターネットを抜いた状態でも動作しなければならない。」

— Smart home devices should work without the internet — Do Code That Matters

ローカルファーストシステムのアーキテクチャ

堅牢なローカルファーストのセットアップは、多くの場合MQTTプロトコルを使用したデカップルされた通信パターンに依存します。このモデルでは、センサーがローカルのブローカーにデータを公開し、ダッシュボードやスマートフォンなどの権限を持つデバイスがそのデータを購読します。これにより、センサーは誰が聞いているか、あるいはデータがどのように使用されているかを知る必要がなくなり、システムはより機敏で変更が容易になります。

インフラは通常、Raspberry Piのような中央ハブを含み、Node-REDなどのツールを通じてオートメーションロジックを実行します。デバイスは多くの場合、Tasmotaファームウェアを実行するESP32マイクロコントローラーによって駆動し、ローカル専用の機能をフラッシュすることが可能です。このセットアップにより、「スマートフォンがあるが車はいない時だけガレージのドアを開ける」といった複雑なフローを、完全にローカルのハードウェア上で実行できるようになります。

ガレージセンサーからGrafanaダッシュボードに送られるNode-REDのフロー図
Node-REDのフローは、ローカルのオートメーションロジックがどのようにセンサーデータを処理するかを示しています。docodethatmatters.com

この画像は、アーキテクチャのセクションで説明されているNode-REDのオートメーションロジックとデータフローを示しています。

トレードオフと実践的な実装

ローカルファーストシステムは優れた信頼性とプライバシーを提供しますが、初期段階での高い努力と技術的な構成が必要です。ユーザーは、3Dプリントされた筐体、カスタムのPCBレイアウト、手動のファームウェアフラッシュなどを含む独自のハードウェアを管理しなければなりません。これは、事前設定済みのアプリが同梱されている市販のクラウドデバイスの「プラグアンドプレイ」の利便性と引き換えになるものです。

3D PCBのレンダリング、TasmotaのWeb UI、スプリンクラーコントローラーの配線を含むスマートホームハードウェアのコレクション
カスタムのローカルファースト・スマートホームシステムを構築するために使用されるハードウェアコンポーネントとインターフェース。docodethatmatters.com

この視覚情報は、ローカルファーストの実装に必要なハードウェア、ファームウェア(Tasmota)、およびカスタムPCBレイアウトの説明をサポートします。

家庭が単一ユーザーから複数ユーザーの環境へと進化するにつれ、ローカルシステムの複雑さは増します。技術的な習熟度に関わらず全員が家を操作できるように、物理的な鍵、NFCタグ、壁掛けのタブレットなど、家とやり取りするための複数の方法を提供する必要があります。目標は、システムの裏側が高度であっても、ユーザー体験はシンプルでアクセスしやすい状態を保つことです。

Hacker Newsの読者の反応

  • 体験談: あるコメント投稿者は、完全にローカルで動作していたレガシーなホームオートメーションシステムの経験を共有し、現在は廃止されたクラウドサービスに依存する特定の水漏れ検知器を購入した時にのみ機能を失ったと述べている。 コメント ↗
  • 代替案: 数人のコメント投稿者は、ローカル制御を維持するためにHome Assistantのようなプラットフォームや、Zigbee、Z-Waveといった特定のプロトコルを使用することを提案しており、あるユーザーは安価なハードウェアとカスタムファームウェアを使用してローカルファーストのセットアップを実現するプロセスを説明している。 コメント ↗
  • 懐疑的: あるコメント投稿者は、ほとんどのハードウェアがユーザーの好みよりも即時のビジネスニーズを満たすために設計された最小限の機能を持つソフトウェアで製造されているため、ローカルファーストの機能が標準になる可能性は低いと主張している。 コメント ↗
  • 懐疑的: 別のユーザーは、スマートホームデバイスがアップデートやトラブルシューティングによって複雑になり、利便性が低下することに不満を表明しており、現在の状況は根本的に欠陥があると主張している。 コメント ↗

Hacker Newsのスレッドで出た意見の要約です。事実として検証されたものではありません。 議論の全文を読む ↗