樹莓派2B+Hassbian+Homebridge+Homekit(環境搭建)

由于有位樓主跟我說引用了他的文章,我這里說明下,引用的文章會很多,碰到的問題也多,文末有各路大神的文章,需要的自己去看。我的目標:用Ipad中的HomeKit智能家居!用Siri來控制你的家用電器,最近蘋果的智能家居平臺比較火熱,什么值得買平臺以及少數派報告都有比較多的文章介紹。目前自己手上的硬件有Ipad,樹莓派2B,nodemcu(esp8266),DTH11 溫濕度傳感器等等。剛好Home Assistant是一個運行在Python 3的開源家庭自動化平臺。它可以追蹤、控制你家里的所有設備,并且能實現自動化控制。先用圖描述下幾者關系,方便理清思路。


樹莓派上運行的就是HomeAssistant

下面說下具體的安裝實現過程,安裝過程中的軟件我會上傳到百度云分享給大家。

1:格式化TF卡


格式化TF卡

2:刻錄hassbian鏡像,使用的是etcher刻錄軟件

刻錄鏡像

查看U盤,發現容量只有40M了,不用擔心,只是啟動文件。


樹莓派啟動文件


啟動文件目錄

3:上電運行

將燒寫好的TF卡插到樹莓派上,插上網線,上電啟動。


上電啟動完成

上電完成之后,提示用戶名登錄,用戶名:pi ? ? ?密碼:raspberry


putty已經可以SSH登陸

4:查看hassbian是否安裝成功

打開谷歌瀏覽器(切記一定用谷歌瀏覽器,360瀏覽器是打不開的),瀏覽器輸入:192.168.1.121( 樹莓派的IP):8123


homeassistant安裝成功

出現這個界面,說明hassbian已經安裝成功,并且服務已經自動啟動。

5:替換安裝更新源

更換一下源:sudo nano /etc/apt/sources.list在第一行首添加”#“號,再在最上方添加如下代碼(如果不安裝KODI,最后一行(第三個安裝源)可忽略):

deb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib

deb-src http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib

deb http://pipplware.pplware.pt/pipplware/dists/jessie/main/binary /

然后按ctrl+x,y,回車

在第一行前面加#號,然后復制下面兩行到末尾,ctrl + x 保存然后 y 確認退出。


編輯文件

6:更新軟件包

sudo apt-get update:這一步是更新你的源列表,由于我們第五步,更新過安裝源,所以這步必須執行。

執行更換自己的安裝源

sudo apt-get upgrade:此命令將本地已安裝的軟件與剛下載的軟件列表里對應軟件進行對比,如果你對新版本軟件的需求不是那么迫切,可以不執行,當然如果發現已安裝的軟件版本太低,就會提示你更新,y 確認安裝。這個過程需要時間按比較久,我花了15分鐘左右。


更新自己的軟件包


sudo apt-get clean:徹底卸載安裝包。

7:安裝圖形界面

圖形界面,方便新手操作,我這里就給你具體鏈接地址

Raspberry Pi 樹莓派 Zero W 安裝Homeassistant-Homebridge教程及避坑指南

由于每個人的樹莓派硬件版本可能存在區別,可以參照安裝方式,但是不能全部復制,不然是無法安裝成功

HomeAssistant,大家切記切記。

8:安裝Samba和MQTT

Hassbian內置了一個快速安裝Homeassistant需要的一些軟件的工具包叫hassbian-config,通過這個工具可以快速安裝MQTT、Samba等軟件,幫助我們快速實現Homeassistant的強大功能,安裝MQTT和Samba只需要簡單的兩個命令。

hassbian-config show? #查看支持快速安裝的軟件


可以安裝的插件

sudo hassbian-config install samba??#快速安裝samba


安裝Samba完畢

看到右下角的的地址沒有,\\192.168.1.121\homeassistant


Samba同步成功

左邊是樹莓派的目錄,右邊是windows下的目錄,已經同步完畢。

sudo hassbian-config install mosquitto:安裝MQTT服務,進行物聯網設備接入。安裝過程中提示輸入mqtt的帳號和密碼。

我也是輸入帳號pi密碼raspberry

安裝MQTT的方式還可以這樣:

安裝MQTT方式2

9:安裝libavahi-compat-libdnssd-dev軟件包(完整版Raspbian此時可能提示因依賴關系而出錯)

sudo apt-get -y install libavahi-compat-libdnssd-dev


安裝更新成功

10:確認系統硬件版本

安裝node.js之前最重要的一步,由于各個版本的樹莓派硬件不同,樹莓派zero,樹莓派1,樹莓派2/2B,樹莓派3/3B。

如果沒確認清楚,就會導致node.js出錯。

下面我說下幾種硬件的安裝方式:

(1)樹莓派zero是arm6l平臺,具體的安裝方式如下圖所示。

樹莓派zero的安裝方式

(2)樹莓派2也是arm6l平臺,具體實現方式更上面一樣

(3)那樹莓派2B是不是跟樹莓派2,樹莓派zero一樣,也是arm6l平臺呢,答案是不是的。

查看樹莓派的硬件平臺,使用命令 ? uname -a


樹莓派2B硬件平臺

(4)樹莓派3和樹莓派3B由于手上沒有硬件,這里說不再說明。

11:安裝node.js

安裝node.js的具體方式如下:

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -

sudo apt-get install -y nodejs

本來安裝node.js需要這兩個命令就行,但是網上有人說小米網關不支持setup_4x,所以我放棄了這兩條命令。

正確的參考命令如下:

安裝node.js命令
安裝setup_6x
安裝node.js完成


安裝build-essential

build-essential的作用說明下


如果安裝不成功的話,請參照下面的文章。

重裝Ubuntu 14.04后使用apt-get安裝build-essential(即sudo apt-get install build-essential)時出現包依賴項問題的解決方法

查看node.js是否安裝成功,使用命令 node -v

查看node

12:安裝Homebridge,這個安裝arm7l平臺的,其他平臺是其他安裝方式。

armv7:

sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp

cd /usr/lib/node_modules/homebridge/

cd /usr/lib/node_modules/hap-nodejs/node_modules/mdns

armv6的安裝方式:

armv6安裝方式

HB 提供一行安裝指令:sudo npm install -g --unsafe-perm homebridge

也有人說采用這條命令:sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp

至于node-gpy的作用,可以百度下查看問題。上面兩種方式都可以安裝。

如果出現安裝不成功的話,使用如下命令。

手動安裝


安裝Homebridge

安裝完成后,建議大家直接輸入homebridge運行一次 HB,以生成示例配置文件,然后 Ctrl + C 退出。


運行bridge之后,發現未找到配置文件

使用命令 sudo nano /home/pi/.homebridge/config.json

編輯配置文件

重新啟動homebridge,能運行說明配置文件正確,不能運行說明配置文件錯誤


配置文件錯誤

解決方式:使用命令# ? sudo ?npm install homebridge

如果碰到 the ?requested accessory 'http' was not registered by any plugin

就使用命令#? sudo? npm install homebridge-http

安裝完畢之后在用homebridge命令,看是否正常啟動。


接著,安裝 Homeassistant-homebridge 插件,實現平臺聯動:

sudo?npm?install?-g?homebridge-homeassistant

日后插件更新,請使用下列命令:

sudo?npm?upgrade?-g?homebridge-homeassistant

如果是小米的網關,還需要安裝相應的協議。

小米網關協議安裝

13:讓homebridge開機自動啟動

方式一:比較麻煩的配置,可以參考一下配置說明。不過我估計很多人都可能看不懂是啥原理。

https://bbs.hassbian.com/forum.php?mod=viewthread&tid=1074&highlight=hass

#將homebridge設置成隨系統啟動

cd/

sudo useradd--system homebridge

sudo mkdir/var/homebridge

sudo cp ~/.homebridge/config.json/var/homebridge/

sudo cp-r ~/.homebridge/persist/var/homebridge

sudo chmod-R0777/var/homebridge

cd/etc/default

sudo nano homebridge

#將下面的內容復制粘貼進去,然后Ctrl+X,然后Y,回車,保存退出

HOMEBRIDGE_OPTS=-U/var/homebridge

# Defaults / Configuration options for homebridge

# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)

# If you uncomment the following line, homebridge will log more

# You can display this via systemd's journalctl: journalctl -f -u homebridge

# DEBUG=*

#分界線

cd/etc/systemd/system

sudo nano homebridge.service

#將下面的內容復制粘貼進去,然后Ctrl+X,然后Y,回車,保存退出

[Unit]

Description=Node.js HomeKit Server

After=syslog.targetnetwork-online.target

[Service]

Type=simple

User=homebridge

EnvironmentFile=/etc/default/homebridge

ExecStart=/usr/lib/node_modules/homebridge/bin/homebridge $HOMEBRIDGE_OPTS

Restart=on-failure

RestartSec=10

KillMode=process

[Install]

WantedBy=multi-user.target

#分界線

cd/

sudo systemctl daemon-reload

sudo systemctl enable homebridge

sudo systemctl start homebridge

sudo systemctl status homebridge

方式二:采用init.d的方法

把 HomeBridge 服務加入到樹莓派的系統服務里。

首先我們要開啟 root 賬戶,首先在終端輸入:

sudopasswd?root

然后會提示你設置 root 賬戶密碼,第一次輸入之后還要確認一次,一樣兩次輸入不會有任何字符顯示。輸入完畢之后,啟用 root 賬戶,輸入以下命令:

sudopasswd?--unlock?root

然后會提示報錯:passwd:?password?expiry?information?changed.,原因是新版的系統默認禁止 ssh 登錄 root 賬戶,我們需要修改一下配置文件。在終端輸入以下命令:

sudonano?/etc/ssh/sshd_config

用 Ctrl + W 搜索「 PermitRootLogin 」,找到之后將PermitRootLogin without-password改成PermitRootLogin yes,然后按 Ctrl + O 保存,回車之后退出編輯器。

此時你會發現root登錄還是提示密碼錯誤,但是我自己用su - root 又可以切換到root用戶下,說明我的密碼沒問題。后來百度一下,發現是服務沒重啟。重啟服務就好,解決辦法如下圖。

重啟sshd服務

配置到這里,只要在終端輸入homebridge就可以運行了。但是關閉終端后就會關閉,而且萬一出現斷電重啟的情況,服務就會關閉。因此我們要配置一個開機啟動homekit的配置。homebrige的github頁面上推薦了三種方式,我采用里面最方便的方式init.d的方法。

首先從這里下載一個配置文件,并復制所有內容。

下載地址:raw.githubusercontent.com/fhd/init-script-template/master/template

然后使用如下命令在init.d目錄下創建一個homebridge啟動的文件:

sudonano /etc/init.d/homebridge[進入后粘貼上下載的配置文件的內容]

修改文件內容如下,不要忘記provide也要寫:

需要修改的地方

我發現網上很多人都設置之后,發現開機還是不能自啟。

還會出現這樣的錯誤

需要注意的是:

(1)用戶名用pi登錄的話,user就是pi

(2)cmd 命令失效,網上很多人都是用 cmd="DEBUG=* /usr/local/bin/homebridge",

而我用的是cmd="DEBUG=* /usr/bin/homebridge"。

修改文件的權限:

sudochmod755/etc/init.d/homebridge

sudoupdate-rc.d homebridgedefaults

啟動:

sudo/etc/init.d/homebridge start

之后在關機重啟,homebridge就會自動啟動了。

開機以后查看日志文件

開機啟動正常的日志文件

如果發現無法開機自動啟動,查看log日志就可以發現錯誤問題。

方式三:目前還沒看到,知道的朋友跟我簡信說下。

14:相關鏈接及參考(再次感謝諸大神)

樹莓派打造家庭中樞教程(完整版)

【再更新】小米網關接入Homekit完整教程,聲控家中設備!

Home Assistant + 樹莓派:強大的智能家居系統 · 安裝篇

首發威鋒!我們一起來玩HomeKit智能家居!用Siri來控制你的家用電器!

linux(ubuntu)下安裝nodejs并配置環境,(樹莓派2代ARM6處理器)

hassbian鏡像地址

新手:樹莓派快速安裝HomeAssistant

Raspberry Pi 樹莓派 Zero W 安裝Homeassistant-Homebridge教程及避坑指南

node.js安裝版本

homebridge自啟動出現問題

樹莓派2 HomeKit

小白貼-Hass.io安裝、sonoff、黑豆接入HA

借助樹莓派與 HomeBridge ,將 YeeLight 彩光燈接入 Apple HomeKit | Matrix 精選

[不定期更新]Homekit智能家庭實現計劃

開啟自啟動homebridge,不過好像不行,待解決

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容