洗衣機的通知功能是我最早在 Home Assistant 完成的功能。
最初的需求是由於洗衣機跟烘衣機運作的聲音以及完成的提示聲響都很小聲,導致常常忘記自己在洗(烘)衣服。一開始都是衣服放進去洗之後看預估時間再另外設定計時器,但總覺得整個體驗應該再更聰明一點。
市面上的智慧插座除了提供開關控制以外,有些產品還提供了電量偵測以及用電量統計的功能。利用智慧插座偵測即時的功耗數據,來判斷洗/烘衣機是否開始洗衣與結束,並且即時把狀態發到 Line 通知上面以及指定裝置語音通知,這樣就可以很輕鬆掌握機器的狀態。
透過系統服務把訊息推送到 Line 上面 |
將插座接入 HA 以取得更多的控制
我使用的是 Tuya 的智慧插座,用 localTuya 接入 HA 之後,會有約 20 個實體可以新增
實際運轉透過交叉比對後,只取出四個實際上有用的實體:
開關控制 onoff(1)、功耗 Power(19)、電流 mA(18)與電壓 Voltage(20),重新命名好之後就可以透過 HA 控制與監控插座的狀態。
接入 HA 取用的實體,這次要用到的是功耗數值 |
新增一個虛擬開關
在 configuration.yaml 裡面新增一個 input_boolean 實體,實體名稱 washing_machine,顯示名稱 Washing Machine,並且指定 mdi:washing-machine 這個圖示。
input_boolean:
washing_machine:
name: Washing Machine
icon: mdi:washing-machine
新增這個虛擬開關有幾個作用,主要目的是利用開關的布林值來儲存洗衣機的狀態,由於機制是偵測智慧插座的功耗來進行,所以也利用這個狀態避免預期外的功耗變化導致誤判。
並且可以將狀態直接顯示在面板上進行監控。實際上不需要直接去控制與使用這個開關。
透過虛擬開關來模擬洗衣機的狀態 |
在面板上可以即時顯示狀態 |
到這邊準備工作就完成了,接下建立自動化
到這邊開始洗衣的部份就完成了,接下來再用同樣的方式設定完成洗衣、以及烘衣機的自動化就完成整個系統了alias: 開始洗衣服 #自動化名稱 trigger:
- type: power
platform: device
device_id:device_id
entity_id: 實體名稱
智慧插座
domain: sensor
above: 10
for:
hours: 0
minutes: 0
seconds: 10
#的 Power
sensor
屬性高於 10 ,超過 10 秒時觸發 condition:
- condition: state
entity_id: input_boolean.washing_machine
state: "off" #增加觸發條件 washing_machine 狀態為 off
action:
- service: notify.line_notification
data:
message: 開始洗衣服 #調用 line_notification 系統服務傳送文字訊息 - service: scene.turn_on
target:
entity_id: scene.nest_mini_yin_liang_70
metadata: {}
- service: tts.azure_cognitive_speech_say
data:
cache: true
entity_id: media_player.google_nest_mini
message: 開始洗衣服#調用
azure
TTS
系統服務
傳送文字轉語音訊息,透過 Google nest mini 發聲
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.washing_machine
#washing_machine 狀態設定為 on
mode: single
0 意見:
張貼留言