本帖最后由 chinyaolin 于 2020-1-2 15:27 编辑
有的時候, 我們撰寫的 config 中會有大量重覆內容
例如我為了整合 google voice 而又不想讓所有的實例都開放
project_id: yyyy-123456789
service_account: !include ksekcfg_135.json
report_state: true
expose_by_default: false
entity_config:
#
# 後陽台電燈
#################################################################################
light.hassmart_2ch_aaa1b8_lt2:
name: 電燈
expose: true
room: 後陽台
#
# 餐廳電燈
#################################################################################
light.hassmart_1ch_aa3c65_lt1:
name: 電燈
expose: true
room: 餐廳
#
# 餐廳吊燈
#################################################################################
light.hassmart_3ch_aa4dfb_lt1:
name: 吊燈
expose: true
room: 餐廳
#
# 客廳電視機
#################################################################################
switch.benq_55sw700:
name: 電視機
expose: true
room: 客廳
aliases:
- 電視
當設定的實例愈來愈多時, 維護內容將變得令人厭煩,
有沒有更好的方法呢?
其實, YAML 與 JSON 基本上是相同的, 試試看這個吧 Yaml to json converter
以下這段 YAML 代碼
light.hassmart_1ch_aa3c65_lt1:
name: 電燈
expose: true
room: 餐廳
可以轉換為
{
"light.hassmart_1ch_aa3c65_lt1": {
"name": "電燈",
"expose": true,
"room": "餐廳"
}
}
接著做點小調整, 將雙引號去除, 換行符號去除, 保留 YAML 的空格縮進
light.hassmart_1ch_aa3c65_lt1: {room: 主臥室, name: 電燈, expose: true}
再整理一下, 看起來是不是清爽多了
|