ซอฟต์แวร์ HALO Smart Sensor API ซอฟต์แวร์พื้นฐาน
ซึ่งไปข้างหน้า
เอกสารนี้อธิบายกลุ่มสิ่งอำนวยความสะดวกของ Halo Smart Sensor ที่เรียกรวมกันว่า BASIC API หรือ Application Programming Interface การสนทนานี้มีไว้สำหรับการใช้งานโดยโปรแกรมเมอร์หรือผู้รวมระบบที่สนใจรวม HALO Smart Sensors (HALO) อย่างน้อย 3 ตัวเข้ากับส่วนประกอบหรือระบบซอฟต์แวร์ของบุคคลที่สาม (ไม่ใช่ IPVideo) โดยทั่วไป HALO API มีวัตถุประสงค์เพื่อถ่ายโอนข้อมูลอย่างมีประสิทธิภาพจาก HALO ผ่านเครือข่ายอีเธอร์เน็ตทั่วไปไปยังโปรแกรมภายนอก เพื่อให้บรรลุเป้าหมายนี้ API จึงแบ่งออกเป็นสามส่วน: การเชื่อมต่อซ็อกเก็ตที่ขับเคลื่อนด้วยเหตุการณ์ การเชื่อมต่อซ็อกเก็ต Heartbeat และข้อมูลเหตุการณ์ URL- อินเทอร์เฟซ BACnet ยังมีอยู่และกล่าวถึงในเอกสารแยกต่างหาก
การออกแบบ API
API ได้รับการออกแบบโดยใช้รูปแบบมาตรฐานอุตสาหกรรม เช่น TCP/IP HTTP, HTTPS และ JSON การออกแบบไม่จำเป็นต้องใช้เทคนิคหรือไลบรารีพิเศษหรือกรรมสิทธิ์ใดๆ ในการพัฒนาโปรแกรมหรือแอปพลิเคชันภายนอก API มีความยืดหยุ่นและสามารถกำหนดค่าและตั้งโปรแกรมให้ส่งมอบข้อมูลที่ต้องการได้อย่างแม่นยำและมีประสิทธิภาพสูงสุด รายละเอียดการทำงานของแต่ละส่วนข้างต้นมีกล่าวถึงอยู่ในส่วนต่อไปนี้ของคู่มือนี้
การส่งข้อความภายนอก
สิ่งอำนวยความสะดวกนี้ใช้เพื่อส่งการแจ้งเตือนหรือการเตือนและข้อมูลเหตุการณ์ไปยังโปรแกรมภายนอก ระบบ VMS เซิร์ฟเวอร์ ฯลฯ เมื่อมีการทริกเกอร์เหตุการณ์ (ถูกตั้งค่า) ข้อความเสริมยังสามารถเปิดใช้งานเพื่อส่งสัญญาณเมื่อกิจกรรมเคลียร์ (ถูกรีเซ็ต) การส่งมอบนี้สามารถดำเนินการกับซ็อกเก็ต TCP/IP หรือเซิร์ฟเวอร์ HTTP/S ได้แบบเรียลไทม์ มีโปรโตคอลที่กำหนดค่าได้หลากหลายพร้อมเนื้อหาที่ปรับแต่งได้ มีการตรวจสอบสิทธิ์และการเข้ารหัส
จังหวะการเต้นของหัวใจ
ข้อความฮาร์ทบีทจะถูกส่งในช่วงเวลาที่กำหนดได้ (แทนที่จะเป็นเวลาที่เหตุการณ์ถูกทริกเกอร์) เพื่อให้หลักฐานการมีอยู่/ความพร้อมใช้งาน มีความสามารถคล้ายกันกับการส่งข้อความภายนอก แต่โดยทั่วไปจะได้รับการกำหนดค่าให้มีข้อมูลสถานะทั่วไป แทนที่จะเป็นรายละเอียดเกี่ยวกับเหตุการณ์เฉพาะ
ข้อมูลเหตุการณ์ URL
สิ่งอำนวยความสะดวกนี้มีให้ใช้งานภายใต้ NDA เท่านั้น และควรใช้เฉพาะเมื่อโปรแกรมภายนอกต้องการการเข้าถึงค่าเหตุการณ์ ขีดจำกัด และแฟล็กสถานะทั้งหมด โดยทั่วไปข้อมูลนี้จะถูกดึงออกมาตามความต้องการโดยโปรแกรมภายนอก แต่ไม่ได้อยู่ที่ความถี่ที่สูงมาก โดยทั่วไปวิธีนี้จะใช้เวลาแฝงบ้างเมื่อใช้อัตราการโพลที่พอประมาณ อัตราการโพลโดยทั่วไปมีตั้งแต่หนึ่งครั้งต่อนาทีไปจนถึงหนึ่งครั้งต่อ 5 วินาที โดยมีอัตราสูงสุดที่แน่นอนคือหนึ่งครั้งต่อวินาที วิธีนี้ยังสามารถใช้เพื่อดึงข้อมูลสนับสนุนเพิ่มเติมเมื่อได้รับเหตุการณ์ (การแจ้งเตือน)
รายละเอียดการส่งข้อความภายนอก
ส่วนหนึ่งของ HALO web ป๊อปอัปการรวมอินเทอร์เฟซจัดเตรียมไว้สำหรับการกำหนดค่าการเชื่อมต่อของบุคคลที่สามเดียวซึ่งสามารถส่งค่าต่างๆ ไปยังซ็อกเก็ต TCP ระยะไกลหรือเซิร์ฟเวอร์ HTTP/HTTPS ตัวยึดตำแหน่ง (โทเค็น) ใช้เพื่อแทรกค่าสดลงในข้อความที่ส่ง แม้ว่าจะมีป้ายกำกับว่า "การส่งข้อความภายนอก" ช่องทางนี้สามารถใช้เพื่อเกือบทุกวัตถุประสงค์ที่ต้องการทริกเกอร์เหตุการณ์แบบเรียลไทม์ ซึ่งส่งมอบโดย HALO การจัดการนี้ค่อนข้างยืดหยุ่นเนื่องจากการเลือก "การดำเนินการ" จะกำหนดว่าเหตุการณ์ HALO ใดที่ส่งผ่านช่องทางนี้
ในโหมด HTTP การตั้งค่าและรีเซ็ตสตริงจะเป็นดังนี้ URLที่ต้องป้อนและจัดรูปแบบตามที่เซิร์ฟเวอร์ปลายทางต้องการ สามารถใช้ฟิลด์ผู้ใช้และรหัสผ่านสำหรับการตรวจสอบสิทธิ์ได้ ดูโหมด HTTP ด้านล่าง
ในโหมด TCP ชุดและรีเซ็ตสตริงเป็นเพียงข้อมูลของข้อความเดียวที่ส่งไปยังซ็อกเก็ต TCP ที่ได้รับ สามารถจัดรูปแบบได้ตามต้องการโดยปลายทาง ปลายทางระบุไว้ในช่องที่อยู่และพอร์ต ดูโหมด TCP ด้านล่าง
สำหรับโหมดใดโหมดหนึ่ง สถานะจากข้อความล่าสุดจะปรากฏขึ้นซึ่งสามารถช่วยแก้ไขปัญหาการเชื่อมต่อหรือปัญหาอื่นๆ ได้ คุณสามารถใช้ปุ่มทดสอบเหตุการณ์บนป๊อปอัปการดำเนินการเพื่อบังคับข้อความ:
ต้องเปิด/ปิดส่วนกลางสำหรับการตั้งค่าหรือรีเซ็ตเพื่อเปิดใช้งานข้อความประเภทเหล่านั้น การรีเซ็ตมักไม่ได้ใช้เนื่องจากสนใจเฉพาะการเริ่มต้นเหตุการณ์เท่านั้น แต่อาจแตกต่างกันไป แต่ละเหตุการณ์สามารถระบุได้อย่างอิสระว่าจะใช้ข้อความตั้งค่าหรือรีเซ็ตในป๊อปอัปการดำเนินการ ปุ่มลูกตาจะแสดงข้อมูลคร่าว ๆ ของสิ่งที่ถูกส่งหลังจากการแทนที่และการจัดรูปแบบคำหลัก สามารถใช้การระงับซ้ำเพื่อจำกัดข้อความที่ใช้บ่อยโดยการหน่วงเวลาก่อนที่จะส่งข้อความอื่นได้ ซึ่งจะดำเนินการอย่างอิสระต่อเหตุการณ์ HALO มีเวลาพักในตัวสำหรับเหตุการณ์ 15 วินาทีเพื่อป้องกันการเรียกเหตุการณ์ใหม่อย่างรวดเร็ว หากคุณต้องการให้แน่ใจว่ามีการส่งเหตุการณ์ประเภทหนึ่งไม่เกิน 1 รายการต่อนาที คุณสามารถตั้งค่า Repeat Holdoff เป็น 60 (วินาที)
รายละเอียดการเต้นของหัวใจ
การส่งสัญญาณ Heartbeat ทำงานในลักษณะเดียวกันกับข้างต้น ยกเว้นว่าจะไม่มีการโต้ตอบกับหน้าการดำเนินการ แต่การส่งผ่าน Heartbeat จะเกิดขึ้นเป็นประจำตามที่กำหนดค่าไว้ด้วยฟิลด์ Interval ในโหมด HTTP สตริงการตั้งค่าและรีเซ็ตจะเป็น URLที่ต้องป้อนและจัดรูปแบบตามที่เซิร์ฟเวอร์ปลายทางต้องการ สามารถใช้ฟิลด์ผู้ใช้และรหัสผ่านสำหรับการตรวจสอบสิทธิ์ได้ ดูโหมด HTTP ด้านล่าง
แม้ว่าวัตถุประสงค์หลักของ Heartbeat คือการพิสูจน์อายุการใช้งานของเซนเซอร์อัจฉริยะ HALO ให้กับแอปพลิเคชันระยะไกล ข้อความนี้ยังสามารถใช้เพื่อส่งเซ็นเซอร์ที่เลือกหรือข้อมูลสถานะเหตุการณ์ปัจจุบันได้อีกด้วย อดีตample ด้านบนส่งพารามิเตอร์สตริงแบบยาวพร้อมกับ URL ที่มีชื่อ Halo ค่าเซ็นเซอร์ส่วนใหญ่ และสุดท้าย Triggered=%ACTIVE% ซึ่งอาจว่างเปล่าหรือรายการเหตุการณ์ที่ถูกทริกเกอร์ในปัจจุบัน
โหมด HTTP (และ HTTPS)
สตริงข้อความภายนอกและ Heartbeat อาจเป็น http: หรือ https: URLได้ตามความจำเป็น เส้นทางและพารามิเตอร์สามารถป้อนได้ตามต้องการโดยเซิร์ฟเวอร์ปลายทาง สามารถแทรกคำหลักเช่น %NAME% (ชื่ออุปกรณ์ HALO) หรือ %EID% (รหัสเหตุการณ์) ได้ตามต้องการ และจะถูกแทนที่ด้วยข้อมูลที่เกี่ยวข้องเมื่อมีการส่งข้อความ รายการคำหลักที่ใช้กันทั่วไปจะแสดงขึ้นเพื่อการอ้างอิงอย่างรวดเร็ว
การ URL เส้นทางสามารถมีคำหลักและพารามิเตอร์ของ URL- พารามิเตอร์อาจเป็นคู่ NAME=VALUE หรือออบเจ็กต์ JSON หรือรูปแบบที่กำหนดเอง ขึ้นอยู่กับเซิร์ฟเวอร์ปลายทาง อดีตamples สำหรับการส่งข้อความภายนอกจะรวม %EID% เพื่อระบุเหตุการณ์ที่ทริกเกอร์:
- https://server.com/event/%NAME%/%EID%
- https://server.com/event?location=%NAME%&event=%EID%
- https://server.com/event?{“location”:”:%NAME%”,”event”:”%EID%”}
Examples สำหรับ Heartbeat อาจเพิ่ม %ACTIVE% (เหตุการณ์ที่ถูกทริกเกอร์ในปัจจุบัน) หรือค่าเซ็นเซอร์:
- https://server.com/alive?location=%NAME%&Triggered=%ACTIVE%
- https://server.com/event?{“location”:”:%NAME%”,”NH3”:%SENSOR:NH3%}
ค่า %SENSOR:…% ใช้ชื่อที่พบในส่วนหัวคอลัมน์เซ็นเซอร์ด้านขวาในบันทึก evtYYYYMMDD.csv fileส. โดยทั่วไปแล้วจะเป็น:
หากเซิร์ฟเวอร์ปลายทางต้องการ HTTP PUT หรือ POST แทนคำขอ GET คุณสามารถใส่คำนำหน้าได้ URL ด้วย PUT: หรือ POST: คุณสามารถเพิ่มเพย์โหลด JSON ได้อย่างอิสระซึ่งเป็นที่นิยมในเซิร์ฟเวอร์จำนวนมากโดยการเพิ่มคีย์เวิร์ด [JSONBODY] ตามด้วยออบเจ็กต์ที่จัดรูปแบบ JSON อดีตampเลอ:
ใส่:https://server.com/event[JSONBODY]{“location”:”%NAME%”,”event”:”%EID%”}
การ URL รองรับตัวเลือกที่อยู่ IP ทั่วไป (และ IPv6) และพอร์ตและรหัสผ่านผู้ใช้ หรือคุณสามารถใช้ฟิลด์ผู้ใช้และรหัสผ่านได้ หากจำเป็น เป็นเซิร์ฟเวอร์ปลายทางสำหรับวิธีการตรวจสอบสิทธิ์ เช่น พื้นฐานหรือสำคัญ:
https://username:password@123.321.123.321:9876/event…
โหมด TCP
สตริงการส่งข้อความภายนอกและฮาร์ทบีทใช้สำหรับข้อมูลเท่านั้น เนื่องจากฟิลด์ที่อยู่และพอร์ตระบุปลายทาง ที่อยู่รองรับชื่อ IPv4 และ IPv6
สตริงสามารถจัดรูปแบบได้เหมือนกับส่วนข้อมูลของข้อความ HTTP ที่อธิบายไว้ข้างต้น หรือตามที่เซิร์ฟเวอร์ปลายทางกำหนด
Examples สำหรับการส่งข้อความภายนอกจะรวม %EID% เพื่อระบุเหตุการณ์ที่ทริกเกอร์:
สถานที่=%NAME%,เหตุการณ์=%EID%
{“สถานที่”:”:%NAME%”,”เหตุการณ์”:”%EID%”}
Examples สำหรับ Heartbeat อาจเพิ่ม %ACTIVE% (เหตุการณ์ที่ถูกทริกเกอร์ในปัจจุบัน) หรือค่าเซ็นเซอร์:
ตำแหน่ง=%NAME%&ทริกเกอร์=%ACTIVE%
{“ตำแหน่ง”:”:%NAME%”,”NH3”:%เซ็นเซอร์:NH3%}
ช่องทำเครื่องหมายในคอลัมน์ "ชุดการรวมระบบ" และ "รีเซ็ตการรวมระบบ" จะกำหนดว่าเหตุการณ์ใดที่ทริกเกอร์การส่ง ข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าเหตุการณ์และการดำเนินการมีอยู่ในคู่มือผู้ดูแลระบบ HALO
การส่งข้อความเหตุการณ์ JSON
นักพัฒนาซอฟต์แวร์บางรายต้องการรับข้อมูลเหตุการณ์ที่จัดรูปแบบเป็น JSON ที่ติดป้ายกำกับตัวเองตามมาตรฐานอุตสาหกรรม แทนที่จะเป็นข้อความ ASCII ธรรมดา เนื่องจากข้อความแรกมีความน่าเชื่อถือมากกว่าและแยกวิเคราะห์ได้ง่ายกว่า บนรัศมี web หน้า “การส่งข้อความ” คุณสามารถระบุข้อความ JSON ได้ในการตั้งค่า “การส่งข้อความภายนอก” “ตั้งค่าสตริง” และ “รีเซ็ตสตริง” และใน “ข้อความการเต้นของหัวใจ”
Exampเลส:
สตริงการตั้งค่า "ข้อความภายนอก":
{ “อุปกรณ์”:”%NAME%”, “เหตุการณ์”:”%EID%”, “นาฬิกาปลุก”:”ใช่” }
การดำเนินการนี้จะส่งข้อความ TCP หรือ UDP JSON เดียวไปยังเซิร์ฟเวอร์ที่ระบุโดยรายงานชื่ออุปกรณ์ที่เป็นมิตร ชื่อเหตุการณ์ และสิ่งที่เพิ่งเริ่มต้น
สตริงการรีเซ็ตการตั้งค่า "ข้อความภายนอก":
{ “อุปกรณ์”:”%NAME%”, “เหตุการณ์”:”%EID%”, “นาฬิกาปลุก”:”ไม่” }
การดำเนินการนี้จะส่งข้อความ TCP หรือ UDP JSON เดียวไปยังเซิร์ฟเวอร์ที่ระบุโดยรายงานชื่ออุปกรณ์ที่เป็นมิตร ชื่อเหตุการณ์ และเงื่อนไขหยุดทำงานแล้ว
ข้อความ "การเต้นของหัวใจ":
{ “อุปกรณ์”:”%NAME%”, “ยังมีชีวิตอยู่”:”%DATE% %TIME%” }
สิ่งนี้จะส่งข้อความ TCP หรือ UDP JSON เป็นระยะไปยังเซิร์ฟเวอร์ที่ระบุโดยรายงานว่า HALO ยังมีชีวิตอยู่ตามเวลาที่ระบุ
เอกสาร / แหล่งข้อมูล
![]() |
ซอฟต์แวร์ HALO Smart Sensor API ซอฟต์แวร์พื้นฐาน [พีดีเอฟ] คู่มือการใช้งาน ซอฟต์แวร์พื้นฐาน HALO Smart Sensor API |