iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
1
IoT

30天入門智慧家庭系列 第 11

Day 11 Home Assistant 架構

  • 分享至 

  • xImage
  •  

Home Assistant 架構

系統架構

架構圖

Home Control

Home Control 是 Home Assistant 的核心,負責蒐集資訊並執行命令。依照使用者指令,控制所有的設備。

Home Automation

根據使用者事先設定的規則來執行。簡單的說就是自動化,例如我們會想要夏天天氣熱時,剛到家門口,冷氣先幫我們開啟來預冷。這時就可以設定如下:

  • trigger:每天
  • Connection:我在位置在家、溫度大於28度
  • Action:開啟冷氣

Smart Home

根據之前出現過的行為執行的命令。(目前 Home Assistant 尚未實現這個部分,或許是指透過過去的行為來決定要執行甚麼指令,machine learning 的概念?)

Internet of things

我們的設備,包含我們的燈、網關、音箱...。

Home Core 架構

Home Core 由 Event BusState MachineService RegistryTimer 這四個部分組成。
Home Core 架構圖

Event Bus

Event Bus 是 Home Core的核心,是整個 Home Assistant 核心。Evnet Bus 負責管理每個 Event,處理各 Event 間數據的傳輸。
例如:當我們今天天氣很熱,想要開冷氣。我們可以設定溫度計溫度超過某溫度時就會發起一個高溫訊息 (Firing events),而我們就不需要知道溫度幾度,監看溫度計有沒有發出高溫訊息(Listening to events),就可以決定要不要開啟冷氣。

State Machine

State Machine 負責監控,當一有設備更改狀態時,會發送一個 state_changed event。

Service Registry

負責監聽 Event Bus 是否有 call_service 這個 Event,並允許其他的程式來註冊 Service。

Timer

Timer 每秒會發送一個 time_changed 的 Event 給 Event Bus,讓 Event Bus 知道過了一秒。例如: 當我們有一個設備需要每分鐘去檢查一次狀態時,我們可以設定 Home Assistant 的 scan_interval:60 讓 Home Assistant 每 60 秒去詢問一次狀態,Timer 這裡就負責當計時的腳色。

小結

Home Assistant 的架構主要分成三大部分,Home Control (Home Assistant的核心)、Home Automation (建立自動化規則)、Internet of things (設備)。透過核心的 Event Bus 將設備發起的 Event 通知使用者或是依照使用者建立的自動化規則執行指令。


上一篇
Day10 Home Assistant UI LoveLace
下一篇
Day12 ESP8266
系列文
30天入門智慧家庭15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言