想控制家裡的所有家電帶你深度剖析homeassistant

前面幾篇已經介紹了homeassistant可以方便地連接各種外部設備(智能設備、攝像頭、郵件、短消息、雲服務等,成熟的可連接組件有近千種),手動或按照自己的需求自動化地聯動這些外部設備,構建隨心所欲的智慧空間。以及如何在樹莓派和群暉NAS上安裝搭建homeassistant系統,依然已經可以配置好了homeassistant系統,我們就需要系統的學習homeassistant的組成以及配置文件格式和構成,進而更好的使用homeassistant,下面筆者帶大家系統的學習homeassistant的架構和配置。

一、hass是HomeAssistant運行的程序實例

想控制家裡的所有家電帶你深度剖析homeassistant

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

配置文件決定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的世界中獲得精彩的生活!


分享到:


相關文章: