วิธีเชื่อมต่ออุปกรณ์อัจฉริยะกับ HomeKit (ด้วย Raspberry Pi)

Raspberry Pi พร้อมโลโก้ Homekit

มูลนิธิ Raspberry Pi, Apple



อุปกรณ์อัจฉริยะจำนวนมากข้ามการสนับสนุน Apple HomeKit และทำงานร่วมกับ Alexa, Google และแพลตฟอร์มอื่นๆ เท่านั้น ด้วยแฮ็ค Raspberry Pi นี้ คุณสามารถเพิ่มการรองรับ HomeKit ให้กับอุปกรณ์อัจฉริยะใดๆ ด้วยซอฟต์แวร์ Homebridge โอเพ่นซอร์ส

HomeKit สำหรับอุปกรณ์อัจฉริยะทุกชนิด

หากคุณใช้ HomeKit แบบครบครัน ปัญหาใหญ่อย่างหนึ่งคือมีอุปกรณ์อัจฉริยะเพียงไม่กี่เครื่องที่รองรับ ตัวอย่างเช่น สิ่งเดียวที่รั้งหลอดไฟอัจฉริยะราคาถูกไว้คือการขาดการรองรับ HomeKit ทางเลือกของ Amazon สำหรับหลอดไฟอัจฉริยะคือ a สี่แพ็คจาก TECKIN ซึ่งในการเขียนนี้ มีราคาประมาณ 40 ดอลลาร์ ซึ่งน้อยกว่าหลอดไฟ LIFX ดวงเดียว





Tuya Smart Lights

แน่นอนว่ามันไม่ได้พรีเมียมเท่า LIFX; สีไม่สดใสเท่าและพวกมันก็ส่งเสียงฮือฮาในห้องน้ำ แต่ราคา 10 เหรียญต่อป๊อปก็เป็นค่าที่ไม่มีใครเทียบได้



ปัญหาหลักคือพวกเขาไม่มีการสนับสนุน HomeKit พวกเขาไม่ได้โง่เขลาอย่างสิ้นเชิง ใช้งานได้กับ Google Home, Alexa, IFTTT และแอปของผู้ผลิต เหมาะสำหรับผู้ที่มีหลอดไฟอัจฉริยะ TECKIN เท่านั้น

อย่างไรก็ตาม เนื่องจากคุณไม่สามารถเข้าถึงได้จาก HomeKit คุณจึงไม่สามารถควบคุมได้จากแอพบ้าน วิดเจ็ตในศูนย์ควบคุม หรือ Siri คุณไม่สามารถรวมไว้ในฉากที่มีหลอดไฟจากยี่ห้ออื่นหรือใช้ในระบบอัตโนมัติได้ หากคุณได้ลงทุนใน HomeKit แล้ว นี่อาจเป็นตัวทำลายข้อตกลง

พบกับโฮมบริดจ์

โชคดีที่มีแฮ็คที่ทำให้หลอดไฟเหล่านี้มีประโยชน์มากขึ้น HomeKit API อนุญาตให้อุปกรณ์ที่เรียกว่าบริดจ์ เช่น อันนี้จาก Philips Hue เพื่อเชื่อมต่ออุปกรณ์ลูกที่ทำงานบนโปรโตคอลอื่น คุณเพียงแค่เพิ่มบริดจ์เป็นอุปกรณ์ใน HomeKit และมันลงทะเบียนไฟแต่ละดวงที่เชื่อมต่อกับบริดจ์ใน HomeKit เมื่อใดก็ตามที่คุณขออัปเดตไฟ โทรศัพท์ของคุณจะพูดกับสะพาน และสะพานจะพูดกับแสง



โฆษณา

ดังนั้น บริดจ์เพียงแค่ถ่ายทอดข้อมูลจาก API หนึ่งไปยังอีก API เนื่องจากคุณควบคุมหลอดไฟ TECKIN ได้ทางอินเทอร์เน็ต คุณจึงสามารถเชื่อมต่อกับ HomeKit ได้ทั้งหมดโดยใช้ซอฟต์แวร์เพียงอย่างเดียว โดยไม่ต้องใช้ฮาร์ดแวร์ที่เป็นเอกสิทธิ์เฉพาะ

หากคุณมี Raspberry Pi วางอยู่รอบ ๆ ( Pi Zero ได้) คุณสามารถตั้งค่าเป็นบริดจ์ด้วยเฟรมเวิร์กที่เรียกว่า โฮมบริดจ์ . แอปพลิเคชั่น NodeJS น้ำหนักเบานี้เลียนแบบ HomeKit API และส่งต่อคำขอไปยังอุปกรณ์อัจฉริยะที่ไม่ใช่ HomeKit ของคุณ

โดยพื้นฐานแล้ว คุณเรียกใช้มันบน Pi และเพิ่มอุปกรณ์ 'ใบ้' แต่ละเครื่องลงในแอปโฮม เมื่อคุณพยายามควบคุมหลอดไฟผ่านแอพ Home หรือ Siri Homebridge จะคุยกับอุปกรณ์ต่างๆ ให้คุณ หลังจากที่คุณตั้งค่า มันจะเหมือนกับว่าอุปกรณ์รองรับ HomeKit ตั้งแต่แรก

สิ่งนี้ต้องการให้อุปกรณ์ทำงาน Homebridge ตลอดเวลา ดังนั้นนี่ไม่ใช่สิ่งที่คุณจะติดตั้งบนแล็ปท็อปของคุณ Raspberry Pi นั้นเหมาะสมที่สุด แต่หากคุณมีอุปกรณ์เครื่องเก่า คุณสามารถเปลี่ยนการใช้งานเป็นเซิร์ฟเวอร์หรือเดสก์ท็อปที่ทำงานตลอดเวลาได้ คุณสามารถติดตั้งอุปกรณ์นั้นที่นั่นได้

Homebridge เป็นเฟรมเวิร์ก และคุณสามารถขยายได้ด้วยปลั๊กอิน มีการสนับสนุนชุมชนที่ค่อนข้างใหญ่ ดังนั้นจึงมีโอกาสที่ดีที่อุปกรณ์สมาร์ทใด ๆ อาจมีปลั๊กอิน Homebridge เพื่อเพิ่มการสนับสนุน หากอุปกรณ์ของคุณไม่มีปลั๊กอิน แต่อุปกรณ์อัจฉริยะของคุณมี API และคุณเชี่ยวชาญด้านเทคโนโลยี คุณก็เขียนด้วยตัวเองได้

โฆษณา

สำหรับคนส่วนใหญ่ การตั้งค่าเป็นเพียงการติดตั้ง Homebridge และปลั๊กอินของแบรนด์สำหรับอุปกรณ์ พร้อมกับการกำหนดค่าเล็กน้อย ถ้าคุณสามารถ ใช้บรรทัดคำสั่ง และมีเวลาสักหน่อย มันค่อนข้างง่าย

การติดตั้งและกำหนดค่าโฮมบริดจ์

Homebridge เป็นแอป NodeJS ดังนั้นคุณต้องติดตั้ง |_+_| และ |_+_| ที่จะใช้มัน หากเครื่องของคุณใช้ Linux คุณอาจได้รับจากตัวจัดการแพ็คเกจ

บน Ubuntu คุณต้องพิมพ์ข้อความต่อไปนี้เพื่อตั้งค่า Node repo ด้วยตนเอง จากนั้นติดตั้ง |_+_|:

node

หรือปรึกษาได้ หน้าดาวน์โหลดโหนด สำหรับข้อมูลเกี่ยวกับวิธีการติดตั้งสำหรับระบบปฏิบัติการเฉพาะของคุณ

หากคุณใช้ Linux คุณต้องติดตั้งการพึ่งพาบางรายการดังที่แสดงด้านล่าง:

npm

หลังจากนั้น คุณสามารถติดตั้ง Homebridge ได้ทั่วโลกผ่าน |_+_| ดังที่แสดงด้านล่าง:

nodejsโฆษณา

คุณต้องการติดตั้งปลั๊กอินของแบรนด์ที่คุณต้องการด้วย เนื่องจาก Homebridge เป็นเพียงเฟรมเวิร์ก ตัวอย่างเช่น สำหรับหลอดไฟ TECKIN ปลั๊กอินคือ |_+_| ซึ่งติดตั้งทั่วโลกเช่นกัน

คุณจะพิมพ์ต่อไปนี้:

npm

หลังจากติดตั้งทุกอย่างเรียบร้อย คุณก็ใช้งานได้จริง! พิมพ์ข้อมูลต่อไปนี้เพื่อเรียกใช้ Homebridge หนึ่งครั้งและเริ่มต้นทุกอย่าง:

homebridge-tuya-web

มันจะบ่นเกี่ยวกับการขาดการกำหนดค่าซึ่งคุณต้องสร้าง ไดเร็กทอรีเริ่มต้นคือ |_+_| แต่คุณสามารถใช้ |_+_| พารามิเตอร์หากคุณต้องการย้าย

พิมพ์ข้อมูลต่อไปนี้เพื่อสร้างไฟล์การกำหนดค่า JSON ใหม่ในโฟลเดอร์นี้:

~/.homebridge/

ไม่ว่าคุณจะใช้ปลั๊กอินใดก็ตาม คุณต้องมีการกำหนดค่าพื้นฐานต่อไปนี้:

-U

สิ่งนี้กำหนดค่า Homebridge ด้วยพอร์ตเริ่มต้น ชื่อ PIN และช่วงพอร์ตที่พร้อมใช้งานเพื่อจัดสรรให้กับอุปกรณ์อื่น

โฆษณา

ข้างในว่างเปล่า |_+_| อาร์เรย์ คุณวางการกำหนดค่าสำหรับปลั๊กอินแต่ละตัว คุณควรจะสามารถค้นหาคำแนะนำและตัวอย่างสิ่งนี้ได้ในหน้า GitHub ของปลั๊กอินแต่ละหน้า

ในตัวอย่างด้านล่าง |_+_| ปลั๊กอินสำหรับหลอดไฟ TECKIN ต้องการทราบชื่อผู้ใช้และรหัสผ่านของฉันเพื่อเชื่อมต่อกับ API สำหรับแอปของ bulb และอีกสองสามสิ่ง:

platforms

เมื่อกำหนดค่าทั้งหมดแล้ว Homebridge ก็ควรพร้อมใช้งาน เรียกใช้อีกครั้ง และเทอร์มินัลของคุณควรแสดงรหัส QR ขนาดยักษ์ที่อาจบังคับให้คุณย่อ สแกนสิ่งนี้ด้วยแอพ Home เพื่อเพิ่มและอุปกรณ์ที่เชื่อมต่อทั้งหมดไปยัง HomeKit

QR Code ในเทอร์มินัล

Homebridge โหลดปลั๊กอินของคุณและควรบันทึกข้อความไปยังหน้าจอสำหรับอุปกรณ์แต่ละเครื่องที่พบ คุณควรเห็นพวกเขาทั้งหมดใน HomeKit หลังจากที่เพิ่มเข้าไปแล้ว และควรใช้งานได้อย่างสมบูรณ์

ฉันสังเกตเห็นความล่าช้าเล็กน้อยเมื่อเทียบกับหลอดไฟ LIFX ของฉัน อาจเป็นเพราะหลอดไฟถูกควบคุมผ่าน API มากกว่าการควบคุมโดยตรง ในตอนแรก หลอดไฟก็ไม่แสดงสีขาวและสีขาวนวลอย่างถูกต้อง แต่หลังจากปรับแต่งเล็กน้อย ฉันก็จัดฉากที่เหมาะสมได้

คุณสามารถกำหนดค่าอุปกรณ์ในแอปของตนเองได้ตลอดเวลา รอให้แอป Home อัปเดต จากนั้นตั้งค่าฉากใน HomeKit ด้วยการกำหนดค่าที่กำหนดไว้ล่วงหน้า

โฆษณา

หากคุณต้องการเพิ่ม Homebridge อีกครั้ง คุณจะต้องลบ |_+_| ในไดเร็กทอรี config จากนั้นลบบริดจ์จาก HomeKit ออกจากการตั้งค่าของ bulb ที่เชื่อมต่อใต้แท็บ Bridge

การเพิ่ม Homebridge เป็นบริการ

หากคุณต้องการให้ Homebridge ทำงานตลอดเวลา คุณอาจต้องการกำหนดค่าให้รีสตาร์ทหากเกิดปัญหาหรือหาก Raspberry Pi รีสตาร์ท คุณสามารถทำได้ผ่านบริการ Unix ตั้งค่านี้หลังจากที่คุณได้ตรวจสอบแล้วว่า Homebridge ทำงานตามที่ตั้งใจไว้

ขั้นแรก เพิ่มผู้ใช้บริการใหม่ ชื่อ |_+_|:

homebridge-tuya-web

ตั้งรหัสผ่าน:

persist/

ถัดไป คุณจะต้องย้าย |_+_|การกำหนดค่านอกไดเรกทอรีหลักส่วนบุคคลของคุณ |_+_| ควรจะดี:

homebridge

ตรวจสอบให้แน่ใจว่าคนที่ใช้ |_+_| มีความเป็นเจ้าของไดเร็กทอรีนั้นและโฟลเดอร์ย่อยทั้งหมด:

homebridge

เมื่อเสร็จแล้ว คุณสามารถสร้างบริการได้ โดยสร้างไฟล์ใหม่ชื่อ |_+_| ใน |_+_|:

/var/lib/homebridge/

แล้ววางการกำหนดค่าต่อไปนี้:

homebridge

โหลด services daemon ใหม่เพื่ออัปเดตด้วยการเปลี่ยนแปลงของคุณ:

homebridge.serviceโฆษณา

ตอนนี้ คุณควรจะสามารถเปิดใช้งานบริการของคุณได้ (ตั้งค่าให้ทำงานเมื่อบู๊ต):

/etc/systemd/system/

และเริ่มต้น:

curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash - sudo apt-get install -y nodejs

หากคุณต้องการแก้ไขข้อผิดพลาดที่เกิดจากการกำหนดค่าบริการ คุณสามารถดูบันทึกของบริการได้โดยพิมพ์:

sudo apt-get install libavahi-compat-libdnssd-dev
อ่านต่อไป รูปโปรไฟล์สำหรับ Anthony Heddings แอนโธนี่ เฮดดิงส์
Anthony Heddings เป็นวิศวกรระบบคลาวด์ประจำของ LifeSavvy Media นักเขียนด้านเทคนิค โปรแกรมเมอร์ และผู้เชี่ยวชาญที่แพลตฟอร์ม AWS ของ Amazon เขาเขียนบทความหลายร้อยบทความสำหรับ How-To Geek และ CloudSavvy IT ที่มีคนอ่านหลายล้านครั้ง
อ่านชีวประวัติฉบับเต็ม

บทความที่น่าสนใจ

โพสต์ยอดนิยม

สร้างรหัสผ่านที่รัดกุมโดยใช้ยูทิลิตี้ในตัวของ Mac OS X Lion

สร้างรหัสผ่านที่รัดกุมโดยใช้ยูทิลิตี้ในตัวของ Mac OS X Lion

วิธีการใช้รหัสผ่านป้องกันเอกสารและ PDF ด้วย Microsoft Office

วิธีการใช้รหัสผ่านป้องกันเอกสารและ PDF ด้วย Microsoft Office

วิธีแพ็คอุปกรณ์อิเล็กทรอนิกส์สำหรับการเดินทางทางอากาศ

วิธีแพ็คอุปกรณ์อิเล็กทรอนิกส์สำหรับการเดินทางทางอากาศ

วิธีไปที่แผงโปรแกรมถอนการติดตั้งเก่าใน Windows 10

วิธีไปที่แผงโปรแกรมถอนการติดตั้งเก่าใน Windows 10

วิธีการคลิกขวา

วิธีการคลิกขวา

วิธีใช้อินเทอร์เน็ตจากจีน

วิธีใช้อินเทอร์เน็ตจากจีน

วิธีแก้ไข Gmail เมื่อไม่ได้รับอีเมล

วิธีแก้ไข Gmail เมื่อไม่ได้รับอีเมล

วิธีดูแอพทั้งหมดที่คุณซื้อจาก Mac App Store

วิธีดูแอพทั้งหมดที่คุณซื้อจาก Mac App Store

Office Intelligent Services คืออะไรและคุณควรปิดหรือไม่

Office Intelligent Services คืออะไรและคุณควรปิดหรือไม่

เหตุใดจึงจำเป็นต้องใช้เซิร์ฟเวอร์ SMTP ระดับกลางในการส่งเมล

เหตุใดจึงจำเป็นต้องใช้เซิร์ฟเวอร์ SMTP ระดับกลางในการส่งเมล