前面幾篇已經介紹了homeassistant可以方便地連接各種外部設備(智能設備、攝像頭、郵件、短消息、雲服務等,成熟的可連接組件有近千種),手動或按照自己的需求自動化地聯動這些外部設備,構建隨心所欲的智慧空間。以及如何在樹莓派和群暉NAS上安裝搭建homeassistant系統,依然已經可以配置好了homeassistant系統,我們就需要系統的學習homeassistant的組成以及配置文件格式和構成,進而更好的使用homeassistant,下面筆者帶大家系統的學習homeassistant的架構和配置。
一、hass是HomeAssistant運行的程序實例
![想控制家裡的所有家電帶你深度剖析homeassistant](http://p2.ttnews.xyz/loading.gif)
hass由內核(core)和組件(component),兩部分的邏輯組成。如果將hass比作人體的神經系統,那麼內核就是中樞神經系統(大腦),組件就是周圍神經系統。
1. hass內核的基礎工作機制是簡單的,理解了狀態、事件、服務三個概念,就理解了內核;其簡單性類似於大腦的基礎工作機制,僅是神經元的相互作用而已。
2. hass內核並不與外部世界直接互動,而是通過組件連接外部世界;類似於大腦並不直接與感覺器官、運動器官連接,而是通過周圍神經系統進行連接。
比如,light.hue組件負責與飛利浦HUE智能燈的互動(感知與設置其當前狀態)。
比如,camera.mjpeg組件負責獲得攝像頭的標準MJPEG視頻流。
比如,sensor.yr組件負責與yr.no雲服務通訊,獲得天氣信息。
比如,http組件負責對外提供的http協議服務。
比如,ifttt組件,負責與INTERNET上另一個大腦(IFTTT)的通訊與互動。
3. 組件與組件之間會有相互的交互,但一般會通過hass內核中的狀態、事件、服務機制來進行;類似於眼睛與手不會直接相互作用,但都連接到大腦,由大腦協調它們的相互作用。
4. HomeAssistant中有一些組件並不與外部世界連接,而僅是獲取內部的信息狀態,然後運行邏輯規則;有點類似於周圍神經系統中的本體感覺神經,僅僅用於獲得自身肌肉與關節的狀態。
比如,automation組件,在hass內核信息基礎上,運行自動化規則邏輯。
5. HomeAssistant中有近千種不同的組件——這是其能與豐富的物聯世界協同交互的基礎——並且數量在快速的增長。
二、hass有一個配置文件configuration.yaml
![想控制家裡的所有家電帶你深度剖析homeassistant](http://p2.ttnews.xyz/loading.gif)
配置文件決定hass加載哪些組件,以及這些組件該如何運行——與神經系統的構建受基因控制類似。
· 比如,camera.mjpeg組件的配置信息包含應該連接哪個地址的攝像頭抓取視頻流。
· 比如,sensor.yr組件的配置信息包含應該獲取哪個地方的什麼時間的天氣預報。
· 比如,http組件的配置信息包含對外開放的端口號、訪問密碼等信息。
· 比如,automation組件的配置信息包含如何聯動的邏輯規則。
三、hass基於Python環境運行
如果說hass是神經系統,那麼操作系統就像基礎生命系統,Python環境就像血液循環系統——hass運行在操作系統之上,Python環境為其提供必要基礎的支持。
作為一個HomeAssistant的使用者,您並不需要掌握python編程語言,只要安裝它的環境就可以了。
四、還有一些周邊系統
上面介紹的hass(內核和組件)、hass配置、python環境架構了一個完整的HomeAssistant運行體系。除此之外,還有一些周邊系統——對於HomeAssistant來說,它們並不是必須的,僅從某個側面幫助HomeAssitant的安裝、運行、或者讓配置更方便——就像眼鏡、助聽器,或者醫院、車輛、馬路,有了這些東西,人類在某些方面會生活更好。
例舉一些常用的:
1. Hass.io
Hass.io主要應用於樹莓派上。不要認為hass.io與HomeAssistant的輸入輸出有關係,Hass.io幫助你在你的設備上管理一些應用(稱為Add-ons),包括安裝、升級。 hass.io中支持add-ons包括Duck_DNS(一個動態IP域名解析服務)、Let's Encrypt(自動管理你的ssl數字證書)、Mosquitto MQTT broker(一個MQTT代理服務實現)、SSH_Server、Samba(共享文件夾服務)、DHCP_Server、Snips.ai(一個本地運行的語音識別應用)、等等。
2. Hassbian
Hassbian是一個在樹莓派上定製的操作系統,此操作系統專門用於安裝HA系統。Hassbian並不像Hass.IO那樣提供升級管理服務。
3. AppDaemon
AppDaemon基於HomeAssistant的API,為用戶提供更好的與HomeAssistant互動的python環境,一般用於編寫自動化規則程序。HomeAssistant自身帶的自動化組件非常簡潔,在很多情況下工作良好;然而,有一些更復雜的自動化,HomeAssistant的自動化組件比較難應付,於是就產生了AppDaemon。
4. HADashboard
HaDashboard是一個模塊化的、可換膚的HomeAssistant前端儀表面板,可用於大屏幕顯示。HaDashboard是基於AppDaemon的(必須安裝AppDaemon才能安裝HaDashboard)。
5. Jupyter Notebook
提供基於瀏覽器的文件管理、遠程終端、以及python的開發調試界面——如果您將HomeAssistant安裝於Linux(包括樹莓派)之上,可以用它方便管理。
6. DuckDNS
一個免費的動態域名服務。
7. ……
HomeAssistant世界是豐富多彩的。理清上述的這些概念,是走進HomeAssistant世界的第一步。祝您在HomeAssistant的世界中獲得精彩的生活!
閱讀更多 一目魚 的文章