ขอบเขตของ Nuki Hub คือการมีวิธีที่มีประสิทธิภาพในการรวมอุปกรณ์ Nuki เข้ากับแพลตฟอร์ม Home Automation ในพื้นที่
ซอฟต์แวร์ Nuki Hub ทำงานบนโมดูล ESP32 และทำหน้าที่เป็นสะพานเชื่อมระหว่างอุปกรณ์ Nuki และแพลตฟอร์ม Home Automation
โดยจะสื่อสารกับ Nuki Lock และ/หรือ Opener ผ่าน Bluetooth (BLE) และใช้ MQTT เพื่อทำงานร่วมกับระบบอื่นๆ
โดยเปิดเผยสถานะการล็อค (และอื่นๆ อีกมากมาย) ผ่าน MQTT และอนุญาตให้ดำเนินการคำสั่ง เช่น การล็อคและการปลดล็อค รวมถึงการเปลี่ยนการกำหนดค่า Nuki Lock/Opener ผ่าน MQTT
Nuki Hub ไม่ได้ทำงานร่วมกับแอปมือถือ Nuki แต่ไม่สามารถลงทะเบียนตัวเองเป็นสะพานเชื่อมในแอปมือถือ Nuki อย่างเป็นทางการได้
เข้าร่วม Discord กับเราได้ตามสบาย: https://discord.gg/9nPq85bP4p
อุปกรณ์ ESP32 ที่รองรับ:
ไม่รองรับอุปกรณ์ ESP32:
อุปกรณ์ Nuki ที่รองรับ:
ยังไม่ทดลอง แต่น่าจะรองรับ:
อุปกรณ์อีเธอร์เน็ตที่รองรับ:
เป็นทางเลือกแทน Wi-Fi (ซึ่งมีให้บริการใน ESP32 ที่รองรับ) รองรับโมดูล ESP32 ต่อไปนี้ที่มีอีเธอร์เน็ตแบบมีสายในตัว:
โดยหลักการแล้ว รองรับอุปกรณ์ ESP32 (และรุ่นต่างๆ) ทั้งหมดที่มีพอร์ตอีเธอร์เน็ตในตัว แต่อาจต้องมีการตั้งค่าเพิ่มเติมโดยใช้ตัวเลือก "การตั้งค่า LAN แบบกำหนดเอง" ดูส่วน "การเชื่อมต่อผ่านอีเทอร์เน็ต" สำหรับข้อมูลเพิ่มเติม
หากจำเป็นต้องใช้ WIFI6 อย่างแน่นอน: ESP32-C6
หากจำเป็นต้องใช้ PoE: อุปกรณ์ใดๆ ข้างต้นที่มี PoE หรืออุปกรณ์ ESP อื่นๆ ร่วมกับโมดูล SPI Ethernet (W5500) และตัวแยก PoE ไปยัง Ethernet และ USB ประเภท B/C
หากคุณต้องการประสิทธิภาพสูงสุดและตั้งใจที่จะรันสิ่งใดสิ่งหนึ่งหรือหลายสิ่งต่อไปนี้:
ESP32-S3 ที่มี PSRAM 2MB ขึ้นไป (มองหา ESP32-S3 ที่มีการกำหนด N>=4 และ R>=2 เช่น ESP32-S3 N16R8)
โดยทั่วไปเมื่อซื้ออุปกรณ์ใหม่เมื่อขนาดและไม่กี่ดอลลาร์ไม่มากก็น้อยไม่มีปัญหา: ESP32-S3 ที่มี PSRAM 2MB ขึ้นไป
ESP32-S3 เป็น CPU แบบดูอัลคอร์ที่มี GPIO จำนวนมาก ความสามารถในการขยาย RAM โดยใช้ PSRAM ความสามารถในการเชื่อมต่อโมดูลอีเทอร์เน็ตผ่าน SPI และสามารถเลือกจ่ายไฟให้กับอุปกรณ์ด้วยตัวแยก PoE ฟังก์ชั่นเดียวที่ขาดหายไปจาก ESP32-S3 เมื่อเปรียบเทียบกับอุปกรณ์ ESP อื่น ๆ คือความสามารถในการใช้โมดูลอีเธอร์เน็ตบางตัวที่รองรับโดย ESP32 ดั้งเดิมเท่านั้นและความสามารถในการเชื่อมต่อผ่าน WIFI6 (C6)
คุณสมบัติ | นูกิ ฮับ | สะพานนูกิ |
---|---|---|
บริดจ์ API | x | |
รีโมทคอนโทรลอัจฉริยะล็อค | x | x |
การบูรณาการสมาร์ทโฮมผ่าน Matter | x | |
การรวม Apple HomeKit ผ่าน Matter | x | |
MQTT API | x | x (สำหรับรุ่น SL 3, 4 และ 4 Pro เท่านั้น) |
รองรับระบบ LAN แบบมีสาย | x | |
จ่ายไฟผ่านอีเทอร์เน็ต (PoE) | x (หากรองรับโดยโมดูล LAN/ESP) | |
รองรับเครือข่ายไร้สาย | x | x (สำหรับรุ่น SL 3 และ 4 Pro เท่านั้น) |
การรวมแพลตฟอร์มระบบอัตโนมัติในบ้าน | x | x |
การสนับสนุนระบบคลาวด์ | x (เป็นทางเลือกผ่านโซลูชันสมาร์ทโฮม) | x |
การทำงานแบบไร้คลาวด์ | x | x (ตั้งแต่ fw 3.8.2) |
การรวมแอป Nuki อย่างเป็นทางการ | x | |
นูกิ สมาร์ทล็อค ทุกรุ่น | x | x |
ที่เปิดนูกิ | x | x |
ปุ่มกด Nuki (1.0 และ 2.0) | x | x |
การเข้ารหัส MQTT | x | |
การควบคุมการเข้าถึง MQTT API แบบละเอียด | x | |
ส่งออกการดำเนินการล็อคผ่าน MQTT API | x | |
ควบคุมผ่าน GPIO | x | |
โหมดไฮบริดสำหรับล็อคการเชื่อมต่อ WiFI และ Thread | x |
หากคุณยังไม่ได้สั่งซื้อผลิตภัณฑ์ Nuki คุณสามารถสนับสนุนฉันได้โดยใช้รหัสผู้อ้างอิงของฉันเมื่อทำการสั่งซื้อ:
REF2BJHFVHZKK
นอกจากนี้ยังจะให้ส่วนลด 10% สำหรับการสั่งซื้อของคุณ
โครงการนี้ใช้งานได้ฟรีสำหรับทุกคน อย่างไรก็ตาม หากคุณรู้สึกอยากบริจาค คุณสามารถซื้อกาแฟให้ฉันได้ที่ ko-fi.com:
แฟลชเฟิร์มแวร์ไปที่ ESP32 วิธีที่ง่ายที่สุดในการติดตั้งคือการใช้โปรแกรมติดตั้งบนเว็บโดยใช้เบราว์เซอร์ที่เข้ากันได้ เช่น Chrome/Opera/Edge:
https://technyon.github.io/nuki_hub/
หมายเหตุ: Webflash ไม่สามารถใช้งานได้กับ ESP32-Solo1
หรือดาวน์โหลดรุ่นล่าสุดสำหรับรุ่น ESP32 ของคุณจาก https://github.com/technyon/nuki_hub/releases
คลายไฟล์ zip และอ่านคำแนะนำในการติดตั้ง "Espressif Flash Download Tools" หรือ "esptool" ในไฟล์ How-to-flash.txt
เพิ่มพลังให้กับ ESP32 และจุดเชื่อมต่อ Wi-Fi ใหม่ชื่อ "NukiHub" ควรปรากฏขึ้น
รหัสผ่านของจุดเข้าใช้งานคือ "NukiHubESP32"
เชื่อมต่ออุปกรณ์ไคลเอ็นต์กับจุดเชื่อมต่อนี้และในเบราว์เซอร์ไปที่ "http://192.168.4.1"
ใช้เว็บอินเตอร์เฟสเพื่อเชื่อมต่อ ESP กับเครือข่าย Wi-Fi ที่คุณต้องการ
หลังจากกำหนดค่า Wi-Fi แล้ว ESP ควรเชื่อมต่อกับเครือข่ายของคุณโดยอัตโนมัติ
หากต้องการกำหนดค่าการเชื่อมต่อกับนายหน้า MQTT ขั้นแรกให้เชื่อมต่ออุปกรณ์ไคลเอนต์ของคุณกับเครือข่าย Wi-Fi เดียวกันกับที่ ESP32 เชื่อมต่ออยู่
ในเบราว์เซอร์ ให้นำทางไปยังที่อยู่ IP ที่กำหนดให้กับ ESP32 ผ่าน DHCP (มักพบในเว็บอินเตอร์เฟสของเราเตอร์อินเทอร์เน็ตของคุณ)
คลิกถัดไปที่ "แก้ไข" ด้านล่าง "การกำหนดค่า MQTT" แล้วป้อนที่อยู่และพอร์ต (ปกติคือ 1883) ของโบรกเกอร์ MQTT ของคุณ รวมถึงชื่อผู้ใช้และรหัสผ่าน หากโบรกเกอร์ MQTT ของคุณกำหนด
เฟิร์มแวร์รองรับการเข้ารหัส SSL สำหรับ MQTT อย่างไรก็ตามคนส่วนใหญ่และโดยเฉพาะผู้ใช้ตามบ้านไม่ได้ใช้สิ่งนี้
ในกรณีดังกล่าว ให้เว้นช่องทั้งหมดที่ขึ้นต้นด้วย "MQTT SSL" ว่างไว้ หรือดูส่วน "การเข้ารหัส MQTT" ของ README นี้
ตรวจสอบให้แน่ใจว่าได้เปิดใช้งาน "การจับคู่บลูทูธ" สำหรับอุปกรณ์ Nuki โดยเปิดใช้งานการตั้งค่านี้ในแอป Nuki อย่างเป็นทางการใน "การตั้งค่า" > "คุณสมบัติและการกำหนดค่า" > "ปุ่มและไฟ LED" หลังจากเปิดใช้งานการตั้งค่าแล้วให้กดปุ่มบนอุปกรณ์ Nuki สักครู่
การจับคู่ควรเป็นอัตโนมัติเมื่อเปิด ESP32
เมื่อการจับคู่สำเร็จ เว็บอินเทอร์เฟซควรแสดง "จับคู่: ใช่"
ขณะนี้โหนด MQTT เช่น สถานะการล็อกและระดับแบตเตอรี่ควรสะท้อนถึงค่าที่รายงานจากการล็อก
หมายเหตุ: คุณสามารถเรียกใช้ Nuki Hub ควบคู่ไปกับ Nuki Bridge ได้ ไม่แนะนำ (เว้นแต่เมื่อใช้โหมดไฮบริด) และจะทำให้แบตเตอรี่หมดมากเกินไป และอาจทำให้อุปกรณ์ใดอุปกรณ์หนึ่งขาดการอัปเดต เปิดใช้งาน "ลงทะเบียนเป็นแอป" ก่อนจับคู่เพื่ออนุญาตสิ่งนี้ มิฉะนั้น Bridge จะถูกยกเลิกการลงทะเบียนเมื่อจับคู่ Nuki Hub
โหมดไฮบริดช่วยให้คุณใช้งาน Nuki MQTT อย่างเป็นทางการบน Nuki Lock 3.0 Pro, Nuki Lock 4.0 หรือ Nuki Lock 4.0 Pro ร่วมกับ Nuki Hub
ดูโหมดไฮบริดสำหรับข้อมูลเพิ่มเติม
อุปกรณ์ ESP32 มี RAM ฟรีในจำนวนจำกัด
ในเวอร์ชัน 9.01 ของ Nuki Hub ที่มีเพียง Nuki Lock ที่เชื่อมต่อ จำนวน RAM/Heap ฟรีที่คาดไว้มีดังนี้:
จำนวน RAM ที่ว่างนี้สามารถลดลงได้ (ชั่วคราว) ด้วยการกระทำบางอย่าง (เช่น การเปลี่ยนการกำหนดค่าอุปกรณ์ Nuki) หรือต่อเนื่องเมื่อเปิดใช้งานสิ่งต่อไปนี้:
RAM/Heap ที่มีอยู่ในปัจจุบันสามารถพบได้ในหน้าข้อมูลของ Web Configurator ของ Nuki Hub
เมื่อ RAM ที่มีอยู่ของ ESP32 หมด อุปกรณ์นี้อาจหยุดทำงานหรืออาจเกิดพฤติกรรมที่ไม่คาดคิดได้
Nuki Hub อนุญาตให้ใช้ PSRAM แบบฝังบนไบนารีปกติทุกครั้งที่มีให้บริการ
โดยทั่วไป PSRAM จะมีขนาด 2, 4 หรือ 8MB ดังนั้นจึงขยายขนาด RAM ภายในที่มีอยู่ได้มากถึง 320kb อย่างมาก
โดยพื้นฐานแล้วมันเป็นไปไม่ได้เลยที่ RAM จะหมดเมื่อ PSRAM พร้อมใช้งาน คุณสามารถตรวจสอบได้ที่หน้าข้อมูลของ Web Configurator ว่า PSRAM พร้อมใช้งานหรือไม่
โปรดทราบว่ามี Nuki Hub สองรุ่นสำหรับ ESP32-S3 ที่พร้อมใช้งาน
หนึ่งอันสำหรับอุปกรณ์ที่ไม่มีหรือ Quad SPI PSRAM และอีกอันสำหรับอุปกรณ์ที่มี Octal SPI PSRAM
หากอุปกรณ์ ESP32-S3 ของคุณมี PSRAM แต่ตรวจไม่พบ โปรดแฟลชไบนารี S3 ตัวอื่น
ในเบราว์เซอร์นำทางไปยังที่อยู่ IP ที่กำหนดให้กับ ESP32
ตัวเลือกเมนู "นำเข้า/ส่งออกการกำหนดค่า" ช่วยให้สามารถนำเข้าและส่งออกการตั้งค่า NukiHub ในรูปแบบ JSON
สร้างการสำรองข้อมูล (บางส่วน) ของการตั้งค่า NukiHub ปัจจุบันโดยเลือกรายการใดรายการหนึ่งต่อไปนี้:
ตัวเลือกทั้งสองข้างต้นจะไม่สำรองข้อมูลการจับคู่ ดังนั้นคุณจะต้องจับคู่อุปกรณ์ Nuki ด้วยตนเองเมื่อนำเข้าการส่งออกนี้ด้วยการรีเซ็ตเป็นค่าจากโรงงานหรืออุปกรณ์ใหม่
หากต้องการเปลี่ยนการตั้งค่า Nuki Lock/Opener ตั้งค่าหัวข้อ configuration/action
ค่าที่จัดรูปแบบ JSON ด้วยการตั้งค่าใด ๆ ต่อไปนี้ การตั้งค่าหลายครั้งสามารถเปลี่ยนแปลงได้ในครั้งเดียว ดู Nuki Smart Lock API Basic Config, Nuki Smart Lock API Advanced Config, Nuki Opener API Basic Config และ Nuki Opener API Advanced Config สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าที่มีอยู่
การเปลี่ยนการตั้งค่าจะต้องเปิดใช้งานก่อนในพอร์ทัลการกำหนดค่า ตรวจสอบการตั้งค่าที่คุณต้องการให้สามารถเปลี่ยนแปลงได้ภายใต้ "Nuki Lock/Opener Config Config การควบคุม" ใน "การกำหนดค่าระดับการเข้าถึง" และบันทึกการกำหนดค่า
การตั้งค่า | การใช้งาน | ค่าที่เป็นไปได้ | ตัวอย่าง |
---|---|---|---|
ชื่อ | ชื่อของสมาร์ทล็อค | สตริงตัวอักษรและตัวเลขความยาวสูงสุด 32 ตัวอักษร | { "name": "Frontdoor" } |
ละติจูด | ละติจูดของสมาร์ทล็อค geoposition | ลอย | { "latitude": "48.858093" } |
ลองจิจูด | ลองจิจูดของสมาร์ทล็อค geoposition | ลอย | { "longitude": "2.294694" } |
autounlatch | ไม่ว่าประตูจะถูกปลดโดยใช้มือจับประตูจากภายนอกด้วยตนเองหรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "autoUnlatch": "1" } |
จับคู่ | ควรเปิดใช้งานการเปิดใช้งานโหมดการจับคู่ผ่านปุ่มผ่านหรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "pairingEnabled": "0" } |
ที่ใช้งาน | ไม่ว่าปุ่มควรเปิดใช้งานหรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "buttonEnabled": "1" } |
ledenabled | ไม่ว่าจะเปิดใช้งาน LED กระพริบเพื่อส่งสัญญาณประตูปลดล็อคหรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "ledEnabled": "1" } |
ความรัก | ระดับความสว่าง LED | 0 = ปิด, …, 5 = สูงสุด | { "ledBrightness": "2" } |
TimezoneOffset | เขตเวลาชดเชย (UTC) ในนาที | จำนวนเต็มระหว่าง 0 ถึง 60 | { "timeZoneOffset": "0" } |
dstmode | โหมดเวลาประหยัดแสงที่ต้องการ | 0 = ปิดการใช้งาน 1 = ยุโรป | { "dstMode": "0" } |
fobaction1 | การกระทำที่ต้องการหากกด Nuki FOB หนึ่งครั้ง | "No Action", "Unlock", "Lock", "Lock N Go", "Intelligent" | { "fobAction1": "Lock n Go" } |
fobaction2 | การกระทำที่ต้องการหากกด Nuki FOB สองครั้ง | "No Action", "Unlock", "Lock", "Lock N Go", "Intelligent" | { "fobAction2": "Intelligent" } |
fobaction3 | การกระทำที่ต้องการหากกด Nuki FOB สามครั้ง | "No Action", "Unlock", "Lock", "Lock N Go", "Intelligent" | { "fobAction3": "Unlock" } |
ซิงเกิล | ไม่ว่าจะเป็นล็อคเดียวหรือล็อคคู่เดียว | 0 = ล็อคสองครั้ง 1 = ล็อคเดี่ยว | { "singleLock": "0" } |
AdvertisingMode | โหมดโฆษณาที่ต้องการ | "อัตโนมัติ", "ปกติ", "ช้า", "ช้าที่สุด" | { "advertisingMode": "Normal" } |
เขตเวลา | เขตเวลาปัจจุบันหรือ "ไม่มี" หากไม่รองรับเขตเวลา | "ไม่มี" หรือหนึ่งในเขตเวลาจากเขตเวลา Nuki | { "timeZone": "Europe/Berlin" } |
ปลดล็อค PositionoffsetDegrees | ชดเชยที่เปลี่ยนแปลงตำแหน่งที่ปลดล็อคในองศา | จำนวนเต็มระหว่าง -90 ถึง 180 | { "unlockedPositionOffsetDegrees": "-90" } |
LockedPositionoffsetDegrees | ชดเชยที่เปลี่ยนแปลงตำแหน่งที่ล็อคไว้ในองศา | จำนวนเต็มระหว่าง -180 ถึง 90 | { "lockedPositionOffsetDegrees": "80" } |
SingleLockedPositionoffsetDegrees | ชดเชยที่เปลี่ยนตำแหน่งล็อคเดียวในองศา | จำนวนเต็มระหว่าง -180 ถึง 180 | { "singleLockedPositionOffsetDegrees": "120" } |
ปลดล็อค TolockedTransitionoffsetDegrees | ชดเชยที่เปลี่ยนแปลงตำแหน่งที่การเปลี่ยนจากการปลดล็อคเป็นการล็อคจะเกิดขึ้นในองศา | จำนวนเต็มระหว่าง -180 ถึง 180 | { "unlockedToLockedTransitionOffsetDegrees": "180" } |
Lockngotimeout | หมดเวลาสำหรับล็อค 'n' ไปในไม่กี่วินาที | จำนวนเต็มระหว่าง 5 ถึง 60 | { "lockNgoTimeout": "60" } |
Singlebuttonpressaction | การกระทำที่ต้องการหากกดปุ่มหนึ่งครั้ง | "No Action", "Intelligent", "Unlock", "Lock", "Unlatch", "Lock N Go", "แสดงสถานะ" | { "singleButtonPressAction": "Lock n Go" } |
DoubleButtonPressAction | การกระทำที่ต้องการหากกดปุ่มสองครั้ง | "No Action", "Intelligent", "Unlock", "Lock", "Unlatch", "Lock N Go", "แสดงสถานะ" | { "doubleButtonPressAction": "Show Status" } |
detachedcylinder | ด้านในด้านในของกระบอกสูบที่ใช้จะถูกแยกออกจากด้านนอก | 0 = ไม่แยกออก, 1 = เดี่ยว | { "detachedCylinder": "1" } |
แบตเตอรี่ | ประเภทของแบตเตอรี่ที่มีอยู่ในสมาร์ทล็อค | "Alkali", "Accumulators", "Lithium" | { "batteryType": "Accumulators" } |
AutomaticBatterTypedEtection | ไม่ว่าจะเปิดใช้งานการตรวจจับแบตเตอรี่โดยอัตโนมัติหรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "automaticBatteryTypeDetection": "Lock n Go" } |
การปลดประจำการ | ระยะเวลาในไม่กี่วินาทีสำหรับการจับสลักในตำแหน่งที่ไม่มีใคร | จำนวนเต็มระหว่าง 1 ถึง 30 | { "unlatchDuration": "3" } |
autolocktimeout | ไม่กี่วินาทีจนกระทั่งสมาร์ทล็อคจะรีลลคกลับมาหลังจากปลดล็อคแล้ว | จำนวนเต็มระหว่าง 30 ถึง 1800 | { "autoLockTimeOut": "60" } |
autounlockdisabled | ไม่ว่าจะเป็นการปลดล็อคอัตโนมัติโดยทั่วไปหรือไม่ | 1 = ปิดใช้งานการปลดล็อคอัตโนมัติ 0 = เปิดใช้งานการปลดล็อคอัตโนมัติ | { "autoUnLockDisabled": "1" } |
NightModeenabled | ไม่ว่าจะเปิดใช้งาน Nightmode หรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "nightModeEnabled": "1" } |
Nightmodestarttime | เวลาเริ่มต้นสำหรับ NightMode หากเปิดใช้งาน | เวลาในรูปแบบ "HH: MM" | { "nightModeStartTime": "22:00" } |
NightModeEndTime | สิ้นสุดเวลาสำหรับ Nightmode หากเปิดใช้งาน | เวลาในรูปแบบ "HH: MM" | { "nightModeEndTime": "07:00" } |
NightModeautolockenabled | ไม่ว่าจะเปิดใช้งานการล็อคอัตโนมัติในช่วง Nightmode หรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "nightModeAutoLockEnabled": "1" } |
Nightmodeautounlockdisabled | ไม่ว่าจะเป็นการปลดล็อกอัตโนมัติในช่วงกลางคืนหรือไม่ | 1 = ปิดใช้งานการปลดล็อคอัตโนมัติ 0 = เปิดใช้งานการปลดล็อคอัตโนมัติ | { "nightModeAutoUnlockDisabled": "1" } |
Nightmodeimmediatelockonstart | ไม่ว่าจะเป็นประตูที่จะถูกล็อคใน Nightmode เริ่มต้นทันทีหรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "nightModeImmediateLockOnStart": "1" } |
AutolockEnabled | ไม่ว่าจะเปิดใช้งานการล็อคอัตโนมัติหรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "autoLockEnabled": "1" } |
ทันที | ไม่ว่าจะเป็นการล็อคอัตโนมัติทันทีหรือไม่หลังจากปิดประตู | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "immediateAutoLockEnabled": "1" } |
AutoupDateenabled | ควรเปิดใช้งานการอัปเดตเฟิร์มแวร์อัตโนมัติหรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "autoUpdateEnabled": "1" } |
rebootnuki | รีบูตอุปกรณ์ Nuki ทันที | 1 = รีบูต Nuki | { "rebootNuki": "1" } |
การตั้งค่า | การใช้งาน | ค่าที่เป็นไปได้ | ตัวอย่าง |
---|---|---|---|
ชื่อ | ชื่อของตัวเปิด | สตริงตัวอักษรและตัวเลขความยาวสูงสุด 32 ตัวอักษร | { "name": "Frontdoor" } |
ละติจูด | ละติจูดของ openers geoposition | ลอย | { "latitude": "48.858093" } |
ลองจิจูด | ลองจิจูดของ openers geoposition | ลอย | { "longitude": "2.294694" } |
จับคู่ | ควรเปิดใช้งานการเปิดใช้งานโหมดการจับคู่ผ่านปุ่มผ่านหรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "pairingEnabled": "0" } |
ที่ใช้งาน | ไม่ว่าปุ่มควรเปิดใช้งานหรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "buttonEnabled": "1" } |
ledflashenabled | ไม่ว่าจะเปิดใช้งาน LED กระพริบเพื่อส่งสัญญาณ CM หรือ RTO หรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "ledFlashEnabled": "1" } |
TimezoneOffset | เขตเวลาชดเชย (UTC) ในนาที | จำนวนเต็มระหว่าง 0 ถึง 60 | { "timeZoneOffset": "0" } |
dstmode | โหมดเวลาประหยัดแสงที่ต้องการ | 0 = ปิดการใช้งาน 1 = ยุโรป | { "dstMode": "0" } |
fobaction1 | การกระทำที่ต้องการหากกด Nuki FOB หนึ่งครั้ง | "ไม่มีการกระทำ", "สลับ RTO", "เปิดใช้งาน RTO", "ปิดใช้งาน RTO", "Open", "Ring" | { "fobAction1": "Toggle RTO" } |
fobaction2 | การกระทำที่ต้องการหากกด Nuki FOB สองครั้ง | "ไม่มีการกระทำ", "สลับ RTO", "เปิดใช้งาน RTO", "ปิดใช้งาน RTO", "Open", "Ring" | { "fobAction2": "Open" } |
fobaction3 | การกระทำที่ต้องการหากกด Nuki FOB สามครั้ง | "ไม่มีการกระทำ", "สลับ RTO", "เปิดใช้งาน RTO", "ปิดใช้งาน RTO", "Open", "Ring" | { "fobAction3": "Ring" } |
OperatingMode | โหมดการทำงานที่ต้องการ | "Opener Generic Door", "Analogue Intercom", "Digital Intercom", "Siedle", "TCS", "Bticino", "Siedle HTS", "Str", "Ritto", "Fermax", "Comelit", " Urmet Bibus "," Urmet 2Voice "," Golmar "," SKS "," อะไหล่ " | { "operatingMode": "TCS" } |
AdvertisingMode | โหมดโฆษณาที่ต้องการ | "อัตโนมัติ", "ปกติ", "ช้า", "ช้าที่สุด" | { "advertisingMode": "Normal" } |
เขตเวลา | เขตเวลาปัจจุบันหรือ "ไม่มี" หากไม่รองรับเขตเวลา | "ไม่มี" หรือหนึ่งในเขตเวลาจากเขตเวลา Nuki | { "timeZone": "Europe/Berlin" } |
intercomid | ID ฐานข้อมูลของอินเตอร์คอมที่เชื่อมต่อ | จำนวนเต็ม | { "intercomID": "1" } |
Busmodeswitch | วิธีการสลับระหว่างข้อมูลและโหมดอะนาล็อก | 0 = ไม่มี, 1 = วงจร vshort | { "busModeSwitch": "0" } |
การตัดกระแสไฟฟ้า | ระยะเวลาของการลัดวงจรสำหรับการสลับโหมดบัสใน MS | จำนวนเต็ม | { "shortCircuitDuration": "250" } |
ElectricStrikedElay | ความล่าช้าใน MS ของการเปิดใช้งานการนัดหยุดงานไฟฟ้าในกรณีที่มีการกระตุ้นการโจมตีด้วยไฟฟ้าโดย RTO | จำนวนเต็มระหว่าง 0 ถึง 30000 | { "electricStrikeDelay": "2080" } |
แบบสุ่ม strikedelay | ความล่าช้าแบบสุ่ม (3-7s) เพื่อจำลองบุคคลภายในการกระทำการโจมตีด้วยไฟฟ้า | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "randomElectricStrikeDelay": "1" } |
การใช้ไฟฟ้า | ระยะเวลาใน MS ของการกระตุ้นการโจมตีด้วยไฟฟ้า - | จำนวนเต็มระหว่าง 1,000 ถึง 30000 | { "electricStrikeDuration": "5000" } |
disablertoafterring | ไม่ว่าจะปิดการใช้งาน RTO หลังจากแหวน | 1 = ปิดการใช้งาน RTO หลังจากแหวน, 0 = ไม่ปิดใช้งาน RTO หลังจากแหวน | { "disableRtoAfterRing": "0" } |
rtotimeout | หลังจากช่วงเวลานี้เป็นนาที RTO จะถูกปิดการใช้งานโดยอัตโนมัติ | จำนวนเต็มระหว่าง 5 ถึง 60 | { "rtoTimeout": "60" } |
ออด | ไม่ว่าจะเป็นออด | "Off", "CM", "RTO", "CM & RTO", "Ring", "CM & Ring", "RTO & RING", "CM & RTO & RING" | { "doorbellSuppression": "CM & Ring" } |
DoorbellsuppressionDuration | ระยะเวลาใน MS ของการปราบปรามออด | จำนวนเต็มระหว่าง 500 ถึง 100000 | { "doorbellSuppressionDuration": "2000" } |
เสียง | เสียงแหวน | "No Sound", "Sound 1", "Sound 2", "Sound 3" | { "soundRing": "No Sound" } |
soundopen | เสียงเปิด | "No Sound", "Sound 1", "Sound 2", "Sound 3" | { "soundOpen": "Sound 1" } |
เสียง | เสียง rto | "No Sound", "Sound 1", "Sound 2", "Sound 3" | { "soundRto": "Sound 2" } |
SoundCm | เสียง CM | "No Sound", "Sound 1", "Sound 2", "Sound 3" | { "soundCm": "Sound 3" } |
การยืนยันเสียง | การยืนยันเสียง | 0 = ไม่มีเสียง, 1 = เสียง | { "soundConfirmation": "1" } |
มีระดับเสียง | ระดับเสียงสำหรับตัวเปิด | จำนวนเต็มระหว่าง 0 ถึง 255 | { "soundLevel": "200" } |
Singlebuttonpressaction | การกระทำที่ต้องการหากกดปุ่มหนึ่งครั้ง | "ไม่มีการกระทำ", "สลับ RTO", "เปิดใช้งาน RTO", "ปิดใช้งาน RTO", "Toggle CM", "เปิดใช้งาน CM", "ปิดการใช้งาน CM", "Open" | { "singleButtonPressAction": "Open" } |
DoubleButtonPressAction | การกระทำที่ต้องการหากกดปุ่มสองครั้ง | "ไม่มีการกระทำ", "สลับ RTO", "เปิดใช้งาน RTO", "ปิดใช้งาน RTO", "Toggle CM", "เปิดใช้งาน CM", "ปิดการใช้งาน CM", "Open" | { "doubleButtonPressAction": "No Action" } |
แบตเตอรี่ | ประเภทของแบตเตอรี่ที่มีอยู่ในสมาร์ทล็อค | "Alkali", "Accumulators", "Lithium" | { "batteryType": "Accumulators" } |
AutomaticBatterTypedEtection | ไม่ว่าจะเปิดใช้งานการตรวจจับแบตเตอรี่โดยอัตโนมัติหรือไม่ | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน | { "automaticBatteryTypeDetection": "1" } |
rebootnuki | รีบูตอุปกรณ์ Nuki ทันที | 1 = รีบูต Nuki | { "rebootNuki": "1" } |
ตัวอย่างการใช้งานสำหรับการเปลี่ยนการตั้งค่าหลายครั้งในครั้งเดียว:
{ "buttonEnabled": "1", "lockngoTimeout": "60", "automaticBatteryTypeDetection": "1" }
{ "fobAction1": "Unlock", "fobAction2": "Intelligent", "nightModeImmediateLockOnStart": "1" }
ผลลัพธ์ของการดำเนินการเปลี่ยนการกำหนดค่าล่าสุดจะถูกเผยแพร่ไปยังหัวข้อ configuration/commandResult
MQTT เป็นข้อมูล JSON
ข้อมูล JSON จะรวมโหนดที่เรียกว่า "ทั่วไป" และโหนดสำหรับทุกการตั้งค่าที่ Nuki Hub ที่ตรวจพบในการดำเนินการ
ค่าที่เป็นไปได้สำหรับ "ทั่วไป" โหนดคือ "novalidpinset", "invalidjson", "InvalidConfig", "ความสำเร็จ" และ "Nochange"
ค่าที่เป็นไปได้สำหรับโหนดต่อการตั้งค่าคือ "ไม่เปลี่ยนแปลง", "Novalueset", "InvalidValue", "Valuetoolong", "AccessDenied", "Success", "Failed", "หมดเวลา", "ทำงาน", "notpaired", "ข้อผิดพลาด" "และ" ไม่ได้กำหนด "
ตัวอย่าง:
{"advertisingMode":"success","general":"success"}
หากเปิดใช้งานการค้นพบผู้ช่วยในบ้าน (ดูส่วนการค้นพบผู้ช่วยที่บ้านของ README นี้) Nuki Hub จะสร้างเอนทิตีสำหรับการตั้งค่าเกือบทั้งหมดข้างต้น
หลังจากการติดตั้งครั้งแรกของเฟิร์มแวร์ Nuki Hub ผ่านการเชื่อมต่อแบบอนุกรมการอัปเดตเพิ่มเติมสามารถปรับใช้ผ่านการอัปเดต OTA จากเบราว์เซอร์
ในพอร์ทัลการกำหนดค่าให้เลือก "การอัปเดตเฟิร์มแวร์" จากหน้าหลัก
วิธีที่ง่ายที่สุดในการอัพเกรด Nuki Hub หาก Nuki Hub เชื่อมต่อกับอินเทอร์เน็ตคือการเลือก "อัปเดตเป็นเวอร์ชันล่าสุด"
สิ่งนี้จะดาวน์โหลด Nuki Hub ล่าสุดและ Nuki Hub Updater และอัพเกรดแอปพลิเคชันทั้งสองโดยอัตโนมัติ
Nuki Hub จะรีบูต 3 ครั้งในระหว่างกระบวนการนี้ซึ่งจะใช้เวลาประมาณ 5 นาที
หากคุณเปิดใช้งาน "อนุญาตให้อัปเดตโดยใช้ MQTT" คุณยังสามารถใช้ Updater ผู้ช่วยที่บ้านหรือเขียน "1" ไปยังหัวข้อ nukihub/maintanance/update
เพื่อเริ่มกระบวนการอัปเดต
หรือคุณสามารถเลือกไฟล์ไบนารีจากระบบไฟล์ของคุณเพื่ออัปเดต Nuki Hub หรือ Nuki Hub Updator ด้วยตนเอง
คุณสามารถอัปเดต Nuki Hub ได้จาก Nuki Hub Updater และอัปเดต Updater จาก Nuki Hub เท่านั้น
คุณสามารถรีบูตจาก Nuki Hub ไปยัง Updater และในทางกลับกันโดยเลือกตัวเลือก Reboot จากหน้า "Firware Update"
เมื่อคุณอยู่ในแอปพลิเคชันที่ถูกต้องคุณสามารถอัปโหลดไบนารีใหม่ได้โดยคลิกที่ "เรียกดู" และเลือก "nuki_hub [บอร์ด] .bin" หรือ "nuki_hub_updater [บอร์ด] .bin" และเลือก "อัปโหลดไฟล์"
หลังจากผ่านไปประมาณหนึ่งนาทีควรติดตั้งเฟิร์มแวร์ใหม่หลังจากที่ ESP จะรีบูตโดยอัตโนมัติไปยังไบนารีที่อัปเดตโดยอัตโนมัติ
การเลือกไบนารีที่ไม่ถูกต้องจะนำไปสู่การอัปเดตที่ไม่ประสบความสำเร็จ
หมายเหตุสำหรับผู้ใช้อัปเกรดจาก Nuki Hub 8.35 หรือต่ำกว่า:
การอัปเดตเป็นเวอร์ชัน 9.00 ต้องเปลี่ยนตารางพาร์ติชันของ ESP32
โปรดทำตามคำแนะนำสำหรับการติดตั้งครั้งแรกหนึ่งครั้งเมื่ออัปเดตเป็น Nuki Hub 9.00 จากเวอร์ชันก่อนหน้า
การตั้งค่าของคุณจะไม่ได้รับผลกระทบเมื่ออัปเดตโดยใช้คำแนะนำข้างต้น (อย่าเลือกลบอุปกรณ์เมื่ออัปเดตโดยใช้ WebFlash)
การสื่อสารผ่าน MQTT สามารถเข้ารหัส SSL ได้
ในการเปิดใช้งานการเข้ารหัส SSL ให้จัดหาข้อมูลที่จำเป็นในหน้าการกำหนดค่า MQTT
รองรับการกำหนดค่าต่อไปนี้:
CA, ใบรับรองและคีย์ว่างเปล่า -> ไม่มีการเข้ารหัส
CA เต็มไปด้วยใบรับรองและคีย์ว่างเปล่า -> MQTT ที่เข้ารหัส
CA, ใบรับรองและคีย์เต็มไป -> MQTT ที่เข้ารหัสด้วยไคลเอนต์ vaildation
ตัวอย่างการสร้างใบรับรองสำหรับเซิร์ฟเวอร์ MQTT ของคุณ:
# make a ca key
openssl genpkey -algorithm RSA -out ca.key
# make a CA cert
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/OU=YourUnit/CN=YourCAName"
# make a server key
openssl genpkey -algorithm RSA -out server.key
# Make a sign request, MAKE SURE THE CN MATCHES YOUR MQTT SERVERNAME
openssl req -new -key server.key -out server.csr -subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/OU=YourUnit/CN=homeserver.local"
# sign it
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 3650
ซอฟต์แวร์นี้รองรับ MQTT Discovery สำหรับการรวม Nuki Hub กับผู้ช่วยที่บ้าน
ในการเปิดใช้งาน Autodiscovery ให้เปิดใช้งานช่องทำเครื่องหมายในหน้า "การกำหนดค่า MQTT"
เมื่อเปิดใช้งานแล้ว Nuki Lock และ/หรือ Opener และเอนทิตีที่เกี่ยวข้องควรปรากฏขึ้นโดยอัตโนมัติในอุปกรณ์ Assistant Home MQTT ของคุณโดยอัตโนมัติ
การแม็พต่อไปนี้ระหว่างบริการผู้ช่วยในบ้านและคำสั่ง Nuki จะถูกตั้งค่าเมื่อเปิดใช้งาน Autodiscovery:
สมาร์ทล็อค | ตัวเปิด (ค่าเริ่มต้น) | ตัวเปิด (ทางเลือก) | |
---|---|---|---|
ล็อคล็อค | ล็อค | ปิดการใช้งานแหวนเพื่อเปิด | ปิดการใช้งานโหมดต่อเนื่อง |
Lock.unlock | ปลดล็อค | เปิดใช้งานวงแหวนเพื่อเปิด | เปิดใช้งานโหมดต่อเนื่อง |
lock.open | ปลดปล่อย | การกระตุ้นการโจมตีด้วยไฟฟ้า | การกระตุ้นการโจมตีด้วยไฟฟ้า |
หมายเหตุ: MQTT Discovery ใช้ข้อความ MQTT ที่เก็บรักษาไว้เพื่อจัดเก็บการกำหนดค่าอุปกรณ์ เพื่อหลีกเลี่ยงการกำหนดค่าเด็กกำพร้าบนนายหน้าของคุณโปรดปิดการใช้งาน Autodiscovery ก่อนหากคุณไม่ต้องการใช้ซอฟต์แวร์นี้อีกต่อไป ข้อความที่เก็บรักษาจะถูกล้างโดยอัตโนมัติเมื่อไม่ได้จับคู่และเมื่อเปลี่ยน/ปิดการใช้งานหัวข้อการค้นพบอัตโนมัติในหน้าการกำหนดค่า MQTT
หมายเหตุ 2: ผู้ช่วยในบ้านสามารถตั้งค่าด้วยตนเองโดยใช้การรวม MQTT Lock แต่ไม่แนะนำให้ใช้
หากปุ่มกดเชื่อมต่อกับล็อครหัสปุ่มกดสามารถเพิ่มอัปเดตและลบออกได้ สิ่งนี้จะต้องเปิดใช้งานก่อนในพอร์ทัลการกำหนดค่า ตรวจสอบ "เพิ่มแก้ไขและลบรหัสปุ่มกด" ภายใต้ "การกำหนดค่าระดับการเข้าถึง" และบันทึกการกำหนดค่า
ข้อมูลเกี่ยวกับรหัสปุ่มกดปัจจุบันถูกเผยแพร่เป็นข้อมูล JSON ไปยังหัวข้อ "[Lock/Opener]/Keypad/JSON" หัวข้อ MQTT
สิ่งนี้จะต้องเปิดใช้งานแยกกันโดยตรวจสอบ "เผยแพร่ข้อมูลรหัสปุ่มกด" ภายใต้ "การกำหนดค่าระดับการเข้าถึง" และบันทึกการกำหนดค่า ด้วยเหตุผลด้านความปลอดภัยรหัสนั้นไม่ได้เผยแพร่เว้นแต่จะเปิดใช้งานอย่างชัดเจนในการตั้งค่าฮับ Nuki โดยค่าเริ่มต้นจะมีการเผยแพร่ผลงานสูงสุด 10 รายการ
หากต้องการเปลี่ยนการตั้งค่าปุ่มกด Nuki Lock/Opener ตั้งค่า [lock/opener]/keypad/actionJson
หัวข้อเป็นค่าที่จัดรูปแบบ JSON ที่มีโหนดต่อไปนี้
โหนด | ลบ | เพิ่ม | อัปเดต | ตรวจสอบ | การใช้งาน | ค่าที่เป็นไปได้ |
---|---|---|---|---|---|---|
การกระทำ | ที่จำเป็น | ที่จำเป็น | ที่จำเป็น | ที่จำเป็น | การดำเนินการเพื่อดำเนินการ | "ลบ", "เพิ่ม", "อัปเดต", "ตรวจสอบ" |
รหัส | ที่จำเป็น | ไม่ได้ใช้ | ที่จำเป็น | ที่จำเป็น | รหัสรหัสของรหัสที่มีอยู่เพื่อลบหรืออัปเดต | จำนวนเต็ม |
รหัส | ไม่ได้ใช้ | ที่จำเป็น | ไม่จำเป็น | ที่จำเป็น | รหัสเพื่อสร้างหรืออัปเดต | จำนวนเต็ม 6 หลักที่ไม่มีศูนย์ไม่สามารถเริ่มต้นด้วย "12" |
เปิดใช้งาน | ไม่ได้ใช้ | ไม่ได้ใช้ | ไม่จำเป็น | ไม่ได้ใช้ | เปิดใช้งานหรือปิดใช้งานรหัสเปิดใช้งานเสมอเมื่อเพิ่ม | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน |
ชื่อ | ไม่ได้ใช้ | ที่จำเป็น | ไม่จำเป็น | ไม่ได้ใช้ | ชื่อของรหัสเพื่อสร้างหรืออัปเดต | สตริง, สูงสุด 20 ตัวอักษร |
ที่กำหนดเวลา | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | ไม่ได้ใช้ | หากการอนุญาตนี้ถูก จำกัด ให้เข้าถึงในบางช่วงเวลาเท่านั้นต้องเปิดใช้งาน = 1 | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน |
อนุญาตจาก | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | ไม่ได้ใช้ | การประทับเวลาเริ่มต้นที่ควรได้รับอนุญาตการเข้าถึง (ต้องเปิดใช้งาน = 1 และ timelimited = 1) | "YYYY-MM-DD HH: MM: SS" |
ได้รับอนุญาต | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | ไม่ได้ใช้ | การประทับเวลาสิ้นสุดจนกว่าควรอนุญาตให้เข้าถึง (ต้องเปิดใช้งาน = 1 และ timelimited = 1) | "YYYY-MM-DD HH: MM: SS" |
ได้รับอนุญาตในวันนี้ | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | ไม่ได้ใช้ | วันธรรมดาที่ควรได้รับอนุญาตการเข้าถึง (ต้องเปิดใช้งาน = 1 และ timelimited = 1) | อาร์เรย์ของวัน: "จันทร์", "อังคาร", "พุธ", "พฤหัส", "วันศุกร์" "SAT", "Sun" |
ได้รับอนุญาตในช่วงเวลา | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | ไม่ได้ใช้ | เวลาเริ่มต้นต่อวันที่ควรได้รับอนุญาตการเข้าถึง (ต้องเปิดใช้งาน = 1 และ timelimited = 1) | "HH: MM" |
ได้รับอนุญาต | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | ไม่ได้ใช้ | เวลาสิ้นสุดต่อวันจนกว่าจะอนุญาตให้เข้าถึงได้ (ต้องเปิดใช้งาน = 1 และ timelimited = 1) | "HH: MM" |
ตัวอย่าง:
{ "action": "delete", "codeId": "1234" }
{ "action": "add", "code": "589472", "name": "Test", "timeLimited": "1", "allowedFrom": "2024-04-12 10:00:00", "allowedUntil": "2034-04-12 10:00:00", "allowedWeekdays": [ "wed", "thu", "fri" ], "allowedFromTime": "08:00", "allowedUntilTime": "16:00" }
{ "action": "update", "codeId": "1234", "enabled": "1", "name": "Test", "timeLimited": "1", "allowedFrom": "2024-04-12 10:00:00", "allowedUntil": "2034-04-12 10:00:00", "allowedWeekdays": [ "mon", "tue", "sat", "sun" ], "allowedFromTime": "08:00", "allowedUntilTime": "16:00" }
ผลลัพธ์ของการดำเนินการเปลี่ยนปุ่มกดสุดท้ายจะถูกเผยแพร่ไปยังหัวข้อ [lock/opener]/configuration/commandResultJson
MQTT
ค่าที่เป็นไปได้คือ "novalidpinset", "KeypadControldisabled", "KeypadNotavailable", "Keypaddisabled", "InvalidConfig", "Invalidjson", "noActionSet", "Invalidaction", , "invalidallowed จาก", "Invalidalloweduntil", "Invalidallowed จากเวลา", "InvalidalloweduntiltiliTime", "Success", "Failed", "Timeout", "Working", "Notpaired", "ข้อผิดพลาด" และ "ไม่ได้กำหนด"
หากปุ่มกดเชื่อมต่อกับล็อครหัสปุ่มกดสามารถเพิ่มอัปเดตและลบออกได้ สิ่งนี้จะต้องเปิดใช้งานก่อนในพอร์ทัลการกำหนดค่า ตรวจสอบ "เพิ่มแก้ไขและลบรหัสปุ่มกด" ภายใต้ "การกำหนดค่าระดับการเข้าถึง" และบันทึกการกำหนดค่า
ข้อมูลเกี่ยวกับรหัสถูกเผยแพร่ภายใต้ "Keypad/code_x", x เริ่มต้นจาก 0 ถึงจำนวนรหัสที่กำหนดค่า สิ่งนี้จะต้องเปิดใช้งานแยกกันโดยตรวจสอบ "เผยแพร่ข้อมูลรหัสปุ่มกด" ภายใต้ "การกำหนดค่าระดับการเข้าถึง" และบันทึกการกำหนดค่า โดยค่าเริ่มต้นจะมีการเผยแพร่ผลงานสูงสุด 10 รายการ
ด้วยเหตุผลด้านความปลอดภัยรหัสนั้นไม่ได้เผยแพร่เว้นแต่จะเปิดใช้งานอย่างชัดเจนในการตั้งค่าฮับ Nuki ในการแก้ไขรหัสปุ่มกดโครงสร้างคำสั่งจะถูกตั้งค่าภายใต้ปุ่มกด/คำสั่ง:
ในการแก้ไขรหัสปุ่มกดโหนดพารามิเตอร์สี่ตัวแรกจะต้องตั้งค่าขึ้นอยู่กับคำสั่ง:
** หมายเหตุ: กฎสำหรับรหัสคือ:
หลังจากตั้งค่าพารามิเตอร์ที่จำเป็นให้เขียนการกระทำเพื่อดำเนินการไปยังโหนดคำสั่ง ตัวอย่างเช่นในการเพิ่มรหัส:
สามารถเพิ่มรายการ TimeControl ได้อัปเดตและลบออก สิ่งนี้จะต้องเปิดใช้งานก่อนในพอร์ทัลการกำหนดค่า ตรวจสอบ "เพิ่มแก้ไขและลบรายการ TimeControl" ภายใต้ "การกำหนดค่าระดับการเข้าถึง" และบันทึกการกำหนดค่า
ข้อมูลเกี่ยวกับรายการ TimeControl ปัจจุบันถูกเผยแพร่เป็นข้อมูล JSON ไปยัง "[Lock/Opener]/TimeControl/JSON" หัวข้อ MQTT
สิ่งนี้จะต้องเปิดใช้งานแยกกันโดยตรวจสอบ "เผยแพร่ข้อมูลรายการ TimeControl" ภายใต้ "การกำหนดค่าระดับการเข้าถึง" และบันทึกการกำหนดค่า โดยค่าเริ่มต้นจะมีการเผยแพร่ผลงานสูงสุด 10 รายการ
หากต้องการเปลี่ยนการตั้งค่า Nuki Lock/Opener TimeControl ตั้งค่า [lock/opener]/timecontrol/actionJson
หัวข้อหัวข้อที่จัดรูปแบบ JSON ที่มีโหนดต่อไปนี้
โหนด | ลบ | เพิ่ม | อัปเดต | การใช้งาน | ค่าที่เป็นไปได้ |
---|---|---|---|---|---|
การกระทำ | ที่จำเป็น | ที่จำเป็น | ที่จำเป็น | การดำเนินการเพื่อดำเนินการ | "ลบ", "เพิ่ม", "อัปเดต" |
การเข้า | ที่จำเป็น | ไม่ได้ใช้ | ที่จำเป็น | รหัสรายการของรายการที่มีอยู่เพื่อลบหรืออัปเดต | จำนวนเต็ม |
เปิดใช้งาน | ไม่ได้ใช้ | ไม่ได้ใช้ | ไม่จำเป็น | เปิดใช้งานหรือปิดการใช้งานรายการเปิดใช้งานเสมอเมื่อเพิ่ม | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน |
วันธรรมดา | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | วันธรรมดาที่การดำเนินการล็อคที่เลือกควรได้รับการอธิบาย (ต้องเปิดใช้งาน = 1) | อาร์เรย์ของวัน: "จันทร์", "อังคาร", "พุธ", "พฤหัส", "วันศุกร์" "SAT", "Sun" |
เวลา | ไม่ได้ใช้ | ที่จำเป็น | ไม่จำเป็น | เวลาที่ควรดำเนินการล็อคที่เลือก (ต้องเปิดใช้งาน = 1) | "HH: MM" |
การล็อค | ไม่ได้ใช้ | ที่จำเป็น | ไม่จำเป็น | การดำเนินการล็อคที่ควรดำเนินการในวันธรรมดาที่เลือกในเวลาที่เลือก (ต้องเปิดใช้งาน = 1) | สำหรับ Nuki Lock: "Unlock", "Lock", "Unlatch", "Lockngo", "Lockngounlatch", "Fulllock" สำหรับตัวเปิด Nuki: "Activaterto", "Deactivaterto", "ElectricStrikeactuation", "Activatecm", "Deactivatecm |
ตัวอย่าง:
{ "action": "delete", "entryId": "1234" }
{ "action": "add", "weekdays": [ "wed", "thu", "fri" ], "time": "08:00", "lockAction": "Unlock" }
{ "action": "update", "entryId": "1234", "enabled": "1", "weekdays": [ "mon", "tue", "sat", "sun" ], "time": "08:00", "lockAction": "Lock" }
สามารถอัปเดตและลบรายการการอนุญาต สิ่งนี้จะต้องเปิดใช้งานก่อนในพอร์ทัลการกำหนดค่า ตรวจสอบ "แก้ไขและลบรายการการอนุญาต" ภายใต้ "การกำหนดค่าระดับการเข้าถึง" และบันทึกการกำหนดค่า ปัจจุบันยังไม่สามารถเพิ่มรายการการอนุญาตด้วยวิธีนี้
ข้อมูลเกี่ยวกับรายการการอนุญาตในปัจจุบันถูกเผยแพร่เป็นข้อมูล JSON ไปยังหัวข้อ "[ล็อค/ตัวเปิด]/การอนุญาต/JSON" หัวข้อ MQTT
สิ่งนี้จะต้องเปิดใช้งานแยกกันโดยตรวจสอบ "เผยแพร่ข้อมูลรายการการอนุญาต" ภายใต้ "การกำหนดค่าระดับการเข้าถึง" และบันทึกการกำหนดค่า โดยค่าเริ่มต้นจะมีการเผยแพร่ผลงานสูงสุด 10 รายการ
ในการเปลี่ยนการตั้งค่าการอนุญาต Nuki Lock/Opener ให้ตั้งค่า [lock/opener]/authorization/action
เป็นค่าที่จัดรูปแบบ JSON ที่มีโหนดต่อไปนี้
โหนด | ลบ | เพิ่ม | อัปเดต | การใช้งาน | ค่าที่เป็นไปได้ |
---|---|---|---|---|---|
การกระทำ | ที่จำเป็น | ที่จำเป็น | ที่จำเป็น | การดำเนินการเพื่อดำเนินการ | "ลบ", "เพิ่ม", "อัปเดต" |
รับรองความถูกต้อง | ที่จำเป็น | ไม่ได้ใช้ | ที่จำเป็น | รหัสรับรองความถูกต้องของรายการที่มีอยู่เพื่อลบหรืออัปเดต | จำนวนเต็ม |
เปิดใช้งาน | ไม่ได้ใช้ | ไม่ได้ใช้ | ไม่จำเป็น | เปิดหรือปิดการใช้งานการอนุญาตเปิดใช้งานเสมอเมื่อเพิ่ม | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน |
ชื่อ | ไม่ได้ใช้ | ที่จำเป็น | ไม่จำเป็น | ชื่อของการอนุญาตให้สร้างหรืออัปเดต | สตริง, สูงสุด 20 ตัวอักษร |
remoteallowed | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | หากการอนุญาตนี้ได้รับอนุญาตให้เข้าถึงระยะไกลต้องเปิดใช้งาน = 1 | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน |
ที่กำหนดเวลา | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | หากการอนุญาตนี้ถูก จำกัด ให้เข้าถึงในบางช่วงเวลาเท่านั้นต้องเปิดใช้งาน = 1 | 1 = เปิดใช้งาน, 0 = ปิดใช้งาน |
อนุญาตจาก | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | การประทับเวลาเริ่มต้นที่ควรได้รับอนุญาตการเข้าถึง (ต้องเปิดใช้งาน = 1 และ timelimited = 1) | "YYYY-MM-DD HH: MM: SS" |
ได้รับอนุญาต | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | การประทับเวลาสิ้นสุดจนกว่าควรอนุญาตให้เข้าถึง (ต้องเปิดใช้งาน = 1 และ timelimited = 1) | "YYYY-MM-DD HH: MM: SS" |
ได้รับอนุญาตในวันนี้ | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | วันธรรมดาที่ควรได้รับอนุญาตการเข้าถึง (ต้องเปิดใช้งาน = 1 และ timelimited = 1) | อาร์เรย์ของวัน: "จันทร์", "อังคาร", "พุธ", "พฤหัส", "วันศุกร์" "SAT", "Sun" |
ได้รับอนุญาตในช่วงเวลา | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | เวลาเริ่มต้นต่อวันที่ควรได้รับอนุญาตการเข้าถึง (ต้องเปิดใช้งาน = 1 และ timelimited = 1) | "HH: MM" |
ได้รับอนุญาต | ไม่ได้ใช้ | ไม่จำเป็น | ไม่จำเป็น | เวลาสิ้นสุดต่อวันจนกว่าจะอนุญาตให้เข้าถึงได้ (ต้องเปิดใช้งาน = 1 และ timelimited = 1) | "HH: MM" |
ตัวอย่าง:
{ "action": "delete", "authId": "1234" }
{ "action": "update", "authId": "1234", "enabled": "1", "name": "Test", "timeLimited": "1", "allowedFrom": "2024-04-12 10:00:00", "allowedUntil": "2034-04-12 10:00:00", "allowedWeekdays": [ "mon", "tue", "sat", "sun" ], "allowedFromTime": "08:00", "allowedUntilTime": "16:00" }
ล็อคสามารถควบคุมผ่าน GPIO ในการเรียกใช้การกระทำจะต้องมีการเชื่อมต่อกับพื้นดินสำหรับการเช่า 300ms (หรือถึง +3.3V สำหรับ "อินพุตทั่วไป (pull-down)")
ในการเปิดใช้งานการควบคุม GPIO ให้ไปที่หน้า "การกำหนดค่า GPIO" ซึ่งแต่ละ GPIO สามารถกำหนดค่าสำหรับบทบาทเฉพาะ:
หากคุณต้องการเชื่อมต่อผ่าน Ethernet แทน Wi-Fi คุณจะใช้หนึ่งในโมดูล ESP32 ที่รองรับกับ Ethernet ในตัว (ดูส่วน "อุปกรณ์ที่รองรับ") หรือเชื่อมต่อโมดูล SPI Ethernet แยกต่างหาก
ปัจจุบันโมดูล WIZNET W5X00 (W5100, W5200, W5500), DN9051 และ KSZ8851SNL ชิปรองรับ
ในการใช้โมดูลที่รองรับให้แฟลชเฟิร์มแวร์เชื่อมต่อผ่าน Wi-Fi และเลือกฮาร์ดแวร์เครือข่ายที่ถูกต้องในส่วน "การกำหนดค่าเครือข่าย"
ในการเชื่อมต่อโมดูล W5X00 ภายนอกไปยัง ESP ให้ใช้รูปแบบการเดินสายนี้:
ตอนนี้เชื่อมต่อผ่าน Wi-Fi และเปลี่ยนฮาร์ดแวร์เครือข่ายเป็น "ทั่วไป W5500"
หากไม่พบฮาร์ดแวร์อีเธอร์เน็ตหรือเริ่มต้นอย่างถูกต้องหลังจากเปลี่ยนอุปกรณ์เครือข่าย Wi-Fi จะถูกใช้เป็นทางเลือก
หมายเหตุ: โมดูล LAN8720 ได้รับการสนับสนุนเฉพาะใน ESP32 และ ESP32-SOLO1 เท่านั้นไม่ใช่ใน ESP32-S3, ESP32-C3 หรือ ESP-C6
น่าเสียดายที่ ESP32 มีปัญหากับจุดเชื่อมต่อบางอย่างและการเชื่อมต่อใหม่ล้มเหลว
ในฐานะที่เป็นวิธีแก้ปัญหาคุณสามารถนำทางไปยัง "การกำหนดค่าเครือข่าย" และเปิดใช้งาน "รีสตาร์ทเมื่อปิดการเชื่อมต่อ"
สิ่งนี้จะรีบูต ESP ทันทีที่ถูกตัดการเชื่อมต่อจาก Wi-Fi
นอกจากนี้สิ่งนี้จะช่วยลดการหมดเวลาพอร์ทัลการกำหนดค่าเป็นสามนาทีเพื่อป้องกันไม่ให้ ESP ติดอยู่ในโหมดกำหนดค่าในกรณีที่จุดเชื่อมต่อออฟไลน์ชั่วคราว
หากสิ่งนี้ยังไม่แก้ไขการเชื่อมต่อและ ESP จะไม่สามารถเข้าถึงได้ตัวเลือก "รีสตาร์ทตัวจับเวลา" สามารถใช้เป็นทางเลือกสุดท้าย
มันจะรีสตาร์ท ESP หลังจากระยะเวลาที่กำหนดค่า
ก่อนอื่นตรวจสอบให้แน่ใจว่าอุปกรณ์ Nuki เวอร์ชันเฟิร์มแวร์เป็นรุ่นล่าสุดรุ่นเก่ามีปัญหาการจับคู่
จากนั้นลองลบแฟลช ESP32 จากนั้น (อีกครั้ง) แฟลชเฟิร์มแวร์
ในการลบแฟลชให้ใช้เครื่องมือดาวน์โหลด Espressif และคลิกปุ่ม "ลบ"
หลังจากนั้นแฟลชเฟิร์มแวร์ตามที่อธิบายไว้ในไฟล์ "how-to-flash.txt" หรือใช้ webflash
นอกจากนี้ตรวจสอบว่าอนุญาตให้จับคู่ได้ ในแอพสมาร์ทโฟน Nuki ไปที่ "การตั้งค่า" -> "คุณสมบัติและการกำหนดค่า" -> "ปุ่ม & LED" และตรวจสอบให้แน่ใจว่า "เปิดใช้งานการจับคู่บลูทูห์"
ถัดไปกดปุ่มเป็นเวลาหลายวินาทีจนกว่าไฟ LED จะยังคงอยู่
หมายเหตุเกี่ยวกับหน่วย M5Stack POESP32 ที่นี่การรับบลูทู ธ เริ่มต้นนั้นแย่มาก (ช่วงน้อยกว่าหนึ่งเมตร) เหตุผลก็คือโมดูลไม่มีเสาอากาศบน PCB แต่มีเพียงขั้วต่อ ipex โดยการติดตั้งเสาอากาศ SMA ภายนอก (IPEX หรือชื่ออื่น ๆ U.FL, IPAX, IPX, AMC, MHF, UMCC), Bluetooth/Wi-Fi ทำงานได้หลายเมตร
ตรวจสอบให้แน่ใจว่าคุณใช้ผู้ช่วยที่บ้านอย่างน้อยรุ่น 2023.8.0
ผู้ช่วยนักพัฒนาบ้านได้ทำการเปลี่ยนแปลง MQTT Auto Discovery ซึ่งทำลายการสนับสนุนสำหรับรุ่นเก่าและ Nuki Hub ได้นำการเปลี่ยนแปลงเหล่านี้มาใช้
น่าเสียดายที่นี่หมายความว่าผู้ช่วยบ้านรุ่นเก่าไม่ได้รับการสนับสนุนจากการใช้งานการค้นพบฮับของนุกิอีกต่อไป
ตามที่นุกินี่คือการออกแบบและส่วนหนึ่งของข้อกำหนดของล็อคโปร
คุณสามารถใช้ Wi-Fi ในตัวหรือสะพาน (ซึ่ง Nuki Hub ลงทะเบียนเป็น)
หรือใช้ Nuki Hub ในโหมดไฮบริดโดยใช้ Wi-Fi หรือเธรดดูโหมดไฮบริด
ไม่รองรับการใช้ทั้งสองอย่างในเวลาเดียวกัน
ฟังก์ชั่นบางอย่างถูก จำกัด โดยเฟิร์มแวร์ล็อค (หรือตัวเปิด) และสามารถเข้าถึงได้เมื่อมีการให้พินเท่านั้น
เมื่อตั้งค่าล็อค (หรือตัวเปิด) คุณต้องตั้งค่าพินในแอพสมาร์ทโฟน Nuki
นำทางไปยังหน้ารับรอง Nuki Hub ให้ป้อน PIN นี้และคลิกบันทึก
ตรวจสอบหน้าหลักของตัวกำหนดค่าเพื่อดูว่าพินที่ป้อนนั้นถูกต้อง
ดูจุดก่อนหน้าฟังก์ชั่นนี้ต้องการพินที่ถูกต้องที่จะกำหนดค่า
ตรวจสอบให้แน่ใจว่าตัวเลือก "Unlatch" ถูกตรวจสอบภายใต้ "การกำหนดค่าระดับการเข้าถึง"
การปลดล็อคสามารถเรียกใช้โดยใช้บริการ lock.open
อีกทางเลือกหนึ่งปุ่ม "unlatch" จะถูกเปิดเผยผ่านการค้นพบผู้ช่วยที่บ้าน
ปุ่มนี้ถูกปิดใช้งานตามค่าเริ่มต้น แต่สามารถเปิดใช้งานได้ใน UI ผู้ช่วยที่บ้าน
เมื่อใช้อุปกรณ์ Nuki หลายตัวเส้นทางที่แตกต่างกันสำหรับแต่ละอุปกรณ์จะต้องกำหนดค่า
นำทางไปที่ "การกำหนดค่า MQTT" และเปลี่ยน "MQTT Nukihub Path" ภายใต้ "การกำหนดค่า MQTT พื้นฐาน" สำหรับอุปกรณ์อย่างน้อยหนึ่งอุปกรณ์
สิ่งนี้มักจะเป็นผลมาจากการเปิดใช้งาน "ลงทะเบียนเป็นแอพ" เมื่อไม่ได้ใช้โหมดไฮบริด (อย่างเป็นทางการ MQTT / Nuki Hub ร่วมกัน)
การทำเช่นนี้จะทำให้ Nuki Hub สามารถสอบถามล็อคได้ตลอดเวลาและทำให้เกิดการระบายแบตเตอรี่มากเกินไป
เพื่อป้องกันพฤติกรรมนี้ฮับ Nuki ที่ไม่ได้ใช้งานปิดการใช้งาน "ลงทะเบียนเป็นแอพ" และคู่ใหม่
อย่าเปิดใช้งาน "ลงทะเบียนเป็นแอพ" เว้นแต่คุณตั้งใจจะใช้สะพาน Nuki นอกเหนือจาก Nuki Hub หรือคุณกำลังใช้โหมดไฮบริด!
Docker (ต้องการ)
ดู readme ในไดเรกทอรี Docker สำหรับคำแนะนำในการสร้างโดยใช้ Docker
แพลตฟอร์ม io, คำแนะนำสำหรับ Linux Distro ที่ใช้ Debian (เช่น Ubuntu)
apt-get update
apt-get install -y git python3 pip make
python3 -m venv .venv
source .venv/bin/activate
git clone https://github.com/technyon/nuki_hub --recursive
cd nuki_hub
# install tools platformio and esptool
make deps
# build all binary boards
make updater
make release
นี่คือซอฟต์แวร์ของบุคคลที่สามสำหรับอุปกรณ์ Nuki
โครงการนี้หรือผู้เขียนใด ๆ ไม่เกี่ยวข้องกับ Nuki Home Solutions GmbH
โปรดอ้างอิงผลิตภัณฑ์อย่างเป็นทางการและการสนับสนุนไปยังเว็บไซต์ทางการของ Nuki:
https://nuki.io/
สำหรับรายละเอียดใบอนุญาตเพิ่มเติมตรวจสอบไฟล์ใบอนุญาตที่รวมอยู่