პროგრამული უზრუნველყოფის HALO Smart Sensor API ძირითადი პროგრამული უზრუნველყოფა
წინ
ეს დოკუმენტი აღწერს Halo Smart Sensor-ის ობიექტების ჯგუფს, რომლებიც ერთობლივად ცნობილია როგორც BASIC API, ან აპლიკაციის პროგრამირების ინტერფეისი. ეს დისკუსია განკუთვნილია პროგრამისტების ან ინტეგრატორების გამოსაყენებლად, რომლებიც დაინტერესებულნი არიან ერთი ან მეტი HALO ჭკვიანი სენსორების (HALO) ინტეგრირებით მესამე მხარის (არა IPVideo) პროგრამულ კომპონენტებთან ან სისტემებთან. ზოგადად, HALO API გამიზნულია ინფორმაციის ეფექტურად გადასაცემად HALO-დან ჩვეულებრივი Ethernet ქსელის მეშვეობით გარე პროგრამაში. ამ მიზნის მისაღწევად, API დაყოფილია სამ ნაწილად: მოვლენებზე ორიენტირებული სოკეტის კავშირი, Heartbeat Socket კავშირი და მოვლენის მონაცემები. 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 რეჟიმში, Set და Reset strings არის URLs, რომლებიც უნდა იყოს შეყვანილი და დაფორმატებული, როგორც ამას სასურველი დანიშნულების სერვერი მოითხოვს. მომხმარებლის და პაროლის ველი შეიძლება გამოყენებულ იქნას ავტორიზაციისთვის. იხილეთ HTTP რეჟიმი ქვემოთ.
TCP რეჟიმში, Set და Reset strings არის მხოლოდ ერთი შეტყობინების მონაცემები, რომელიც იგზავნება მიმღებ TCP სოკეტში. მათი ფორმატირება შესაძლებელია დანიშნულებისამებრ საჭიროებისამებრ. დანიშნულება მითითებულია მისამართის და პორტის ველებში. იხილეთ TCP რეჟიმი ქვემოთ.
ორივე რეჟიმისთვის ნაჩვენებია სტატუსი უახლესი შეტყობინებისგან, რაც დაგეხმარებათ კავშირის ან სხვა პრობლემების გამოსწორებაში. თქვენ შეგიძლიათ გამოიყენოთ ღონისძიების ტესტის ღილაკები მოქმედებების ამომხტარ ფანჯარაში, რათა აიძულოთ შეტყობინება:
გლობალური ჩართვა/გამორთვა დაყენებისთვის ან გადატვირთვისთვის უნდა იყოს ჩართული ამ ტიპის შეტყობინებების ჩასართავად. გადატვირთვა ხშირად არ გამოიყენება, რადგან მხოლოდ მოვლენის დაწყებაა საინტერესო, მაგრამ ეს შეიძლება განსხვავდებოდეს. თითოეულ მოვლენას შეუძლია დამოუკიდებლად განსაზღვროს, გამოიყენებს თუ არა Set ან Reset შეტყობინებას მოქმედებების ამომხტარში. თვალის კაკლის ღილაკები აჩვენებს უხეშ წარმოდგენას იმის შესახებ, რაც იგზავნება საკვანძო სიტყვების ჩანაცვლებისა და ფორმატირების შემდეგ. Repeat Holdoff შეიძლება გამოყენებულ იქნას ხშირი შეტყობინებების გასაქრობად მეორეს გაგზავნამდე დაყოვნებით. ეს კეთდება დამოუკიდებლად თითო ღონისძიებაზე. HALO-ს აქვს ჩაშენებული მოვლენის დრო 15 წამისთვის, რათა თავიდან აიცილოს მოვლენების სწრაფი ხელახალი გაშვება. თუ გსურთ უზრუნველყოთ არაუმეტეს 1 ტიპის ღონისძიების გაგზავნა წუთში, შეგიძლიათ დააყენოთ Repeat Holdoff 60 (წამში).
გულისცემის დეტალები
Heartbeat გადაცემები ფუნქციონირებს ზემოაღნიშნულის მსგავსად, გარდა იმისა, რომ არ არის ურთიერთქმედება მოქმედებების გვერდზე. ამის ნაცვლად, Heartbeat გადაცემა ხდება რეგულარულად, როგორც კონფიგურირებულია ინტერვალის ველთან, HTTP რეჟიმში, Set და Reset strings არის URLs, რომლებიც უნდა იყოს შეყვანილი და დაფორმატებული, როგორც ამას სასურველი დანიშნულების სერვერი მოითხოვს. მომხმარებლის და პაროლის ველი შეიძლება გამოყენებულ იქნას ავტორიზაციისთვის. იხილეთ HTTP რეჟიმი ქვემოთ.
მიუხედავად იმისა, რომ Heartbeat-ის ძირითადი მიზანია HALO Smart Sensor-ის სიცოცხლისუნარიანობის დადასტურება დისტანციურ აპლიკაციაში, ეს შეტყობინება ასევე შეიძლება გამოყენებულ იქნას არჩეული სენსორების ან მიმდინარე მოვლენის მდგომარეობის შესახებ ინფორმაციის გადასაცემად. ყოფილმაample ზემოთ აგზავნის გრძელი სტრიქონის პარამეტრს ერთად URL რომელიც მოიცავს Halo-ს სახელს, სენსორის მნიშვნელობების უმრავლესობას და ბოლოს Triggered=%ACTIVE%, რომელიც შეიძლება იყოს ცარიელი ან ამჟამად გამოწვეული მოვლენების სია.
HTTP (და HTTPS) რეჟიმი
გარე შეტყობინებების და Heartbeat სტრიქონები შეიძლება იყოს http: ან https: URLროგორც საჭიროა. ბილიკი და პარამეტრები შეიძლება შეიტანოს საჭიროებისამებრ დანიშნულების სერვერს. საკვანძო სიტყვები, როგორიცაა %NAME% (HALO მოწყობილობის სახელი) ან %EID% (მოვლენის ID) შეიძლება ჩასვათ საჭიროებისამებრ და შეიცვლება შესაბამისი მონაცემებით შეტყობინების გაგზავნისას. სწრაფი მითითებისთვის ნაჩვენებია ხშირად გამოყენებული საკვანძო სიტყვების სია.
The URL ბილიკი შეიძლება შეიცავდეს საკვანძო სიტყვებს და პარამეტრებს URL. პარამეტრები შეიძლება იყოს NAME=VALUE წყვილი ან JSON ობიექტი, ან მორგებული ფორმატი, რომელიც დამოკიდებულია დანიშნულების სერვერზე. მაგampგარე შეტყობინებების შეტყობინებები მოიცავს %EID% მოვლენის მითითებას, რომელმაც გამოიწვია:
- https://server.com/event/%NAME%/%EID%
- https://server.com/event?location=%NAME%&event=%EID%
- https://server.com/event?{“location”:”:%NAME%”,”event”:”%EID%”}
ExampHeartbeat-ისთვის შეიძლება დაემატოს %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 payload, რომელიც პოპულარულია ბევრ სერვერში [JSONBODY] საკვანძო სიტყვის დამატებით JSON ფორმატირებული ობიექტის დამატებით. მაგampლე:
PUT:https://server.com/event[JSONBODY]{“location”:”%NAME%”,”event”:”%EID%”}
The URL მხარს უჭერს ტიპიურ IP მისამართს (და IPv6) და პორტის და მომხმარებლის პაროლის ვარიანტებს, ან შეგიძლიათ გამოიყენოთ მომხმარებლის და პაროლის ველები, საჭიროების შემთხვევაში, იყოს დანიშნულების სერვერი ავთენტიფიკაციის მეთოდებისთვის, როგორიცაა Basic ან Digest:
https://username:password@123.321.123.321:9876/event…
TCP რეჟიმი
გარე შეტყობინებების და გულისცემის სტრიქონები მხოლოდ მონაცემებისთვისაა, რადგან მისამართი და პორტი ველებში მითითებულია დანიშნულების ადგილი. მისამართი მხარს უჭერს სახელებს, IPv4 და IPv6.
სტრიქონი შეიძლება იყოს ფორმატირებული, როგორც ზემოთ აღწერილი HTTP შეტყობინებების მონაცემების ნაწილი, ან როგორც ამას მოითხოვს დანიშნულების სერვერი.
Exampგარე შეტყობინებების შეტყობინებები მოიცავს %EID% მოვლენის მითითებას, რომელმაც გამოიწვია:
მდებარეობა=%NAME%,მოვლენა=%EID%
{“მდებარეობა”:”:%NAME%”,”მოვლენა”:”%EID%”}
ExampHeartbeat-ისთვის შეიძლება დაემატოს %ACTIVE% (ამჟამად გააქტიურებული მოვლენები) ან სენსორის მნიშვნელობა:
მდებარეობა=%NAME%&Triggered=%ACTIVE%
{“location”:”:%NAME%”,”NH3”:%SENSOR:NH3%}
„ინტეგრაციის ნაკრები“ და „ინტეგრაციის გადატვირთვის“ სვეტების ჩამრთველი ველები განსაზღვრავს, თუ რომელი ღონისძიებები იწვევს გაგზავნას. მოვლენებისა და მოქმედებების დაყენების შესახებ მეტი ხელმისაწვდომია HALO ადმინისტრატორის სახელმძღვანელოში.
JSON ღონისძიების შეტყობინებების მიწოდება
ზოგიერთ დეველოპერს ურჩევნია მიიღოს ღონისძიების მონაცემები დაფორმატებული, როგორც ინდუსტრიის სტანდარტის თვით-ეტიკეტირებული JSON, ვიდრე უბრალო ASCII ტექსტი, რადგან პირველი უფრო საიმედოდ და ადვილად ანალიზდება. HALO-ზე web გვერდის „შეტყობინებების“ ჩანართში, შეგიძლიათ მიაწოდოთ JSON შეტყობინებები „გარე შეტყობინებების“ პარამეტრებში „სტრიქონის დაყენება“ და „სტრიქონის გადატვირთვა“ და „გულისცემა“ „მესიჯი“.
Examples:
„გარე შეტყობინებების“ პარამეტრების დაყენება:
{ “მოწყობილობა”:”%NAME%”, “მოვლენა”:”%EID%”, “სიგნალიზაცია”:”დიახ” }
ეს გაგზავნის ერთ TCP ან UDP JSON შეტყობინებას მითითებულ სერვერზე, რომელიც აცნობებს მეგობრული მოწყობილობის სახელს, მოვლენის სახელს და რომ ის ახლახან დაიწყო.
"გარე შეტყობინებების" პარამეტრების გადატვირთვის სტრიქონი:
{ "მოწყობილობა":"%NAME%", "მოვლენა":"%EID%", "სიგნალიზაცია":"არა" }
ეს გამოგიგზავნით ერთ TCP ან UDP JSON შეტყობინებას მითითებულ სერვერზე, რომელიც აცნობებს მეგობრული მოწყობილობის სახელს, მოვლენის სახელს და რომ მდგომარეობა შეჩერებულია.
"გულისცემა" შეტყობინება:
{ „მოწყობილობა“:“%NAME%“, „ცოცხალი“:“%DATE% %TIME%“ }
ეს პერიოდულად გაუგზავნის TCP ან UDP JSON შეტყობინებას მითითებულ სერვერზე, რომელიც იტყობინება, რომ HALO ცოცხალია მითითებულ დროს.
დოკუმენტები / რესურსები
![]() |
პროგრამული უზრუნველყოფის HALO Smart Sensor API ძირითადი პროგრამული უზრუნველყოფა [pdf] მომხმარებლის სახელმძღვანელო HALO Smart Sensor API ძირითადი პროგრამა |