แรงจูงใจ
- ได้สำรวจความเป็นไปได้ในการเข้าถึงเครือข่ายภายในของเตียง Sleep Number มาหลายปี
- ได้สร้างปลั๊กอิน homebridge ที่สามารถควบคุมการตั้งค่าเตียงผ่าน HomeKit
- Sleep Number ได้ขอให้ปิดใช้งานปลั๊กอิน เนื่องจากมีความถี่ของคำขอ API สูงขึ้น
- จึงตัดสินใจหาวิธีข้ามเซิร์ฟเวอร์ด้วยการเข้าถึงผ่านเครือข่ายภายใน
สิ่งที่ต้องเตรียมล่วงหน้า
- หมายเลขรุ่นของ Sleep Number Hub: 360SIQ01D
- ต้องใช้อุปกรณ์ UART to TTY และเครื่องมือฮาร์ดแวร์อื่น ๆ
- ต้องใช้แฟลชไดรฟ์ USB-A
การได้สิทธิ์เข้าถึงรูท
- เชื่อมต่ออุปกรณ์ UART เข้ากับเฮดเดอร์ J16
- เชื่อมต่อคอนโซลเข้ากับอุปกรณ์ UART (baud rate: 115200)
- เปิดไฟของฮับ แล้วกด <SPACE> ภายใน 2 วินาทีเพื่อหยุดลำดับการบูตอัตโนมัติ
- แก้ไขตัวแปรสภาพแวดล้อมการบูต
- ในการบูตครั้งแรก ให้เสียบแฟลชไดรฟ์ที่มีไฟล์
let_me_root
- remount พาร์ทิชันรูทเป็น rw แล้วเพิ่มไฟล์
let_me_root
- ตั้งค่าการเข้าถึงผ่าน SSH
การสร้างเซิร์ฟเวอร์สำหรับควบคุมและมอนิเตอร์ผ่านเครือข่ายภายใน
- ตั้งค่า HTTP เซิร์ฟเวอร์ด้วย Python 2.7.18
- เขียนสคริปต์ HTTP เซิร์ฟเวอร์ที่สามารถรันสคริปต์ในไดเรกทอรี
/bam/scripts
- คัดลอกสคริปต์ไปยังฮับแล้วรัน
การเพิ่มสคริปต์ rc.d
- เพิ่มสคริปต์ rc.d ไปยังพาร์ทิชัน
/real.root
- คัดลอกสคริปต์ไปยังฮับแล้วย้ายไปยังตำแหน่งที่เหมาะสม
- เพิ่ม symbolic link ที่จำเป็น
คำสั่งที่มีประโยชน์
- สามารถใช้คำสั่งควบคุมเตียงหลายแบบได้จากสคริปต์
/bio
- ตัวอย่างคำสั่ง:
arg=PSNL: ดึงค่าหมายเลขการนอนที่ตั้งไว้ล่าสุดของฝั่งซ้ายของเตียง
arg=PSNS&arg=L100: ตั้งหมายเลขการนอนของฝั่งซ้ายของเตียงเป็น 100
ขั้นตอนถัดไป
- สำรวจความสามารถในการควบคุมเตียงในไดเรกทอรีราก
/bam
- พิจารณาปัญหาด้านความปลอดภัยของฮับที่สื่อสารกับเซิร์ฟเวอร์ Sleep Number ผ่าน SSH tunnel
- เขียนเว็บแอปอย่างง่ายที่สามารถใช้แทนแอป SleepIQ
ภาคผนวก: ตัวแปรสภาพแวดล้อม U-Boot ดั้งเดิมของฮับ
baudrate=115200
bootcmd=run find_board_name; run set_bootargs;setenv boot_mmcdev 0; run bootcmd_mmc;setenv boot_mmcdev 1; run bootcmd_mmc
- ตัวแปรอื่น ๆ...
ความเห็นจาก GN⁺
- คู่มือนี้ทำให้สามารถเข้าถึงเตียง Sleep Number ผ่านเครือข่ายภายในได้ และให้ผู้ใช้มีสิทธิ์ควบคุมมากขึ้น
- เมื่อพิจารณาถึงปัญหาด้านความปลอดภัยของฮับ ควรตัดการเชื่อมต่ออินเทอร์เน็ตภายนอก
- ยังมีผลิตภัณฑ์สมาร์ตโฮมอื่น ๆ ที่ให้ความสามารถคล้ายกัน
- เมื่อนำเทคโนโลยีใหม่มาใช้ ควรพิจารณาปัญหาด้านความปลอดภัยและการบำรุงรักษาอย่างรอบคอบ
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
เมื่อก่อนเคยใช้เตียงที่ไม่มีฟังก์ชันอัจฉริยะ
สนใจฮับที่สื่อสารกับเซิร์ฟเวอร์ของ Sleep Number ผ่าน SSH tunnel
มีวิธีลักษณะคล้ายกันในการเข้าถึง Eight Sleep Pod 3
ตอนแรกคิดว่าเป็นบทความเกี่ยวกับการแฮ็กเตียง Eight Sleep
ต่อไปเป็นมุกเกี่ยวกับ ransomware
สถานการณ์ที่อินเทอร์เน็ตล่มแล้วปรับอุณหภูมิเตียงไม่ได้เป็นเรื่องน่าหงุดหงิด
ตัดสินใจว่าจะไม่ซื้อเตียง Sleep Number
ตั้งคำถามว่าทำไมเตียงถึงต้องรัน Linux
แนะนำให้เพิ่มอุปกรณ์บัดกรีลงในรายการซื้อของ