GNU/Linux >> Linux の 問題 >  >> Linux

ホームオートメーション:PodmanでHomeAssistantを実行する

スマートデバイスが私たちを取り囲んでおり、モノのインターネット(IoT)に接続する準備ができているデバイスの長いリストは毎日長くなっています。たとえば、スマート電球の人気はここ数年で急速に高まり、市場は成長を続けており、「今後5年間で最も急成長しているスマートホームデバイス」と予測されています。この分野のいくつかの有名企業が市場を支配していますが、多くの小規模な競合他社が争いに加わり、さらに多くの機能を備えたより安価な代替品を提供しています。これは競争には最適ですが、1つの深刻な懸念と、多くのシステム管理者がよく知っている状況、つまり統合の悪夢を引き起こします。

[次のこともお勧めします:LinuxでFolding@homeを使用してCOVID-19の調査を支援する]

問題は、各メーカーが、デバイスを制御するための独自の組み込みのクローズドソースソリューションを、通常はモバイルアプリの形で提供する傾向があることです。しかし、ホームオートメーションにすでに統合しているものとは異なるメーカーから新しいデバイスを購入することにした場合はどうなりますか?デバイスを制御するために複数のアプリを使用しなければならない可能性があります。ある種の自動化された方法でそれらを連携させる方法については話を始めましょう。この問題を回避するために利用できるクラウドサービスがあり、さまざまなメーカーのデバイスを制御するためのアプリケーションと自動化を作成する手段を提供します。このようなサービスは、スマートデバイスの自動化への道のりを開始するための優れたプラットフォームを提供しますが、これらのサービスは有料のサブスクリプションまたは非常に限られた「フリーミアム」モデルで動作する傾向があり、このクラウドベースのサービスへの依存度がますます高まっています。 。

2013年に、この種の問題に対処し、スマートデバイスのローカル制御をクラウドから自宅に戻すためのオープンソースプロジェクトが開始されました。今日、プロジェクトは順調に進んでおり、2,500人を超える貢献者と新しい統合および機能が頻繁に展開されています。この記事では、HomeAssistantと呼ばれるオープンソースのホームオートメーションプラットフォームを紹介します。

HomeAssistantコンテナの展開

Home Assistantは、さまざまなインストール方法を使用して展開できますが、推奨される方法は、必要なものがすべて付属しているHomeAssistantOSを展開することです。ただし、このテイスターにはコンテナーイメージを使用します。これにより、HomeAssistantがどのように機能するかを簡単に把握できます。次の手順は、Podmanなどのコンテナランタイムがシステムにすでにデプロイされていることを前提としています。 Home AssistantはTCPポート8123で動作するため、このポートがシステムでまだ使用されていないことを確認する必要があります。

1.コンテナイメージをプルすることから始めます:

$ podman pull docker.io/homeassistant/home-assistant:stable

2.構成ディレクトリを設定します:

$ mkdir ~/hass_config

3. Podmanを使用してコンテナをデプロイします:

$ podman run --init -d \
--name homeassistant \
--restart=unless-stopped \
-v /etc/localtime:/etc/localtime:ro \
-v ~/hass_config:/config:Z \
--network=host \
homeassistant/home-assistant:stable

4.コンテナが起動して実行されたら、お好みのWebブラウザを開き、http://127.0.0.1:8123/に移動します。 。必須フィールドに入力して、管理者ユーザーアカウントを作成します。

5.すでにいくつかのスマートデバイスがホームネットワークに接続されている場合は、次の画面でHome Assistantがすでにそれらを検出し、すぐにインストールするための統合として表示することがあります。このステップをスキップして、次のセクションで統合をセットアップする方法を実行します。 完了を押します HomeAssistantのLovelaceGUIに進み、土地のレイアウトに慣れるために少し探索してください。

:Home Assistantログにいくつかのメニュー項目がないか、次のようなエラーメッセージが表示されていることに気付いた場合:

default_configの依存関係を設定できません。依存関係のセットアップに失敗しました:自動化。

構成を使用してHomeAssistantを再起動するだけです ->サーバーコントロール ->再起動

統合と自動化

Home Assistantコンテナを展開したら、構成に固執しましょう。 統合 Home Assistantでは、公共交通機関の時刻表などのオンラインAPIや、LEDライトストリップやスマート加湿器などの物理的なスマートデバイスなど、外部入力とのインターフェース機能を提供します。これを書いている時点で、Home Assistantは1,765の統合のコレクションを提供しており、そのライブラリは急速に成長しています。多くの主要なブランドがすでにサポートされていることがわかります。家に何らかのスマート電球、テレビ、またはコーヒーマシンがすでに含まれている場合は、HomeAssistantがすでに統合されている可能性が高くなります。そうでない場合で、手を汚したい場合は、プロジェクトはオープンソースであり、GitHubでホストされており、常に貢献を求めています!

この例では、 Met.noを設定します 北欧の天気予報を取得するための統合。必要に応じて、別の気象サービスプロバイダーを自由に使用してください。

  1. Home Assistant GUIで、構成に移動します ->統合 ->統合の追加 。 「Meteorologiskinstitutt(Met.no)」を検索し、希望の名前、緯度、経度の情報を入力します。これらはHomeAssistantによってすでに入力されている場合がありますが、そうでない場合は、インターネット上の他の場所でこれらを取得して、自分で入力することができます。
  2. 送信を押す 次に終了 HomeAssistant構成に統合を追加します。左側のナビゲーションペインを使用して、概要をクリックします LovelaceGUIに移動します。
  3. デフォルトでは、HomeAssistantはLovelaceGUIに自動的にデータを入力するように構成されていますが、ある時点で、制御を取得して、希望どおりに設定する必要があります。右上のケバブメニューアイコン(縦に3つ並んだ点)をクリックし、ダッシュボードの編集を選択します。 ->制御する
  4. カードの追加をクリックします ボタンをクリックし、カードの種類として[天気予報]を選択します 。次に、このカードの構成オプションが表示されます。ほとんどの場合、Home Assistantは自動的に正しいエンティティを選択しますが、必要に応じてドロップダウンメニューを使用してエンティティを変更できます。私の場合、Met.no統合に「Home」という名前を付けたため、エンティティには自動的に「weather.home」という名前が付けられます。 セカンダリ属性も設定しました 「風速」へ
  5. 保存を押した後 、カードがLovelaceGUIに追加されます。カードを削除するには、それぞれのカードの右下にあるケバブメニューアイコンをクリックし、カードの削除を選択します。 。ダッシュボードの編集が完了したら、 Xを押します。 左上を上に移動して、表示モードに戻ります。

統合を追加したので、自動化の設定を確認できます。毎朝プッシュ通知を介して携帯電話に短い天気予報を送信する自動化を作成します。これを機能させるには、Home Assistantアプリをモバイルデバイスにインストールしてログインする必要があります。ログインすると、電話はHomeAssistantサーバーへのレポートを開始します。 構成の下を確認する ->エンティティ 、お使いの携帯電話がHomeAssistantに報告しているさまざまなセンサーのリストが表示されます。 TCPポート8123を介した通信は、携帯電話とローカルネットワーク上のHome Assistantコンテナ間で許可する必要があるため、それに応じてファイアウォールルールを調整する必要がある場合があります。

1.構成に移動します ->自動化 ->自動化の追加 ->空の自動化から始めます

2.自動化に「朝の天気予報」という名前を付けます

3.トリガーの下 、を選択します タイプについては、イベントを確認してください 日の出に設定されています 。日の出後1時間は「01:00:00」、日の出前1時間は「-01:00:00」などのオフセットを追加できます。 時間を使用して固定時間を設定することもできます タイプ。

4.アクションの下 、タイプをコールサービスに設定します サービスを設定します "notify.mobile_app_ your_phone_model" サービスの場合 データの場合、構成をYAML形式で記述する必要があり、Jinja2テンプレートを使用していくつかの条件ステートメントを実行します。テンプレートの詳細については、HomeAssistantをご覧ください。

title: Weather Report
message: >-
  The current temperature is {{state_attr("weather.home", "temperature") }} degrees
  with an expected maximum of {{ state_attr("weather.home","forecast")[0]["temperature"] }} degrees.
  {%if state_attr("weather.home", "forecast")[0]["precipitation"] | float == 0 %}
    There is no rain forecast today
  {% else %}
    You can expect {{ state_attr("weather.home","forecast")[0]["precipitation"] }}mm of rain today
  {% endif %}
  {% if state_attr("weather.home","wind_speed") | float > 20%}
    and it's a little windy outside, so hold on to your hat!
  {% else %}
    and it's not too windy.
  {% endif %}

5.青い保存を押します 自動化を保存するボタン。 自動化について ページで、実行をクリックすると、光沢のある新しい自動化をテストできます 。これで、次のようなHomeAssistantからの短い天気予報が携帯電話にプッシュ通知されるはずです。

[Ansibleについてもっと知りたいですか? RedHatから無料の技術概要コースを受講してください。 Ansible Essentials:自動化の技術概要のシンプルさ。 ]

まとめ

これは、Home Assistantの基本的なインストール、構成、および展開です。 Lovelaceダッシュボードに新しい統合を設定し、自動化について簡単に説明しました。 Home Assistantの豊富な統合、自動化、構成可能性の表面をかろうじてかじっただけですが、少なくとも何が可能かを味わうことができるはずです。 Home Assistantのサービスを最大限に活用することで、ほぼ無限の可能性を発見できます。あなたはあなたの想像力によって本当に制限されているだけです。この短い紹介を楽しんだら、Home Assistantで何ができるかを理解するために、コンテナの画像をいじってみることをお勧めします。実稼働環境をセットアップする場合は、HomeAssistantOSを確認してください。


Linux
  1. rootなしのPodmanをroot以外のユーザーとして実行する

  2. sshpassを使用したLinuxでのSSHパスワードの自動化

  3. 補足グループをPodmanコンテナと共有する

  1. systemd-homedを使用してLinuxユーザーのホームディレクトリを管理する

  2. 別のバージョンの python で実行されている pytest

  3. /home ディレクトリのディスク容量が不足していますか?

  1. Linuxでホームディレクトリのユーザーアカウントを削除する方法

  2. テクノロジープレビュー:コンテナー内でコンテナーを実行する

  3. 「でスクリプトを実行します。 」と「ソース」で?