ติดตั้ง Hassio บน External USB SSD Drive
Published in
2 min readNov 3, 2020
ผมเคยใช้ hass.io มาหลายปีแล้ว โดยใช้ Raspberry Pi 3B + MicroSD card โดยส่วนใหญ่จะทำ automation ที่ไม่ได้ซับซ้อนมาก แต่ก็ไม่มีใน App Smart Home ทั่วไป เช่น กรณีที่ไฟฟ้าดับช่วงกลางวัน ปัญหาที่จะเจอคือ หลอดไฟที่เป็น smart light ทั้งหลาย มันจะสว่างขึ้นมา ซึ่งเราสามารถทำ automation ให้ปิดหลอดไฟได้ ถ้าไฟเกิดติดขึ้นมาในช่วงกลางวัน
ปัญหาที่พบ
- เมื่อใช้งาน hass บน Pi3B ไปซักพัก จะเจอปัญหา sdcard พัง หรือใช้งานไม่ได้ บูตไม่ขึ้น ซึ่งเป็นปัญหาที่พบกันบ่อยมาก ส่วนตัวผมเองเจอปัญหานี้ไป 3 รอบ แม้เราจะ backup configuration ทั้งหมดไว้ แต่การ setup ทุกอย่างใหม่หมด ก็เป็นงานที่เสียเวลาและเหนื่อยโดยใช่เหตุ
- Note: ไม่นับปัญหาที่ power supply Pi3 จ่ายไฟไม่พอนะครับ อันนั้นเป็น classic problem ของ Pi เองไม่เกี่ยวกับ Hass … คำแนะนำคือ ซื้อ power supply ดีๆ ที่จ่ายไฟได้ 2–3 Amp เป็นอย่างน้อย
ทางออก
- ว่ากันว่า สาเหตุของปัญหา MicroSD พัง เกิดจากการเขียนและอ่านไฟล์บน MicroSD บ่อยเกินไป
- ดังนั้น วันนี้เราจะมา setup Hass บน USB Drive กัน เพื่อที่จะได้ใช้งานกันยาวๆ ไม่ต้องมาปวดหัวเรื่องปัญหา MicroSD อีกต่อไป ที่สำคัญคือความเร็วในการเขียนหรืออ่านไฟล์บน SSD นั้น เร็วกว่า SD Card มหาศาลครับ ลองเทียบง่ายๆ โดยการ flash hass.io บน device ทั้งสองตัวเทียบกันดูได้เลย
อุปกรณ์ที่ต้องใช้
- Raspberry Pi แนะนำรุ่น 3b เป็นต้นไป ถ้ามีตังจะข้ามไป 3b+, 4 หรือจะไป intel nuc เลยก็ตามสบาย
- MicroSD 32GB (ใช้ชั่วคราวเท่านั้น)
- USB Drive ที่มี SSD Disk อยู่ข้างใน ซัก 64/128GB ก็กำลังดี ใหญ่กว่านี้ก็แพง (ผมใช้ SSD ที่ถอดมาจาก notebook เครื่องเก่า)
- USB 3.0 Y Power Micro Cable for External HDD เจ้าตัวนี้จำเป็นนะครับ เพราะถ้าเราต่อ External SDD ของเราเข้าที่ Pi3 ตรงๆ ไฟมันจะไม่พอ ต้องจ่ายไฟเพิ่มโดยใช้สายนี้
ขั้นตอนการซีตุ้ป (Setup Instructions) Hass.io บน SSD External
- Download Home Assistant OS จาก Official web site
- ใช้โปรแกรม BalenaEtcher เพื่อ flash Home Assistant OS ลงบน USB SSD External ที่เตรียมไว้ (ถ้าไม่มี BalenaEtcher ก็ setup BalenaEtcher ให้เรียบร้อยก่อนนะครับ Google หาได้เลย ง่ายมากกกก)
- สำหรับท่านใดที่มี External USB Drive (SATA) อยู่แล้ว เช่น ยี่ห้อ Buffalo ที่นิยมๆ กัน แนะนำให้ใช้ Case เดิมแต่เปลี่ยน Disk ข้างในเป็น SSD แทนนะครับ ผมก็ใช้วิธีนี้ แต่จะมีความเหนื่อยนิดนึงคือ เจ้า case USB Drive มันแงะยากพอสมควร อาจจะมีรอยกันบ้างก็ต้องยอมกันไป มีคลิปตัวอย่างการแงะมาฝากสำหรับท่านที่ไม่รู้ว่าจะเริ่มต้นแงะอย่างไร
- หลังจาก Flash Home Assistant OS เสร็จแล้ว ก็ Unmount ออกเพื่อเตรียมทำตาม Steps ถัดไป
ขั้นตอนการซีตุ้ป (Setup Instructions) สำหรับ 2B v1.2, 3A+, 3B และ Compute Module 3
- Download Raspberry Pi OS (32-Bit) Lite จากเว็บนี้ ให้เลือก Lite นะ จะได้ไฟล์เล็กๆ โหลดเสร็จเร็วหน่อย (เลือกเป็น Download ZIP)
- ใช้โปรแกรม BalenaEtcher เพื่อ flash SD card ที่เตรียมไว้ โดยไม่ต้องเสียเวลา Unzip ไฟล์ออกมา (BalenaEtcher สามารถ unzip ได้เอง)
- จากนั้นเมื่อ flash SD card เสร็จแล้ว ให้ unmount และ mount ใหม่ และหาไฟล์ที่ชื่อ “config.txt”
- เปิดไฟล์ config.txt โดยใช้ text editor ตัวไหนก็ได้ แล้วเพิ่มบรรทัดด้านล่างนี้เข้าไปท้ายไฟล์ และ Save
program_usb_boot_mode=1
- Reboot Pi
- หลังรีบูตให้รอนานพอสมควร ใจเย็นๆ ออกไปซื้อกาแฟซักแก้ว ให้เวลามันซัก 15 นาที
- จากนั้นเสียบ SSD External (ใช้ data port) เข้า USB Port
อย่าลืมเสียบ power port (ที่มีสายไฟเส้นเล็กกว่า) เข้ากับ power adaptor ด้วย - ไฟ status การเขียนอ่านไฟล์บน SSD External จะกระพริบ จังหวะนี้ไม่ต้อง interrupt มัน ปล่อยมันไปเรื่อยๆ เลย รอนานพอสมควร(สิบกว่านาที) จนกว่าจะไม่มีการเคลื่อนไหวใดๆ แล้ว จึงให้ถอดปลั้ก Pi ออก
- ถอด SD Card ออก
- เสียบปลั้กให้ Pi แล้วบูตขึ้นมา ก็จะสามารถใช้งาน Hass.io โดยไม่ต้องใช้ SD Card แล้ว ข้อมูลทุกอย่างจะเขียนอ่านจาก SSD external แทน
สำหรับ ท่านที่ใช้ Pi 3B+, 4 ไม่ต้องทำตามขั้นตอน 1–10 นะครับ สามารถเสียบ SSD External USB Drive เข้ากับ Pi และใช้งานได้เลย อย่าลืมเอา SD Card ออกก่อนด้วยละ ไม่งั้นมันจะเลือกบูตจาก SD Card เป็นลำดับแรกเสมอ