HomeAssistant Packages 優雅的管理YAML

利用Packages幫助你更好管理HomeAssistant YAML檔案

一般的寫法 😰

全部塞在同一檔案,頂多用註解去說明

❌ 缺點:東西一多,你會崩潰

configuration.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
weather:
# 天氣
- platform: darksky
#...

sensor:
# 天氣
- platform: darksky
#...

# 主機監控
- platform: command_line
#...
- platform: systemmonitor
#...

# 小米系列電量
- platform: template
#...

include拆分檔案方法 😥

試著把sensor拆出一個檔案

❌ 缺點:同樣是天氣的設定卻被拆在兩個檔案,之後要調整或刪除要開好幾個檔案編輯,東西一多也是崩潰

configuration.yaml

1
2
3
4
5
6
weather:
# 天氣
- platform: darksky
#...

sensor: !include sensors.yaml

sensors.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
# 天氣
- platform: darksky
#...

# 主機監控
- platform: command_line
#...
- platform: systemmonitor
#...

# 小米系列電量
- platform: template
#...

Packages寫法 👍

利用packages寫法把天氣的設定統一在一個地方了

✅ 優點:關於天氣的設定,都放在同一區塊,方便之後調整

❌ 缺點:還是在同一檔案,好像可以更好

configuration.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
homeassistant:
packages:
# 天氣
my_darksky:
weather:
- platform: darksky
#...
sensor:
- platform: darksky
#...
# 主機監控
sys_monitor:
sensor:
- platform: command_line
#...
- platform: systemmonitor
#...
# 小米系列電量
mi_battery:
sensor:
- platform: template
#...

Packages拆出檔案 👍👍

創建一個packages資料夾,資料夾裡面的檔案都會被整併進configuration.yaml

✅ 優點:把設定用檔案分開,方便之後要調整,甚至要移除的話只要移出去資料夾

configuration.yaml

1
2
homeassistant:
packages: !include_dir_named packages

packages/darksky.yaml

1
2
3
4
5
6
7
8
# 天氣
weather:
- platform: darksky
#...

sensor:
- platform: darksky
#...

packages/sys_monitor.yaml

1
2
3
4
5
6
# 主機監控
sensor:
- platform: command_line
#...
- platform: systemmonitor
#...

packages/mi_battery.yaml

1
2
3
4
# 小米系列電量
sensor:
- platform: template
#...

參考