智能家居控制中心搭建及小米博聯的聯動

今天先講到的內容主要涉及以下設備:

首先是一塊樹莓派開發板,這是整個智能家居的控制中心,所有的程序都將在這塊開發板上運行。當然,并不一定要求你買一塊樹莓派,因為文中涉及的所有軟件都可以在windows,Mac OS,以及Linux甚至群暉上運行。只是樓主是比較喜歡一件事情交給一個設備做,這樣某一個功能有問題修復起來也不會影響到其他功能的使用。樓主用的開發板是rasberry pi 3B。

包郵 原廠正品 樹莓派3代B型 raspberrypi 板載藍牙和WIFI e14版本

299元

京東直達鏈接

這是京東第三方的鏈接,馬家會便宜些。對了,不要忘了給你的樹莓派配張TF卡哦,16G的就足夠了。

然后是小米智能家居套裝:

這兒雖然說的是小米智能家居套裝,但實際上指的是綠米(aqara)的產品,除了圖中所示的這些外,還有溫濕度傳感器。墻壁插座、開關等。至于米家的其他產品,無論是空氣凈化器,還是智能插線板都是不支持的。說白了,其實domoticz支持的只是網關,所以連接在網關上的設備都可以被支持,其他的產品目前只有yeelink的燈開放了協議可以單獨添加。以下為目前能連入domoticz的所有配件(注:網關需為2代以上,即帶網絡收音機的網關)

而博聯的設備樓主只有SPMINI插座,但是R2網關,A1檢測儀也是能被支持的,不過講真,如果你手上沒有博聯設備的話,建議不要去買了,各方面都遠不如米家,特別是安全性,在下文會講到,只要知道博聯設備的地址,就可以輕松的發送指令來對其進行操作,完全沒有任何的用戶驗證措施。

樹莓派系統的安裝

這是最基礎的一部工作,雖然網上有很多版本的樹莓派系統,但是為了以后出問題可以非常方便的找到各種解決方案,所以這兒推薦大家使用官方的Raspbian系統:

下載地址:

建議使用迅雷下載,下載完了解壓,會得到一個201X-XX-XX-raspbian-jessie.img文件,我們放著待用。

然后下載SDFormatter用來格式化TF卡。下載完安裝了就直接把TF卡格式化一遍,這個步驟就不用說了。

下載地址:

接著我們還需要一個工具Etcher,將img文件燒錄到tf卡中。

下載地址:

按步驟:1.選擇剛才下載的raspbian-jessie.img。2.選擇TF卡驅動器。3.FLASH,靜待完成就好。

等Etcher把系統鏡像燒錄至TF卡后,我們就可以把TF插到樹莓派里,然后啟動樹莓派,這里特別提醒,樹莓派3b請使用5V 2A以上的電源適配器,并且電源線要盡可能的短,越短越好。

在做第一步設置的時候,我們還需要一臺HDMI的顯示器或電視,鼠標和鍵盤都與樹莓派連接好再開機。

很快就能進到圖形桌面了,樓主這兒展示用的是VNC遠程,所以顯示比例啥的都有些問題,大家不用介意。這兒要做的第一步是連接上無線網。

點右上角的WIFI圖標,選擇SSID,然后輸入無線密碼就成。不過這兒需要額外多做一步,就是把IP地址設為手動靜態,畢竟我們是做服務器用的,動態地址每次斷鏈之后都可能變化:

具體做法是右鍵單擊右上角的WIFI圖標選擇第一項Wireless&.....

然后interface右邊選擇wlan0,把Automatically....的框勾掉,在下面填上你家里局域網的IP地址和網關,DNS服務器等。然后點擊apply后關閉。然后打開瀏覽器看看能不能正常上網:

OK,沒有問題,下一步就是打開SSH,畢竟老接著鼠標鍵盤顯示器用樹莓派也不是很方便是不。

點擊樹莓派圖標,選擇Preferences>Raspberry Pi Configuration。

然后選擇interfaces選項卡,將SSH Enabled,點擊OK。然后就可以把樹莓派關閉,拔下鼠標鍵盤顯示器,把它挪到任意一個WIFI信號良好的地方(注意,一定要保證其WIFI信號良好)。

然后我們下載putty,因為官網被墻,為了不給大家造成困擾,所以請大家自行百度下載就是了。記得選大的下載站以免造成不必要的損失。下載完成后打開putty,界面如下:

在host name里填上剛才設置的樹莓派的IP,Connection type選擇SSH。然后OPEN。當然,為了下次連接方便,你可以在Saved Sessions里填上一個名稱,點擊save,以后就可以直接雙擊打開。

輸入用戶名pi,默認密碼是rasberry(輸入密碼時光標不會變化,輸完回車就行)

看到pi@raspberrypi:~ $的提示行就算成功了,下面我們要做的第一步就是把默認密碼改掉。命令如下:

sudo passwd pi

ctrl+C復制灰框里面的命令,到putty窗口右鍵就可以粘貼。

它會讓你輸入兩次新密碼,兩次一致的話密碼就修改成功了。

接著我們要設置的是樹莓派的時間和時區。首先要做的是打開NTP,讓樹莓派時間與網絡時間同步:

sudo timedatectl set-ntp true

接著是設置時區:

sudo dpkg-reconfigure tzdata

會出現下面的界面:

在中國的話我們就選擇Asia,然后回車,然后選擇Chongqing就好了。此時終端會回到命令行模式。同時在命令行上方我們可以看到Local time is now:……,大家核對下是不是和自己的時間一致,一致的話樹莓派的時間就算設置完成,為了讓我們等會安裝更順暢,接著我們設置鏡像源,命令如下:

sudo nano /etc/apt/sources.list

在開頭添加:

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

然后在原有的鏡像源前方加上#,如下圖:

然后按Ctrl+X退出(記得選Y保存)。然后運行下命令sudo apt-get update,更新下鏡像源。

sudo apt-get update

至此,我們的樹莓派系統已經完全和設置完成。下面我們就要說domoticz的安裝和設置了。

domoticz的安裝和設置

關于智能家居系統,開源的軟件有很多,例如Home Assitant,本站值友也有寫過原創:

樹莓派打造家庭中樞教程(完整版)追加修改(2017-05-0123:38:35):實話講,不知道按著教程實操的人有多少,但是我還是盡量完善、更新這份教程。首先,Hassbian系統自帶了Home-assistant,因此請使用Hassbian系統的值友跳過3.1,直接前往3.1.1。其次,3.1.1步驟如果執行失敗,可以手動安裝。

武沒娘和狄胖胖|134評論91收藏1k查看詳情

甚至如果你全部使用小米設備的話,有更簡單的:

【再更新】小米網關接入Homekit完整教程,聲控家中設備! - 小米社區官方論壇

bbs.xiaomi.cn直達鏈接

但是為啥樓主沒有選擇這兩個而是使用了domoticz,先說通過homebridge-aqara來實現小米網關設備聯入homekit,這個做法無疑是最簡單的,但是其僅僅支持aqara設備,并且不支持網關燈以及小米無線開關(其實是homekit不支持小米無線開關的多段模式)。并且不能跨平臺使用,也就是這個僅限于ios10以上的設備才能使用,局限性太大,所以樓主放棄了。

而Home Assitant+Homebridge能夠做到跨平臺使用,也能做到控制網關燈,但是依然不支持小米無線開關(待確認),不過更重要的是,他設備添加配置都需要添加修改yaml文件。使用起來還是不便。而domoticz主要是看了這篇原創:

開源IoT平臺domoticz與百搭wifi模塊esp8266 篇一:車庫卷門遙控基友家想搞智能家居,經我極力鼓吹,先讓我用他的車庫門試手,實現效果如下視頻。隨手一拍,請看官海涵。操控略有延遲,對付車庫門這種實時性要求不高的電器來說足矣。當然,能遙控僅僅是智能的第一步。根據反饋回中央控制器的各種傳感器數據從而進行自動化調節才是智能家居的努力目標?,F有的帶中央控制器的物聯網解決方案

blindlight|72評論92收藏521查看詳情

雖然原文作者寫的不是很詳細,但是總體上能夠領會到domoticz的強大,以及對arduino和ESP8266的支持。最關鍵的是,domoticz配置好之后添加設備啥的幾乎不用再去命令行模式下修改任何文件。可以全部在web界面完成。當然,缺點是……UI太丑……。哈哈,樓主費了好大勁才扳回來點……,好了閑話不扯,下面說domoticz的安裝:

domoticz的安裝非常方便,就一行命令:

sudo curl -L install.domoticz.com | sudo bash

然后就等他自動無腦安裝了,安裝完之后,因為安裝的是release版的,是不包含對小米網關支持的,所以我們在這要對其升級下,將其升級到beta版,具體命令如下:

cd domoticz

./updatebeta

注意,這是兩行命令,依次復制。

此時domoticz已經安裝完成并已經自己啟動了,這時候我們打開瀏覽器,輸入http://樹莓派的IP地址:8080 ,例如樓主的就是http://192.168.10.24:8080。就能打開domoticz了。我們暫時不用管它,繼續安裝其他需要的組件。

安裝Nodejs:

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

sudo apt-get install -y nodejs

sudo apt-get install -y build-essential

安裝avahi

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

安裝其他

apt-get install mosquitto

sudo apt-get install python-dev

sudo easy_install -U distribute

sudo apt-get install python-pip

pip install paho-mqtt

然后我們把mosquitto設為隨機啟動

sudo systemctl start mosquitto

sudo systemctl enable mosquitto

好了,之后就讓我們給domoticz添加小米網關吧。

小米網關的添加

在添加小米網關之前,我們首先要在路由器上做些設置,因為domoticz和下面的子設備都是通過局域網來通訊的,所以需要各個設備的IP地址,例如樹莓派的IP地址我們可以在樹莓派上手動設置為靜態的,但是無論是小米網關,還是博聯插座,其DHCP地址都不是固定的,所以我們就要在路由器內將這些設備的IP地址設為靜態:

不同的路由器設置不同,但大都在DHCP相關設置內,當然,也不排除某些路由器沒有相關設置(例如電信光貓):

然后我們需要一臺安卓手機來獲取小米網關的通訊密鑰:

這一段因為寫文的時候自己也沒有安卓手機了,所以大家跳轉到以下文章查看一、獲取網關基本信息這一章節:

【再更新】小米網關接入Homekit完整教程,聲控家中設備! - 小米社區官方論壇

bbs.xiaomi.cn直達鏈接

這兒需要提醒一下的是,打開局域網通訊協議后,一定要點確定。還有就是網關信息那一頁,請全部截屏或拍照記錄,這對之后的設置非常有幫助:

下面我們就去domoticz添加小米網關了,在瀏覽器中輸入domoticz的地址,我這依然拿http://192.168.10.24:8080舉例,點擊,設置>硬件

然后自己設置一個名稱,類型選擇Xiaomi Gateway(若沒有請跳轉前文,將domoticz升級至beta版),心跳時間可以隨意設置,樓主設的是10分鐘,如果10分鐘內收不到小米網關發來的任何信息,就會重啟小米網關的連接。然后遠端地址填寫小米網關的IP地址,端口為9898,密碼為剛才獲取的小米網關通信協議密碼,最后點擊增加。完成之后點擊設置>設備,此時你就應該看到滿屏的設備在你眼前了(若沒有,請點擊所有設備):

因為樓主已經做好了設置,所以名稱都已經改成了中文,而大家看到的可能都是設備的默認名稱。這時候你就需要剛才樓主讓你們截圖拍照保存的那張圖片,通過domoticz里面ID的后四位來修改對應設備的名稱。

一開始打開的時候所有的箭頭都是綠色(未使用),單擊以后就會變成藍色已使用。這里要注意的是,只有將設備標記為已使用,我們才能在導航欄的菜單里看到他們并進行控制。

添加完成后的效果,這兒還要注意的是,小米溫濕度傳感器會有三個設備號。分別是溫濕度,溫度,濕度。我們要分別使用溫度和濕度,因為復合數據是不被homekit支持的,也無法在domoticz里設置復合傳感器的聯動。

小米網關的添加就說到這,下面說博聯的(其他設置大家自行研究,純傻瓜式操作)。

博聯SPMINI的添加

之前的很多原創中,大家紛紛使用RM Bridge來將博聯設備連入其他智能家居平臺,但是使用RM Bridge必須需要一臺安卓設備做中轉,非常不便。不過有一篇原創提到了不需要安卓設備中轉的方法:

#原創新人# 群暉安裝broadlink-http-rest代替RMBridge看了本站兩位大神的帖子后學會了如何用Siri來控制普通家電,實現簡單的家居智能化。兩位大神的帖子鏈接解放你的雙手—讓普通家電也能被Siri召喚解放你的雙手—讓普通家電也能被Siri召喚自iOS10發布后,iphoner可以使用其中增加...

痞子小田|28評論22收藏289查看詳情

其中還有http-rest來操控RM2的紅外學習,不過樓主手上沒有RM2,所以這次我們就只說其中提到的python-broadlink的安裝。

其實使用wget python-broadlink可以非常方便的進行python-broadlink的安裝,但是樓主是下載下來裝的,所以就按已成功的方法說吧:

首先前往https://github.com/mjg59/python-broadlink

點擊綠色的Clone or Download,選擇download zip,將python-broadlink的源代碼下載下來,然后上傳至樹莓派。之前很多文章里都提到建立SMB服務來往樹莓派里寫文件,其實完全沒有必要。我們只需要下載一個filezilla通過SSH上傳文件就行,下載地址:http://sourceforge.net/projects/filezilla/files/FileZilla_Client/3.25.2/FileZilla_3.25.2_win32.zip/download

然后在站點管理器里新建一個SFTP站點:

用戶名和密碼都是樹莓派的密碼。然后連接。然后右側就是服務器目錄了。我是將剛才解壓好的文件直接放在了/home/pi/domoticz/scripts/python目錄下面。以下也按此舉例:

上傳完了之后我們關閉filezilla,然后繼續打開putty,登錄樹莓派,執行以下命令:

cd /home/pi/domoticz/scripts/python

此時我們進入了剛才上傳python-broadlink的目錄。執行ls命令:

確認有setup.py的腳本。然后我們執行:

python setup.py (忘了要不要在前面加sudo了,如果執行錯誤的話大家再加一個試試)

然后等到腳本自動執行完成,沒有出現任何error就可以了。

然后我們就需要編寫對SPMINI進行控制的腳本,此段腳本出處為(https://www.domoticz.cn/forum/viewtopic.php?f=25&t=14&p=25&hilit=broadlink#p25):

這里我們先新建一個叫spmini的腳本:

nano spmini.py

將以下腳本的IP地址和MAC地址修改后copy進去:

#!/usr/bin/python

import broadlink

import sys

device_ip="插座的IP地址"

device_port=80

device_mac="插座的MAC地址全部大寫"

device_type="broadlink.sp2"

action = str(sys.argv[1])

device = broadlink.sp2(host=(device_ip,device_port), mac=bytearray.fromhex(device_mac))

device.auth()

#device.host

if action == "on":

device.set_power(True)

elif action == "off":

device.set_power(False)

elif action == "status":

print "on" if device.check_power() else "off"

應該是下圖的樣子,大家檢查下沒有問題的話就ctrl+X選擇Y保存。

然后我們為這個腳本添加可執行權限:

chmod 777 spmin.py

然后我們試著執行一下腳本看看腳本有沒有問題:

python spmini.py on

python spmini.py off

同時觀察對應的博聯插座有沒有執行相應的開關操作:

如果腳本執行如上圖沒有任何錯誤的話,那我們就可以去domoticz里添加開關了。如果你有多個插座的話,只需要建立多個.py文件,將其中的IP和MAC地址更改成相應的插座地址就行。

我們打開domoticz,現在設置>硬件里添加一個虛擬硬件,名字隨便取,我取的是博聯開關,類型是Dummy,心跳時間為無效,點擊增加:

然后我們到開關頁面,選擇手動添加 燈/開關

設備名稱填你自己想要的,然后設為使用就好。然后我們編輯剛才添加的開關:

開觸發里填上:

script:///home/pi/domoticz/scripts/python/spmini.py on

關觸發里填上:

script:///home/pi/domoticz/scripts/python/spmini.py off

然后保存,頁面會跳回開關主頁面,這時我們點擊該開關的圖標,進行開關測試。若成功則算完成,要是失敗,則前往設置>日志查看具體的出錯信息。然后評論提交,看看樓主能不能解決。

這樣,我們就把小米和博聯的設備都添加到了domoticz。當然,如果我每次操作設備還需要打開瀏覽器,輸入domoticz的網址再進行操作的話,豈不是和之前開各種APP來操作沒什么區別,我要的不就是解放雙手,只動嘴不動手么。所以下面我們來說說如何使用SIRI來操控domoticz的設備。

HOMEBRIDGE的安裝

在安裝homebridge之前我們先做些準備工作,打開domoticz,選擇房間區域設置:

然后單擊新增房間區域,取個名字,點擊ADD,然后選擇剛才新建的區域,在下面的設備中將想在homekit中使用的設備一一添加到剛才新建的房間區域。

例如樓主的homekit使用的區域idx是2,包含以下設備:

然后我們putty到樹莓派,安裝相關環境

sudo apt-get install python

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

sudo apt-get install g++

然后安裝homebridge

sudo npm install -g --unsafe-perm homebridge

再安裝homebridge-edomotic

sudo npm install -g homebridge-edomoticz

然后我們進入homebridge目錄,設置config.json文件:

cd ~/.homebridge/

nano config.json

修改roomid為剛才在domoticz內建立的房間區域號后ctrl+x保存。

{

"bridge": {

"name": "Homebridge",

"username": "CC:21:3E:E4:DE:33",

"port": 51826,

"pin": "031-45-154"

},

"description": "Configuration file for (e)xtended Domoticz platform.",

"platforms": [

{

"platform": "eDomoticz",

"name": "eDomoticz",

"server": "127.0.0.1",

"port": "8080",

"ssl": 0,

"roomid": ,

"mqtt": 1

}

],

"accessories": []

}

如下圖:

然后命令行輸入homebridge,看看是不是可以運行。如果沒有任何的報錯信息,那么久打開你的iphone,家庭,添加家庭,輸入屏幕上的PIN CODE,看看domoticz里的設備是不是全部出現在了手機上。如果都有,那么恭喜你,我們下面只要將homebridge設置為開機啟動就完事大吉了。這里先ctrl+C退出homebridge,然后大家請參照下文的相關步驟進行操作:

當Homekit遇到小米智能家居從高中的時候就想打造一個智能臥室,如今5年已過才剛剛開始自從Homekit發布,就一直關注,因為一直是個果粉,但是信仰充值實在傷不起,homekit的配件實在是太貴。小米剛出的路由器。在插件里面有homekit的插件,但是價格太高,而且不實用,后期沒法自己加配件,只能用小米的配件。前幾天從威鋒論壇看

Yang_John|130評論186收藏1k查看詳情

Ctrl+F “將homebridge設置成隨系統啟動”開始往下看。

嗯,最后的命令打完,樹莓派就會重啟,等待2分鐘,打開手機上的家庭,如果所有傳感器都工作正常的話,就可以愉快的使用siri了。

本文暫且到這,因為自己對樹莓派和linux完全是小白,所以文中步驟可能有些瑕疵,大家若有發現請在評論指出。謝謝。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,739評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,634評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,653評論 0 377
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,063評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,835評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,235評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,315評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,459評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,000評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,819評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,004評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,560評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,257評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,676評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,937評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,717評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,003評論 2 374

推薦閱讀更多精彩內容