Root Nation軟件指示家庭生態系統中的 Raspberry Pi:特性和示例(第 1 部分)

家庭生態系統中的 Raspberry Pi:特性和示例(第 1 部分)

-

前段時間我 購買 單板迷你電腦樹莓派 4(又名“覆盆子» 在業餘愛好者中),並不特別了解它可以在家中使用的方式和用途。 相反,它是另一種技術玩具,而且價格絕對可以接受,所以你有能力進行實驗。 展望未來,我可以說我目前在我的 RPi4 上運行網絡範圍的廣告攔截器等服務 AdGuard 主頁, 備份存儲系統 Apple 時間機器霍姆布里奇 將未經認證的設備添加到生態系統 Apple HomeKit, 一個下載種子的程序 傳輸, 媒體服務器 PLEX 和一個複古的遊戲機 RetroPie. 我計劃嘗試使用自託管密碼管理器 Bitwarden,著名的 1Password 的開源類似物。 對於這麼小的一包香煙大小來說,還不算太少,對吧?

樹莓派 4 帶鍵盤和鼠標

在這個循環中 文章,我會盡可能詳細地講述我是如何安裝和配置這一切的。

首先 文章 將對罌粟種植者更有用,因為它涉及特定於生態系統 Apple 點,儘管任何桌面或移動操作系統的用戶都會對涉及 AdGuard 的部分感興趣。

在第二篇文章中 考慮無一例外地對每個人都有用的通用服務。 你和我會像正常人一樣進步——從簡單到復雜。

樹莓派準備

需要注意的是,樹莓派的早期版本在硬件方面相當薄弱,因此每個軟件開發人員都將這台計算機視為單任務機器。 因此,任何可以在 RPi 上運行的服務都將默認作為操作系統的現成映像提供。 我下載了它,將其記錄在 SD 卡上,將其插入 RPi 並打開已安裝服務的現成計算機。 但我們的任務是同時啟動多個服務,因為當前版本允許這樣做。 因此,我們將它們安裝為應用程序。

假設您已經將帶有“乾淨”Raspbian 系統的 Raspberry Pi 連接到本地網絡。 如果您是初學者,甚至不知道從哪裡開始,那麼從  官方說明 (點擊鏈接 - 一個帶有大量交互式插圖的精彩分步嚮導),然後進入下一階段。

步驟1

首先,您需要通過以下方式啟用訪問權限 SSH 到你的樹莓派。 為此,您需要執行幾個簡單的步驟:

  • 在「首選項」選單中開啟「Raspberry Pi 設定」窗口ces" 作業系統
  • 點選「介面ces»
  • 選擇 SSH 旁邊的啟用
  • 單擊“確定”按鈕以使更改生效

如果您安裝了沒有圖形界面的 Raspbian Lite,請在 Raspberry Pi 本身的終端中執行以下命令:

sudo systemctl 啟用 ssh sudo systemctl 啟動 ssh

已啟用訪問。

- 廣告 -

我有一台 macOS 計算機,所以我可以像 Linux 計算機所有者一樣直接進入下一步。 Windows 10 用戶不久前還收到了一個內置的 OpenSSH 客戶端作為其操作系統的一部分,但可能需要進行一些操作才能激活它。

打開 Windows 命令提示符或 PowerShell shell(無論您喜歡哪個)並鍵入以下命令:

Get-WindowsCapability - 在線 | ? 名稱 - 類似 'OpenSSH*'

如果安裝了 SSH 客戶端,對命令的響應將是這樣的:

已安裝 Windows 10 OpenSSH

如果 OpenSSH.Client 在 State 字段中告訴我們它是 NotPresent,那麼激活它的最快方法是輸入以下命令:

添加-WindowsCapability -Online -Name OpenSSH.Client*

這樣就完成了第一階段的準備工作,包括 Windows 用戶。 鑑於 Raspberry Pi 的性質以及 Raspbian OS 實際上是 Linux 的另一個版本這一事實,我們將不得不在命令行上做很多工作。 對某些人來說,這可能看起來很不尋常,但相信我,這沒有什麼困難或無法彌補的,所以要勇敢一點。 一切都會解決的。

步驟2

現在您需要確保您的 Raspberry Pi 在本地網絡上始終獲得相同的內部 IP 地址。 最簡單的方法是在路由器設置中。

我使用三組件 MESH 系統  ASUS ZenWiFi 迷你 使用本公司任何路由器的標準 Web 界面。 要鏈接 MAC 和 IP 地址,您需要從已連接設備列表中選擇一個設備,然後在彈出窗口中指定所需的 IP。 就我而言,我選擇了 192.168.50。10 只是為了便於記憶。

ASUS 無線網絡設置

在其他製造商的路由器中,菜單項的調用方式可能不同,但其本質將保持不變——向連接的設備發布靜態本地 IP。

步驟3

我們從標準的 macOS、Linux 或 Windows 集在您的計算機上啟動終端(命令行、PowerShell 等)。

我們殺了團隊

ssh pi@

(而不是 <ip address of your server> 我們從上一步插入“覆盆子”的IP),我們看到大致如下圖:

樹莓派 ssh 密碼

在這裡,您需要取消在初始設置期間指定的 Raspberry Pi 的密碼。

- 廣告 -

重要的! 輸入密碼時,密碼不會顯示在屏幕上。 並且“星星”也不會顯示。 您需要按字面意思“盲目地”輸入密碼,然後按 Enter。

如果密碼輸入正確,結果將是這樣的:

樹莓派 ssh 進入你好,你在你的樹莓派裡面。 歡迎! 您可以進行個別服務的設置。 我們將從最簡單的開始。

AdGuard 主頁徽標

在 Raspberry Pi 上安裝和配置 AdGuard Home

AdGuard 主頁,根據開發者的證詞——“一個強大的反廣告和跟踪網絡工具。 隨著物聯網的作用越來越大,管理整個網絡變得越來越重要。 設置完成後,AdGuard Home 將覆蓋您的所有家庭設備,無需客戶端軟件。”

簡而言之,它是一種廣告過濾器,它不能在您的每台設備上作為單獨的應用程序或瀏覽器插件運行,而是一種通用的解決方案,可以通過過濾器覆蓋您的整個家庭局域網。

讓我們回到終端窗口 (讓我們同意 Windows PowerShell 和其他用於輸入命令的 shell,在文本中我將簡單地調用終端,好嗎?), 我們執行以下命令將下載並解壓 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 install

結果將如下所示:

AdGuard Home 已安裝

AdGuard Home 已安裝! 這很簡單,不是嗎?

現在您需要訪問新安裝的服務的 Web 界面。 啟動瀏覽器(Safari、Chrome、Firefox 或任何你擁有的 - 沒關係)並在地址欄中殺死 https://<ip address of your server>:3000. 就我而言,我們記得,https://192.168.50.10:3000。

您將看到一步一步的初始設置嚮導。 如果您對另一種語言的界面更滿意,您可以立即切換到所需的界面。 該名單包括烏克蘭語、波蘭語和俄語等。

Raspberry Pi AdGuard 主頁歡迎屏幕在第三步中,您將被要求創建一個 AdGuard Home 用戶並提供一個密碼。 第四,將解釋樹莓派IP地址(在我的例子中是相同的192.168.50.10)必須在路由器設置的相應部分中註冊為DNS。 做這個:

ASUS 路由器DNS設置

在其他製造商的路由器中,所需的設置點將大致位於同一路徑上。

接下來,我們進入 AdGuard Home 本身的設置,它仍然很乾淨。

Raspberry Pi AdGuard Home 全新安裝

如果您有智能電視 Samsung,LG,或類似的,進入菜單“過濾器 - 添加黑名單”,然後“從列表中選擇”。 激活相應的阻止列表。

Raspberry Pi AdGuard 家庭電視過濾器

現在您需要手動添加俄語/烏克蘭語廣告過濾器。 再次點擊“添加黑名單”,然後“添加您的名單”,依次在相應字段中輸入以下值:

姓名 網址地址
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 的更新是在手動模式下進行的,但它從一個按鈕開始,需要幾秒鐘,無需干預。

Raspberry Pi AdGuard 主頁更新

大體上就是這樣。 從現在開始,您所有的家庭設備幾乎都沒有廣告。 這裡有一個不愉快的例外是客戶端程序 YouTube 在遊戲機上 Apple 電視,但是這裡 tvOS 架構的限制開始生效,所以 AdGuard 在這種情況下是無能為力的。

Apple 時間機器標誌

在 Raspberry Pi 上安裝和配置 Time Machine

根據維基百科,Time Machine 是開發的備份系統 Apple 並且內置在 Mac OS X Leopard 和更高版本的 macOS 中,以及一個同名程序,允許您查看備份副本的內容並恢復單個文件和整個操作系統。

簡而言之,它是 macOS 內置的每小時備份系統,需要兼容的文件服務器。 如果您將外部 USB 硬盤連接到它,您可以將 Raspberry Pi 變成這樣的服務器。

要使 Time Machine 正常工作,只有 Raspberry Pi 4 或更高版本才適用,帶有 USB 3.0 端口(在早期型號中,端口速度較慢)和合適的 HDD 容量為 1-3 TB(如果是外接電源,如果是3,5 英寸磁盤)。

重要的! 有兩種網絡協議允許 macOS 在本地網絡上存儲 Time Machine 數據。 過時的 Netatalk,或更現代的 Samba。 原則上,您可以將它們中的任何一個用於 Time Machine 任務。 Internet 上充滿了通過 Netatalk 組織流程的說明,所有這些說明都具有不同程度的奇思妙想,但我的任務是提供最簡單、有保證的工作選項。 你的任務是選擇一個對你來說方便的。 因此,在本文中,我們將同時考慮兩者。

硬盤準備

我們將硬盤連接到 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 打印有關分區的信息 Misc 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

掛載磁盤。 為此,請使用以下命令編輯配置文件

須藤納米/ etc / fstab中

納米 在這種情況下,我更喜歡使用系統中安裝的編輯器的名稱。

通過添加以下行來更改打開的文件

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

但使用上一步中的 UUID。 它應該如下所示:

樹莓派硬盤格式化

單擊保存更改 按Ctrl + O і Enter,然後單擊退出編輯器 按Ctrl + X.

使用命令 sudo reboot 重啟樹莓派,重啟後通過 SSH 再次登錄。

殺死團隊 df -h 並確保驅動器已安裝到系統上 /mnt/tm.

太好了,磁盤已準備好工作。


NETATALK 的安裝和配置(選項 1)

我們安裝:

sudo apt-get install netatalk -y

我們在同一個編輯器中配置所有內容 納米:

須藤納米/etc/netatalk/afp.conf

我們使配置文件的內容完全像這樣:

‌; ; Netatalk 3.x 配置文件; [全球的] ; 全局服務器設置模擬模型 = TimeCapsule6,106 [Time Machine] 路徑 = /mnt/tm time machine = yes 有效用戶 = pi ; [家園] ; basedir 正則表達式 = /xxxx ; [我的法新社卷]; 路徑 = /path/to/volume ; [我的時光機捲]; 路徑 = /path/to/backup ; 時間機器=是的`

不要忘記在幫助下保存結果 按Ctrl + O → 輸入 → Ctrl+X

該文件現在已編輯 nsswitch配置文件, 在行尾添加 hosts: 附加值 mdns4 mdns.

須藤納米/etc/nsswitch.conf

結果應如下所示:

# /etc/nsswitch.conf
#
# GNU 名稱服務切換功能的設定範例。
# 如果您安裝了 `glibc-doc-reference' 和 `info' 軟體包,請嘗試:
# `info libc "Name Service Switch"' 有關此文件的資訊。

密碼:文件
群組: 文件
陰影:文件
gshadow:文件

主機:檔案 mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
網路:檔案

協定:資料庫文件
服務ces: 資料庫文件
以太:資料庫文件
rpc:資料庫文件

網路組:nis

我們再次通過 按Ctrl + O → 輸入 → Ctrl+X

然後它只剩下啟動服務:

sudo service avahi-daemon start sudo service netatalk start

並檢查他們在團隊中的表現:

sudo 服務 netatalk 狀態

sudo 服務 avahi-守護進程狀態

結果應如下所示:

Netatatlk 狀態消息

剩下的就是轉到 macOS 設置,選擇 Time Machine 部分,然後在可用驅動器中查看我們的 Raspberry Pi。

時間機器 Netatalk

我們指定為登錄 pi, 作為密碼 - 用於 SSH 訪問的密碼。

完成,通過 Netatalk 配置標準選項。 現在,只要您的 Mac 與 Raspberry Pi 在同一個本地 Wi-Fi 網絡上,就會自動對您的驅動器進行備份。

現在考慮一種 Samba 協議形式的替代方案,它被認為更可靠。

安裝和配置 SAMBA(選項 2)

我們安裝 Samba:

sudo apt-get 安裝 samba

我們設置用戶密碼(對於同一個 pi 用戶)並編輯配置。 第一個密碼:

‌sudo smbpasswd -a pi (您可以使用與 SSH 相同的方法)。

然後 Samba 配置都在同一個編輯器中 納米:

sudo nano /etc/samba/smb.conf

阻止內容 [global] 最後應該是這樣的:

[全局] 安全 = 用戶加密密碼 = 真實映射到訪客 = 壞用戶訪客帳戶 = 沒人

在配置文件的最後,添加一個新塊:

[TimeCapsule] 評論 = 時間膠囊路徑 = /mnt/tm 可瀏覽 = 是 可寫 = 是 創建掩碼 = 0600 目錄掩碼 = 0700 聚光燈 = 無 vfs 對象 = catia 水果流_xattr 水果:aapl = 是水果:時間機器 = 是

我們保存結果: 按Ctrl + O, Enter, 按Ctrl + X.

重啟服務:

sudo systemctl 重新啟動 smb.service

完畢與 Netatalk 一樣,仍然可以在 Time Machine 設置面板中顯示的列表中找到磁盤。

家橋標誌

在 Raspberry Pi 上安裝和配置 Homebridge

好吧,我們已經成功地到達了文章的最大塊。

霍姆布里奇 是一個基於 NodeJS 的服務器,它使用 Homekit API 進行未經認證的設備集成和初始支持 Apple HomeKit。

配置 Homebridge 的難點在於它的插件支持多種協議和設備,使它們從 Apple 家庭套件。 因此,每個插件都以自己的方式配置,通常與其他設備的對應插件完全不同。

開始吧。 像往常一樣,我們通過 SSH 訪問 Raspberry Pi 並執行幾個步驟。

安裝 Node.js

您可以將整個代碼塊複製並粘貼到終端中。 在絕大多數情況下,這已經足夠了。 但是,如果碰巧在某個階段安裝失敗,則從塊中一一輸入剩餘的命令。

# 設置倉庫 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

我建議立即轉到“用戶”菜單項並將那裡的默認值更改為更安全的值。

樹莓派 Homebridge 用戶設置

你做了嗎? 太好了,接下來我們將配置插件。

家裡有各種各樣的設備決定了我們需要安裝哪些插件。 在您的情況下,插件集很可能會略有不同,但是使用我的配置示例,您可以了解在設置它們的過程中會遇到哪些細微差別。

在撰寫本文時我的插件集:

  • 家橋用戶界面 (包含在基本配置中,沒有自己的設置)
  • 色調 (用於照明控制 Philips 色調)
  • Apple 電視遙控器 (用於控制機頂盒 Apple 電視)
  • MQTT (用於管理 蓋弗的燈 з 固件 來自惠瑟)
  • Samsung Tizen (用於智能電視控制 Samsung Tizen 操作系統)
  • 天氣加 (根據天氣條件實現智能家居自動化)
  • Yeelight無線網絡 (用於燈控制 Xiaomi 耶萊特)

讓我們一一來。

色調插件設置

要在 Homebridge 中安裝任何插件,只需轉到 Web 界面的相應選項卡,在搜索欄中輸入所需熨斗的名稱,然後從可用列表中選擇插件即可。 我建議注意“🛡Verified”標籤,插件的版本和更新日期(如果作者幾年沒有更新,很有可能它不起作用)並確保打開插件主頁的鏈接,通常會詳細介紹安裝過程。

樹莓派 Homebridge Hue

單擊所需插件上的“安裝”按鈕,等待一兩分鐘,直到安裝插件。

插入 家橋色調 很容易設置。 您只需要設置將顯示在 Homebridge 日誌中的默認名稱,並選擇插件將處理的兼容設備類型。 就我而言,它只是照明 Philips Hue,甚至第一版的輪轂,都是圓形的。

填寫數據並保存結果後,您只需按下集線器上的中央按鈕 Philips 色調並等待 15 秒,直到插件識別集線器。 完畢!

剩下的就是拿起 iPhone,將相機對準 Homebridge Web 界面“狀態”選項卡上的二維碼,然後將其作為橋接器添加到 HomeKit。

如果 HomeKit 本身已經預先配置(選中 Apple 電視或 iPad 作為主要集線器,添加房間等),然後分步嚮導將立即提供將所有找到的 Hue 照明設備分配到相應的房間並為每個設備命名。 例如,在我的客廳裡,我有“Ceiling 1”、“Ceiling 2”和“Ceiling 3”燈,但通過 iPhone 上的 HomeKit 本身(項目“與其他設備組合”),我將它們組合成一個邏輯組“上光”,對我來說更方便。 同時,在同一個客廳裡,我有一個“落地燈”和“夜燈”——分開的設備,但 Siri 完全理解各種各樣的命令,無需任何額外的培訓:

  • “打開客廳的燈(客廳的燈都亮了)”
  • “打開落地燈”
  • “夜燈的亮度是百分之二十”
  • “打開夜燈”
  • “關掉頭頂燈”
  • “落地燈上的藍色”
  • “關掉客廳裡的燈(關掉客廳裡所有的燈)”
  • “關掉所有的燈(關掉整個公寓的燈)”

等等。 如果您正確配置了它 Apple-family,相關且絕對合乎邏輯的命令自動可供所有進入您家庭的成員使用 Apple ID。

插件設置 Apple 電視遙控器

我使用這個插件只有一個目的:為控制台創建一個額外的開關 Apple 電視。 事實是,在 Apple HomeKit 具有編程的能力,例如,根據預先確定的條件(例如“當我回家時”)包括播放專輯或播放列表。 一切都會好起來的,但如果此時機頂盒正在休眠,那麼這種場景的存在無法將其喚醒。 但是一個額外的虛擬交換機是可能的。 我們去了:

步驟1。 我們安裝用於捕獲憑據的服務 Apple TV

sudo npm install -g 節點-apple電視-x

步驟2。 我們正在尋找本地網絡上可用的機頂盒 Apple TV

須藤 apple電視對

步驟3。 我們創建一個具有所需前綴的對。 控制台輸出將如下所示:

% apple電視對 ✔ 連接到客廳 ✔ 開始配對? 輸入當前顯示在客廳的 4 位數密碼

在台階上 ‌? Enter the 4-digit pin that's currently being displayed on... 在您選擇的機頂盒屏幕上 Apple 電視,將出現一個標準的四位數代碼用於與遙控器配對(在我們的示例中,它將是 1234),它必須在控制台中被殺死。

% apple電視對 ✔ 連接到客廳 ✔ 開始配對? 輸入當前顯示在客廳 4 上的 1234 位密碼 ✔ 完成配對憑證:77346115-ED48-46A8-A288-

反而 <snip> 會有幾行字母和數字的混合,它們需要完整地複製到一個單獨的文本文件中,從該行的第一個數字開始 Credentials:. 稍後這些相同 證書 我們將非常需要它。

步驟4。 將以下塊添加到 Homebridge Web 界面的“配置”選項卡上的配置部分 "platforms": [

{ “平台”: ”Apple電視平台”,“名稱”:“Apple 電視平台”,
   「黛維ces”:[
      {
         "name": "賓館",
         “憑據”:“77346115-ED48-46A8-A288-”,
         “isOnOffSwitchEnabled”:真,
         “onOffSwitchName”:“Apple 電視” } ] },

...並排成一行 "credentials": 只需插入上一步中文本文件的全部內容。

我們為前綴選擇任何名稱,這裡的“Guest house”只是一個例子。

步驟5。 我們安裝插件本身。

在 Homebridge Web 界面的“模塊”選項卡上,在搜索欄中輸入  Apple TV Remote 並按下“安裝”按鈕。 安裝插件後,系統會提示您重新啟動 Homebridge,這是通過按相應的按鈕來完成的。

樹莓派 Homebridge 重啟按鈕

就是這樣,iPhone 上出現了 HomeKit 中的一個新開關,現在可以添加到所有需要自動打開機頂盒的場景中。

語音命令,例如“Siri,打開 Apple 電視”或“Siri,關閉 Apple TV”也被自動支持。 而且,如果你在不同房間配置了多個機頂盒,Siri 也會自動開始理解關閉它的請求 Apple 電視在特定房間或一次全部。

事實上,這個插件正在迅速發展,它已經知道如何識別控制台上運行的應用程序的 Bundle ID 並干預它們的工作,例如暫停 Netflix 上的電影。 但是,如果有願望,您將自己處理。

配置 Mqttthing 插件

我將這個插件與上面提到的 Guyver 燈一起使用——一個帶有 Arduino 板和 16x16 可尋址 LED 矩陣的自製燈。 燈泡本身必須裝滿 Whilser 的固件。 願原力與你同在!

Gyver 燈與 Grogu

步驟1。 安裝 MQTT 代理

我們執行許多命令。 它們不能批量工作,因此我們一次將它們輸入到控制台中。

sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key 添加 mosquitto-repo.gpg.key
cd /etc/apt/源ces.list.d/
須藤wget 
sudo apt update
sudo apt 安裝 mosquitto mosquitto-clients
sudo /etc/init.d/mosquitto 停止
須藤納米/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 listener 1883 persistence true persistence_location /var/lib/mosquitto/ log_dest topic log_type error log_type warning log_type notice log_type information connection_messages true log_timestamp true include_dir /etc/mosquitto/conf.d

照常, 按Ctrl + O, Enter, 按Ctrl + X,然後用命令重啟broker

‌sudo /etc/init.d/mosquitto 啟動

已安裝 MQTT 代理。

步驟2。 安裝 Mqttthing 插件

我們通常去 Homebridge 網頁界面中的“模塊”選項卡,搜索 Mqttthing 並單擊“安裝”。

步驟3。 Mqttthing 插件配置

每個 Guyver 燈都有自己的 ESP 晶片 ID。例如,ESP-3bd20b。如果您自己製作並閃爍了燈,那麼您會完全了解它,如果沒有,則將燈置於配對模式,當連接到 Wi-Fi 網路時,iPhone 上的相應對話框將顯示所需的 ID 。寫下來。

  1. 關閉燈的電源;
  2. 關閉路由器;
  3. 打開燈的電源;
  4. 在 iPhone 上,轉到“設置 → WiFi”
  5. 選擇 SSID 如“ESP12345678”的不安全網絡,然後在對話框中按一下“配置 WiFi”
  6. 在配置窗口的最底部需要芯片 ID

如果之前已經配置過燈,您可以簡單地將其關閉,打開路由器並再次打開燈 - 舊設置將被恢復。 如果這是燈的第一次連接,請打開路由器並在設置列表中選擇您的網絡,然後輸入所有必要的數據,例如家庭 Wi-Fi 的密碼和樹莓派的 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": "電視", "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 ": "Fire" }, { "name": "Rainbow Vert.", "value": "Rainbow Vert." }, { "name": "Rainbow Horrors.", "value": "Rainbow Horrors." } , { "name": "顏色變化", "value": "顏色變化" }, { "name": "3D 瘋狂", "value": "3D 瘋狂" }, { "name": "3D 雲" , " value": "3D 雲" }, { "name": "3D Bench", "value": "3D Bench" }, { "name": "3D Plasma", "value": "3D Plasma" } , { "name": "彩虹3D", "value": "彩虹3D" }, { "name": "孔雀3D", "value": "孔雀3D" }, { "name": "斑馬3D" , " value": "Zebra 3D" }, { "name": "森林3D", "value": "森林3D" }, { "name": "海洋3D", "value": "海洋3D" } , { "name": "降雪", "value": "降雪" }, { "name": "矩陣", "value": "矩陣" }, { "name": "螢火蟲", "value": "螢火蟲" }, { "name": "水族箱", "value": "水族箱" }, { "name": "Starfall", "value": "Starfall" }, { "name": "Paintball", "value": "彩彈射擊" }, { "name": "螺旋", "value": "螺旋" }, { "name": "暖光", "value": "暖光" }, { "name": "螺旋" ": "Pendulum", "value": "Pendulum" }, { "name": "Blink", "value": "Blink" }, { "name": "警笛", " value": "警笛" } , { "name": "Drift", "value": "Drift" }, { "name": "Flock", "value": "Flock" } ], "onValue": " ON", "offValue “: “離開” }

完畢在 Apple HomeKit 中出現了兩個新設備,燈“夜燈”和“夜燈效果”。 它們是相互關聯的,它們的目的非常明確。 如果需要,您可以在配置中重命名它們。

不幸的是,固件的作者用俄語寫了參數,所以在這樣的配置下,你也必須用俄語聯繫 Siri。 但如果你用英語與 Siri 交談,你可以像這樣修復每個代碼點:

{“名稱”:“火”,“價值”:“奧貢”},

然後 iOS 上的結果將如下所示:

Gyver Lamp Siri 補丁

插件設置 Samsung Tizen

步驟1。 檢查電視的兼容性

在路由器的控制面板中,給電視一個靜態的本地 IP,就像我們一開始為 Raspberry Pi 所做的那樣。 例如,就我而言,它是 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 識別的那些將不起作用。

從服務頁面複製字段值"wifiMac": 並準備好電視上的遙控器,讓它在手邊。

步驟2。 安裝插件

沒什麼新鮮的,我們正在根據要求尋找插件 Samsung Tizen,選擇所需的一個(作者身份 @塔維庫) 並安裝。

樹莓派 Samsung Tizen 插件

啟動後,轉到設置並在那裡輸入以下值:

樹莓派 Samsung Tizen 插件設置

“電視”這個名字就足夠了,因為 Siri 完全理解在客廳裡打開電視的請求,你幾乎沒有兩台電視。 “在臥室裡打開電視”這個命令她也完全聽懂了,不用再拉客廳的電視機了。

步驟3。 連接到電視

這裡的一切都很簡單:拿起電視遙控器並等待上下文菜單出現在屏幕上,並顯示有關某些設備試圖控制電視的警告。 當然,電視必須打開。 當屏幕右上角出現相應請求時,使用電視遙控器選擇按鈕 Allow。 完畢

步驟4。 將電視添加到 Apple HomeKit

是的,與以前的情況不同,電視不會神奇地出現在您家中的設備列表中。 因此,我們把 iPhone 拿在手上,一步一步來:

  1. 啟動 Home 應用程序,在主頁上按右上角的 +;
  2. 選擇“添加附件”;
  3. 在屏幕底部,點擊“無代碼或掃描”;
  4. 在下一個屏幕上,選擇您的電視;
  5. 當提示輸入 HomeKit 設置代碼時,點擊“使用攝像頭”;
  6. 將相機對準 Homebridge 狀態選項卡上的二維碼。

步驟5。 插件設置

深入挖掘 文件 對於插件,您可以讓 Siri 從已安裝的列表中運行電視上的特定程序,暫停它們等等。 現在,作為練習,我們將更改虛擬遙控器中單個按鈕的功能 Apple 遠程,內置於 iOS 控制中心的“幕布”中。

這是ℹ︎(信息)按鈕,默認在電視屏幕上方顯示有關當前圖像模式的信息。 同時,從遙控器到達 Apple 無法將 Remote 添加到電視上安裝的程序列表中。 我們現在將修復它。

Apple iOS 遙控器 Samsung TV

轉到插件設置,“鍵映射”部分,查找“信息”字段並將其值更改為 KEY_HOME. 重新啟動 Homebridge,瞧——虛擬遙控器中的 ℹ︎ 按​​鈕會調出主應用程序菜單! 虛擬遙控器很有意義。

設置 Weather Plus 插件

步驟1。 創建一個 OpenWeather 帳戶

讓我們去網站 https://home.openweathermap.org 並註冊一個帳戶,好處是它是免費的。

步驟2。 API 密鑰生成

OpenWeather

轉到 OpenWeather 個人帳戶的所需選項卡,指定密鑰名稱後,單擊“生成”按鈕。

OpenWeather

步驟3。 安裝和配置 Weather Plus 插件

我們使用通常的方法搜索並安裝所需的插件,然後進行其設置。 結果應如下所示:

在預測中,我個人只對下一小時的值感興趣,所以其他的都被禁用了:

樹莓派 OpenWeather 預報設置

為了使不必要的虛擬天氣傳感器不會因不必要的激活而煩惱,我們在相應的隱藏值部分禁用它們。 最好禁用:

  • 空氣壓力
  • 雲蓋
  • 露點
  • 表觀溫度
  • 風向
  • 紫外線指數
  • 風速
  • 最大風速

然後單擊設置窗口最底部的“保存”。

結果,在界面 Apple HomeKit 會顯示接下來一小時的溫度和濕度值,以及兩個虛擬傳感器“雪”和“雨”,可以在各種場景下使用。 例如,我編寫了 HomeKit 自動化程序,其中,當近期的預報中出現下雨或下雪時,Guyver 燈會在一分鐘內顯示相應的水坑或飄落的雪花效果。 同時,該效果僅在上午 8:00 至晚上 23:00 之間且只有有人在家時才會激活。 在其他時候,不太可能需要帶雨傘或穿防水衣服的警告。

設置 Yeelight WiFi 插件

根據要求 Yeelight Homebridge 提供了許多用於安裝的插件,包括一個經過驗證的插件。 但我更喜歡另一種,其中狀態之間的轉換盡可能順利,而不是“夜幕降臨”的風格。 此外,它支持 自適應照明 視頻 Apple,但這是標準應用程序 Xiaomi 自從這個功能出現在 HomeKit 中以來,這一年從來沒有學過這個。

樹莓派 Yeelight WiFi 插件

重要的! 只留下一個燈泡 Xiaomi, 一開始是為了避免混淆。 我們將與她合作。

安裝插件後,重新啟動 Homebridge 並在日誌中查找類似內容: ‌[Yeelight] Received advertisement from ab1234. 這是有條件的 ab1234 還有你的燈泡。 也許價值將是 color-ab1234,然後你會和他一起工作。

轉到插件設置並將以下代碼粘貼到那裡:

{“平台”:“yeelight”,“名稱”:“Yeelight”,“過渡”:{“功率”:400,“亮度”:400,“顏色”:1500,“溫度”:1500},“組播” :{“接口”:“0.0.0.0”},“defaultValue”:{“color-ab1234”:{“名稱”:“落地燈”,“黑名單”:[“set_hsv”]}}}

在哪里而不是 color-ab1234 應該是您日誌中的值,而不是 ‌"name": "Торшер" 任何反映燈具安裝位置的名稱:夜燈、壁燈、天花板等。

樹莓派 Yeelight WiFi 插件設置

單擊“保存”按鈕保存粘貼的代碼並重新啟動 Homebridge。 完成,燈泡已以您選擇的名稱出現在 HomeKit 中。 其餘的 Yeelight 燈泡通過在插件設置中按“+ ADD PLATFORM”按鈕以完全相同的方式逐一添加。

在 Raspberry Pi 上更新 Homebridge 和 Node.JS

Homebridge 本身的更新(和回滾版本)非常簡單:您需要在 Web 界面中單擊當前版本的編號,然後從對話框中的列表中選擇所需的版本。

但是隨著 Node.JS 和 NPM 的更新,安裝某些插件的更新時遲早會需要這些,這並不容易。 更準確地說,這些命令並不完全是標準指令中描述的那些。

Node.JS 使用以下命令更新:

sudo hb-服務更新節點

而NPM多達兩個連續:

sudo npm 緩存清理 -f
須藤 npm 安裝 -g npm

不幸的是,Homebridge 本身、它的插件和它所依賴的“rails”都不能自動更新。 每天進入控制面板檢查是否有任何新東西遲早會變得無聊。 因此,為了自動化該過程,他們為 iOS 14 設計了一個特殊的小部件,該小部件可以監控所有 Homebridge 節點的狀態,並能夠通過 PUSH 消息直觀地發出更新或任何問題的信號。

安裝 Homebridge 狀態小部件

Raspberry Pi Homebridge 狀態小部件

正如你所看到的,這個小部件顯示了很多關於你的 Homebridge 有用和不太有用的信息,但其中最有價值的部分是關於 Homebridge 本身、它的插件和 Node.JS 的狀態的信息。

要獲取小部件本身,我們首先需要它的父應用程序。 從 App Store 將其安裝在您的 iPhone 上。

可編寫腳本
可編寫腳本
開發商: 西蒙 B. Støvring
價錢: 免費+

現在開始了安裝小部件的相當漫長但令人興奮的過程。 我們將藉助 Scriptable 程序中另一個名為 ScriptDude 的腳本來安裝它。 ScriptDude 很好,因為它跟踪位於地址庫中的大量腳本的代碼變化 腳本.net. 也許你會在那裡找到對你有用的其他東西,但現在我們有一個任務,我們會解決它。

步驟1。 從 App Store 安裝 Scriptable.app。

步驟2。 在 iPhone 瀏覽器中打開網站 腳本杜 並單擊安裝 ScriptDude 按鈕。

scriptdu.de 網站

步驟3。 在打開的頁面上,單擊 Copy Installer 按鈕,並在我們的剪貼板中收到有關腳本代碼的消息後,單擊 Open Scriptable 按鈕。

步驟4。 將剪貼板的內容插入標題為 Untitled Script 的空白字段中,然後按播放按鈕 ▶️。

ScriptDude 安裝

步驟5。 在打開的屏幕上,單擊鏈接 瀏覽 scriptables.net 然後在下一頁點擊標籤 (技術). 萬歲,Homebridge 狀態腳本排在第一位! 隨意單擊使用 ScriptDude 下載按鈕。

步驟6。 我們按下安裝,同意兩個警告後,我們在已安裝列表中看到所需的腳本。 主 Scriptables 屏幕現在看起來像下面的第四個屏幕截圖,我們單擊 Homebridge 狀態圖塊中的三個點並轉到編輯選項。

步驟7。 首先,我們改變值 覆蓋PersistedConfig з

覆蓋PersistedConfig = true

將腳本設置保存到 iCloud。

樹莓派 Homebridge 狀態配置

步驟8。 再往下一點,我們編輯三個字段:IP 地址和 Homebridge 端口(記住,這是已經提到的 http://<ip address of your server>:8581 在哪里而不是 <ip address of your server> 在我的情況下,從文章的開頭仍然是相同的 IP ) 並同意在本地網絡中搜索設備的警告。 萬歲,腳本有效!

剩下的就是以與其他任何方式相同的方式將小部件添加到 iOS 14 屏幕。 添加後,您需要進入小部件設置(長按它)並指定多個參數:選擇所需的腳本,指定與之交互時要執行的操作,並在參數字段中輸入以下值

USE_CONFIG:紫色.json

之後別忘了返回腳本代碼並返回值

覆蓋持久配置 = false

就這樣。 該小部件有效,並且當 Node.JS、Homebridge 或其插件有更新時,您將收到包含相關內容的 PUSH 通知。

結論

機會 Apple HomeKit 對我來說已經成長了很多倍。 我想出了一堆腳本和自動化,讓我和我愛的人的生活更輕鬆。

例如,在一天中的黑暗時​​間,第一個回家的家庭成員會在外面、走廊、客廳和浴室裡看到燈亮的迎接——現在不需要跑到開關前用未洗過的手。

當家庭的最後一個成員離開家時,HomeKit 會小心地關閉電視、燈,以及一般情況下可以關閉的所有東西。 而如果家里至少有一個人,隨著黃昏的來臨,外面的燈光和里面的一些燈就會被打開。

同樣,Siri 可以使用完全合乎邏輯的命令來控制所有連接的設備,這些命令與您需要在特定房間打開或關閉某物時詢問家里人的命令相同。 只是沒有人需要再跑到這個房間了。

早晚音樂混合來自 Apple, Guyver 燈的燈光效果附在上面。 可以用輕音樂製作其他燈光,但我對效果並不滿意。

一般來說,應用場景只取決於你的想像,不會對錢包造成太大壓力,因為帶有“Works with”標籤的產品 Apple HomeKit 不再是唯一可用的選擇。

在下一篇循環的文章中,你和我將有一點樂趣:我們將教 我們的 樹莓派下載種子,讓我們把它變成一個強大的媒體中心和復古遊戲機。

敬請關注!

尤里斯坦尼斯拉夫斯基
尤里斯坦尼斯拉夫斯基http://notarecords.com
SwiftUI 開發人員。我收藏黑膠唱片。有時是記者。 Nota 唱片行的老闆。
- 廣告 -
註冊
通知有關
客人

0 留言
嵌入式評論
查看所有評論