カテゴリー: 指示

ホーム エコシステムにおける Raspberry Pi: 機能と例 (パート 1)

少し前に私は 購入した シングルボード ミニコンピュータ Raspberry Pi 4 (別名 "ラズベリー» アマチュアの間で)、自宅でどのように、何のために使用できるかを特に理解していません。 むしろ、それは別の技術的なおもちゃであり、絶対に許容できる金額であるため、実験する余裕がありました. 先を見据えて、私は現在、RPi4で実行されているネットワーク全体の広告ブロッカーなどのサービスを持っていると言えます AdGuardホーム、バックアップ ストレージ システム Apple タイムマシンホームブリッジ 認定されていないデバイスをエコシステムに追加する Apple HomeKit、トレントをダウンロードするためのプログラム 送信、メディアサーバー プレックス そしてレトロゲーム機 RetroPie. 自己ホスト型のパスワード マネージャーを試す予定です Bitwarden、有名な 1Password のオープン ソース アナログです。 タバコのパックのサイズのような小さなものには少なすぎませんよね?

このサイクルで 記事では、これらすべてをどのようにインストールおよび構成したかをできるだけ詳しく説明しようとします。

最初 論文 生態系に固有のものに触れているため、ケシの農家にとってより有用です。 Apple ただし、AdGuard を扱うセクションは、デスクトップまたはモバイル オペレーティング システムのユーザーにとって興味深いものです。

つ目の記事では 誰もが例外なく役立つユニバーサルサービスを検討します。 そして、あなたと私は普通の人と同じように進歩します - 単純なものから複雑なものまで。

ラズベリーパイの準備

Raspberry Pi の初期のリビジョンはハードウェアの点で非常に脆弱であったため、すべてのソフトウェア開発者はこのコンピューターをシングル タスク マシンとして認識していたことに注意してください。 このため、RPi で実行できるすべてのサービスは、デフォルトでオペレーティング システムの既製のイメージとして提供されます。 ダウンロードしてSDカードに記録し、RPiに挿入して、サービスがインストールされた既製のコンピューターの電源を入れました。 ただし、現在のリビジョンでは許可されているため、複数のサービスを同時に起動することが私たちの仕事です。 そのため、アプリケーションとしてインストールします。

「クリーンな」Raspbian システムを備えた Raspberry Pi をローカル ネットワークに接続済みであるとします。 初心者で何から始めたらいいのかわからない方はまずはこちらから  公式指示 (リンクをたどってください - 多くのインタラクティブなイラストを備えた素晴らしいステップバイステップのウィザード)、次の段階に進みます.

ステップ1

まず、アクセスを有効にする必要があります SSH ラズベリーパイに。 これを行うには、いくつかの簡単な手順を実行する必要があります。

  • 「環境設定」メニューで「Raspberry Pi 構成」ウィンドウを開きます。ces" オペレーティング·システム
  • 「インターフェース」をクリックしますces»
  • SSH の横にある [有効にする] を選択します
  • 変更を有効にするには、[OK] ボタンをクリックします。

グラフィカル インターフェイスなしで Raspbian Lite をインストールした場合は、Raspberry Pi 自体のターミナルで次のコマンドを実行します。

sudo systemctl enable ssh sudo systemctl start ssh

アクセス可能。

私は macOS コンピューターを持っているので、Linux コンピューターの所有者と同じように、すぐに次のステップに進むことができます。 Windows 10 ユーザーは、オペレーティング システムの一部として組み込みの OpenSSH クライアントも受け取りましたが、アクティブ化するにはいくつかの操作が必要になる場合があります。

Windows コマンド プロンプトまたは PowerShell シェル (どちらか好きな方) を開き、次のコマンドを入力します。

Get-WindowsCapability -オンライン | ? 名前のような「OpenSSH*」

SSH クライアントがインストールされている場合、コマンドに対する応答は次のようになります。

OpenSSH.Client が State フィールドに NotPresent であると表示された場合、それをアクティブ化する最も速い方法は、次のコマンドを入力することです。

Add-WindowsCapability -Online -Name OpenSSH.Client*

これで、Windows ユーザーの場合を含め、準備の最初の段階が完了します。 Raspberry Pi の性質と、Raspbian OS が実際には Linux の別のバージョンであるという事実を考えると、コマンド ラインでかなりの作業を行う必要があります。 一部の人にとっては珍しいように思えるかもしれませんが、私を信じてください。これには難しいことや取り返しのつかないことは何もないので、勇気を出してください. 万事うまくいくだろう。

ステップ2

ここで、Raspberry Pi がローカル ネットワーク上で常に同じ内部 IP アドレスを取得するようにする必要があります。 これを行う最も簡単な方法は、ルーターの設定です。

私は三成分メッシュシステムを使用しています  ASUS ZenWiFi ミニ この会社のルーターの標準のWebインターフェイスを使用します。 MAC アドレスと IP アドレスをリンクするには、接続されているデバイスのリストからデバイスを選択し、ポップアップ ウィンドウで目的の IP を指定するだけです。 私の場合、192.168.50 を選択しました。10 覚えやすいように。

他のメーカーのルーターでは、メニュー項目の呼び方が異なる場合がありますが、その本質は同じままで、接続されたデバイスに静的ローカル IP を発行します。

ステップ3

macOS、Linux、または Windows の標準セットから、コンピューターでターミナル (コマンド ライン、PowerShell など) を起動します。

私たちはチームを殺します

ssh pi@

(代わりに <ip address of your server> 前のステップの「ラズベリー」の IP を挿入すると、おおよそ次の図が表示されます。

ここで、初期セットアップ中に指定した Raspberry Pi のパスワードを強制終了する必要があります。

重要! パスワードは、入力しても画面に表示されません。 また、「星」も表示されません。 パスワードを文字通り「盲目的に」入力し、Enter キーを押す必要があります。

パスワードが正しく入力されている場合、結果は次のようになります。

こんにちは、あなたはラズベリーパイの中にいます。 いらっしゃいませ! 個々のサービスの設定に進むことができます。 そして、最も単純なものから始めます。

Raspberry Pi に AdGuard Home をインストールして構成する

AdGuardホーム、開発者の証言によると、「広告と追跡に対する強力なネットワーク ツールです。 モノのインターネットの役割が増大するにつれて、ネットワーク全体を管理することがますます重要になっています。 セットアップが完了すると、AdGuard Home は、クライアント側のソフトウェアを必要とせずに、すべての家庭用デバイスをカバーします。」

簡単に言えば、デバイスごとに個別のアプリやブラウザー プラグインとして機能する広告フィルターではなく、家庭内 LAN 全体をフィルターでカバーするユニバーサル ソリューションです。

ターミナルウィンドウに戻りましょう (コマンドを入力するための Windows PowerShell およびその他のシェルに同意しましょう。テキストでは、単純にターミナルと呼びます。よろしいですか?), AdGuard Homeアーカイブをダウンロードして解凍する次のコマンドを実行します:

cd $HOME wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_armv6.tar.gz tar xvf AdGuardHome_linux_armv6.tar.gz

あとは、サービスをインストールして実行するだけです。

cd AdGuardHome sudo ./AdGuardHome -s インストール

結果は次のようになります。

AdGuard Homeはすでにインストールされています! シンプルですね。

次に、新しくインストールされたサービスの Web インターフェイスにアクセスする必要があります。 ブラウザ (Safari、Chrome、Firefox など、何でも構いません) を起動し、アドレス バーで kill を実行します。 https://<ip address of your server>:3000. 私の場合、私たちが覚えているように、https://192.168.50.10:3000。

ステップバイステップの初期設定ウィザードが表示されます。 別の言語のインターフェイスに慣れている場合は、すぐに目的の言語に切り替えることができます。 リストには、とりわけ、ウクライナ語、ポーランド語、ロシア語が含まれています。

192.168.50.10 番目のステップでは、AdGuard ホーム ユーザーを作成し、パスワードを設定するよう求められます。 番目に、Raspberry PiのIPアドレス(私の場合は同じ)をルーター設定の適切なセクションでDNSとして登録する必要があることを説明します. これを行う:

他のメーカーのルーターでは、目的の設定ポイントはほぼ同じパス上にあります。

次に、AdGuard Home 自体の設定に移動しますが、これはまだ無邪気にクリーンです。

スマートテレビをお持ちの場合 Samsung、LG、または同様の場合、「フィルター - ブラックリストの追加」メニューに移動し、「リストから選択」します。 対応するブロックリストを有効にします。

ロシア語/ウクライナ語の広告フィルターを手動で追加する必要があります。 [ブラックリストを追加] をもう一度クリックし、次に [リストを追加] をクリックして、対応するフィールドに次の値を順番に入力します。

Ім'я URLアドレス
AdGuardベースフィルター https://filters.adtidy.org/extension/chromium/filters/2.txt
AdGuardロシア語フィルター https://filters.adtidy.org/extension/chromium/filters/1.txt
AdGuard トラッキング防止フィルター https://filters.adtidy.org/extension/chromium/filters/3.txt

まず、これらのフィルターで十分です。

比較のために、私は通常、古典的なバナーでいっぱいのサイトである exler.ru を使用します。 左がフィルタ適用前、右がフィルタ適用後。

AdGuard Home の更新は手動モードで行われますが、文字通り つのボタンで開始され、介入を必要とせずに数秒かかります。

一般的に、それだけです。 これからは、すべてのホーム デバイスが事実上広告なしになります。 ここでの不愉快な例外は、クライアント プログラムです。 YouTube コンソール上 Apple TV ですが、ここでは tvOS アーキテクチャの制限が適用されるため、この場合 AdGuard は無力です。

Raspberry Pi に Time Machine をインストールして構成する

ウィキペディアによると、Time Machine は開発されたバックアップ システムです。 Apple Mac OS X Leopard およびそれ以降のバージョンの macOS に組み込まれているほか、バックアップ コピーの内容を表示し、個々のファイルとオペレーティング システム全体を復元できる同名のプログラムも含まれています。

簡単に言えば、互換性のあるファイル サーバーを必要とする macOS に組み込まれた 時間ごとのバックアップ システムです。 Raspberry Pi に外付け USB HDD を接続すれば、まさにそのようなサーバーに変えることができます。

Time Machine が正しく動作するためには、USB 4 ポートを備えた Raspberry Pi 3.0 以降 (以前のモデルではポートが遅くなります) と、容量が 1 ~ 3 テラバイトの適切な HDD (外部電源がある場合は外部電源) のみが適しています。 3,5 インチ ディスク)。

重要! macOS が Time Machine データをローカル ネットワークに保存できるようにするネットワーク プロトコルは つあります。 時代遅れの Netatalk、またはより現代的な Samba。 原則として、Time Machine のタスクにはどれでも使用できます。 インターネットには、Netatalk を介してプロセスを整理するための指示があふれています。これらの指示はすべて、程度の差こそあれ気まぐれですが、私の仕事は、最も簡単で保証された作業オプションを提供することです。 そして、あなたの仕事はあなたにとって都合の良いものを選ぶことです。 したがって、この記事では両方を検討します。

HDDの準備

HDD を Raspberry Pi の USB 3.0 ポートに接続し、ターミナルで SSH 経由でアクセスし、コマンドを実行します。 lsblkコンソールに接続されたドライブのリストが表示されます。 ディスクのサイズに注意して、どのディスクを使用するか、その名前とマウントポイントを確認します。私の場合は簡単です sda、あなたにはまだマウントポイントがあります。おそらく /dev/sda‌. 彼女が必要です。

コマンドを入力します sudo fdisk /dev/sda (またはあなたのケースに関連する他のマウントポイントで)、キーボードをクリックします m、コマンドの完全なリストを表示します。 別のテキスト ファイルにコピーすることもできます (または以下のヒントを使用してください)。

GPT M 保護/ハイブリッド MBR ジェネリックに入る d パーティションを削除する F 未使用のパーティション領域を一覧表示する l 既知のパーティション タイプを一覧表示する n 新しいパーティションを追加する p パーティション テーブルを印刷する t パーティション タイプを変更する v パーティション テーブルを確認する i パーティションに関する情報を印刷する その他 mこのメニューを印刷する x 追加機能 (エキスパートのみ) スクリプト I sfdisk スクリプト ファイルからディスク レイアウトをロードする O ディスク レイアウトを sfdisk スクリプト ファイルにダンプする 保存して終了 w テーブルをディスクに書き込んで終了 q 変更を保存せずに終了 新しいラベルを作成 g 新しいラベルを作成空の GPT パーティション テーブル G 新しい空の SGI (IRIX) パーティション テーブルを作成する o 新しい空の DOS パーティション テーブルを作成する s 新しい空の Sun パーティション テーブルを作成する

私たちの仕事はすることです delete a partition パーティションからディスクを完全に消去してから、次を使用して新しいディスクを作成するのに必要な回数だけ add a new partition. 変更を書き留めることを忘れないでください。 write table to disk and exit. あなたは管理しましたか? 完璧に。

次に、ディスク上にファイル システムを作成します。 ディスクはいずれかのファイル システムでフォーマットする必要があるというネットワーク上のさまざまな意見にもかかわらず、通常の ext4 で十分です。 Apple. 実際には、これは準備プロセスを複雑にするだけで、何のメリットもありません。

コマンドを入力します sudo mkfs.ext4 /dev/sda1。 終わり

ここで、新しいパーティションの UUID を見つける必要があります。
入りましょう ls -lha /dev/disk/by-uuid 次のようなものが表示されます。

私たちのものからUUIDをコピーします sda1 履歴付きの高度なクリップボードを使用していない場合は、別のテキスト ファイルに。

次に、ディスクをマウントするフォルダーを作成し、適切なアクセス権を付与する必要があります。

sudo mkdir /mnt/tm && sudo chmod -R 777 /mnt/tm && sudo chown pi:pi /mnt/tm

ディスクをマウントします。 これを行うには、次のコマンドで構成ファイルを編集します。

sudoのナノの/ etc / fstabに

ドワーフ この場合は、システムにインストールされているエディターの名前で、私が好んで使用しています。

次の行を追加して、開いているファイルに変更を加えます。

UUID=b32c00d8-0aa8-4ec4-b01f-18cbade45e7c /mnt/tm ext4 nofail,defaults 0 2

ただし、前のステップの UUID を使用します。 次のようになります。

をクリックして変更を保存します Ctrlキー+ O і 入力しますをクリックしてエディターを終了します。 Ctrl + Xキー.

コマンド sudo reboot を使用して Raspberry Pi を再起動し、再起動後に SSH 経由で再度ログインします。

チームを殺す df -h ドライブがその時点でシステムにマウントされていることを確認します /mnt/tm.

よし、ディスクの準備ができました。


NETATALK のインストールと構成 (オプション 1)

以下をインストールします。

sudo apt-get install netatalk -y

すべてを同じエディターで構成します ドワーフ:

sudo nano /etc/netatalk/afp.conf

そして、構成ファイルの内容を次のようにします。

; ; Netatalk 3.x 構成ファイル。 [グローバル] ; グローバル サーバー設定 mimic model = TimeCapsule6,106 [Time Machine] path = /mnt/tm time machine = yes valid users = pi ; [家]; basedir 正規表現 = /xxxx ; [私の AFP ボリューム] ; パス = /パス/へ/ボリューム; [マイ タイム マシンの音量] ; パス = /path/to/backup ; タイムマシン = はい`

ヘルプで結果を保存することを忘れないでください Ctrlキー+ O → Enter → Ctrl+X

ファイルが編集されました nsswitch.conf、行末に追加 hosts: 付加価値 mdns4 mdns.

須藤ナノ /etc/nsswitch.conf

結果は次のようになります。

# /etc/nsswitch.conf
#
# GNU Name Service Switch 機能の構成例。
# `glibc-doc-reference' および `info' パッケージがインストールされている場合は、次を試してください。
# このファイルに関する情報については、「info libc "Name Service Switch"」を参照してください。

パスワード: ファイル
グループ: ファイル
シャドウ:ファイル
gshadow: ファイル

ホスト: ファイル mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
ネットワーク:ファイル

プロトコル:db ファイル
サービスces: データベースファイル
エーテル: db ファイル
rpc: データベース ファイル

ネットグループ: nis

再び変更を保存します Ctrlキー+ O → Enter → Ctrl+X

次に、サービスを開始するだけです。

sudo サービス avahi-daemon 開始 sudo サービス netatalk 開始

チームでのパフォーマンスを確認します。

sudo サービス netatalk ステータス

その

sudo サービス avahi-daemon ステータス

結果は次のようになります。

あとは、macOS の設定に移動し、Time Machine セクションを選択して、使用可能なドライブで Raspberry Pi を確認するだけです。

ログインとして指定します pi、パスワードとして-SSHアクセスに使用されるもの。

これで、Netatalk による標準オプションが設定されました。 これで、Mac が Raspberry Pi と同じローカル Wi-Fi ネットワーク上にあるときはいつでも、バックアップが自動的にドライブに作成されます。

ここで、より信頼性が高いと考えられる Samba プロトコルの形式の代替案を検討してください。

SAMBA のインストールと構成 (オプション 2)

Samba をインストールします。

sudo apt-get install samba

(同じ pi ユーザーの) ユーザー パスワードを設定し、構成を編集します。 最初のパスワード:

‌sudo smbpasswd -a pi (SSH と同じように使用できます)。

そして、Samba 構成はすべて同じエディター内にあります。 ドワーフ:

sudo nano /etc/samba/smb.conf

コンテンツをブロックする [global] 最終的には次のようになります。

[グローバル] セキュリティ = ユーザー暗号化パスワード = true ゲストへのマップ = 悪いユーザー ゲスト アカウント = 誰も

構成ファイルの最後に、新しいブロックを追加します。

[TimeCapsule] コメント = Time Capsule パス = /mnt/tm ブラウズ可能 = はい 書き込み可能 = はい 作成マスク = 0600 ディレクトリ マスク = 0700 スポットライト = いいえ vfs オブジェクト = catia フルーツ ストリーム_xattr フルーツ:aapl = はい フルーツ:タイム マシン = はい

結果を保存します。 Ctrlキー+ O, 入力します, Ctrl + Xキー.

サービスを再起動します。

sudo systemctl restart smb.service

終わりNetatalk の場合と同様に、Time Machine 設定パネルに表示されるリストでディスクを見つける必要があります。

Raspberry Pi に Homebridge をインストールして構成する

さて、記事の最大のブロックに到達しました。

ホームブリッジ 認定されていないデバイスの統合と初期サポートのために Homekit API を使用する NodeJS ベースのサーバーです。 Apple HomeKit。

Homebridge の設定が難しいのは、そのプラグインがさまざまなプロトコルとデバイスをサポートしているため、 Apple ホームキット。 したがって、各プラグインは独自の方法で構成され、多くの場合、別のデバイスの対応するプラグインとは完全に異なります。

はじめましょう。 いつものように、SSH 経由で Raspberry Pi にアクセスし、いくつかの手順を実行します。

Node.js のインストール

コードのブロック全体をコピーしてターミナルに貼り付けることができます。 ほとんどの場合、これで十分です。 ただし、ある段階でインストールが失敗した場合は、ブロックの残りのコマンドを つずつ入力します。

# setup repo curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - # Node.js をインストールします sudo apt install -y nodejs gcc g++ make python net-tools # テスト ノードは動作しています node -v # npm をアップグレードします (バージョン 6.13.4 には git の依存関係に関する問題があります) sudo npm install -g npm

Homebridge と Homebridge Config UI X のインストール

まず、次のコマンドで基盤を設定しましょう...

sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-x

...そしてシステムサービスとして実行します。

sudo hb-service install --user homebridge

Web インターフェイスを介して Homebridge を構成する

パソコンのブラウザでアドレスにアクセス http://<ip address of your server>:8581 の代わりに <ip address of your server> 私の場合、記事の最初から同じIPのままです

ユーザーとパスワードのデフォルト値は同じです。 admin

すぐに「ユーザー」メニュー項目に移動し、そこでデフォルト値をより安全なものに変更することをお勧めします.

あなたはそれをやりましたか? 次にプラグインを設定します。

自宅にさまざまな機器があると、インストールする必要があるプラグインが決まります。 あなたの場合、プラグインのセットがわずかに異なる可能性は十分にありますが、私の構成の例を使用すると、それらをセットアップする過程でどのようなニュアンスに遭遇する可能性があるかがわかります.

執筆時点での私のプラグインのセット:

  • ホームブリッジUI (基本構成に含まれ、独自の設定はありません)
  • 色相 (照明制御用 Philips 色相)
  • Apple テレビのリモコン (セットトップ ボックスの制御用 Apple TV)
  • いろいろなこと (管理用 ガイバーのランプ з ファームウェア ウィザーから)
  • Samsung 12 (スマートテレビ制御用 Samsung Tizen OS で)
  • ウェザープラス (気象条件に応じたスマートホームの自動化用)
  • イーライト Wi-Fi (ランプ制御用 Xiaomi イーライト)

一つ一つ行きましょう。

Hue プラグインの設定

Homebridge にプラグインをインストールするには、Web インターフェイスの対応するタブに移動し、検索バーに目的のアイロンの名前を入力して、利用可能なもののリストからプラグインを選択するだけで十分です。 「🛡Verified」ラベル、プラグインのバージョンと更新日 (作成者が数年間更新していない場合、動作しない可能性が高い) に注意することをお勧めします。プラグインのホームページへのリンクを開きます。通常は、インストール プロセスの詳細が説明されています。

必要なプラグインの [インストール] ボタンをクリックし、プラグインがインストールされるまで ~ 分待ちます。

プラグイン ホームブリッジ フエ セットアップは非常に簡単です。 Homebridge ログに表示されるデフォルト名を設定し、プラグインによって処理される互換性のあるデバイスのタイプを選択するだけです。 私の場合、それはただの照明です Philips 色相、そしてハブの最初のバージョンでさえ丸みを帯びています。

データを入力し、必然的に結果を保存したら、ハブの中央のボタンを押すだけです Philips Hue で、プラグインがハブを認識するまで 15 秒待ちます。 終わり!

後は、iPhone を手に取り、そのカメラを Homebridge Web インターフェイスの「ステータス」タブにある QR コードに向けて、それをブリッジとして HomeKit に追加するだけです。

HomeKit 自体が事前に構成されている場合 (選択されている場合) Apple TV または iPad をメイン ハブとして使用し、部屋を追加するなど)、ステップバイステップ ウィザードは、検出されたすべての Hue 照明デバイスを対応する部屋に配布し、各デバイスに名前を付けるようにすぐに提案します。 例えば、私の居間には「天井1」「天井2」「天井3」のランプがありますが、iPhoneのHomeKit自体(項目「他の機器と組み合わせる」)を使って、それらを組み合わせて論理グループ「アッパーライト」、私にとってはより便利です。 同時に、同じリビングルームに「フロアランプ」と「ナイトランプ」があります - 別々のデバイスですが、Siriは追加のトレーニングなしでさまざまなコマンドを完全に理解します:

  • 「居間の明かりをつけて(居間のすべてのランプが点灯します)」
  • 「フロアランプをつけて」
  • 「常夜灯の明るさはパーセントです」
  • 「常夜灯をつけて」
  • 「頭上のライトを消して」
  • 「フロアランプの青色」
  • 「居間の明かりを消す(居間のすべての明かりを消す)」
  • 「すべての照明を消す(アパート全体の照明を消す)」

等々。 正しく構成されている場合 Apple-家族、関連する完全に論理的なコマンドは、家族に入力されたすべてのメンバーが自動的に利用できるようになります Apple IDを指定します。

プラグイン設定 Apple テレビのリモコン

私がこのプラグインを使用する目的は つで、コンソール用の追加スイッチを作成することです。 Apple テレビ。 事実は、 Apple HomeKitには、「家に帰ったら」などのあらかじめ決められた条件に従って、アルバムやプレイリストの再生を含めるなど、プログラムする機能があります。 そして、すべて問題ありませんが、この時点でセットトップ ボックスがスリープ状態にあると、そのようなシナリオが存在してもスリープ状態から復帰できません。 ただし、追加の仮想スイッチは可能です。 私たちは行った:

ステップ1。 資格情報を取得するためのサービスをインストールします Apple TV

sudo npm install -g ノード-appleテレビエックス

ステップ2。 ローカルネットワークで利用可能なセットトップボックスを探しています Apple TV

sudo appleテレビのペア

ステップ3。 目的のプレフィックスでペアを作成します。 コンソール出力は次のようになります。

% appleテレビのペアリング ✔ リビングルームに接続 ✔ ペアリングを開始しますか? 現在リビングルームに表示されている4桁の暗証番号を入力してください

ステップで ‌? Enter the 4-digit pin that's currently being displayed on... 選択したセットトップ ボックスの画面で Apple テレビ、リモコンとペアリングするための標準の桁のコードが表示されます(この例では、 1234)、コンソールですぐに強制終了する必要があります。

% appleテレビのペアリング ✔ リビングルームに接続 ✔ ペアリングを開始しますか? リビング ルーム 4 に現在表示されている 1234 桁の PIN を入力してください ✔ ペアリング資格情報の完了: 77346115-ED48-46A8-A288-

その代わり <snip> 文字と数字が混在する行が数行あるため、行の最初の数字から始めて、全体を別のテキスト ファイルにコピーする必要があります。 Credentials:. 少し後にこれらの同じ 資格情報 私たちはそれを非常に必要とします。

ステップ4。 「構成」タブの Homebridge Web インターフェイスの構成セクションに次のブロックを追加します。 "platforms": [

{ "プラットホーム": "AppleTvPlatform", "名前": "Apple テレビプラットフォーム」、
   「デヴィces":[
      {
         "名前": "ゲストハウス",
         "資格情報": "77346115-ED48-46A8-A288-",
         "isOnOffSwitchEnabled": true、
         "オンオフスイッチ名": "Apple テレビ" } ] },

...そして一列に "credentials": 前の手順のテキスト ファイルの内容全体を挿入するだけです。

プレフィックスには任意の名前を選択します。ここでの「Guest house」は単なる例です。

ステップ5。 プラグイン自体をインストールします。

Homebridge Web インターフェースの「モジュール」タブで、検索バーに入力します。  Apple TV Remote そして「インストール」ボタンを押します。 プラグインをインストールした後、Homebridge を再起動するように求められます。これは、対応するボタンを押すことによって行われます。

それだけです。新しいスイッチが HomeKit の iPhone に登場しました。これは、セットトップ ボックスを自動的にオンにする必要があるすべてのシナリオに追加できるようになりました。

「Siri、電源を入れて」などの音声コマンド Apple テレビ」または「Siri、消して Apple TV」も自動的にサポートされます。 さらに、別の部屋に複数のセットトップ ボックスを設定すると、Siri はオフにする要求を自動的に理解し始めます。 Apple 特定の部屋のテレビ、または一度にすべてのテレビ。

実際、このプラグインは急速に開発されており、コンソールで実行されているアプリケーションのバンドル ID を認識し、Netflix で映画を一時停止するなどの作業に介入する方法を既に知っています。 ただし、必要に応じて、自分でこれに対処します。

Mqttthing プラグインの構成

このプラグインは、上記の Guyver ランプ (Arduino ボードと 16x16 マトリックスのアドレス指定可能な LED を備えた自家製ランプ) と一緒に使用します。 ランプ自体は、Whilser のファームウェアで満たされている必要があります。 力があなたと共にありますように!

ステップ1。 MQTT ブローカーのインストール

いくつかのコマンドを実行します。 これらはバッチでは機能しないため、一度に つずつコンソールに入力します。

sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
cd /etc/apt/sourceces.list.d/
須藤wget 
sudo apt update
sudo apt install mosquitto mosquitto-clients
sudo /etc/init.d/mosquitto 停止
sudo nano /etc/mosquitto/mosquitto.conf

最後のコマンドは、すでに使い慣れたエディターを起動します ドワーフで、開いたファイルの内容を次のように置き換えます。

# ローカル設定を /etc/mosquitto/conf.d/ に置きます # # 設定ファイルの完全な説明は # /usr/share/doc/mosquitto/examples/mosquitto.conf.example # pid_file /var/run/ にありますmosquitto.pid allow_anonymous true リスナー 1883 persistence true persistence_location /var/lib/mosquitto/ log_dest トピック log_type エラー log_type 警告 log_type 通知 log_type 情報 connection_messages true log_timestamp true include_dir /etc/mosquitto/conf.d

いつものように、 Ctrlキー+ O, 入力します, Ctrl + Xキー、次にコマンドでブローカーを再起動します

sudo /etc/init.d/mosquitto start

MQTT ブローカーがインストールされています。

ステップ2。 Mqttthing プラグインのインストール

通常、Homebridge Web インターフェースの「モジュール」タブに移動し、検索します。 Mqttthing そして「インストール」をクリック。

ステップ3。 Mqttthing プラグイン構成

各ガイバー ランプには独自の ESP チップ ID があります。たとえば、ESP-3bd20b。ランプを自分で作成して点滅させた場合は、それについて完全に理解できます。そうでない場合は、ランプをペアリング モードにし、Wi-Fi ネットワークに接続すると、iPhone 上の適切なダイアログ ボックスに必要な ID が表示されます。 。それを書き留め。

  1. ランプの電源を切ります。
  2. ルーターの電源を切ります。
  3. ランプの電源を入れます。
  4. iPhoneの場合は「設定→WiFi」
  5. 「ESP12345678」のようなSSIDを持つ安全でないネットワークを選択し、ダイアログボックスで「WiFiの構成」をクリックします。
  6. 構成ウィンドウの一番下にあるチップ ID が必要になります。

ランプが以前に設定されている場合は、ランプをオフにし、ルーターの電源を入れて、ランプを再度オンにするだけで、古い設定が取得されます。 これがランプの最初の接続である場合は、ルーターの電源を入れ、設定リストでネットワークを選択してから、自宅の Wi-Fi のパスワードや Raspberry Pi の IP アドレスなど、必要なすべてのデータを入力します。

Homebridge Web インターフェイスの「設定」タブを開き、セクションで "accessories": [ そのような巨大なコードを入力して、以前の ID を ESP-3bd20b 自分で:

{
    "交流cessory": "mqttthing"、"type": "lightbulb"、"name": "Nightlight"、"url": "http://127.0.0.1:1883"、"mqttPubOptions": { "retain": false } , "topics": { "getOn": "homeassistant/light/ESP-3bd20b/status", "setOn": "homeassistant/light/ESP-3bd20b/switch", "getBrightness": "homeassistant/light/ESP-3bd20b /brightness/status", "setBrightness": "homeassistant/light/ESP-3bd20b/brightness/set", "getRGB": "homeassistant/light/ESP-3bd20b/rgb/status", "setRGB": "homeassistant/light /ESP-3bd20b/rgb/set" }, "onValue": "ON", "offValue": "OFF" }, { "accessory": "mqttthing"、"type": "television"、"name": "夜間照明効果"、"url": "http://127.0.0.1:1883"、"topics": { "setActive" : " homeassistant/light/ESP-3bd20b/switch"、 "getActive": "homeassistant/light/ESP-3bd20b/status"、 "setActiveInput": "homeassistant/light/ESP-3bd20b/effect/set"、 "getActiveInput" : " homeassistant/light/ESP-3bd20b/effect/status" }, "inputs": [ { "name": "Confetti", "value": "Confetti" }, { "name": "Fire", "value ": "ファイア" }, { "name": "レインボー ヴァート", "value": "レインボー ヴァート" }, { "name": "レインボー ホラーズ", "value": "レインボー ホラーズ" } , { "名前": "色の変更", "値": "色の変更" }, { "名前": "3D マッドネス", "値": "3D マッドネス" }, { "名前": "3D クラウド" , " 値": "3D クラウド" }, { "名前": "3D ベンチ", "値": "3D ベンチ" }, { "名前": "3D プラズマ", "値": "3D プラズマ" } , { "名前": "レインボー 3D", "値": "レインボー 3D" }, { "名前": "ピーコック 3D", "値": "ピーコック 3D" }, { "名前": "ゼブラ 3D" , " 値": "ゼブラ 3D" }, { "名前": "森林 3D", "値": "森林 3D" }, { "名前": "海洋 3D", "値": "海洋 3D" } , { "名前": "降雪", "値": "降雪" }, { "名前": "行列", "値": "行列" }, { "名前": "ホタル", "値": "ホタル " }, { "名前": "水族館", "値": "水族館" }, { "名前": "スターフォール", "値": "スターフォール" }, { "名前": "ペイントボール", "値": "ペイントボール" }, { "名前": "スパイラル", "値": "スパイラル" }, { "名前": "暖かい光", "値": "暖かい光" }, { "名前": "振り子", "value": "振り子" }, { "name": "点滅", "value": "点滅" }, { "name": "パトカーのサイレン", "value": "パトカーのサイレン" } , { "名前": "ドリフト", "値": "ドリフト" }, { "名前": "フロック", "値": "フロック" } ], "onValue": "ON", "offValue ": "オフ" }

終わりの Apple ランプ「Night Light」と「Night Light Effects」の つの新しいデバイスが HomeKit に登場しました。 それらは相互に関連しており、その目的は非常に明確です。 必要に応じて、構成で名前を変更できます。

残念ながら、ファームウェアの作成者はパラメーターをロシア語で記述しているため、このような構成では、ロシア語でも Siri に連絡する必要があります。 ただし、英語で Siri と話している場合は、次のように各コード ポイントを修正できます。

{ "名前": "火", "値": "黄金" },

次に、iOS での結果は次のようになります。

プラグイン設定 Samsung 12

ステップ1。 テレビの互換性を確認する

ルーターのコントロール パネルで、最初に Raspberry Pi で行ったように、テレビに静的ローカル IP を割り当てます。 たとえば、私の場合は 192.168.50 です。100.

パソコンのブラウザでアドレスにアクセス  http://TV_IP:8001/api/v2、私の場合は意味します http://192.168.50.100:8001/api/v2/

次のようなサービス情報がぎっしり詰まったページが表示されたら…

{"device":{"FrameTVSupport":"false","GamePadSupport":"true","ImeSyncedSupport":"true","OS":"Tizen","TokenAuthSupport":"true","VoiceSupport":"false","countryCode":"UA","description":"Samsung DTV RCR","developerIP":"0.0.0.0","developerMode":"0","duid": ......

...これは、成功の可能性があることを意味します。 ただし、テレビのすべてのモデルではないことを理解する必要があります Samsung プラグインに対応。 たとえば、PIN ID を必要とするものは機能しません。

サービスページからフィールド値をコピーします"wifiMac": テレビからのリモコンを用意して、手元に置いておきます。

ステップ2。 プラグインのインストール

新しいものはありません。リクエストに応じてプラグインを探しています Samsung Tizen、目的のものを選択します(著者 @tavicu) をインストールします。

起動後、設定に移動し、次の値を入力します。

Siriは、テレビが2台ないリビングルームでテレビをオンにする要求を完全に理解するため、「TV」という名前で十分です。 彼女はまた、リビングルームのテレビをもう一度引っ張らなくても、「寝室のテレビをつけて」というコマンドを完全に理解しています。

ステップ3。 テレビに接続する

ここではすべてが簡単です。テレビのリモコンを手に取り、コンテキスト メニューが画面に表示され、デバイスがテレビを制御しようとしているという警告が表示されるのを待ちます。 もちろん、テレビはオンにする必要があります。 画面の右上隅に対応する要求が表示されたら、テレビのリモコンを使用してボタンを選択します。 Allow。 終わり

ステップ4。 にテレビを追加 Apple HomeKit

はい、以前のケースとは異なり、テレビが家のデバイスのリストに魔法のように表示されることはありません。 したがって、私たちはiPhoneを手に取り、一歩一歩:

  1. Home アプリを起動し、メイン ページで右上隅の + を押します。
  2. 「アクセサリを追加」を選択します。
  3. 画面の下部にある [コードまたはスキャンなし] をクリックします。
  4. 次の画面で、テレビを選択します。
  5. HomeKit セットアップ コードの入力を求められたら、[カメラを使用] をクリックします。
  6. Homebridge Status タブの QR コードにカメラを向けます。

ステップ5。 プラグイン設定

深く掘り下げたところ ドキュメンテーション プラグインに追加すると、インストールされているプログラムのリストから特定のプログラムをテレビで Siri に実行させたり、一時停止したりできます。 ここで、演習として、仮想リモコンの つのボタンの機能を変更します。 Apple リモート、iOS コントロール センターの「カーテン」に組み込まれています。

これは ℹ︎ (情報) ボタンです。デフォルトでは、現在の画像モードに関する情報がテレビ画面の上部に表示されます。 同時にリモコンから届く Apple テレビにインストールされているプログラムのリストにリモートを追加する方法はありません。 そして、今すぐ修正します。

プラグイン設定の「キー マッピング」セクションに移動し、「情報」フィールドを探して、その値を次のように変更します。 KEY_HOME. Homebridge を再起動すると出来上がりです。仮想リモコンの ℹ︎ ボタンを押すと、メインのアプリケーション メニューが表示されます。 仮想リモコンは理にかなっています。

Weather Plus プラグインのセットアップ

ステップ1。 OpenWeather アカウントを作成する

サイトに行きましょう https://home.openweathermap.org アカウントを登録すると、無料で利用できます。

ステップ2。 API キーの生成

OpenWeather 個人アカウントの目的のタブに移動し、キーの名前を指定して、[生成] ボタンをクリックします。

ステップ3。 Weather Plus プラグインのインストールと構成

通常の方法で目的のプラグインを検索してインストールし、その設定に進みます。 結果は次のようになります。

予測では、次の 時間の値のみに個人的に関心があるため、他の値は単純に無効になっています。

また、不要な仮想気象センサーが不要なアクティベーションに悩まされないように、対応する非表示値セクションでそれらを無効にします。 以下を無効にすることをお勧めします。

  • エア圧
  • 雲量
  • 露点
  • 見かけの温度
  • 風向き
  • UV指数
  • 風速
  • 風速最大

そして、設定ウィンドウの一番下にある「保存」をクリックします。

その結果、インターフェースでは Apple HomeKit は、次の 8 時間の温度と湿度の値、およびさまざまなシナリオで使用できる 00 つの仮想センサー「雪」と「雨」を表示します。 たとえば、私は HomeKit 自動化をプログラムしました。このプログラムでは、雨または雪が近い将来の予報に現れると、ガイバー ランプが対応する水たまりまたは降る雪片の効果を 23 分間表示します。 同時に、効果は午前 00 時から午後 時の間で、誰かが家にいる場合にのみ有効になります。 それ以外の場合は、傘をさしたり、防水服を着用するようにという警告が必要になる可能性はほとんどありません。

Yeelight WiFi プラグインのセットアップ

要求に応じて Yeelight Homebridge は、検証済みのものを含め、インストール用のプラグインを多数提供しています。 しかし、私は、「夜がキャンプに落ちた」というスタイルではなく、状態間の移行が可能な限りスムーズに行われる別のものを好みます。 さらに、それはサポートします アダプティブライティング vid Apple、しかし、ここに標準的なアプリケーションがあります Xiaomi この機能が HomeKit に登場して以来、私はこのことをまったく知りませんでした。

重要! 電球をつだけつけておく Xiaomi、最初は混乱を避けるために。 私たちは彼女と協力します。

プラグインをインストールした後、Homebridge を再起動し、ログで次のようなものを探します。 ‌[Yeelight] Received advertisement from ab1234. これは条件付きです ab1234 そしてあなたの電球があります。 おそらく値は color-ab1234、それからあなたは彼と一緒に働きます。

プラグイン設定に移動し、次のコードを貼り付けます。

{ "platform": "yeelight", "name": "yeelight", "transitions": { "power": 400, "brightness": 400, "color": 1500, "temperature": 1500 }, "multicast" : { "インターフェイス": "0.0.0.0" }, "defaultValue": { "color-ab1234": { "名前": "フロアランプ", "ブラックリスト": [ "set_hsv" ] } } }

代わりに color-ab1234 ログからの値である必要があり、代わりに ‌"name": "Торшер" ランプがねじ込まれている場所を反映する任意の名前: ナイト ランプ、Sconce、Ceiling など。

[保存] ボタンをクリックして貼り付けたコードを保存し、Homebridge を再起動します。 完了、選択した名前で電球が HomeKit に表示されました。 残りの Yeelight 電球は、まったく同じ方法でプラグイン設定の [+ ADD PLATFORM] ボタンを押すことで つずつ追加されます。

Raspberry Pi で Homebridge と Node.JS を更新する

Homebridge 自体の更新 (およびバージョンのロールバック) は非常に簡単です。Web インターフェイスで現在のバージョンの番号をクリックし、ダイアログ ボックスのリストから目的のバージョンを選択する必要があります。

しかし、プラグインの更新をインストールするときに遅かれ早かれ必要になる Node.JS と NPM の更新では、それほど簡単ではありません。 より正確には、コマンドは、標準の手順で説明されているものとまったく同じではありません。

Node.JS は次のコマンドで更新されます。

sudo hb サービス更新ノード

そして NPM は つ連続して:

sudo npm キャッシュクリーン -f
sudo npm install -g npm

残念ながら、Homebridge 自体も、そのプラグインも、それが乗っている「レール」も、自動的に更新できません。 そして、毎日コントロール パネルにアクセスして、遅かれ早かれ何か新しいものがないかどうかを確認するのは退屈です。 そのため、プロセスを自動化するために、すべての Homebridge ノードのステータスを監視し、アップデートの存在や問題を視覚的に、および PUSH メッセージで知らせることができる、iOS 14 用の特別なウィジェットを思い付きました。

Homebridge ステータス ウィジェットのインストール

ご覧のとおり、このウィジェットには Homebridge に関する有用な情報とそうでない情報が多数表示されますが、その中で最も価値のある部分は、Homebridge 自体、そのプラグイン、および Node.JS の状態に関する情報です。

ウィジェット自体を取得するには、まずその親アプリケーションが必要です。 App Store から iPhone にインストールします。

開発者: SimonB.Støvring
価格: 無料版+

そして今、ウィジェットをインストールするかなり長いがエキサイティングなプロセスが始まります。 Scriptable プログラム内の ScriptDude という別のスクリプトを使用してインストールします。 ScriptDude は、アドレスのギャラリーにある大量のスクリプトのコードの変更を追跡するため、優れています。 scriptables.net. おそらく、他にも役立つものが見つかるかもしれませんが、今は つのタスクがあり、それを解決します。

ステップ1。 App Store から Scriptable.app をインストールします。

ステップ2。 iPhone ブラウザでサイトを開く scriptdu.de [ScriptDude のインストール] ボタンをクリックします。

ステップ3。 開いたページで [インストーラーをコピー] ボタンをクリックし、クリップボードにスクリプト コードに関するメッセージが表示されたら、[スクリプト可能ファイルを開く] ボタンをクリックします。

ステップ4。 無題のスクリプトというタイトルの空のフィールドにクリップボードの内容を挿入し、再生ボタン ▶️ を押します。

ステップ5。 開いた画面で、リンクをクリックします scriptables.net を参照 次のページでタグをタップします (テクノロジー). 万歳、Homebridge Status スクリプトがリストの最初に表示されます! [ScriptDude でダウンロード] ボタンをクリックしてください。

ステップ6。 [インストール] を押すと、 つの警告に同意した後、[インストール済み] リストに目的のスクリプトが表示されます。 メインの Scriptables 画面は、下の 番目のスクリーンショットのようになりました。Homebridge Status タイルの つの点をクリックして、編集オプションに移動します。

ステップ7。 まず、値を変更します overwritePersistedConfig з false на true

overwritePersistedConfig = true

スクリプト設定をiCloudに保存します。

ステップ8。 少し下に降りて、 つのフィールドを編集します。IP アドレスとホームブリッジ ポートです (これは既に言及したことを思い出してください)。 http://<ip address of your server>:8581 の代わりに <ip address of your server> 私の場合、記事の最初から同じIPのままです )、ローカル ネットワークでのデバイスの検索に関する警告に同意します。 万歳、スクリプトが機能します!

あとは、他のウィジェットと同じように iOS 14 の画面にウィジェットを追加するだけです。 追加後、ウィジェット設定に移動し (それをロングタップ)、いくつかのパラメーターを指定する必要があります: 目的のスクリプトを選択し、それを操作するときに何をするかを指定し、[パラメーター] フィールドに次の値を入力します。

USE_CONFIG:紫.json

その後、スクリプトコードに戻って値を返すことを忘れないでください

overwritePersistedConfig = false

それで全部です。 ウィジェットは機能し、Node.JS、Homebridge、またはそのプラグインに更新があると、関連するコンテンツを含む PUSH 通知を受け取ります。

ヴィシンノヴォク

機会 Apple HomeKit は私にとって何倍も成長しました。 私は、私と私の愛する人たちの生活を楽にするスクリプトと自動化をたくさん思いつきました。

たとえば、 日の暗い時間帯に、最初に家に帰った家族は、廊下、リビング ルーム、およびバスルームで、外から点灯するライトで迎えられます。スイッチに走る必要はありません。洗っていない手で。

家族の最後のメンバーが家を出ると、HomeKit はテレビ、照明、および一般的にオフにできるすべてのものを慎重にオフにします。 また、家に少なくとも人いる場合、夕暮れが始まると、外部照明と内部のいくつかのランプが点灯します。

繰り返しますが、Siri は、完全に論理的なコマンドで、接続されているすべてのデバイスを制御できます。特定の部屋で何かをオンまたはオフにする必要があるときに、家の誰かに尋ねるのと同じコマンドを一言一句同じです。 もう誰もこの部屋に駆け込む必要はありません。

からの朝と夜の音楽ミックス Appleガイバーランプの発光演出が付属。 ライト ミュージックで他の照明を機能させることは可能ですが、私はその効果に満足していません。

一般に、アプリケーションのシナリオはあなたの想像力だけに依存し、「Works with Apple HomeKit だけが選択肢ではなくなりました。

サイクルの次の記事では、あなたと私は少し楽しみます。 私たちの Raspberry Pi で torrent をダウンロードして、強力なメディア センターとレトロなゲーム コンソールに変えましょう。

乞うご期待!

シェアする
ユーリ・スタニスラフスキー

SwiftUI 開発者。 ビニールを集めています。 たまにジャーナリスト。 Nota Record Storeのオーナー。

コメントを残す

あなたのメールアドレスは公開されません。 必須フィールドは、マークされています*