نرم افزار HALO Smart Sensor API نرم افزار پایه
به جلو
این سند گروهی از امکانات حسگر هوشمند Halo را توصیف میکند که در مجموع به نام BASIC API یا رابط برنامهنویسی کاربردی شناخته میشود. این بحث برای استفاده برنامه نویسان یا یکپارچه سازانی است که علاقه مند به ادغام یک یا چند حسگر هوشمند HALO (HALO) با اجزا یا سیستم های نرم افزار شخص ثالث (غیر IPVideo) هستند. به طور کلی، HALO API برای انتقال موثر اطلاعات از HALO از طریق یک شبکه اترنت معمولی به برنامه خارجی در نظر گرفته شده است. برای دستیابی به این هدف، API به سه بخش تقسیم میشود: اتصال سوکت مبتنی بر رویداد، اتصال سوکت ضربان قلب، و دادههای رویداد. 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 عبارتند از URLs هایی که باید طبق نیاز سرور مقصد مورد نظر وارد و فرمت شوند. برای احراز هویت می توان از فیلد User و Password استفاده کرد. حالت HTTP را در زیر ببینید.
در حالت TCP، رشته های تنظیم و بازنشانی تنها داده های یک پیام هستند که به سوکت TCP دریافت کننده ارسال می شوند. آنها را می توان بر اساس نیاز مقصد قالب بندی کرد. مقصد در قسمت آدرس و پورت مشخص شده است. حالت TCP را در زیر ببینید.
برای هر حالت، وضعیت از آخرین پیام نمایش داده می شود که می تواند به رفع اتصال یا سایر مشکلات کمک کند. می توانید از دکمه های Event TEST در پنجره بازشو Actions برای اجبار یک پیام استفاده کنید:
برای فعال کردن این نوع پیامها، روشن/خاموش عمومی برای تنظیم یا بازنشانی باید روشن باشد. تنظیم مجدد اغلب استفاده نمی شود زیرا فقط شروع یک رویداد مورد علاقه است، اما ممکن است متفاوت باشد. هر رویداد میتواند بهطور مستقل مشخص کند که از پیام «تنظیم» یا «بازنشانی» در پنجره «کنشها» استفاده کند. دکمههای کره چشم نمایشی تقریبی از آنچه پس از جایگزینی و قالببندی کلیدواژه ارسال میشود را نشان میدهند. Repeat Holdoff را میتوان با تأخیر در ارسال پیامهای مکرر، قبل از ارسال پیام دیگر استفاده کرد. این به طور مستقل در هر رویداد انجام می شود. HALO دارای یک زمان نگهداری داخلی برای رویدادها 15 ثانیه برای جلوگیری از شروع مجدد سریع رویدادها است. اگر میخواهید مطمئن شوید که بیش از 1 رویداد از یک نوع در دقیقه ارسال نمیشود، میتوانید Repeat Holdoff را روی 60 (ثانیه) تنظیم کنید.
جزئیات ضربان قلب
انتقال ضربان قلب به روشی مشابه عملکرد بالا عمل می کند با این تفاوت که هیچ تعاملی با صفحه Actions وجود ندارد. درعوض، انتقال ضربان قلب به طور منظم مطابق با فیلد Interval انجام می شود، در حالت HTTP، رشته های تنظیم و تنظیم مجدد URLs هایی که باید طبق نیاز سرور مقصد مورد نظر وارد و فرمت شوند. برای احراز هویت می توان از فیلد User و Password استفاده کرد. حالت HTTP را در زیر ببینید.
در حالی که هدف اصلی Heartbeat ارائه اثبات عمر یک سنسور هوشمند HALO به یک برنامه راه دور است، این پیام همچنین می تواند برای انتقال سنسورهای انتخابی یا اطلاعات وضعیت رویداد فعلی استفاده شود. سابقample بالا یک پارامتر رشته طولانی را با URL که شامل نام Halo، اکثر مقادیر حسگر، و در نهایت Triggered=%ACTIVE% میشود که میتواند خالی باشد یا لیستی از رویدادهای فعالشده در حال حاضر.
حالت HTTP (و HTTPS).
پیامهای خارجی و رشتههای ضربان قلب میتوانند http: یا https: URLدر صورت نیاز مسیر و پارامترها را می توان در صورت نیاز توسط سرور مقصد وارد کرد. کلمات کلیدی مانند %NAME% (نام دستگاه HALO) یا %EID% (شناسه رویداد) را میتوان در صورت نیاز درج کرد و هنگام ارسال پیام با دادههای مربوطه جایگزین میشوند. لیستی از کلمات کلیدی رایج برای مرجع سریع نشان داده شده است.
را 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%”}
Examples برای Heartbeat ممکن است %ACTIVE% (رویدادهای فعال در حال حاضر) یا یک مقدار حسگر اضافه کند:
- https://server.com/alive?location=%NAME%&Triggered=%ACTIVE%
- https://server.com/event?{“location”:”:%NAME%”,”NH3”:%SENSOR:NH3%}
مقادیر %SENSOR:…% از نامهای موجود در عناوین ستون حسگر سمت راست در لاگ evtYYYYMMDD.csv استفاده میکنند. fileس آنها معمولاً عبارتند از:
اگر سرور مقصد به جای درخواستهای GET HTTP PUT یا POST را ترجیح میدهد، میتوانید پیشوند URL با PUT: یا POST:. به طور مستقل، میتوانید با افزودن کلمه کلیدی [JSONBODY] و به دنبال آن یک شی با فرمت JSON، یک بار JSON که در میان بسیاری از سرورها محبوب است، اضافه کنید. سابقampدر:
PUT:https://server.com/event[JSONBODY]{"مکان":"%NAME%"،"رویداد":"%EID%"}
را URL از آدرس IP معمولی (و IPv6) و گزینههای پورت و رمز عبور کاربر پشتیبانی میکند، یا میتوانید در صورت نیاز از فیلدهای User و Password به عنوان سرور مقصد برای روشهای احراز هویت مانند Basic یا Digest استفاده کنید:
https://username:password@123.321.123.321:9876/event…
حالت TCP
رشته های پیام های خارجی و ضربان قلب فقط برای داده ها هستند زیرا فیلدهای آدرس و پورت مقصد را مشخص می کنند. آدرس از نام ها، IPv4 و IPv6 پشتیبانی می کند.
رشته را می توان مانند بخش های داده پیام های HTTP که در بالا توضیح داده شد، یا بر اساس نیاز سرور مقصد قالب بندی کرد.
Exampپیامهای خارجی شامل %EID% میشود تا رویدادی را نشان دهد که راهاندازی شده است:
مکان=%NAME%,رویداد=%EID%
{“مکان”:”:%NAME%”,”رویداد”:”%EID%”}
Examples برای Heartbeat ممکن است %ACTIVE% (رویدادهای فعال در حال حاضر) یا یک مقدار حسگر اضافه کند:
location=%NAME%&Triggered=%ACTIVE%
{“location”:”:%NAME%,”NH3”:%SENSOR:NH3%}
چک باکسهای ستونهای «مجموعه ادغام» و «بازنشانی ادغام» تعیین میکنند که کدام رویدادها ارسال را آغاز میکنند. اطلاعات بیشتر در مورد تنظیم رویدادها و اقدامات در راهنمای مدیر HALO موجود است.
تحویل پیامهای رویداد JSON
برخی از توسعهدهندگان ترجیح میدهند دادههای رویداد را بهعنوان JSON با برچسب استاندارد صنعتی دریافت کنند تا متن ASCII ساده، زیرا اولی قابل اعتمادتر و آسانتر تجزیه میشود. در HALO web صفحه «پیامرسانی»، میتوانید پیامهای JSON را در تنظیمات «پیامهای خارجی»، «تنظیم رشته» و «بازنشانی رشته» و در «تپش قلب» «پیام» ارائه کنید.
Exampموارد:
تنظیم رشته تنظیمات «پیامهای خارجی»:
{ “دستگاه”:”%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 |