กิจกรรมที่ 11 — นำข้อมูลจากแปลงไกลขึ้นแดชบอร์ด Home Assistant (Bridge)
45 นาที
อุปกรณ์ที่ใช้ ระบบทั้งหมดจากกิจกรรมที่ 10 (บอร์ด GoGo-IoT เสียบไฟจากกล่องจ่ายไฟ บอร์ดตัวรับเสียบไฟจากแล็ปท็อปหรือช่อง USB ที่ว่าง) และแล็ปท็อปที่เปิด Home Assistant
ตอนนี้ตัวรับมีค่าจากแปลงแล้ว แต่ผู้ใช้ยังต้องพิมพ์ IP เพื่อดู กิจกรรมนี้เราจะเพิ่มตัวรับเข้า Home Assistant เพื่อให้ค่าจากแปลงไกลอยู่ในระบบเดียวกับข้อมูลอื่น สร้างแดชบอร์ดสำหรับแปลงไกล และตั้งกฎเตือนเมื่อแปลงเงียบไป

ใบงาน
คลิกหัวข้อเพื่อดูวิธีทำ ทำเสร็จแล้วทำเครื่องหมายและบันทึกผล กรอกที่นี่หรือในขั้นตอนด้านล่างก็ได้
- 11.1 เพิ่มบอร์ดตัวรับเข้า Home Assistant พิมพ์ IP ของบอร์ดตัวรับ ตรวจชื่อที่ขึ้น แล้วกดเพิ่ม
- 11.2 เทียบค่าที่มาสองทาง ค่าเดียวกันจากบอร์ด GoGo-IoT โดยตรง และผ่านตัวรับ
- ความชื้นอากาศ โดยตรง % · ผ่าน ESP-NOW %
- ความสว่าง โดยตรง · ผ่าน ESP-NOW
- 11.3 สร้างแดชบอร์ด “แปลงไกล” Tile การเชื่อมต่อ · Gauge ความชื้นอากาศ · Tile ลูกลอย · Tile สัญญาณ ทั้งหมดจากตัวรับ
- 11.4 เตือนเมื่อแปลงเงียบ กฎ
แปลงเงียบ - เตือนปิดบอร์ดที่แปลงแล้วมีการแจ้งเตือน - คำถามท้ายกิจกรรม ถ้าจะติดตั้งจริงที่แปลงห่างจากบ้าน 150 เมตร ต้องเปลี่ยนอะไรที่บอร์ดที่แปลงและที่บ้านบ้าง และผู้ใช้จะรู้ได้อย่างไรว่าค่าบนแดชบอร์ดเป็นค่าปัจจุบัน

11.1เพิ่มบอร์ดตัวรับเข้า Home Assistant
เพิ่มและตั้งชื่อ
- ไปที่ Settings → Devices & services → + Add integration → ESPHome (ถ้าขึ้นรายการให้เลือก Setup another instance of ESPHome ก่อน) ในช่อง Host พิมพ์ IP ของบอร์ดตัวรับ ที่จดไว้ในกิจกรรมที่ 10 () คงช่อง Port ไว้ที่
6053เหมือนกิจกรรมที่ 3 แล้วกด Submit จะขึ้นหน้า Name and assign ให้ดูช่อง Device name ว่าตรงกับชื่อบอร์ดตัวรับ () ทั้งสีและรหัสหกตัวท้าย ตัวพิมพ์เล็กหรือใหญ่ไม่ต้องสนใจ เช่นGogo-Iot-Red-6749A4ถือว่าตรงกับgogo-iot-red-6749a4 - ในช่อง Device name เดิม จะพิมพ์ชื่อใหม่เป็น เช่น
ตัวรับที่บ้านก็ได้ (ไม่บังคับทำ) แล้วกดปุ่มมุมขวาล่าง ปุ่มนี้ขึ้นว่า Finish ถ้าแก้ชื่อ หรือ Skip and finish ถ้าไม่ได้แก้
ดูรายการที่ได้
- เปิดหน้าอุปกรณ์ของตัวรับ จะเห็นสามกลุ่ม: Sensors คือค่าจากแปลงที่ต่อท้ายว่า ESP-NOW และ รับข้อมูลจากแปลง (link) ซึ่งแสดงเป็น Connected / Disconnected · Configuration มีช่อง ชื่อบอร์ดที่แปลง (sender name) ที่เราพิมพ์ไว้บนหน้าเว็บของบอร์ด แก้จากที่นี่ก็ได้ · Diagnostic มีสัญญาณ จำนวนแพ็กเก็ต และแพ็กเก็ตล่าสุด
ถ้ากด Submit แล้วต่อไม่ได้ อ่าน IP ใหม่จาก web.esphome.io (Reset device แล้วดูบรรทัด
IP ADDRESS) เลขอาจเปลี่ยนไปแล้วตัวรับที่เพิ่มแล้วกลายเป็น Unavailable IP ของบอร์ดอาจเปลี่ยน อ่าน IP ใหม่จาก web.esphome.io แล้วกด ⋮ ท้ายแถวของบอร์ดใน Settings → Devices & services → ESPHome → Reconfigure → พิมพ์ IP ใหม่ในช่อง Host ชื่อและ entity เดิมยังอยู่ ไม่ต้องลบแล้วเพิ่มใหม่

11.2เทียบค่าที่มาสองทาง
ใน Home Assistant ตอนนี้มีค่าความชื้นอากาศของแปลงเรา สองรายการ: จากบอร์ด GoGo-IoT โดยตรงผ่าน WiFi (ทางที่ใช้มาตั้งแต่ช่วงที่ 1) และจากตัวรับผ่าน ESP-NOW ที่ฟาร์มจริงจะเหลือทางหลังทางเดียว
อ่านค่าคู่กัน
- เปิดหน้าอุปกรณ์ของบอร์ด GoGo-IoT และของตัวรับไว้คนละแท็บ อ่านค่าเวลาเดียวกัน
| ค่า | จากบอร์ด GoGo-IoT โดยตรง | ผ่านตัวรับ (ESP-NOW) |
|---|---|---|
| ความชื้นอากาศ | % | % |
| ความสว่าง |
- เป่าลมใส่บอร์ด GoGo-IoT แล้วดูว่าความชื้นทั้งสองรายการขึ้นตามกัน รายการโดยตรงอาจขึ้นก่อนเล็กน้อย เพราะบอร์ดส่งค่าให้ Home Assistant ทันทีที่ค่าเปลี่ยน ส่วนทาง ESP-NOW ส่งเป็นรอบทุก 3 วินาที
สองรายการนี้คือ ค่าเดียวกันจากเซนเซอร์ตัวเดียว ที่เดินทางมาคนละทาง ในกิจกรรมที่ 5 เราเห็นว่าเมื่อบอร์ดดับ รายการโดยตรงกลายเป็น unavailable ทางตัวรับก็มีสัญญาณแบบเดียวกันคือ รับข้อมูลจากแปลง (link) เป็น Disconnected และค่ากลายเป็น unknown เราจะใช้สัญญาณนี้ในข้อ 11.4

11.3สร้างแดชบอร์ด “แปลงไกล”
สร้างแดชบอร์ดใหม่
- เปิด Settings → Dashboards → + Add dashboard → New dashboard from scratch ตั้งชื่อ
แปลงไกลและเปิด Add to sidebar ไว้ เหมือนข้อ 7.3 - เปิดแดชบอร์ดใหม่ กดไอคอนดินสอ แล้วเพิ่มการ์ดตามตาราง ทุกการ์ดเลือกรายการของตัวรับ (ชื่อมี ESP-NOW หรือ link)
| การ์ดที่ต้องมี | เลือกข้อมูล | ชื่อที่ใช้บนจอ |
|---|---|---|
| Tile | รับข้อมูลจากแปลง (link) | การเชื่อมต่อกับแปลง |
| Gauge | ความชื้นอากาศ (humidity, ESP-NOW) | ความชื้นอากาศที่แปลง (%) |
| Tile | สวิตช์ลูกลอย (float switch, ESP-NOW) | น้ำถึงลูกลอยที่แปลง |
| Tile | ความแรงสัญญาณ ESP-NOW (rssi) | สัญญาณจากแปลง |
- วางการ์ด การเชื่อมต่อกับแปลง ไว้บนสุด ผู้ใช้ต้องรู้ก่อนว่าค่าที่เห็นยังเชื่อถือได้ แล้วกด Done
(ไม่บังคับทำ) เทียบสองทางบนกราฟ
- เพิ่ม History graph เลือกความชื้นอากาศทั้งสองรายการ (โดยตรงและ ESP-NOW) ตั้ง Hours to show: 1 เส้นทั้งสองต้องซ้อนกัน
ผู้ใช้ที่บ้านเปิดแดชบอร์ดนี้จากโทรศัพท์ที่ต่อ WiFi บ้านได้เหมือนกิจกรรมที่ 7 โดยไม่รู้เลยว่าค่าเดินทางมาจากแปลงผ่านบอร์ดอีกตัว นั่นคือหน้าที่ของตัวรับ: ทำให้แปลงที่ WiFi ไม่ถึงกลายเป็นส่วนหนึ่งของระบบเดียวกัน

11.4เตือนเมื่อแปลงเงียบ
ในกิจกรรมที่ 10 ตัวรับรายงานว่าขาดการเชื่อมต่อได้เอง แต่ถ้าไม่มีใครเปิดหน้าจอดูอยู่ก็ไม่มีใครรู้ เราจะให้ Home Assistant แจ้งเตือนเหมือนข้อ 4.4
สร้างกฎ
- เปิด Settings → Automations & scenes → + Create automation → Create new automation
- When กด + Add trigger → Entity → State เลือก Entity รับข้อมูลจากแปลง (link) ช่อง To เลือก Disconnected และช่อง For ตั้ง 30 วินาที เพื่อไม่ให้เตือนเมื่อสัญญาณหายไปแวบเดียว
- Then do กด + Add action ค้นหา Send a persistent notification พิมพ์ข้อความ เช่น
ไม่ได้รับข้อมูลจากแปลงเกิน 30 วินาที ตรวจบอร์ดที่แปลง - กด Save ตั้งชื่อ
แปลงเงียบ - เตือน
ทดสอบ
- ปิดสวิตช์ ON / OFF บนบอร์ด GoGo-IoT รอ ตัวรับจะรายงาน Disconnected หลัง 15 วินาที และอีก 30 วินาทีถัดมา ต้องมีการแจ้งเตือนขึ้นที่ไอคอนกระดิ่งของ Home Assistant มีการแจ้งเตือน
- เปิดสวิตช์บอร์ดกลับ รอให้ค่ากลับมาบนแดชบอร์ด แล้วปิดการแจ้งเตือนที่ค้างอยู่
ที่ฟาร์มจริง การแจ้งเตือนควรไปถึงโทรศัพท์ของผู้ดูแล ซึ่งต้องมีวิธีเข้าถึงจากนอกฟาร์มที่คุยกันในข้อ 8.3 · กฎนี้ไม่สั่งรีเลย์ จึงเปิดไว้ได้ตลอด
คำถามท้ายกิจกรรม ถ้าจะติดตั้งจริงที่แปลงห่างจากบ้าน 150 เมตร ต้องเปลี่ยนอะไรที่บอร์ดที่แปลงและที่บ้านบ้าง (เครือข่าย ช่องสัญญาณ แหล่งจ่ายไฟ ตำแหน่งติดตั้ง) และผู้ใช้จะรู้ได้อย่างไรว่าค่าบนแดชบอร์ดเป็นค่าปัจจุบัน ไม่ใช่ค่าค้างเก่า
สรุปช่วงที่ 4
- ESP-NOW ทำให้บอร์ดคุยกันได้โดยไม่มีเราเตอร์ และไปได้ไกลกว่า WiFi แต่ส่งได้ทีละชุดเล็ก ไม่มีการตอบรับ และต้องอยู่ช่องสัญญาณเดียวกัน
- ตัวรับหนึ่งตัวในบ้านก็พอ ที่จะทำให้แปลงที่ WiFi ไม่ถึงกลายเป็นอุปกรณ์ปกติใน Home Assistant สร้างแดชบอร์ดและกฎได้เหมือนบอร์ดที่ต่อ WiFi ตรง
- ช่องสัญญาณเป็นของสาธารณะ ตัวรับได้ยินทุกบอร์ดในระยะ จึงต้องเลือกรับ และในงานจริงควรเข้ารหัสข้อมูล
- ลิงก์ที่หายต้องบอกว่าหาย ตัวรับลบค่าเก่าเมื่อไม่ได้ยินบอร์ดที่แปลง และ Home Assistant เตือนได้ นี่คือ fail-safe ของการสื่อสาร คู่กับ fail-safe ของปั๊มในช่วงที่ 2
คืนอุปกรณ์
ทำตามลำดับต่อไปนี้ เพื่อป้องกันระบบสั่งเปิดปั๊มระหว่างเก็บอุปกรณ์
- Settings → Automations & scenes ปิดสวิตช์ automation ทุกข้อที่สั่งรีเลย์ได้ (กฎรดน้ำสองข้อ fail-safe ทุกข้อ และตรวจซ้ำว่ากฎไฟสวนกับกฎตั้งเวลาปิดไว้) กฎ
แปลงเงียบ - เตือนปิดด้วย จะได้ไม่เตือนค้างเมื่อบอร์ดดับ - สั่งสวิตช์รีเลย์เป็น Off จากหน้าอุปกรณ์ แล้วดูว่าปั๊มหยุด
- ถอดอะแดปเตอร์ออกจากปลั๊ก ปิดสวิตช์บอร์ด GoGo-IoT แล้วถอด USB ของบอร์ดทั้งสองก่อนถอดสายโหลดและสายอะแดปเตอร์จากกล่องจ่ายไฟ ถอดสาย USB ของบอร์ดตัวรับออกจากแล็ปท็อป
- เมื่อไม่มีไฟแล้ว ยกสวิตช์ลูกลอยออกจากแก้ว เช็ดให้แห้ง เทน้ำในแก้วทิ้ง
- ตรวจรายการอุปกรณ์ตาม หน้าแรก รวมบอร์ดตัวรับและสายของมัน แล้วคืนทั้งชุดพร้อมบัตรประจำกลุ่ม
- ส่งและเก็บคำตอบของกลุ่ม ให้ผู้บันทึกเปิดเมนู เครื่องมือ → ดาวน์โหลดคำตอบ (ไฟล์ JSON) แล้วส่งไฟล์ผ่านช่องทางที่ผู้สอนแจ้ง ตรวจหมายเลขกลุ่มในชื่อไฟล์ และให้ผู้สอนยืนยันว่าได้รับไฟล์ของกลุ่มแล้ว จากนั้นเปิดใบบันทึกของกลุ่ม แล้วเลือก เครื่องมือ → พิมพ์ / บันทึก PDF เก็บไว้ใช้วางแผนทดลองในฟาร์มต่อ
แดชบอร์ดของผู้สอนแสดงความคืบหน้าในการทำกิจกรรม แต่ไม่ได้รับคำตอบที่เรากรอก การเห็นสถานะ “เชื่อมต่อผู้สอนแล้ว” จึงไม่ได้หมายความว่าส่งไฟล์คำตอบแล้ว ให้เก็บไฟล์ JSON ไว้ในเครื่องด้วย