บทความ

ไม่ว่าจะ ข่าวสาร บทสัมภาษณ์ และ Digital Skill บนสื่อ
มีให้คุณได้อ่านบทความดี ๆ มากมายแล้วที่นี่

รู้จัก Home Assistant (ตอนที่ 4)

รู้จัก Home Assistant (ตอนที่ 4)

สวัสดีค่ะท่านผู้อ่านทุกท่าน

วันนี้เราจะกลับมาพบกับ Home Assistant กันอีกครั้งนะคะ 
จากบทความก่อน เราเริ่มติดตั้งและปรับแต่งกันไปบ้างแล้ว อย่างเช่นพวกสวิตซ์ (Switch) เปิดปิดไฟต่างๆ มีใครพอจะนึกออกบ้างไหมคะว่าถ้าเรามีสวิตช์ หลอดไฟ หรือเซ็นเซอร์ จำนวนมากๆ มันจะเป็นเกิดเหตุการณ์ยังไง? ถ้าใครนึกไม่ออกลองดูภาพข้างล่างนี้ค่ะ

ภาพตัวอย่างของ Sensor ที่ไม่มีกลุ่มค่ะ


เข้าใจเลยใช่ไหมคะว่าถ้าเรามีจำนวนอุปกรณ์มากๆ หรือถ้าเราต้องการจัดหมวดหมู่ของอุปกรณ์ โดยแบ่งกันไปเป็นห้อง หรือชั้นต่างๆ หากอุปกรณ์มีเยอะมากๆ ก็คงจะปวดหัวน่าดูเลยนะคะ 


Home Assistant Group Component

วันนี้เรามาเรียนรู้วิธีการจัดการเรื่องพวกนี้ด้วย Group กันนะคะ หน้าตาของ Group ก็จะหน้าตาประมาณนี้ค่ะ สวยงามตามท้องเรื่อง

ตัวอย่างของ Home Assistant ที่มีการจัด Group


สำหรับบทความนี้ Group เป็นสิ่งที่จะมาช่วยเราแก้ปัญหาและอัพเกรดเลเวลของเราเพิ่มขึ้นค่ะ แต่เราจะต้องมารู้จัก Home Assistant เพิ่มขึ้นกันอีกนิดนะคะ ซึ่งสิ่งที่เราจะต้องเรียนรู้กันต่อไปก็คือ Entities, Groups และ Viewsค่ะ


เริ่มต้นสร้าง Group

ก่อนที่เราจะสร้าง และเพิ่มอุปกรณ์เข้าไปใน Group นั้น เราต้องเข้าใจ Default groups กันก่อนนะคะ เดี๋ยวจะงงกันไปก่อน ว่าทำไมหลอดไฟ (Light) ของสวิตช์ (Switch) ของเราไปโผล่ใน Group ได้ยังไง?

Default groups

ใน Home Assistant จะมี Default Group ด้วย ซึ่งบาง Component จะสร้าง Group พิเศษขึ้นมา

ซึ่งทั้งหมดจะขึ้นต้นด้วยชื่อแบบนี้ group.all_ ซึ่งหน้าตาก็จะประมาณข้างล่างนี้ค่ะ

  • group.all_switches
  • group.all_lights
  • group.all_devices
  • group.all_scripts
  • Group.all_automations

ซึ่งเราสามารถดูได้จากกด Developer ToolsStates

แสดงข้อมูล Entity ทั้งหมดจากกลุ่ม Light


เมื่อเราใช้งาน Component ประเภทหลอดไฟ (Light) หรือประเภทสวิตช์ (Switch) มันจะถูกเพิ่มเข้าไปใน Group ประเภทของตัวเองอัตโนมัติ (Lights, Switches) แต่อาจจะเรียงลำดับไม่ถูกใจเรา ถ้าอยากให้จัดเรียงอยู่ตำแหน่งให้ได้ดั่งใจ ให้ใช้ order เข้ามาช่วยตาม Configuration ข้างล่างเลยนะคะ

https://gist.github.com/hassy-bloggy/bbc510167417755ecdd547366c95dc17


การแสดงผลจาก Group Switch

โดยปกติแล้วทุกๆ Group จะถูกเรียกมาให้แสดงในแท็ป HOME ค่ะ แต่หากว่าเรามีการสร้าง default_view และ view: true ภายใต้ Group จะถือว่าเราต้องการสร้างหน้า Home เองทั้งหมด (Override หน้า Home เดิม)

เมื่อได้ข้อมูลดังนี้แล้วเราลองเล่นในแบบต่างๆ ตาม Configuration นี้ดูนะคะ

https://gist.github.com/hassy-bloggy/5beb3c0dd7acdc869728c8840f79a7d8


ผลลัพธ์จะออกแบบมาเป็นหน้า Application ที่มี Tab โผล่มาอีก 2 อันคือ Room 1 และ Room 3 ส่วน Room 2 จะไม่แสดงเป็น Tab แต่จะแสดงเป็น Group ในหน้า Default View แทน

อย่าเพิ่งงงนะคะ เรามาดูภาพกันดีกว่าค่ะ ซึ่งเราจะได้ผลลัพธ์ออกมาแบบนี้

เมื่อเราปรับ Configuration ในส่วนที่เป็น default_view แล้วกำหนด view: true

group:
default_view:
view: true
icon: mdi:home
entities:
- group.room_2
- light.mock_laris_light_00a
- light.mock_laris_light_00b
- switch.laris_plug_00a
UI แสดงผลตาม Configuration ของหน้า Home


หลังจากพูดถึงหน้า default_viewไปแล้ว เราก็จะมาดูค่า Configuration ของ แท็บ Room 1 กันบ้างนะคะ แทบจะเหมือนกันเลย เพียงแค่ตั้งค่า view: trueเพื่อให้แสดงเป็น Tab ขึ้นมาอีกหนึ่งอันข้างบน

Room 1:
view: true
entities:
- light.mock_laris_light_00c
- light.mock_laris_light_00d
- switch.laris_plug_00b
UI แสดงผลตาม Configuration ของหน้า Room 1


จะเห็นว่าเราสามารถสร้าง Tab ใหม่ได้ง่ายๆ โดยการกำหนด view: trueเราก็จะได้หน้า หรือ Tab ใหม่ขึ้นมาเลย


Entity Id

แต่ทำมาถึงตรงนี้สงสัยกันมั้ยคะว่าจะเอาชื่อ Entity Id มาใส่ Configuration ได้จากที่ไหน?คำตอบอยู่ที่ไอคอน State <>หลังจากกดเข้ามาหน้า State แล้วเราจะพบกับ Entity Id ของทุกอุปกรณ์ใน Home Assistant ของเราค่ะ

หน้า Developer Tools → State แสดง Entity Id ของระบบ
ในหน้า Developer Tools จะบอกชื่อ Friendly Name และ Entity Id เราก๊อบส่วนที่เป็น Entity Id มาใช้ได้เลยค่ะ เมื่อเอามาทำ Group เราก็จะได้ Configuration ออกมาประมาณนี้ (แบบข้างบนเลยค่ะ)


group:
default_view:
view: true
icon: mdi:home
entities:
- light.mock_laris_light_00a
- light.mock_laris_light_00b
- switch.laris_plug_00a
- group.room_2
Room 1:
view: true
# icon: mdi:ninja
entities:
- switch.laris_plug_00b
- light.mock_laris_light_00c
- light.mock_laris_light_00d
Room 2:
view: false
entities:
- switch.laris_plug_00b
- light.mock_laris_light_00c
- light.mock_laris_light_00d
Room 3:
view: true
entities:
- group.room_2
- light.mock_laris_light_00a

เป็นยังไงกันบ้างคะ หลังจากที่เราปรับแต่ง Group กันไปอย่างเข้มข้นแล้ว ตอนนี้ Smart Home App เราคงจะมีสีสัน และน่าสนใจมากขึ้นแล้วใช่ไหมคะ

คราวหน้าเราจะเริ่มไปลุยกันเรื่องอื่นกันบ้างแล้วนะคะ แล้วพบกันตอนหน้าค่ะ


Laris | IoT

04/05/2019