0229 | ทำบ้าน(เกือบ)ฉลาด

มีบ้านเป็นของตัวเองละครับ เลยมีที่ให้ลองเล่นของเล่นโน่นนี่นั่น ที่อยากทำมานานแล้วก็ไอ้เจ้า smart home นี่แหละ แต่ความที่หลายๆ ยี่ห้อมันอันโน้นก็ขาด อันนี้ก็ไม่ครบ ก็เลยต้องทำเพิ่มเองโขเลย กินเวลาไปร่วม 3 เดือนกว่าจะ(เกือบ)เสร็จ

อุปกรณ์ตอนนี้

  • เน็ต ที่มี public ip หรือถ้ามี Server ที่มี Public IP (ใช้ VPS ก็ได้) อยู่แล้วก็ใช้แทนกันได้ ไม่แนะนำให้เช่า vps มาเพื่อทำ (แพงกว่าหา public ip ให้เน็ตบ้านเยอะ)
  • Raspberry Pi 3
  • UPS ของ APC เอาแบบมี USB port จิ้มสถานะเข้าคอมได้
  • Xiaomi Multifunction Gateway
    หรือซื้อครั้งแรกแนะนำให้ซื้อเป็นเซ็ตอันนี้
  • Xiaomi Temperature & Humidity Sensor ตามจุดที่อยากจับอุณหภูมิ (หลักๆ ก็ทุกห้อง)
  • Xiaomi Magnet (Door & Window) Sensor ตามจำนวนประตู/หน้าต่าง
  • Xiaomi Smart Socket (Zigbee) อันนี้จริงๆ หาตัวอื่นก็พอได้ แต่อันนี้มันวัดกระแสไฟที่ใช้ได้ด้วย (รุ่น wifi วัดกระแสไม่ได้นะ) + พอดีจะใช้กับอันต่อไป
  • พัดลมดูดอากาศติดฝ้าเพดาน ไปซื้อมาจากโฮมโปรพันนึง เอามาต่อกะปลั๊กด้านบน
  • Broadlink RM Pro อันนี้หาเอาแถวๆ Shopee ถูก+เร็วกว่าสั่ง Aliexpress อีก
  • Broadlink TC2 switch สวิชไฟไร้สาย เชื่อมกะอันบน เอาแบบมาตรฐาน US นะครับ จะใส่กะเต้ารับในบ้านได้พอดี (พอดีมากๆ)
  • ประตูรั้วรีโมท หาที่ใช้ RF 433MHz นะครับ

ตั้งค่า Xiaomi Multifunction Gateway

  • ก่อนอื่นเลย ติดตั้ง app Mi Home ลงในมือถือก่อน
  • เลือก region เป็น China + สร้าง Account อะไรให้เรียบร้อย (เลือกภาษาอังกฤษได้นะ ถึงแม้ว่าหลายจุดยังเป็นจีนอยู่ก็เถอะ)
  • กดปุ่ม + มุมบนขวาเพิ่ม Device ใหม่
  • เลือก Add Manually > Gateway
  • กรอกรหัส wifi ต้องใช้ wifi 2.4 เท่านั้น อย่าเผลอกรอก wifi 5ghz ไปนะครับ reset เซ็ตใหม่ยากมาก T_T
  • มันจะพูดจีนใส่เรารัวๆ บันเทิงมาก
  • ถ้าเรียบร้อยดี เห็น gateway ในรายการอุปกรณ์แล้วก็แตะเข้ามาหน้าควบคุมอุปกรณ์ (ที่จะมีให้เปิดปิดไฟ) มุมบนขวามีไอคอนรูปจุดสามจุด (…) อยู่ แตะเข้าไปได้เลยครับ
  • มันจะเข้าเมนูเปลี่ยนชื่อ / up firmware อะไรพวกนี้ ให้เข้าเมนู About จะมีเมนู 2-3 อัน + ด้านล่างสุดจะมีเลข version อยู่ ให้แตะเลข version นี้รัวๆ จนมีเมนูลับโผล่มาอีก 2 อัน… local area network communication protocol กับ gateway information ให้แตะเข้า local area network communication protocol แล้วเปิดการทำงาน พร้อมกับจดรหัสผ่านไว้

ตั้งค่า Broadlink RM Pro

  • ติดตั้ง app e-Control กดเครื่องหมาย + แล้วเลือก Add device
  • กรอกข้อมูล Wifi อะไรให้เรียบร้อย เดี๋ยวมันเจอแล้วมันต่ออะไรให้เองหมดเลย
  • ไปติดตั้ง switch สารพัดอะไรให้เรียบร้อย แล้วกด + แล้วเลือก Add remote เข้าไว้ให้ครบ
  • จำประตูรั้วรีโมทได้ใช่มั้ยครับ หยิบรีโมทมาอยู่ใกล้ๆ ตัว RM Pro > กด Add remote แล้วเลือก User defined แล้ว Add action เสร็จแล้วกด Learn แล้วกดปุ่มบนรีโมทให้ประตูรั้วทำงานครับ
  • แล้วติดตั้ง app RM Plugin Lite ไว้อีกตัว
  • สลับไปที่แอพ e-Control กดเมนูขีดสามเส้น แล้วกด Share > Share to other phones in WLAN
  • สลับมาที่ app RM Plugin Lite กดเมนู General Settings แล้วเลือก Force import data from eControl
  • ติ๊กเปิด HTTP Bridge แล้วเข้า http://ip:9876/codes ก๊อป code ของรีโมทแต่ละตัวไว้
  • แปลง code จากเลขฐาน 16 เป็น binary > base64 encode (php ใช้ echo base64_encode(hex2bin(‘XXXXX’)); ได้เลย

ตั้งค่า HomeAssistant Server

  • ติดตั้ง Raspbian ลง Raspberry Pi
  • ติดตั้ง HomeAssistant
  • เพิ่ม device ลงไปใน configuration.yml
  • Xiaomi ประมาณนี้

xiaomi_aqara:
discovery_retry: 5
gateways:
- key: รหัสผ่านที่จดไว้

  • Broadlink ประมาณนี้

switch:
- platform: broadlink
host: 192.168.1.106
mac: '34:ea:34:c7:8d:82'
friendly_name: broadlink
switches:
livingroom_light1:
friendly_name: "livingroom light1"
command_on: "6RRGAN8JFgkW****************CRYJFgkAAUg="
command_off: "6RRGAN8JFgkW****************CRYWCQkAAUg="
front_light:
friendly_name: "front light"
command_on: "6RRGAN8JCRYW****************CRYWCRYJFgkJFgkAAUg="
command_off: "6RRGAN8JFgkW****************CRYJFgkJFgkAAUg="

HomeAssistant จะ discover สารพัด sensor ของ Xiaomi ได้เองหมดเลย (สบายไป) เหลือก็ใส่ชื่อแซ่ให้มัน ซึ่งมาทำในหน้าเว็บก็ได้ หรือจะใส่ใน config file ก็ได้

Tags: , , ,

0228 | แก้ปัญหา mdadm –remove “No such file or directory”

ก่อนหน้านี้เจอปัญหา disk พังครับ ทำให้ mdadm mark fail ไว้ใน raid device

แล้วตอนไปเปลี่ยน disk ลืมสั่ง mdadm –remove ก่อน สิ่งที่เกิดขึ้นคือ…

node04:~# mdadm --remove /dev/md3 /dev/sdh1
mdadm: Cannot find /dev/sdh1: No such file or directory

วิธีแก้ไขไม่ยากครับ เปลี่ยนจากการระบุ device ที่หายไป เป็นคำว่า detached แบบนี้

node04:~# mdadm --remove /dev/md3 detached
mdadm: hot removed 8:113 from /dev/md3

เท่านี้โลกก็กลับมาสงบสุข…

ปล. มี trick อีกสองสามอย่างถ้าวิธีด้านบนใช้ไม่ได้ (แต่ก็ไม่น่าจะใช้ไม่ได้นะ) > https://unix.stackexchange.com/questions/197139/mdadm-cant-remove-components-in-raid-1

Tags: