รีวิว Aqara Smart Knob Switch H1

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

แกะกล่อง

ตัวกล่องมาเป็นกล่องกระดาษแข็ง ยอมรับเลยว่าถือว่า ดีกว่ากล่องอุปกรณ์ Smart Home หลาย ๆ เจ้ามาก ๆ ถ้าเป็นเจ้าอื่น เขามาเป็นกล่องกระดาษเหมือนกัน แต่มันไม่เป็นกล่องแข็งขนาดนี้ อันนี้มาเป็นเหมือนกล่อง iPhone เลยค่าาา พร้อมเขียนเป็นภาษาจีนอะไรสักอย่าง แต่เราอ่านไม่ออก อ่านออกแค่ว่า H1 เท่านั้นแหละ และมีรูปของตัวปุ่มมา เป็นสีดำ (ตอนแรกก็คือว่า เห๋ มันมาสีขาว หรือดำนะ)

ด้านข้างเดาว่า น่าจะเป็นพวก Feature ต่าง ๆ ของตัวปุ่ม คืออ่านภาษาจีนไม่ออกไง เราไม่เห็นในหน้าเว็บ Global เลยเดาว่า มันน่าจะเป็นรุ่นที่ขายเฉพาะในจีนแล้วเอาออกมาเหรอ หรือว่า มันขายทั่วโลกแต่ร้านเอาเวอร์ชั่นที่ขายในจีนเข้ามา ลักษณะแบบนี้เราเจอได้บ่อยเช่น เครื่องฟอกอากาศของ Mi บางอัน Global Version บางอันก็ CN Version

แน่นอนว่า ด้านหลังที่เป็นรายละเอียดแน่นอนว่า เป็นภาษาจีน แต่เดาได้ว่า น่าจะเป็นถ่านใส่ CR2032 ทั้งหมด 2 ก้อน และเชื่อมต่อผ่าน Zigbee ทำให้เราไม่กังวลว่า มันจะเชื่อมต่อกับระบบของเราได้มั้ย เพราะ Zigbee ส่วนใหญ่จะเชื่อมต่อได้กันหมด (หากเราใช้พวก ZHA และ Zigbee2MQTT)

เปิดกล่องมา จะพบกับตัว Knob วางอยู่ในกล่องอย่างเรียบร้อย แต่ไม่มีอะไรหุ้มมากันรอยอะไรทั้งนั้น แต่ว่า Packaging เขาทำมาฟิตกับตัว Knob พอดีมาก ๆ เลยไม่คิดว่ามันน่าจะโดนหรือกระทบอะไรระหว่างเดินทางได้สักเท่าไหร่

หลังจากเอา Knob ออกมา เราจะเจอกับคู่มือการใช้งาน แน่นอนว่าเป็นภาษาจีน อ่านไม่ออก

นอกจากคู่มือแล้ว เขามีแผ่นการ์ด ซึ่งจริง ๆ มันคือแผ่นกาวสำหรับติดตัว Knob เข้ากับกำแพง ใช่แล้ว เขาทำมาให้มีตัวเลือกให้เราสามารถ Mount กับกำแพงได้ หลายวิธี ตั้งแต่ การใช้น๊อตยึดกับกำแพง และอีกวิธีการที่ง่ายที่สุดคือ การติดกาวเข้ากับกำแพงเลย เพราะตัวมันไม่ได้หนักขนาดนั้น และ ไม่ได้เสียบสายอะไรเพิ่ม ทั้งกล่องมีเท่านี้แหละ หมดแล้ว

Aqara Smart Knob Switch H1

Aqara Smart Knob Switch เป็น Switch ที่สามารถหมุนเพื่อปรับค่าต่าง ๆ ได้ตามที่เราต้องการ จะเห็นจากภาพว่า ในตัว Switch มันไม่มีอะไรเลย นอกจาก Knob สำหรับหมุนอย่างเดียว โล่ง ๆ เลย วัสดุเราว่ามันพอใช้ได้เลยละ ติดออกมาแล้วดู Premium ใช้ได้เลยนะ เข้ากับผนังบ้านในไทยโอเค ดู Modern ได้อยู่

ด้านหลัง เราจะเห็นว่า มันมีขอบด้านบน และ ล่าง ที่ทำจากยาง เผื่อว่า เราเอาไปวางบนโต๊ะจะได้ไม่ลื่นไปลื่นมา และมี QR Code สำหรับ Install Code เดาว่า น่าจะสำหรับการติดตั้งกับฝั่ง Aqara แหละ ซึ่งเราไม่ได้ใช้

ด้านข้านึง เขาจะมีช่องสำหรับให้เรางัดเพื่อเปิดฝาได้ เหมือนกับพวก Wall Switch ทั่ว ๆ ไปที่เราสามารถงัดหน้ากากออกมาเพื่อ Maintenance ได้

เปิดฝาออกมา เราจะพบกับตัวแผงวงจร ดูจาก Element ไม่น่ามีอะไรซับซ้อนมาก เพราะอย่าลืมนะว่า มันไม่ได้ทำอะไรมาก นอกจากรับค่าจาก Knob และ ส่งข้อมูลกลับไปให้ Zigbee Hub แค่นั้น ไม่ได้ประมวลผลอะไรมากมาย และส่วนสำคัญที่เราจะต้องยุ่งด้วยคือ ถ่าน CR2032 จำนวน 2 ก้อน หวังว่ามันจะอยู่ได้ยาวนานละนะ

การติดตั้ง

การติดตั้ง เราเลือกติดตั้งโดยการใช้กาวนี่แหละติดกับกำแพงโดยตรงเลย เพราะอย่างที่บอกว่า น้ำหนักของมันไม่ได้หนัก และ เราไม่ต้องเสียบสายไฟอะไร ใส่ถ่านกันอยู่แล้ว เราสามารถเอาแผ่นกาวที่มาในกล่องติดกับตัว Switch ได้ตรง ๆ เลย

โดยเราเลือกติดคู่กับ Switch ไฟในห้องของเราเอง ต้องบอกเลยว่า มันไม่เข้ากันเท่าไหร่ เพราะผิวของ Sonoff มันออกเงา ๆ แต่ H1 Knob มันออกด้าน ๆ คิดว่า น่าจะต้องเปลี่ยน Sonoff ออก เผื่อจะเข้ากันมากกว่านี้ เดี๋ยวขอไปหาก่อนนะว่า มีตัวไหนที่น่าสนใจ ไว้จะมาแชร์ให้อ่านกัน เวลาที่ใช้ คิดว่าไม่น่าเกิน 2 นาที เรียกว่าง่ายมาก ๆ ใคร ๆ ก็ทำได้สบาย ๆ เลยละ

ZHA & Home Assistant Integration

มาถึงจุดที่น่าสนใจนั่นคือการ Integrate มันเข้ากับระบบ Smart Home อย่าง Home Assistant แต่สำหรับคนที่ไม่ได้ใช้ Home Assistant เรายังสามารถใช้งานกับ Aqara Hub ได้ปกติเด้อ

ต้องบอกก่อนว่า Zigbee Device ของ Aqara ค่อนข้างมีปัญหากับ ZHA มาก ๆ ณ วันที่เขียนบางตัวไม่สามารถใช้งานได้ บางตัวใช้งานได้บางอย่างเท่านั้น แต่สำหรับคนที่ใช้ Zigbee2MQTT เท่าที่อ่านใน Forum มา ไม่ค่อยเจอปัญหาหาเท่าไหร่ ทำให้เราเห็นบางคนเขาใช้วิธีทำ Zigbee Coordinator 2 ตัวไปเลย ตัวนึงเป็น ZHA และอีกตัวเป็น Zigbee2MQTT แต่เราก็ไม่อยากทำอะไรให้ยุ่งยากแบบนั้น เราเลยไปหาวิธีอื่นละกัน

สำหรับการ Pair Aqara H1 Knob เราสามารถทำผ่านหน้า Device Pairing ได้ตรง ๆ ถึงจะเป็น ZHA มันสามารถ Detect อุปกรณ์ได้ตามปกติ แต่เมื่อ Listen ZHA Event ตามปกติ และกดปุ่มหรือทำอะไรกับ Knob มันไม่มี Event อะไรเกิดขึ้นเลย แต่เราไปดู Log ใน Coordinator มันบอกว่า มันได้รับ Zigbee Packet จาก Knob กลับมา แปลว่า ปัญหาไม่ได้อยู่ที่การเชื่อมต่อระหว่าง Knob และ Coordinator อยู่ที่ ZHA คุยละ

เลยไปนั่งคุ้ย Forum หลาย ๆ ฝั่ง จนมาเจอว่า อ๋าาาา พวก Zigbee Device ของ Aqara เนี่ย มันมีปัญหากับ ZHA อยู่ ยังไม่ได้ Support ซึ่งมีคนเขียน Custom Quirks ออกมาแล้ว ซึ่ง Zigbee2MQTT เขาทำ PR แล้ว Merge เข้าไปแล้ว แต่..... ZHA ยัง ทำให้เราไม่สามารถใช้ Zigbee Device ของ Aqara ได้แบบ Out-of-the-box เราจำเป็นต้องติดตั้ง Custom Quirks เข้าไปเองก่อนในช่วงที่เขายังไม่ได้ Merge เข้า Repo ของ ZHA อะนะ

Custom ZHA quirk for Aqara H1 Knob Wireless
Custom ZHA quirk for Aqara H1 Knob Wireless. GitHub Gist: instantly share code, notes, and snippets.

สำหรับใครที่ใช้ ZHA แบบเราสามารถเข้าไปจิ้ม Custom Quirks ที่ Community เขียนไว้และ เรียกจาก Config ของ Home Assistant ได้เลยเด้อ

เอาหละพวกแกร์ Event เด้งละ พวกการดัก Event การกดต่าง ๆ ตั้งแต่ Tap, Double Tap และ Long Tap มันไม่ยากเพราะ เราอ่านได้จากช่อง Command ได้เลย ไม่ยาก ๆ อีซี่ ๆ เอาง่าย ๆ เราสามารถทำผ่าน Integration ชื่อว่า Event Sensor หรือใครจะไปเขียน Trigger อะไรเองก็เอาเลยฮะ อันนั้นเราไม่ขัดศรัทธาเท่าไหร่ แต่เราไม่ได้ว่างขนาดนั้น เอาง่ายที่สุดละกันเรียก Event Sensor Integration เอา

ถึงจะใช้ Event Sensor แล้ว มันยังมีปัญหากับการหมุน Knob อยู่ดีว่า ข้อมูลที่เราต้องการจาก Knob คือ เราหมุนด้านไหน และ เราหมุนไปเท่าไหร่ เพื่อเอาไปทำ Automate บางอย่าง แน่นอนว่า เราสามารถดูจาก Event ได้ ตั้งแต่เริ่มโดย Command จะเขียนว่า start_rotation แล้วเมื่อเราหมุนไปมันจะโยนอีก Event เข้ามาเป็น rotation และสุดท้าย เมื่อเราหยุดหมุนมันจะพ่นมาเป็น stop_rotation ซึ่งเราน่าจะดักได้จาก stop_rotation ได้แล้วอ่านทิศจากช่อง rotation_direction ได้และเราหมุนไปเท่าไหร่อันนี้ยากหน่อยคือ เราจะต้องอ่านจาก rotation_percentage ตอนเราหยุดหมุนลบกับตอนเราเริ่มหมุน เราจะได้ Delta Percentage ออกมา อันนี้แหละ เราสามารถเอาค่านี้ไปใช้ได้ละ หรือถ้าเราอยากจะให้มันมีการเปลี่ยนแปลง หรือเอาไปลง Automation ตอนที่เราหมุนแบบ Real-time เราสามารถอ่านช่วงที่เราหมุนแล้ว Call Service เอาได้เลยก็ได้เหมือนกัน

Aqara H1 Rotary Dimmer Switch Dial - Remote
Hey all, I finally got my hands on an Aqara H1 Rotary Dimmer Switch, a ZigBee device that makes for a neat remote. Using an existing blueprint as a reference, I was able to put together a blueprint that allows you to trigger different actions for the five different controls on the device (single press, double press, long press, rotate left, rotate right). NOTE: This device is not currently supported in ZHA, and requires a custom quirk (available here: Custom ZHA quirk for Aqara H1 Knob Wireles…

แต่...... ถ้าเราทำแบบนั้น รับรองว่า ชิบหายการช่าง Setup ไม่จบในคืนเดียวแน่นอน เราเลยไปลองหามาจนเจอว่า เข้ !! มีคนทำ Blueprint สำหรับ H1 Knob ไว้ด้วยเว้ย เราไม่ต้องทำอะไรเลย ขอบคุณ nwithan8 มาก ๆ

service: light.turn_on
target:
  entity_id:
    - light.yeelight_master_bedroom_inner_ceiling_lightstrip_1
    - light.yeelight_master_bedroom_inner_ceiling_lightstrip_2
    - light.yeelight_master_bedroom_outer_inner_ceiling_lightstrip_1
    - light.yeelight_master_bedroom_tv_table
data:
  brightness: >
    {% if state_attr('light.yeelight_master_bedroom_inner_ceiling_lightstrip_1',
    'brightness') <= 20 %}
      0
    {% else %}
      {{ state_attr('light.yeelight_master_bedroom_inner_ceiling_lightstrip_1', 'brightness') - 20 }}
    {% endif %}

เราสามารถ Import Blueprint เข้ามา และตั้ง Automation ได้ตรง ๆ เลยว่า ถ้าเจอ Event การกด หรือการหมุนไปด้านไหนแล้วจะให้มันทำอะไรบ้าง เช่นเราเอง เราเอามาใช้เป็นตัวคุมความสว่างของ Lightstrip บนฝ้าห้องนอนเราเอง อันนี้เป็นสิ่งที่ให้มันทำเมื่อเราหมุนซ้าย หรือลดความสว่างของ Lightstrip ซึ่งเราสามารถทำได้ โดยการใส่ "brightness" ลงไปใน Service ที่ชื่อว่า "light.turn_on" ถามว่า แล้วเราจะปรับไปเท่าไหร่ละ เรารู้ว่าเลขนี้มัน 8-bit รันตั้งแต่ 0-255

ง่ายมาก ๆ คือ ถ้าเราหมุนขวา มันเป็นการลด ดังนั้น เราจะลด Brightness จากค่าเดิมลงไป ทำให้เราเริ่มต้นจาก บอกว่า เอาค่า Brightness เดิมนี่แหละ ไปลบกับ 20 ซึ่งเป็นขนาด Step ที่เราทดสอบในห้องนอนเราแล้วว่า หมุน 1 ครั้ง เราเห็นความเปลี่ยนแปลงได้อยู่ แต่ไม่ได้เยอะจนเราไม่ได้ความสว่างที่ต้องการ แต่ ๆๆๆ ลองคิดดูดี ๆ นะว่า ถ้าเราทำแบบนี้ และเราหมุนไปเรื่อย ๆ จนค่า Brightness มันลบ 20 แล้วได้ติดลบอะ เป็นไปได้ใช่ปะ เราเลยเขียน Condition เพื่อเช็คว่า ค่า Brightness ปัจจุบันมันน้อยกว่าหรือเท่ากับ Step ของเรามั้ย ถ้าใช่ ลบยังไง เราจะไม่ให้มันติดลบ ก็ลง 0 โลด ส่วนถ้าไม่ ก็เอาไปลบกับ Step Size เหมือนเดิม ส่วนด้านเพิ่ม เราก็เช็คเหมือนกัน แค่ว่า ไม่ให้มันมากกว่า 255 เท่านั้นเอง

ผลที่ได้คือเมื่อเราหมุน ความสว่างของ Lightstrip มันเพิ่มขึ้นและลดลงได้จริง ๆ เกือบ ๆ จะ Real-time เลยทีเดียว อย่าลืมนะว่า มันมี Latency ระหว่างการเชื่อมต่อตั้งแต่า H1 Knob, Zigbee Repeater, Zigbee Coordinator, Home Assistant และ Lightstrip เอง หมุนแล้วแว่บนึงเห็นผลมันก็โอเคแล้วละ ลองไล่ Debug เช็ค Automation ออกมา ก็พบว่า มันทำงานได้อย่างถูกต้องตามที่คิดไว้ทุกประการ รอดไป

แต่ข้อเสียของการเขียน Call Service และการใช้ Blueprint นี้คือ มันจะทำการเรียก Automation เมื่อเราหยุดหมุนแล้วเท่านั้น ดังนั้นเวลาเราใช้งานจริง เราไม่สามารถหมุนรวดเดียวแล้วมันจะลดตามการหมุนของเรา เพราะ เราลดความสว่างจากจำนวนครั้งที่เราหมุนคูณกับ Step Size ในที่นี้เราตั้งเป็น 20 เท่านั้น ไม่ได้วัดตามองศา เนื่องจาก Blueprint ตัวนี้ยังทำแบบนั้นไม่ได้ซะทีเดียว ก็เรียกว่าเป็นข้อเสียของวิธีการที่เราใช้ตอนนี้อยู่ แต่ถ้าใครอยากได้เพิ่มลดตามการหมุนเป๊ะ ๆ อาจจะต้องไปเขียนดักเอง ทำได้แหละ ไม่ยากขนาดนั้น

สรุป

Aqara Smart Knob Switch H1 เป็น Zigbee Knob Switch ที่เราคิดว่ามันหน้าตาดีมาก ๆ และยังใช้งานได้จริงกับ Home Assistant ถึงจะยังคงมีปัญหาในการติดตั้งกับ ZHA อยู่ ณ วันที่เขียน แต่ถ้าแก้ปัญหาได้จากวิธีที่เราเล่ามา การใช้งานมันดีมาก ๆ การนำไปประยุกต์ใช้ทำได้หลากหลายมาก ๆ เอาจริง ๆ นะ เราสามารถไปใช้เป็นพวก Volume Knob สำหรับลำโพงได้เลย เช่น Devialet Phantom เรา ราคา Remote แมร่งอย่างแพง !!! เอาเจ้านี่มาทำคือสนุกเลยนะ เรื่องการเชื่อมต่อถือว่าเสถียรกว่าพวก Zigbee Device ที่ใส่ถ่านหลายยี่ห้อมาก ๆ ทำให้เราเริ่มคิดว่า ถ้าเรากด Zigbee Device อื่น ๆ มา เราอาจจะไปมอง Aqara มากขึ้นด้วย เป็นตัวที่น่าสนใจมากจริง ๆ