ก่อนที่จะสร้าง Node-RED Workflow มาทำความเข้าใจในส่วนของการ tracking กันก่อนครับ ใน Home Assistant ถ้าต้องการจะ tracking ว่าสมาชิกในบ้านคนนี้ อยู่บ้านหรือไม่ สามารถ tracking ได้หลายๆทางเพื่อความแม่นยำ โดยสามารถเข้าไปเซ็ตได้ใน Configuration > People จะมีให้ใส่ device สำหรับการ tracking
ซึ่งผมได้ tracking จาก 2 ทางคือ
- Entity จากแอพ Home Assistant ในมือถือ โดยจะเช็คจาก Location ล่าสุด ว่าอยู่ในบริเวณบ้าน หรือ ออกนอกบริเวณบ้านไปแล้ว
- และเนื่องจาก MikroTik integration สามารถดึง Entity ของอุปกรณ์มือถือที่เชื่อมต่อใน Network มาได้ จะทำให้เราเช็คได้ว่า ถ้ามือถือเครื่องนี้ต่อ Wifi อยู่แสดงว่าอยู่บ้าน
(จริงๆแค่ track จาก Location ใน App มือถืออันเดียวก็เพียงพอแล้ว แค่ผมเอา entity จาก MikroTik มา track เพิ่มเพื่อความแม่นยำ)
มาสร้าง Node-RED Workflow กันเลยดีกว่าครับ
1.เริ่มจากสร้าง events: state มาเช็ค state ของ person ที่ต้องการติดตาม ดูว่าถ้าไม่อยู่บ้าน (not_home) ก็ให้ทำ Node ถัดไป
2.เพิ่ม delay หน่วงเวลาไป 1 ชั่วโมง
จะตั้งเวลาเท่าไรนั้น ขึ้นอยู่กับความเหมาะสมครับ เช่นอย่างของผมตั้งเวลาไว้เผื่อเดินไปเซเว่นใกล้บ้านแล้วกลับมาไม่เกิน 1 ชั่วโมง
3.หลังจาก ครบ 1 ชั่วโมงแล้ว เช็ค current state ดูว่าถ้าหาก state ยังขึ้นเป็น not_home ก็ให้ทำ Node ถัดไป
4.หลังจากนั้นเช็ค current state ของแอร์ว่ายังเปิดอยู่ไหม ถ้าแอร์ยังเปิดอยู่ก็ให้ทำ Node ถัดไป
5.หลังจากเช็คว่าถ้าแอร์ยังเปิดอยู่ ก็ทำการ call service สั่งให้ปิดแอร์
6.ทำการ call service notify เพื่อทำการแจ้งเตือนในแอพ Home Assistant ว่า "ดำเนินการปิดแอร์ให้แล้วเนื่องจากคุณลืมปิดแอร์"
(ขั้นตอนนี้อาจจะปรับเปลี่ยนไปใช้เป็น LINE Notify หรือ Notify อื่นๆก็ได้นะครับ)
ดูข้อมูลเพิ่มเติมสำหรับการส่ง notify ได้ที่
https://www.home-assistant.io/integrations/notify/
หลังจากนี้เมื่อออกจากบ้านและลืมปิดแอร์ภายใน 1 ชั่วโมงก็จะมี Notification แจ้งเตือนในมือถือและ Node-RED ก็จะสั่งปิดแอร์ให้เราอัตโนมัติ
Top comments (0)