Aarlo は、Arlo システムへのアクセスを提供する Home Assistant のカスタムコンポーネントです。
Aarlo は、特に次のような機能を提供します。
Aarlo は、Arlo システムへのアクセスを提供する Home Assistant のカスタムコンポーネントです。
この統合には、Arlo Camera Web サイトによって提供されるAPI が使用されますが、これにはいくつかの制限があります。詳細については、「既知の制限事項」セクションを参照してください。
問題が発生した場合は、FAQ セクションを参照して、既知の問題があるかどうか、回避策や修正があるかどうかを確認してください。そうでない場合は、デバッグ ログの生成方法とデバッグ レポートの作成方法について、「バグ レポート」セクションを参照してください。
高度な README はここにあります
古いREADME はまだここから入手できます。
このドキュメントは、 Home Assistant のセットアップと構成に精通していることを前提としています。
このドキュメントで/config
と記載されている箇所は、 Home Assistant設定ディレクトリを指します。たとえば、私のインストールでは/home/steve/ha
ですが、これは Docker コンテナによって/config
にマップされています。
Arloと表示される場合は、 Arloシステムのあらゆる部分を指します。
Aarlo をどこで見ても、私はこのコンポーネントについて言及しています。
感謝します:
Aarlo はカスタムLovelace カードも提供しています。これにより、カメラの最後のスナップショットと現在のステータスがオーバーレイされ、カメラの録画ライブラリとライブ ストリーミングにアクセスできるようになります。
Home Assistantに詳しくない場合は、コミュニティ Web サイトにアクセスすることをお勧めします。そこには親切な人がたくさんいて、あなたが解決しようとしている問題に遭遇した人が必ずいます。
Aarlo には専用のArloアカウントが必要です。既存のアカウント(たとえば、携帯電話のArloアプリで使用しているアカウント)を再利用しようとすると、アプリとこの統合はログインを求めて常に競合します。これはArlo の制限です。
専用のAarloアカウントでは、アラーム レベルを設定し、特定のステータス値を読み取るために、 Allow Access Rights
有効にする必要があります。
詳細な手順については、 Arlo のドキュメントを参照してください。
2 要素認証を有効にする必要があります。認証コードを受信するためのメールアドレスを設定します。 Aarlo は他のTFAメカニズムをサポートしていますが、電子メールが最も簡単に使用できます。詳細については、後の「2 要素認証」セクションを参照してください。
これらのインストール メカニズムのいずれかを使用するだけで済みます。 HACSをお勧めします。
Aarlo はデフォルトの HACS ストアの一部です。開発ブランチの使用に興味がない場合は、これが最も簡単なインストール方法です。
aarlo
ディレクトリを/config/custom_components
ディレクトリにコピーします。
インストール スクリプトを実行します。これを 1 回実行して操作が正常であることを確認し、 go
パラメーターを指定して 2 回目に実行して実際の作業を実行します。スクリプトを再実行するだけで更新すると、インストールされているすべてのファイルが上書きされます。
install /config # check output looks good
install go /config
ただし、 Home Assistantに統合を追加する必要があることがわかっているソース コードをインストールします。ホーム ページからSettings -> Devices & Services
を選択し、ここからADD INTEGRATION
をクリックしてAarlo
を検索します。最初の画面でアカウントの詳細を入力します。
分野 | 価値 |
---|---|
ユーザー名 | Arloアカウントのユーザー名 |
パスワード | Arloアカウントのパスワード |
2 要素メカニズム | IMAPを選択します |
TFA ユーザー名 | TFA に登録したメール アカウント |
TFAパスワード | メールアカウントのパスワード |
TFAホスト | 電子メールを検索する IMAP サーバー |
Use aarlo prefix
オンのままにすると、すべてのデバイスの形式はtype.aarlo_*
になります。
SUBMIT
をクリックします。統合により、 Arloにログインし、それに関連付けられているデバイスのリストが取得されます。すべてうまくいけば、次の画面でデバイスを部屋に割り当てることができます。
さらに設定を微調整することができます。 「統合」ページでCONFIGURE
クリックします。
アラーム設定を微調整します。
分野 | 価値 |
---|---|
警報/解除コード | 必要に応じてコードを入力します。それ以外の場合はデフォルトのままにしてください |
武装解除モード名 | Arlo アカウントにカスタムの解除された名前があるかどうかを変更する |
ホームモード名 | Arlo アカウントにカスタムのホームモード名があるかどうかを変更する |
アウェイモード名 | Arlo アカウントにカスタムの外出中モード名があるかどうかを変更する |
ナイトモード名 | Arlo アカウントにカスタムのナイトモード名があるかどうかを変更する |
アームコードが必要です | 作動させるためにアラーム/解除コードが必要かどうかを選択します |
解除コードが必要です | 解除するためにアラーム/解除コードが必要かどうかを選択します |
トリガー時間 | 装備する際の待機時間 |
アラーム音量 | 警報サイレンのデフォルトの音量 |
ナイトモード;あなたが作成しない限り、 Arlo はこれらのいずれかを持ちません
アラーム コードをクリアする必要がある場合はno code needed
。空白のエントリを受け入れるように検討します...
どのバイナリ センサーが利用可能かを決定します。
分野 | 価値 |
---|---|
音の検出 | カメラのマイクを有効にする |
動き検出 | カメラの動き検出を有効にする |
ドアベルプレス | ドアホンボタンを有効にする |
泣き声検知 | Arlo 赤ちゃんの場合、泣き声検出を有効にする |
デバイスの接続性 | デバイスが切断されたときに通知を受ける |
開閉センサー | ドアと窓のセンサーを有効にする |
明るさセンサー | 光検出を有効にする |
改ざん検出 | デバイスが開いた場合の通知を有効にする |
漏れ検出 | 漏れ監視デバイスを有効にする |
すべてのセンサーがすべてのデバイスで利用できるわけではありません。
使用可能なセンサーを決定します。
分野 | 価値 |
---|---|
前回のキャプチャ時間 | 最後の録画がいつ行われたかを示すカメラごとのセンサー |
検出されたカメラの総数 | カメラ数の整数値 |
最近のアクティビティが検出されました | 最近カメラがアクティブになりましたか |
今日キャプチャされたビデオ/スナップショットの数 | 今日行われた録音の整数値 |
デバイスのバッテリー残量 | バッテリー残量の割合 |
WiFi信号強度 | WiFi の強度、範囲は 1 ~ 5 |
室温 | 部屋の状況 |
部屋の湿度 | 部屋の状況 |
空気の質 | 部屋の状況 |
すべてのセンサーがすべてのデバイスで利用できるわけではありません。そして、最近のアクティビティはおそらくbinary_sensorであるはずです。
その他のスイッチを有効にします。
分野 | 価値 |
---|---|
サイレンをオンにするスイッチ | 個々のサイレンをオンにするスイッチを提供する |
スイッチを押すとすべてのサイレンがオンになります | すべてのサイレンをオンにするスイッチを提供する |
サイレンをオフにできるようにする | スイッチでサイレンをオフにできるようにする |
サイレンスイッチの音量 | デフォルトの音量レベル、1 ~ 10 |
サイレンスイッチの持続時間 | アラームを実行するデフォルトの時間 |
カメラにスナップショットの撮影を要求するスイッチ | カメラのスナップショットを撮るためのスイッチを提供します |
カメラのスナップショットのタイムアウト | 動作の悪いカメラが終了するまでの待ち時間 |
ドアホンのチャイムを消音に切り替えます | ドアホンを消音するスイッチを設置します。 |
早朝からお越しの場合は、次の点に注意してください。
config flow
メカニズムにインポートされます。すべてのデバイスが統合ページに表示されます。yaml
エントリをコメントアウトできます。prefix with _aarlo
有効になり、名前を同一に保つことができます。aarlo
ドメイン内にあります。pyaarlo
コンポーネントはpip
経由でインストールされるようになり、統合には含まれません。.aarlo/session.pickle
を削除しようとすると、ログインが困難になる可能性があります。より難解な構成項目の一部をconfig flow
メカニズムに移動するつもりはありませんでした。構成済みの場合、それらは/config/aarlo.yaml
ファイルに表示されます。これらのオプションの詳細については、ここを参照してください。
Arlo は、SSE または MQTT を使用してAarloにイベントを通知します。どちらが選択されるかを決定するメカニズムは完全にはわかりませんが、 user_agent
を追加または削除すると、この 2 つが切り替わることはわかっています。
Arlo は最近、 session/v3
API リクエストに送信するレスポンスを更新して、どのバックエンドを選択するかを示しました。 Aarlo はauto
使用するときにそれを解析します。
# This is the MQTT backend. We use the host and port.
' mqttUrl ' : ' ssl://mqtt-cluster-z1.arloxcld.com:8883 '
# This is the SSE backend. We use a fixed host and port.
' mqttUrl ' : ' wss://mqtt-cluster-z1.arloxcld.com:8084 '
詳細デバッグを有効にすると、 Home Assistantログでこの値を見つけることができるはずです。
0.8
リリース以降、 Aarlo はどのバックエンドを使用するかを適切に判断できるようになります。ただし、モーション検出イベントの欠落やセンサー値の更新の欠落などの問題が発生した場合は、設定を手動でオーバーライドできます。 /config/aarlo.yaml
でこの設定を変更します。
aarlo :
# This forces the SSE backend
backend : sse
aarlo :
# This forces the MQTT backend
backend : mqtt
# These might also be needed
mqtt_hostname_check : false
mqtt_host : mqtt-cluster-z1.arloxcld.com
aarlo :
# This forces Aarlo to choose
backend : auto
設定の削除はauto
と同等であることに注意してください。
Arlo は、 Arlo Web サイトへのログインにCloud Flareアンチボット保護を使用します。このサービスは、 Python Requestsパッケージではうまく機能しません (または、 Aarlo がこれらのリクエストをどのように使用するかはよくわかりません)。
次のエラーが表示された場合は、 Cloud Flare の問題が発生しています。
2021-06-03 13:28:32 WARNING (SyncWorker_4) [pyaarlo] request-error=CloudflareChallengeError
この問題は私にも影響を及ぼしており、常にコードを改良しようと努めています。
Aarlo はこれを回避するためにいくつかのことを行っています。
Header
レベルに至るまで、公式 Web サイトのリクエストを可能な限り忠実に模倣します。ただし、それでもログインの問題が発生する場合は、いくつかの設定項目を試すことができます。
別のユーザー エージェントを試すことができます。これは/config/aarlo.yaml
で構成されます。
aarlo :
# Change the user agent. It can be either arlo, iphone, ipad, mac, firefox or linux
# or random. random will change it each time it tries to login
user_agent : linux
# Or use a custom user agent, everything after the ! will be used
user_agent : !this-is-a-custom-user-agent
ログイン要求とともにSource
ヘッダーを追加できます。これを必要とするサイトとそうでないサイトが 1 つあります。おそらくユーザーエージェント関連だと思います。
aarlo :
# This adds the following header "Source: arloCamWeb"
send_source : true
次のようにしてセッション キャッシュを無効にできます。
aarlo :
# This will force a full login on every restart
save_session : false
使用するさまざまなecdhカーブを選択できます。このトピックはこのドキュメントの範囲外です。説明については、ここを参照してください。
aarlo :
# Make this curve the first choice. You can only enter 1 choice.
ecdh_curve : secp384r1
特定のArlo Web サーバーを指すように/etc/hosts
変更できます。
# Remove the # to force the request to go to a particular cloudflare server
#104.18.30.98 ocapi-app.arlo.com
#104.18.31.98 ocapi-app.arlo.com
Arlo ではこれを2 段階認証と呼んでいます。ホーム アシスタント固有のアカウントに対してこれを有効にする必要があります。 Aarlo はIMAPおよびPUSHメカニズムをサポートしていますが、 IMAPを使用することをお勧めします。PUSHではログイン要求に手動で応答する必要があります。
2 要素認証の設定手順はここにあります。Arlo はここで提供します。
統合を追加するときに、2 要素認証を入力します。
2 要素認証の手順に従って、電子メール検証方法を追加して設定します。これをテストするには、Arlo のメイン Web ページにログインし、電子メールが送信されることを確認します。
GmailとYahoo (およびその他の Web ベースの電子メール クライアント) の場合、通常のパスワードではログインできないため、アプリケーション固有のパスワードを作成する必要があります。これが必要な理由の説明はこのドキュメントの範囲外であるため、次のページを参照してください。
IMAPアカウントにログインできない場合は、アプリケーションのパスワード要件を確認してください。
次のサーバーが動作することが確認されています。
サービス | ホスト名 |
---|---|
Gメール | imap.gmail.com |
ヤフー! | imap.mail.yahoo.com |
2 要素認証の手順に従い、 PUSH検証方法を追加して設定します。
IMAP クライアントに渡される暗号リストを変更する必要がある場合は、次のオプションで指定します。これを行う必要はありません。詳細については、openssl のマニュアル ページを参照してください。
aarlo :
# specify cipher list to use
cipher_list : " HIGH:!DH:!aNULL "
# Use DEFAULT for the cipher list
default_ciphers : True
問題が発生した場合は、バグ レポートを作成し、デバッグに役立つ次の情報をバグ レポートに含めてください。そうでない場合は、そうするまで私はあなたを困らせるだけです。
基本的なAarloデバッグを有効にするには、 configuration.yaml
のログ設定を変更します。
logger :
default : info
logs :
pyaarlo : debug
custom_components.aarlo : debug
ログを有効にし、次のコードを/config/aarlo.yaml
に追加することによって、詳細デバッグを有効にできます。詳細デバッグでは大量のログが生成されるため、必要な場合にのみ有効にすることをお勧めします。
aarlo :
verbose_debug : true
Aarlo は、デバッグ ログを標準のHome Assistantログ ファイル/config/home-assistant.log
に書き込みます。
デバッグを送信する前に、暗号化する必要があります。この Web ページでは出力を暗号化できます。ファイルをアップロードするか、コピーしてバッファに貼り付けて、 Submit
を押します。
このページでは出力が自動的に転送されないため、出力をコピーしてファイルに貼り付け、バグ レポートに添付する必要があります。
このページはログを隠して、私だけがログを読めるようにします。私はそれを復号化するための秘密キーの唯一の所有者ですが、シリアル番号とともにアカウントとパスワードの情報が含まれる可能性があるので注意してください。暗号化する前にそれらを隠すことができますが、私はそれらを必要としません。
私はArloのすべての機器を所有しているわけではないので、物事がうまくいかなかったり、新しい機器がリリースされたりしたときに、 Arlo が実際にこのコードが何を送信することを期待しているのか、そしてこのコードがArloから何を返すことを期待しているのかを確認する必要があります。 Aarlo はWeb ブラウザ接続をシミュレートするため、ブラウザ開発者ツールを使用して予想される内容を確認できます。
この手順は Chrome を対象としていますが、ほとんどのブラウザ (そう願っています!) にも同様の機能があります。
More Tools
を選択し、最後にDeveloper Tools
を選択します。ショートカットCTRL+SHIFT+I
使用することもできます。Network
タブを選択します。ログインすると、ブラウザとArlo Webサイトの間で渡されるデータがこのタブに表示され始め、表示され続けます。 Name
の下のエントリをクリックすると、パケットをさらに詳しく調べることができます。
Headers
タブには、リクエストのヘッダーで送信された内容が表示されます。Payload
タブには、リクエストの本文で送信された内容が表示されますPreview
タブには、 Arloから返信された応答が表示されます。 name
の下のフィールドにマウスを移動すると、リクエストの送信先の完全な URL がポップアップに表示されます。
これを文書化する必要があります。
subscribe
という単語を含む URL を探します。これは、 Arlo がWeb ページに送り返す偶数ストリームになります。 Web ページ上のボタンをクリックすると、このリストにさらに多くの項目が表示されます。この情報を使用して、まだ処理していないケースの応答パケットを解析する方法を決定できます。
たとえば、 Arlo はWOOHOO
ボタンを持つ新しいデバイスを作成します。私はそのようなデバイスを持っていないが、 AarloにWOOHOO
機能を実装したいとします。必要なのは、ボタンを押したときの一連のパケットとその応答です。これを行う唯一の実際の方法は、ボタンを押して、 Name
タブにどのような新しいパケットが表示されるかを確認することです。
次に、それらをコピーしてGitHubのバグ レポートに貼り付ける必要があります。機密データを非表示にする方法については、前のセクションを参照してください。
いいえ、彼らは誰がコントロールを持っているかについて議論することにすべての時間を費やしています。これはArlo の制限です。
デバイスを共有しましたか? Arlo Web ページにログインし、そこに Arlo Web ページが表示されることを確認します。存在する場合は、デバッグ ログを有効にして、バグ レポートを作成します。
デバイスを共有するアカウントに管理者アクセス が与えられていることを確認してください。バッテリーや信号強度の更新などに必要です。
デバイスを共有するアカウントにAdmin Access が与えられていることを確認してください。これはベースステーションを共有するために必要です。
新しいArlo位置ベースのインターフェイスを使用していますか。この場合、個々のデバイスではなく、位置のみを監視または解除できます。
フィードを表示するためにサブスクリプションは必要ありませんが、録画を表示するにはサブスクリプションが必要です。
この記事の執筆時点 (2024 年 5 月) では、ローカル録画を読み取るオプションはありません。他の機能はすべて正常に動作します。
確かにそうです。 Arlo はIPカメラのように機能せず、動きが検出されたときのみ記録するため、ストリームの開始を要求するには、自宅のカメラと通信するArloサーバーと通信する必要があります。処理が開始されるまでに数秒かかる場合があります。ストリーミングは次のように動作します。
Camera ---> Arlo Cloud Servers --> Home Assistant --> Your Home Assistant Client
ビデオ トラフィックは家から出てから家に戻る必要があります...
これは、動作することが確認されているデバイスのリストです。このリストに明示的に記載されていない場合でも、ほとんどのArloデバイスは機能しますが、機能が制限されている可能性があります。
モデル | 名前 | 特徴 |
---|---|---|
ABC1000 | 赤ちゃん | モーション、オーディオ、環境、叫び声 |
AVD1001 | 有線ビデオドアベル | モーション |
AVD2001 | エッセンシャルビデオドアベル | モーション、サイレン |
AVD3001 | 有線ビデオドアベル HD | モーション、サイレン |
AVD4001 | 有線ビデオドアベル 2K | モーション、サイレン |
FB1001 | プロ 3 フラッドライト | 投光器 |
MS1001 | オールインワンセンサー | モーション、オープン、ウェット、タンパー、温度 |
VMB3010 | 基地局 | |
VMB4000 | ベースステーション2 | サイレン |
VMB4500 | プロベースステーション | サイレン |
VMC2030 | エッセンシャルカメラ | モーション、オーディオ、サイレン、スポットライト |
VMC2040 | 必須の屋内カメラ | モーション、オーディオ、サイレン、バッテリーなし |
VMC3030 | HDカメラ | モーション、オーディオ |
VMC3040 | Qカメラ | モーション、オーディオ |
VMC3060 | エッセンシャル屋内カメラ 2 | モーション、要確認 |
VMC3052 | エッセンシャルXLカメラ | モーション、オーディオ、スポットライト |
VMC4030 | プロ 2 カメラ | モーション、オーディオ |
VMC4040 | プロ 3 カメラ | モーション、オーディオ、サイレン、スポットライト |
VMC4041 | プロ 4 カメラ | モーション、オーディオ、サイレン、スポットライト |
VMC4060 | プロ 5 カメラ | モーション、オーディオ、サイレン、スポットライト |
VMC5040 | ウルトラカメラ | モーション、オーディオ、サイレン、スポットライト |
VML2030 | Go 2 カメラ | モーション、オーディオ |
VML4030 | ゴーカメラ | モーション |
このコンポーネントは、Arlo Camera Web ページで使用されるAPI をリバースエンジニアリングすることによって作成されました。
以下は一般的な制限です。
Web サイトに対する制限は次のとおりです。
モバイル アプリケーションに対する制限は次のとおりです。
最後の 2 つはif the WEB API doesn't support it, neither can the component.
新しい機能のリクエストをするときは、そのことを念頭に置いてください。