ESPHome รองรับ OpenThread แล้ว มีอะไรให้ลองต่อ

เวลาเริ่มทำอุปกรณ์ด้วย ESPHome เรามักนึกถึงบอร์ดที่ต่อ Wi-Fi แล้วส่งค่าเข้าระบบบ้าน ซึ่งก็เหมาะกับงานอยู่หลายแบบ แต่ถ้ากำลังวางอุปกรณ์ในเครือข่าย Thread อยู่แล้ว ก็คงอยากรู้ว่าบอร์ดที่เขียนเองจะเข้ามาอยู่ในเครือข่ายเดียวกันได้หรือเปล่า
ESPHome 2025.6.0 ที่ออกวันที่ 18 มิถุนายน 2025 เพิ่มการรองรับ OpenThread บน ESP-IDF เข้ามา จึงมีทางเลือกให้ลองมากกว่าเส้นทาง Wi-Fi เดิม โดยงานที่เพิ่มเข้ามาช่วงแรกระบุการใช้งานกับ ESP32-C6 และ ESP32-H2 ไว้ด้วย
แต่ก่อนเปลี่ยนบอร์ดทั้งชุด มีเรื่องที่ควรแยกให้เข้าใจก่อนครับ เพราะเปลี่ยนเครือข่ายที่ใช้ส่งข้อมูล ไม่ได้หมายความว่าหน้าตาหรือมาตรฐานที่ระบบปลายทางใช้คุยกับอุปกรณ์จะเปลี่ยนตามไปทั้งหมด
Thread เป็นทางส่งข้อมูล ส่วน ESPHome ยังมีวิธีคุยของมัน
Thread เป็นเครือข่ายที่ใช้ IPv6 และอาศัยวิทยุตามที่ฮาร์ดแวร์รองรับ ส่วน OpenThread เป็น implementation ที่นำมาใช้สร้างการทำงานตามแนวทางนั้น การเพิ่ม component นี้จึงช่วยให้อุปกรณ์ ESPHome ใช้ทางเชื่อมต่ออีกแบบได้
ในชั้นการใช้งาน เรายังต้องกำหนดว่าใครจะอ่านค่าและส่งคำสั่ง เช่น ใช้ Native API ของ ESPHome ให้ Home Assistant ติดต่อกับบอร์ด การต่อผ่าน Thread ไม่ได้เปลี่ยน Native API ให้เป็น Matter โดยอัตโนมัติ

ความต่างนี้มีผลตอนคาดหวังว่าจะเพิ่มอุปกรณ์เข้าหลายแอป ถ้าเฟิร์มแวร์ที่สร้างเปิดบริการแบบ ESPHome ก็ต้องใช้ระบบที่เข้าใจบริการนั้น การมีเครือข่าย Thread พร้อมไม่ได้ทำให้ controller ของ Matter ทุกตัวอ่าน entity จากบอร์ดได้ทันที
จึงควรเริ่มจากปลายทางที่อยากใช้งานก่อน ถ้าตั้งใจนำค่าเข้า Home Assistant ผ่าน ESPHome ก็ตรวจเส้นทางนั้นให้ครบ ส่วนโจทย์ที่ต้องเป็นอุปกรณ์ Matter จริงจะมีงานอีกชั้นให้พิจารณา อย่ารวมสองเป้าหมายเป็นงานเดียวเพียงเพราะใช้วิทยุใกล้เคียงกัน
เลือกทั้งชิป บอร์ด และรุ่นเครื่องมือให้ตรงกัน
ชื่อ ESP32 เป็นชื่อครอบครัว จึงไม่ได้รับรองว่าบอร์ดทุกตัวใช้ OpenThread ได้เหมือนกัน ต้องดูความสามารถของชิป รวมถึงการรองรับของ ESPHome และ framework ในรุ่นที่เลือกใช้งานด้วย การมี Wi-Fi อยู่บนบอร์ดอย่างเดียวไม่ตอบเรื่องวิทยุ Thread
เมื่อเริ่มจาก release 2025.6 ก็ควรอ่านตัวอย่างกับข้อจำกัดของช่วงนั้นประกอบ ไม่คัดรายชื่อชิปจากเอกสารรุ่นใหม่กว่ามาใส่ใน config เก่าแล้วคาดว่าจะบิ้วผ่านเหมือนกัน เพราะทั้งรายชื่อฮาร์ดแวร์และตัวเลือกมีโอกาสเพิ่มภายหลัง
เก็บรุ่น ESPHome, รุ่น framework และไฟล์ตั้งค่าที่บิ้วได้ไว้ด้วยกัน จะช่วยแยกได้ว่าปัญหาเกิดจากการเปลี่ยนวงจรหรือเปลี่ยนเครื่องมือ ถ้าอัปเดตทุกอย่างพร้อมกันแล้วค่าไม่มา เราจะมีหลายจุดให้ย้อนตรวจโดยยังไม่รู้ว่าจุดใดเกี่ยวจริง
สำหรับการเริ่มลอง บอร์ดที่มีทางต่อสายเพื่อแฟลชและอ่าน log สะดวกจะช่วยมาก เพราะตอนเครือข่ายยังไม่พร้อม เราต้องมีทางเห็นการทำงานของอุปกรณ์ที่ไม่อาศัยเส้นทางเดียวกับสิ่งที่กำลังตรวจอยู่
มี border router แล้วต้องไปต่อถึงเครื่องที่อ่านค่าได้
อุปกรณ์ต้องมีข้อมูลสำหรับเข้าร่วมเครือข่าย Thread ที่ตั้งใจใช้ และมี border router เชื่อมไปยังเครือข่าย IP ตามรูปแบบระบบ ข้อมูลชุดนี้ควรถูกจัดการเป็นข้อมูลลับ ไม่วางในตัวอย่างที่เปิดเผยหรือ commit ไปพร้อมโค้ดสาธารณะ
แต่การเข้าร่วมเครือข่ายสำเร็จยังเป็นเพียงจุดหนึ่ง เครื่องที่รัน Home Assistant ต้องมีเส้นทาง IPv6 ที่เกี่ยวข้องและติดต่อบริการบนบอร์ดได้ด้วย ถ้าแบ่งเครือข่ายหรือมี firewall ก็ต้องตรวจเส้นทางกับการค้นพบบริการตามที่ใช้งานจริง

การไล่ดูจึงควรแยกเป็น บอร์ดเริ่มทำงานได้หรือไม่ เข้าร่วมเครือข่ายใดแล้ว ระบบฝั่งอ่านเข้าถึงที่อยู่ได้หรือไม่ และ Native API พร้อมหรือยัง แต่ละจุดตอบคนละคำถาม ไม่ควรใช้คำว่าเชื่อมต่อแล้วแทนผลทุกชั้น
หากมีหลายเครือข่าย Thread อยู่ในบ้าน ก็ต้องรู้ด้วยว่าข้อมูลที่ใส่ให้บอร์ดเป็นของเครือข่ายใด จำนวน border router ที่เห็นไม่ได้รับรองว่าทั้งหมดเป็นทางออกให้บอร์ดตัวเดียวกันเสมอไป การจดชื่อกับหน้าที่ไว้จะช่วยลดการเดาจากรายชื่ออุปกรณ์ในแอป
ลองจากค่าที่ตรวจได้ง่ายก่อนย้ายงานจริง
เริ่มจากเซนเซอร์หนึ่งค่าและตำแหน่งที่เข้าถึงอุปกรณ์ได้สะดวก แล้วตรวจทั้งการอ่านตามปกติ การเริ่มบอร์ดใหม่ และการเชื่อมต่อกลับหลังระบบบางส่วนหยุด จะเห็นว่าการมีรายการอุปกรณ์ในหน้าแอปกับการได้ค่าปัจจุบันเป็นคนละเรื่องกัน
จดเวลาอัปเดตล่าสุดกับสถานะการติดต่อควบคู่กับค่า เพราะตัวเลขเดิมอาจยังแสดงอยู่หลังขาดการเชื่อมต่อ หากดูเพียงว่า dashboard มีตัวเลข ก็อาจเข้าใจว่าการทดลองผ่านทั้งที่ไม่มีข้อมูลใหม่เข้ามาแล้ว
เมื่อทดสอบการหายของเครือข่าย ให้เปลี่ยนทีละส่วนและกำหนดทางคืนไว้ เช่น เริ่มจากหยุดบริการที่อ่านค่าในชุดทดลอง โดยยังเก็บ log ฝั่งบอร์ดไว้ ก่อนขยับไปทดสอบทางออก Thread เพื่อไม่ให้หลายเหตุการณ์ถูกนับรวมเป็นอาการเดียว
เรื่องอัปเดตเฟิร์มแวร์ก็ต้องตรวจตามรุ่นและเส้นทางที่รองรับจริง ไม่ควรถือว่าเปลี่ยนทางเชื่อมต่อแล้วขั้น OTA เดิมจะใช้ได้ทุกเงื่อนไข เก็บไฟล์ที่บิ้วสำเร็จกับทางแฟลชผ่านสายไว้ จนกว่าจะยืนยันขั้นดูแลของชุดใหม่ได้
ใช้ Thread แล้วไม่ได้แปลว่าแบตจะอยู่ได้นานทันที
จุดที่น่าสนใจของเครือข่ายกลุ่มนี้คือการนำไปใช้กับอุปกรณ์ที่ส่งข้อมูลไม่มาก แต่พลังงานรวมยังขึ้นกับการทำงานของบอร์ด เซนเซอร์ ไฟแสดงผล วงจรจ่ายไฟ และช่วงเวลาที่อุปกรณ์ตื่นอยู่ด้วย
ถ้าบอร์ดพัฒนายังเปิดอุปกรณ์ประกอบตลอด หรืออ่านเซนเซอร์ถี่โดยไม่จำเป็น การเปลี่ยนเครือข่ายอย่างเดียวอาจไม่ตอบเป้าหมายเรื่องแบต จึงต้องแยกผลการเชื่อมต่อออกจากผลการวัดกระแส และยังไม่สรุปอายุใช้งานก่อนมีข้อมูลจริงของวงจรนั้น
ขณะเดียวกัน อุปกรณ์ที่หลับนานก็มีข้อแลกเปลี่ยนด้านการรับคำสั่งและรอบข้อมูล ควรตกลงก่อนว่าบ้านต้องการค่าใหม่เร็วเพียงใด แล้วจึงเลือกวิธีทำงานของอุปกรณ์ให้สอดคล้อง แทนการเริ่มจากชื่อเทคโนโลยีแล้วค่อยหางานให้มันทำ
สรุป
OpenThread ใน ESPHome เพิ่มทางเลือกให้บอร์ดที่รองรับเข้ามาใช้เครือข่าย Thread ได้ แต่ยังต้องดูบริการที่ใช้คุยกับระบบบ้าน ฮาร์ดแวร์ รุ่นเครื่องมือ และเส้นทาง IPv6 ให้ครบ การลองจากอุปกรณ์เล็กที่ตรวจ log กับกู้ผ่านสายได้ จะช่วยให้แยกปัญหาแต่ละชั้นก่อนย้ายงานจริง และทำให้ตัดสินใจจากผลที่ตรวจได้มากกว่าคาดหวังว่าเปลี่ยน protocol แล้วทุกส่วนจะพร้อมตามกันครับ


