โครงการนี้กำลังปิดประตู ด้วยการมาถึงของ https://github.com/cgarwood/homeassistant-zwave_mqtt โดยใช้ https://github.com/OpenZWave/qt-openzwave หรือที่รู้จักในชื่อ ozwdaemon
ไม่มีอะไรอีกแล้วที่ฉันจะขอได้ (สมมติว่าพวกเขาขโมยความคิดของฉันไป ถ้าใครถาม?) ในรูปแบบโอเพ่นซอร์สที่ดี ฉันจะลงทุนในโปรเจ็กต์เหล่านี้ดีกว่าแทนที่จะคิดค้นวงล้อขึ้นมาใหม่ เป็นทริปสั้นๆ แต่สนุก...
เพื่อเป็นคลังเก็บถาวรเร็วๆ นี้
สถานะปัจจุบัน:
แบ็กเอนด์ Z-Wave / REST API: เบต้า
ส่วนหน้าของเบราว์เซอร์: อัลฟ่า
การเปิดเผยเครือข่าย Z-Wave ของคุณเป็นไคลเอนต์ MQTT อัลฟ่า แต่ยังไม่ใช่สำหรับการใช้งานรายวัน
mqtt
(ภายใน HA) และการค้นพบ ทำให้สามารถกำหนดค่าตาม GUI เต็มรูปแบบได้ เริ่มต้นที่ไหนสักแห่ง เช่น cd /tmp
git clone [email protected]:daringer/zwave-core.git
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง python > 3.x แล้ว
ติดตั้ง venv โดยใช้ pip: python -m pip install venv
สร้างสภาพแวดล้อมเสมือนใหม่และเปิดใช้งาน:
python -m venv /tmp/zwave_core_venv
source /tmp/zwave_core_venv/bin/activate
cd /tmp/zwave-core
python -m pip install -r requirements.txt
# for example for home-assistant
cd ~ /.homeassistant
cp zwcfg_0xf5b17667.xml pyozw.sqlite zwscene.xml options.xml /tmp/zwave-core/
ค้นหา (และกำหนด) การติดตั้ง openzwave ของคุณ (รสชาติ) ดูที่ openzwave สำหรับฉัน ฉันชอบทั้งระบบมากกว่าการติดตั้ง open-zwave ผ่าน pacman-ager ของฉัน ดังนั้นสำหรับฉันมันคือ: /etc/openzwave
ตรวจสอบว่าอุปกรณ์อนุกรมคอนโทรลเลอร์ของคุณ (เช่น /dev/ttyACM0
) สามารถเขียนได้หรือไม่
เพียงแค่เรียกใช้:
cd /tmp/zwave-core
python zwave_core/start.py
ตอนนี้เพื่อเริ่มต้นเครือข่าย เพียงตรวจสอบให้แน่ใจว่าช่องป้อนข้อมูล 4 ช่องที่ด้านซ้ายบนนั้นถูกต้อง อุปกรณ์ควบคุม /dev/ttyACM0
, ไดเร็กทอรีฐานข้อมูล openzwave /etc/openzwave
, user-dir คือ workdir ปัจจุบันของเรา ซึ่งเราได้คัดลอกไฟล์ openzwave ไปไว้เพื่อความปลอดภัย .
-
เมื่อเสร็จแล้วให้คลิก "เปิด" ที่มุมซ้ายบนแล้วรอในขณะที่ดูบันทึกเหตุการณ์ที่บรรจุโดยงานที่คอนโทรลเลอร์กำลังดำเนินการ...
ZWave-core จะต้อง---ตามชื่อที่แนะนำ---เป็นองค์ประกอบหลักสำหรับการโต้ตอบกับอุปกรณ์ Z-Wave และเครือข่าย ให้อินเทอร์เฟซที่โปร่งใสและแม่นยำในโปรโตคอล Z-Wave และไม่ซ่อนรายละเอียดใดๆ การใช้ REST API มีความโปร่งใสนี้ในแพลตฟอร์มที่เป็นอิสระและเข้าถึงได้ง่าย
อินเทอร์เฟซแบบไดนามิก บนเว็บ และแบบโต้ตอบกำลังเปิดเผย REST API นี้ไปยังเบราว์เซอร์ ซึ่งทำหน้าที่เป็นหน้าต่างที่ชัดเจนสู่โลก Z-Wave ในการขนส่งเครือข่าย Z-Wave ที่มีไดนามิกสูง การพุชแบบ websocket เป็นสิ่งจำเป็นเพื่อให้ฝั่งผู้รับไม่พลาดข้อมูลใดๆ ภายในเครือข่ายโดยมีเวลาแฝงน้อยที่สุด
ตรงกันข้ามกับแนวทางแบบ Bare-Metal แบบเรียบๆ นี้ คุณลักษณะที่โดดเด่นที่สำคัญคือเลเยอร์ MQTT ซึ่งแนะนำเลเยอร์นามธรรมระหว่างระบบอัตโนมัติในบ้านและเครือข่าย Z-Wave เพื่อแยกสิ่งที่ไม่เข้ากัน: ทางกายภาพและการทำงาน ชั้น ในขณะที่แบบแรกสามารถปรับใช้แบบสแตนด์อโลนได้ โดยไม่ต้องมีความรู้เกี่ยวกับสภาพแวดล้อมมาก่อนแม้จะมีเครือข่าย Z-Wave ก็ตาม แต่แบบหลังมีอิสระที่จะไม่สนใจเลเยอร์ทางกายภาพเลย และมุ่งเน้นไปที่ความท้าทายด้านการทำงานที่มุ่งเน้นผู้ใช้ปลายทาง กล่าวง่ายๆ ก็คือ zwave-core มอบ Z-Wave ไปยังบริดจ์ IP ที่ช่วยให้การจัดการ Z-Wave เป็นเรื่องง่าย เชื่อมช่องว่างระหว่าง WiFi และแบนด์ ISM
URL | วิธีการ | คำอธิบาย |
---|---|---|
/สุทธิ | รับ | - |
/สุทธิ/การกระทำ | รับ | |
/net/การกระทำ/การกระทำ | โพสต์ | |
/net/ctrl/actions | รับ | |
/net/ctrl/action/action | โพสต์ | |
/สุทธิ/ตัวเลือก | รับ, ลบ, แพทช์, โพสต์ | |
/net/สัญญาณ | รับ | |
/โหนด | รับ | |
/โหนด/int:node_id | รับแพทช์ | |
/โหนด/int:node_id/value/int:value_id | รับโพสต์ | |
/โหนด/การกระทำ | รับ | |
/node/int:node_id/action/action | โพสต์ | |
/toc | รับ |
127.0.0.1:5000/ส่วนหน้า ...
มีหลายวิธีในการเข้าถึงโหนดและเอนทิตี zwave
zwave/raw/<node_id>/#
จะให้รายการที่ครอบคลุมเกี่ยวกับอุปกรณ์ lan ทั้งหมด รวมถึง c onfigs, อ่านอย่างเดียว, ...homeassistant/<component type (eg, sensor)>/<node_id>/state#'
จะถูกเติมโดยอัตโนมัติ