

หลังเพิ่มอุปกรณ์ใน Home Assistant ไปสักระยะ เรามักอยากจัดชื่อให้หาง่ายขึ้น บางชิ้นย้ายห้อง บางชิ้นมีชื่อโรงงานยาวจนอ่านยาก หรือมีเซนเซอร์หลายค่าจนไม่รู้ว่ารายการใดเป็นอันที่ใช้งานอยู่ พอเปิดหน้าตั้งค่าก็จะพบทั้งชื่อ entity ID และ unique ID ที่ดูเกี่ยวข้องกับชื่อเหมือนกัน
แต่ข้อมูลเหล่านี้ไม่ได้มีหน้าที่เหมือนกันทั้งหมด ชื่อที่คนเห็นใช้ช่วยอ่านหน้าจอ ส่วนรหัสที่ automation อ้างถึงกับตัวตนที่ integration ใช้ให้ registry จำเป็นคนละชั้น การเปลี่ยนทุกอย่างให้เป็นชื่อใหม่พร้อมกันจึงอาจทำให้ระบบคิดว่าเป็นคนละรายการโดยไม่ได้ตั้งใจ
ก่อนจัดชื่อควรแยกก่อนครับ ว่ากำลังเปลี่ยนคำที่แสดงให้คนอ่าน เปลี่ยนจุดอ้างอิง หรือเปลี่ยนตัวตนของข้อมูลจริงๆ
อุปกรณ์วัดอุณหภูมิหนึ่งตัวอาจมีทั้งค่าอุณหภูมิ แบตเตอรี่และสถานะอื่นแยกเป็น entity แต่ละตัวจึงแทนจุดข้อมูลหรือความสามารถ ไม่ได้แทนอุปกรณ์ทั้งชิ้นในทุกกรณี
Device registry ช่วยรวมความสัมพันธ์ระดับอุปกรณ์ ส่วน entity registry จัดการรายการของแต่ละจุดข้อมูลตามสิ่งที่ integration นำเข้ามา การตั้งชื่ออุปกรณ์ให้เรียบร้อยจึงไม่ได้ตอบเองว่ารหัสของทุก entity ควรเป็นอะไรหรือจะถูกสร้างใหม่เมื่อใด
ตอนตรวจควรเริ่มจากดูว่า entity ที่สนใจมาจาก integration ใด ผูกกับอุปกรณ์ใด และแทนค่าอะไร จะได้ไม่แก้ entity ที่ชื่อคล้ายกันแต่เป็นคนละแหล่ง หรือเข้าใจว่ารายการแบตเตอรี่เป็นอีกอุปกรณ์เพียงเพราะแสดงแยกในหน้ารวม

ชื่อที่อ่านในหน้าจอช่วยให้คนรู้ว่ากำลังดูค่าอะไร ส่วน entity ID อย่าง sensor.example_temperature เป็นตัวอ้างอิงที่พบใน automation script และ config การเปลี่ยนชื่อแสดงผลจึงไม่ควรถูกตีความว่าตัวอ้างอิงทุกแห่งเปลี่ยนตามแล้ว
เอกสาร Home Assistant แยกความหมายนี้ชัด และระบุว่าการเปลี่ยนชื่อ entity ไม่ได้เปลี่ยน entity ID ไปด้วย หากแค่ต้องการให้หน้าจออ่านง่ายขึ้น จึงควรเริ่มจากการเปลี่ยนส่วนที่ตอบความต้องการนั้นก่อน ไม่เปลี่ยนรหัสอ้างอิงโดยไม่มีเหตุจำเป็น
ถ้าตั้งใจเปลี่ยน entity ID ด้วย ต้องตรวจจุดที่อ้างไว้จริง ทั้ง automation template dashboard และระบบภายนอก อย่ารับรองว่าทุกข้อความที่เคยพิมพ์รหัสเก่าจะถูกแก้ให้โดยอัตโนมัติ เพราะการอ้างอิงอาจอยู่ในรูปแบบและเส้นทางที่เครื่องมือจัดการต่างกัน
Unique ID ที่ integration ให้กับ entity ใช้ประกอบกับ domain และ integration ในการค้นรายการเดิมตามขอบเขตของ registry จึงไม่ใช่ชื่อที่ต้องเปลี่ยนให้ตรงกับป้ายในห้องทุกครั้ง และไม่จำเป็นต้องเป็นค่าที่ไม่ซ้ำทั่วทุกระบบบนโลก
ข้อมูลที่เลือกเป็นตัวตนควรคงที่ตามลักษณะอุปกรณ์ เช่น serial หรือรหัสจากอุปกรณ์ที่เหมาะกับขอบเขตนั้น หากมีหลาย entity จากอุปกรณ์เดียวก็ต้องมีส่วนที่แยกหน้าที่ของแต่ละ entity ได้ ไม่ให้ค่าคนละชนิดกลับใช้ตัวตนเดียวกัน
เอกสารผู้พัฒนาไม่แนะนำใช้ IP hostname หรือชื่ออุปกรณ์ที่เปลี่ยนได้เป็น unique ID เพราะเมื่อสิ่งนั้นเปลี่ยน registry อาจมองเป็นรายการใหม่แทนรายการที่คนเคยปรับตั้งไว้ การเลือกตัวตนจึงเป็นเรื่องของ integration มากกว่าการจัดคำให้สวยบนหน้าจอ

ถ้า integration เปลี่ยน unique ID ระบบอาจพบ entity ใหม่ ในขณะที่รายการเดิมกับการตั้งค่าที่ผูกไว้อาจยังค้างอยู่ การเห็นรหัสท้ายชื่อเพิ่มขึ้นหรือมีสองรายการคล้ายกันจึงควรย้อนตรวจแหล่งตัวตน ไม่รีบลบอย่างใดอย่างหนึ่งโดยยังไม่รู้ว่าอันไหนส่งข้อมูลอยู่จริง
การย้ายตัวตนที่จำเป็นต้องทำควรผ่านแนวทาง migration ที่ integration รองรับ พร้อมตรวจการอ้างอิงและข้อมูลตามรุ่นที่ใช้ ไม่แก้ไฟล์ภายในของ registry แบบคาดเดาเพียงเพื่อให้ชื่อใหม่มาแทนชื่อเก่า เพราะเรายังอาจทำความสัมพันธ์อีกชั้นหนึ่งหลุดไปด้วย
ส่วนการเปลี่ยนอุปกรณ์จริงก็ต้องตัดสินว่าเป็นการแทนจุดติดตั้งเดิมหรือเป็นตัววัดคนละชิ้นตามงาน ตัวตนฮาร์ดแวร์กับบทบาทอย่างอุณหภูมิของห้องอาจมีอายุไม่เท่ากัน ควรเก็บความสัมพันธ์ให้ตรวจได้ ไม่สวมรหัสเดิมให้อุปกรณ์ใหม่โดยไม่พิจารณาประวัติและความหมายของค่า
ชื่อที่เหมาะกับการใช้งานช่วยให้ดู trace หรือเลือก entity ได้เร็วขึ้น แต่เมื่ออุปกรณ์ย้ายห้อง ชื่อที่มีตำแหน่งเดิมก็อาจชวนสับสน ควรตกลงว่าจะใช้พื้นที่และอุปกรณ์ในระบบช่วยจัดกลุ่มอย่างไร และส่วนใดเป็นคำแสดงผลที่แก้ตามสถานที่ได้
ใน automation ที่มีหลายตัวทำงานกับจุดเดียวกัน ควรมีรายการอ้างอิงที่หาต่อได้ก่อนเปลี่ยนรหัส โดยเฉพาะ template ที่มี entity ID อยู่ในข้อความและการเชื่อมจากภายนอก การทำให้หน้าจอเรียบร้อยขึ้นไม่ควรทิ้งทางที่เคยใช้เรียกข้อมูลไว้โดยไม่มีการตรวจตาม
ประวัติและสถิติก็ควรตรวจหลังเปลี่ยนตามการรองรับของระบบจริง ไม่สรุปจากชื่อบนการ์ดที่เปลี่ยนแล้วว่าทุกข้อมูลในอดีตถูกย้ายตามครบ การเก็บข้อมูลอ้างอิงก่อนแก้ช่วยให้ย้อนดูความสัมพันธ์ของฉบับก่อนกับหลังได้เมื่อมีส่วนที่ไม่ตรงคาด
เมื่อจัดชื่อหรือปรับ integration ในชุดทดลอง ควรตรวจว่า entity ยังส่งข้อมูลได้หลัง reload หรือ restart และยังถูกมองเป็นรายการเดิมตามที่ตั้งใจ จากนั้นลองเส้นทาง automation หรือ dashboard ที่อ้างถึง ไม่ตรวจเพียงรายการในหน้าตั้งค่าหน้าเดียว
หากพบรายการซ้ำ ให้จด integration ตัวตนและการอัปเดตของแต่ละรายการก่อนเลือกทางจัดการ จะได้แยกชื่อชนจากการสร้างตัวตนใหม่ บทนี้อธิบายโครงสร้างกับขั้นตรวจ ยังไม่มีการเปลี่ยน registry ของบ้านหรืออุปกรณ์จริงของผู้ใช้
ชื่อแสดงผล entity ID และ unique ID ช่วยคนละชั้นของระบบ เมื่อเปลี่ยนเฉพาะส่วนที่ตรงเจตนาและรักษาตัวตนที่ integration ใช้ให้คงที่ เราจะจัดรายการให้เข้าใจง่ายขึ้นโดยยังตามการอ้างอิงได้ ส่วนการย้ายตัวตนหรือแทนอุปกรณ์ต้องตรวจความสัมพันธ์ ประวัติและเส้นทางที่เรียกใช้งานร่วมกันตามการรองรับจริง