Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر

اڄ، مائڪرو اليڪٽرانڪس، ڪميونيڪيشن چينلز، انٽرنيٽ ٽيڪنالاجيز ۽ مصنوعي ذهانت جي تيز رفتار ترقي جي مهرباني، سمارٽ گهر جو موضوع وڌيڪ ۽ وڌيڪ لاڳاپيل ٿي رهيو آهي. پٿر جي دور کان وٺي انساني رهائش ۾ اهم تبديليون آيون آهن ۽ صنعتي انقلاب 4.0 جي دور ۾ ۽ شين جي انٽرنيٽ جي دور ۾، اهو آرامده، فعال ۽ محفوظ بڻجي چڪو آهي. حل مارڪيٽ ۾ اچي رهيا آهن جيڪي هڪ اپارٽمنٽ يا هڪ ملڪ جي گهر کي پيچيده معلوماتي سسٽم ۾ تبديل ڪري رهيا آهن دنيا جي ڪنهن به هنڌ کان ڪنٽرول سمارٽ فون استعمال ڪندي. ان کان علاوه، انساني-مشين جي رابطي کي هاڻي پروگرامنگ ٻولين جي ڄاڻ جي ضرورت ناهي - تقرير جي سڃاڻپ ۽ سنٿيسس الگورتھم جي مهرباني، هڪ شخص پنهنجي مادري زبان ۾ سمارٽ گهر سان ڳالهائيندو آهي.

ڪجهه سمارٽ گهر سسٽم هن وقت مارڪيٽ تي آهن ڪلائوڊ ويڊيو نگراني سسٽم جي منطقي ترقي، جن جي ڊولپرز کي هڪ جامع حل جي ضرورت محسوس ڪئي وئي نه رڳو نگراني لاء، پر ريموٽ شين جي انتظام لاء پڻ.

اسان توهان جي توجه لاءِ پيش ڪريون ٿا ٽن مضمونن جو هڪ سلسلو، جيڪو توهان کي ٻڌائيندو ڪلائوڊ سمارٽ هوم سسٽم جي سڀني مکيه حصن جي باري ۾، ذاتي طور تي ليکڪ طرفان تيار ڪيل ۽ عمل ۾ آندو ويو. پهريون مضمون سمارٽ گهر جي اندر نصب ڪيل ٽرمينل ڪلائنٽ سامان لاءِ وقف آهي، ٻيو ڪلائوڊ اسٽوريج ۽ ڊيٽا پروسيسنگ سسٽم جي فن تعمير لاءِ، ۽ آخر ۾، ٽيون، موبائل ۽ اسٽيشنري ڊوائيسز تي سسٽم کي منظم ڪرڻ لاءِ ڪلائنٽ ايپليڪيشن ڏانهن.

سمارٽ گھر جو سامان

پهرين، اچو ته هڪ عام اپارٽمنٽ، ڊچا يا ڪوٽيج مان هڪ سمارٽ گهر ڪيئن ٺاهيو. هن کي ڪرڻ لاء، ضابطي جي طور تي، گهر ۾ هيٺين سامان رکڻ ضروري آهي:

  1. سينسر جيڪي مختلف ماحولياتي پيٽرولن کي ماپ ڪن ٿا؛
  2. خارجي شين تي ڪم ڪندڙ عمل ڪندڙ؛
  3. هڪ ڪنٽرولر جيڪو سينسر جي ماپن ۽ ايمبيڊڊ منطق جي مطابق حسابن کي انجام ڏئي ٿو، ۽ ڪم ڪندڙن کي حڪم جاري ڪري ٿو.

هيٺ ڏنل شڪل سمارٽ گهر جو هڪ خاڪو ڏيکاري ٿو، جنهن تي پاڻي جي نڪرڻ لاءِ سينسر آهن (1) غسل خاني ۾، گرمي پد (2) ۽ روشني (3) بيڊ روم ۾، هڪ سمارٽ ساڪٽ (4) باورچی خانه ۾ ۽ هڪ وڊيو نگراني ڪئميرا (5) دالان ۾.

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر

في الحال، وائرليس سينسر استعمال ڪري رهيا آهن RF433، Z-Wave، ZigBee، بلوٽوت ۽ وائي فائي پروٽوڪول وڏي پيماني تي استعمال ڪيا ويا آهن. انهن جي مکيه فائدن جي انسٽاليشن ۽ استعمال جي آسانيء سان گڏو گڏ گهٽ قيمت ۽ reliability، ڇاڪاڻ ته ٺاهيندڙ ڪوشش ڪري رهيا آهن انهن جي ڊوائيسز کي ڪاميٽي مارڪيٽ ۾ آڻڻ ۽ انهن کي سراسري صارف تائين رسائي حاصل ڪرڻ لاء.

سينسرز ۽ عمل ڪندڙ، ضابطي جي طور تي، وائرليس انٽرفيس ذريعي سمارٽ هوم ڪنٽرولر سان ڳنڍيل آهن (6) - هڪ خاص مائڪرو ڪمپيوٽر جيڪو انهن سڀني ڊوائيسز کي هڪ نيٽ ورڪ ۾ گڏ ڪري ٿو ۽ انهن کي ڪنٽرول ڪري ٿو.

بهرحال، ڪجهه حل هڪ ئي وقت ۾ هڪ سينسر، هڪ ايڪٽيوٽر ۽ هڪ ڪنٽرولر کي گڏ ڪري سگهن ٿا. مثال طور، هڪ سمارٽ پلگ هڪ شيڊول مطابق آن يا آف ڪرڻ لاءِ پروگرام ڪري سگهجي ٿو، ۽ ڪلائوڊ وڊيو نگراني ڪيمرا موشن ڊيڪٽر سگنل جي بنياد تي وڊيو رڪارڊ ڪري سگهي ٿو. آسان حالتن ۾، توهان هڪ الڳ ڪنٽرولر کان سواء ڪري سگهو ٿا، پر ڪيترن ئي منظرنامي سان هڪ لچڪدار نظام ٺاهڻ لاء، اهو ضروري آهي.

سمارٽ هوم ڪنٽرولر کي گلوبل نيٽ ورڪ سان ڳنڍڻ لاءِ، هڪ باقاعده انٽرنيٽ روٽر (7) استعمال ڪري سگهجي ٿو، جيڪو ڪنهن به گهر ۾ گهڻي وقت کان عام گهرو سامان بڻجي چڪو آهي. هتي سمارٽ هوم ڪنٽرولر جي حق ۾ هڪ ٻيو دليل آهي - جيڪڏهن انٽرنيٽ جو ڪنيڪشن گم ٿي ويو آهي، سمارٽ گهر معمول جي طور تي ڪم ڪندو رهندو، ڪنٽرولر جي اندر محفوظ ٿيل منطق بلاڪ جي مهرباني، ۽ ڪلائوڊ سروس ۾ نه.

سمارٽ گهر سنڀاليندڙ

ڪلائوڊ سمارٽ هوم سسٽم لاءِ ڪنٽرولر هن آرٽيڪل ۾ بحث ڪيو ويو آهي هڪ سنگل بورڊ مائڪرو ڪمپيوٽر جي بنياد تي Raspberry Pi 3 ماڊل B+، جيڪو مارچ 2018 ۾ جاري ڪيو ويو ۽ سمارٽ گهر جي ڪمن لاءِ ڪافي وسيلا ۽ ڪارڪردگي آهي. ان ۾ 53-bit ARMv64-A آرڪيٽيڪچر تي ٻڌل ڪواڊ-ڪور Cortex-A8 پروسيسر، 1.4 GHz تي ڪلاڪ ڪيو ويو، گڏوگڏ 1 GB جي رام، وائي فائي 802.11ac، بلوٽوت 4.2 ۽ يو ايس بي 2.0 ذريعي گيگابٽ ايٿرنيٽ اڊاپٽر آپريٽنگ. .

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر

ڪنٽرولر کي گڏ ڪرڻ بلڪل سادو آهي - مائڪرو ڪمپيوٽر (1) پلاسٽڪ جي صورت ۾ نصب ٿيل آهي (2)، پوء هڪ 8 GB ميموري ڪارڊ مائڪرو ايس ڊي فارميٽ ۾ سافٽ ويئر (3) ۽ هڪ USB Z-Wave نيٽ ورڪ ڪنٽرولر (4) ۾ نصب ٿيل آهي. لاڳاپيل سلاٽ. سمارٽ گهر سنڀاليندڙ پاور سپلائي سان ڳنڍيل آهي 5V، 2.1A پاور اڊاپٽر (5) ۽ هڪ USB - micro-USB ڪيبل (6). هر ڪنٽرولر وٽ هڪ منفرد سڃاڻپ نمبر هوندو آهي، جيڪو ترتيب واري فائل ۾ لکيل هوندو آهي جڏهن پهريون ڀيرو لانچ ڪيو ويندو آهي ۽ ڪلائوڊ سمارٽ هوم سروسز سان رابطو ڪرڻ لاءِ ضروري هوندو آهي.

سمارٽ گهر سنڀاليندڙ سافٽ ويئر هن آرٽيڪل جي ليکڪ طرفان تيار ڪيو ويو آپريٽنگ سسٽم جي بنياد تي لينڪس Raspbian اسٽريچ. اهو هيٺين مکيه سب سسٽم تي مشتمل آهي:

  • سمارٽ گهر جي سامان ۽ بادل سان رابطي لاء سرور جو عمل؛
  • ڪنٽرولر جي ترتيب ۽ آپريٽنگ پيٽرولن کي ترتيب ڏيڻ لاء گرافڪ يوزر انٽرفيس؛
  • ذخيرو ڪنٽرولر جي جوڙجڪ لاء ڊيٽابيس.

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر

ڊيٽابيس سمارٽ گهر سنڀاليندڙ هڪ ايمبيڊڊ ڊي بي ايم ايس جي بنياد تي لاڳو ڪيو ويو آهي SQLite ۽ سسٽم سافٽ ويئر سان هڪ SD ڪارڊ تي هڪ فائيل آهي. اهو سنڀاليندڙ جي ترتيب لاء اسٽوريج جي طور تي ڪم ڪري ٿو - ڳنڍيل سامان ۽ ان جي موجوده حالت بابت معلومات، منطقي پيداوار جي ضابطن جو هڪ بلاڪ، ۽ انهي سان گڏ معلومات جنهن کي ترتيب ڏيڻ جي ضرورت آهي (مثال طور، مقامي وڊيو آرڪائيو جي فائل جا نالا). جڏهن ڪنٽرولر ريبوٽ ڪيو ويندو آهي، اها معلومات محفوظ ڪئي وئي آهي، اهو ممڪن آهي ته پاور ناڪامي جي صورت ۾ ڪنٽرولر کي بحال ڪرڻ.

گرافڪ انٽرفيس سمارٽ هوم ڪنٽرولر PHP 7 ۾ مائڪرو فريم ورڪ استعمال ڪندي ترقي ڪئي سلم. ويب سرور ايپليڪيشن کي هلائڻ لاء ذميوار آهي. روشني, اڪثر ان جي سٺي ڪارڪردگي ۽ گهٽ وسيلن جي گهرج جي ڪري سرايت ٿيل ڊوائيسز ۾ استعمال ڪيو ويندو آهي.

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر
(تصوير تي ڪلڪ ڪريو اعلي قرارداد ۾ کولڻ لاء)

گرافڪ انٽرفيس جو بنيادي ڪم سمارٽ گهر جي سامان (IP نگراني ڪيمرا ۽ سينسر) کي ڪنٽرولر سان ڳنڍڻ آهي. ويب ايپليڪيشن ڪنٽرولر جي ترتيب ۽ موجوده حالت پڙهي ٿي ۽ SQLite ڊيٽابيس مان ان سان ڳنڍيل ڊوائيسز. ڪنٽرولر جي ٺاھ جوڙ کي تبديل ڪرڻ لاء، اھو JSON فارميٽ ۾ ڪنٽرول ڪمانڊ موڪلي ٿو سرور جي عمل جي RESTful API انٽرفيس ذريعي.

سرور جي عمل

سرور جي عمل - هڪ اهم جزو جيڪو معلومات جي عملن کي خودڪار ڪرڻ تي تمام بنيادي ڪم انجام ڏئي ٿو جيڪو سمارٽ گهر جو بنياد بڻجي ٿو: حاصل ڪرڻ ۽ پروسيسنگ حسي ڊيٽا، جاري ڪرڻ ڪنٽرول ڪارناما جاري ڪرڻ سرايت ٿيل منطق جي بنياد تي. سرور جي عمل جو مقصد سمارٽ گھر جي سامان سان رابطو ڪرڻ، پيداوار جي منطقي ضابطن تي عمل ڪرڻ، گرافڪ انٽرفيس ۽ ڪلائوڊ کان حڪم حاصل ڪرڻ ۽ عمل ڪرڻ آھي. غور هيٺ سمارٽ هوم ڪنٽرولر ۾ سرور جو عمل لاڳو ڪيو ويو آهي هڪ ملٽي ٿريڊ ايپليڪيشن جي طور تي ترقي يافته C++ ۽ هڪ الڳ سروس طور شروع ڪيو ويو آهي. سسٽم آپريٽنگ سسٽم لينڪس Raspbian.

سرور جي عمل جا مکيه بلاڪ آهن:

  1. پيغام مئنيجر؛
  2. IP ڪئميرا سرور؛
  3. Z-Wave ڊوائيس سرور؛
  4. پيداوار جي منطقي ضابطن جي سرور؛
  5. ڪنٽرولر جي ترتيب جي ڊيٽابيس ۽ منطقي ضابطن جي بلاڪ؛
  6. گرافڪ انٽرفيس سان رابطي لاءِ RESTful API سرور؛
  7. ڪلائوڊ سان رابطي لاءِ MQTT ڪلائنٽ.

سرور پروسيس بلاڪ الڳ الڳ موضوعن جي طور تي لاڳو ڪيا ويا آهن، جن جي وچ ۾ معلومات JSON فارميٽ ۾ پيغامن جي صورت ۾ منتقل ڪئي وئي آهي (يا پروسيس ميموري ۾ هن فارميٽ جي نمائندگي ڪندڙ ڊيٽا جي جوڙجڪ).

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر

سرور جي عمل جو مکيه حصو آهي پيغام مينيجر، جيڪو JSON پيغامن کي سڀني سرور پروسيس بلاڪن ڏانهن روانو ڪري ٿو. JSON پيغام جي معلومات جي شعبن جا قسم ۽ قدر جيڪي اھي قبول ڪري سگھن ٿا جدول ۾ درج ٿيل آھن:

ڊوائيس جو قسم
پروٽوڪول
پيغام جو قسم
ڊوائيس اسٽيٽ
حڪم

ڪئميرا
ونف
سينسر ڊيٽا
on
اسٽريمنگ (آن/بند)

sensor
zwave
حڪم
بند
رڪارڊنگ (آن/بند)

مؤثر
ميٽرڪ
ڪاروباري منطق جو ضابطو
اسٽريمنگ (آن/بند)
evice (شامل ڪريو/هٽايو)

ڪاروباري منطق
ترتيب واري ڊيٽا
رڪارڊنگ (آن/بند)

bluetooth
ڊوائيس اسٽيٽ
غلطي

وائي فائيل

rf

مثال طور، ڪئميرا موشن ڊيڪٽر مان هڪ پيغام هن طرح نظر اچي ٿو:

{
	"vendor": "*****",
	"version": "3.0.0",
	"timestampMs": "1566293475475",
	"clientType": "gateway",
	"deviceId": "1616453d-30cd-44b7-9bf0-************",
	"deviceType": "camera",
	"protocol": "onvif",
	"messageType": "sensorData",
	"sensorType": "camera",
	"label": "motionDetector",
	"sensorData": "on"
}

پيداوار جي منطق

وصول ڪرڻ يا موڪليندڙ کان پيغام موڪلڻ لاء، سرور پروسيس بلاڪ هڪ خاص قسم جي پيغامن جي رڪنيت حاصل ڪري ٿو. سبسڪرپشن قسم جو هڪ پيداوار منطقي اصول آهي ”جيڪڏهن پوءِ...“، JSON فارميٽ ۾ پيش ڪيو ويو آهي، ۽ سرور پروسيس بلاڪ جي اندر پيغام هينڊلر جي لنڪ. مثال طور، IP ڪئميرا سرور کي GUI ۽ ڪلائوڊ کان حڪم حاصل ڪرڻ جي اجازت ڏيڻ لاءِ، توھان کي ھيٺ ڏنل قاعدو شامل ڪرڻ جي ضرورت آھي:

{
	"if": {
	    "and": [{
		"equal": {
		    "deviceId": "1616453d-30cd-44b7-9bf0-************"
		}
	    },
	    {
		"equal": {
		    "messageType": "command"
		}
	    }
	    ]
	},
	"then": {
	    "result": "true"
	}
}

جيڪڏهن شرطون بيان ڪيون ويون آهن اڳيون (کاٻي پاسي) قاعدا سچا آهن، پوء اهو مطمئن آهي نتيجي ۾ (ساڄي پاسي) ضابطا، ۽ هينڊلر JSON پيغام جي جسم تائين رسائي حاصل ڪري ٿو. اڳوڻو منطقي آپريٽرز کي سپورٽ ڪري ٿو جيڪي JSON اهم-قدر جوڑوں جو مقابلو ڪن ٿا:

  1. برابر "برابر"؛
  2. "not_equal" جي برابر ناهي؛
  3. گهٽ "گهٽ"؛
  4. وڌيڪ "وڏو"؛
  5. کان گهٽ يا برابر "less_or_equal"؛
  6. "وڌيڪ_يا_برابر" کان وڏو يا برابر.

مقابلي جا نتيجا هڪ ٻئي سان لاڳاپيل ٿي سگهن ٿا Boolean الجبرا آپريٽرس استعمال ڪندي:

  1. ۽ "۽"
  2. يا "يا"؛
  3. نه "نه".

اهڙيءَ طرح، پولش نوٽشن ۾ آپريٽرز ۽ آپرينڊز لکڻ سان، توهان وڏي تعداد ۾ پيرا ميٽرن سان ڪافي پيچيده حالتون ٺاهي سگهو ٿا.

بلڪل ساڳيو ميکانيزم، JSON پيغامن ۽ پيداوار جي ضابطن تي ٻڌل JSON فارميٽ ۾، علم جي نمائندگي ڪرڻ ۽ سمارٽ گهر سينسر مان حسي ڊيٽا استعمال ڪندي منطقي انفرنس کي انجام ڏيڻ لاءِ پيداوار جي منطق سرور بلاڪ ۾ استعمال ڪيو ويندو آهي.

هڪ موبائل ايپليڪيشن استعمال ڪندي، صارف منظرنامو ٺاهي ٿو جنهن جي مطابق سمارٽ گهر ڪم ڪرڻ گهرجي. مثال طور: ”جيڪڏهن سامهون واري دروازي کي کولڻ لاءِ سينسر شروع ٿي وڃي ته پوءِ دالان ۾ روشنيءَ کي چالو ڪريو“. ايپليڪيشن ڊيٽابيس مان سينسرز (اوپننگ سينسر) ۽ عمل ڪندڙ (سمارٽ ساڪٽ يا سمارٽ ليمپ) جي سڃاڻپ ڪندڙ پڙهي ٿي ۽ JSON فارميٽ ۾ هڪ منطقي قاعدو ٺاهي ٿي، جيڪو سمارٽ هوم ڪنٽرولر ڏانهن موڪليو ويو آهي. هي ميکانيزم اسان جي سيريز جي ٽئين مضمون ۾ وڌيڪ تفصيل سان بحث ڪيو ويندو، جتي اسان هڪ سمارٽ گهر جي انتظام لاء ڪلائنٽ ايپليڪيشن بابت ڳالهائينداسين.

مٿي ذڪر ڪيل پيداوار جي منطقي ميڪانيزم کي لائبريري استعمال ڪندي لاڳو ڪيو ويو آهي RapidJSON - SAX parser JSON فارميٽ لاءِ C++ ۾. پيداوار جي ضابطن جي هڪ ترتيب جي ترتيب سان پڙهڻ ۽ تجزيي ڪرڻ توهان کي آساني سان ڊيٽا جي مقابلي واري فنڪشن کي اڳين حصن ۾ لاڳو ڪرڻ جي اجازت ڏئي ٿي:

void CRuleEngine::Process(PProperties pFact)
{
    m_pActions->clear();

    rapidjson::Reader   reader;
    for(TStringMap::value_type& rRule : m_Rules)
    {
        std::string sRuleId   = rRule.first;
        std::string sRuleBody = rRule.second;

        CRuleHandler            ruleHandler(pFact);
        rapidjson::StringStream ruleStream(sRuleBody.c_str());
        rapidjson::ParseResult  parseResult = reader.Parse(ruleStream, ruleHandler);
        if(!parseResult)
        {
            m_Logger.LogMessage(
                        NLogger2::ePriorityLevelError,
                        std::string("JSON parse error"),
                        "CRuleEngine::Process()",
                        std::string("RuleId: ") + sRuleId);
        }

        PProperties pAction = ruleHandler.GetAction();
        if(pAction)
        {
            pAction->Set("ruleId", sRuleId);
            m_pActions->push_back(pAction);
        }
    }
}

اهو آهي pFact - هڪ جوڙجڪ جنهن ۾ هڪ JSON پيغام مان اهم-قدر جوڙو شامل آهي، m_قاعدا - پيداوار جي ضابطن جو سلسلو. ايندڙ پيغام ۽ پيداوار جي ضابطي جو مقابلو فنڪشن ۾ ڪيو ويندو آهي پڙهندڙ. پارسڪٿي ضابطو سنڀاليندڙ ھڪڙو اعتراض آھي جنھن ۾ Boolean ۽ comparison operators جي منطق شامل آھي. sRuleId - هڪ منفرد قاعدي جي سڃاڻپ ڪندڙ، جنهن جي مهرباني، سمارٽ هوم ڪنٽرولر ڊيٽابيس اندر ضابطن کي ذخيرو ۽ تدوين ڪرڻ ممڪن آهي. m_pActions - منطقي انفرنس جي نتيجن سان گڏ هڪ صف: JSON نياپا جنهن ۾ قاعدي جي بنياد جا نتيجا شامل آهن ۽ پيغام مئنيجر ڏانهن وڌيڪ موڪليا ويا ته جيئن سبسڪرائبر ٿريڊس انهن تي عمل ڪري سگهن.

RapidJSON ڪارڪردگي ڪارڪردگي جي مقابلي ۾ آهي strlen(), ۽ گھٽ ۾ گھٽ سسٽم وسيلن جي گهرج جي اجازت ڏئي ٿي هن لائبريري کي ايمبيڊڊ ڊوائيسز ۾ استعمال ڪرڻ جي. JSON فارميٽ ۾ پيغامن ۽ منطقي ضابطن جو استعمال توهان کي سمارٽ هوم ڪنٽرولر جي سڀني حصن جي وچ ۾ معلومات جي تبادلي جو لچڪدار نظام لاڳو ڪرڻ جي اجازت ڏئي ٿو.

Z-Wave سينسر ۽ Actuators

سمارٽ گهر جو بنيادي فائدو اهو آهي ته اهو آزاديءَ سان خارجي ماحول جي مختلف ماپن کي ماپي سگهي ٿو ۽ صورتحال جي لحاظ کان ڪارائتو ڪم سرانجام ڏئي سگهي ٿو. هن کي ڪرڻ لاء، sensors ۽ actuators سمارٽ گهر ڪنٽرولر سان ڳنڍيل آهن. موجوده ورزن ۾، اهي وائرليس ڊوائيسز آهن جيڪي پروٽوڪول استعمال ڪندي ڪم ڪن ٿيون Z- موج خاص طور تي مختص ڪيل تعدد تي 869 ميگاواٽ روس لاء. هلائڻ لاء، اهي هڪ ميش نيٽ ورڪ ۾ گڏ ڪيا ويا آهن، جنهن ۾ ڪوريج واري علائقي کي وڌائڻ لاء سگنل ريپيٽرز شامل آهن. ڊوائيسز ۾ پڻ خاص توانائي جي بچت واري موڊ آهي - اهي اڪثر وقت ننڊ موڊ ۾ گذاريندا آهن ۽ معلومات موڪليندا آهن جڏهن انهن جي حالت تبديل ٿي ويندي آهي، جيڪا تعمير ٿيل بيٽري جي زندگي کي وڌائي سگھي ٿي.

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر

توھان ھاڻي مارڪيٽ تي مختلف Z-Wave ڊوائيسز جو ھڪڙو وڏو تعداد ڳولي سگھو ٿا. اچو ته چند مثالن تي هڪ نظر وجهون:

  1. Zipato PAN16 سمارٽ ساکٽ ھيٺ ڏنل پيٽرولن کي ماپ ڪري سگھي ٿو: بجلي جو استعمال (kWh)، پاور (W)، وولٹیج (V) ۽ موجوده (A) برقي نيٽ ورڪ ۾. ان ۾ پڻ هڪ بلٽ ان سوئچ آهي جنهن سان توهان ڳنڍيل برقي سامان کي ڪنٽرول ڪري سگهو ٿا؛
  2. Neo Coolcam leak sensor remote probe جي رابطن کي بند ڪري ڦاٿل مائع جي موجودگي کي ڳولي ٿو.
  3. Zipato PH-PSG01 دونھون سينسر شروع ڪيو ويندو آھي جڏھن تماڪ جا ذرات گئس اينالائيزر چيمبر ۾ داخل ٿين ٿا؛
  4. Neo Coolcam موشن سينسر انساني جسم جي انفراريڊ شعاعن جو تجزيو ڪري ٿو. اضافي طور تي اتي هڪ روشني sensor آهي (Lx);
  5. Multisensor Philio PST02-A ماپ ڪري ٿو گرمي پد (°C)، روشني (٪)، دروازا کولڻ، ڪمري ۾ هڪ شخص جي موجودگي؛
  6. Z-Wave USB Stick ZME E UZB1 نيٽورڪ ڪنٽرولر، جنهن سان سينسر ڳنڍيل آهن.

اهو تمام ضروري آهي ته ڊوائيس ۽ ڪنٽرولر ساڳئي تعدد تي هلن ٿا، ٻي صورت ۾ اهي صرف ڪنيڪشن جي وقت هڪ ٻئي کي نه ڏسندا. 232 ڊوائيسز تائين ھڪڙي Z-Wave نيٽ ورڪ ڪنٽرولر سان ڳنڍي سگھجن ٿيون، جيڪو ھڪڙي اپارٽمنٽ يا ملڪ جي گھر لاء ڪافي آھي. نيٽ ورڪ ڪوريج واري علائقي کي گهرن ۾ وڌائڻ لاءِ، هڪ سمارٽ ساکٽ کي سگنل ريپٽر طور استعمال ڪري سگهجي ٿو.

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر

اڳئين پيراگراف ۾ بحث ڪيل سمارٽ هوم ڪنٽرولر سرور جي عمل ۾، Z-Wave سرور Z-Wave ڊوائيسز سان رابطي لاء ذميوار آهي. اهو سينسر کان معلومات حاصل ڪرڻ لاء لائبريري استعمال ڪري ٿو OpenZWave C++ ۾، جيڪو Z-Wave نيٽ ورڪ USB ڪنٽرولر سان رابطي لاءِ هڪ انٽرفيس مهيا ڪري ٿو ۽ مختلف قسم جي سينسرز ۽ ايڪٽيوٽرز سان ڪم ڪري ٿو. سينسر پاران ماپيل ماحولياتي پيٽرولر جو قدر Z-Wave سرور طرفان JSON پيغام جي صورت ۾ رڪارڊ ڪيو ويو آهي:

{
	"vendor": "*****",
	"version": "3.0.0",
	"timestampMs": "1566479791290",
	"clientType": "gateway",
	"deviceId": "20873eb0-dd5e-4213-a175-************",
	"deviceType": "sensor",
	"protocol": "zwave",
	"messageType": "sensorData",
	"homeId": "0xefa0cfa7",
	"nodeId": "20",
	"sensorType": "METER",
	"label": "Voltage",
	"sensorData": "229.3",
	"units": "V"
}

ان کان پوءِ سرور جي عمل جي ميسيج مئنيجر ڏانهن موڪليو ويو ته جيئن سبسڪرائيبر ٿريڊز ان کي حاصل ڪري سگهن. مکيه سبسڪرائبر پيداوار منطق سرور آهي، جيڪو پيغام جي فيلڊ جي قيمتن سان ملندو آهي منطق جي ضابطن جي اڳڪٿين ۾. انفرنس جا نتيجا جن ۾ ڪنٽرول ڪمانڊ شامل آهن واپس موڪليا وڃن ٿا پيغام مئنيجر ڏانهن ۽ اتان وڃو Z-Wave سرور، جيڪو انهن کي ڊيڪوڊ ڪري Z-Wave نيٽ ورڪ USB ڪنٽرولر ڏانهن موڪلي ٿو. ان کان پوء اهي ايڪٽيوٽر ۾ داخل ٿين ٿا، جيڪو ماحولياتي شين جي حالت کي تبديل ڪري ٿو، ۽ سمارٽ گهر اهڙي طرح ڪارائتو ڪم ڪري ٿو.

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر
(تصوير تي ڪلڪ ڪريو اعلي قرارداد ۾ کولڻ لاء)

Z-Wave ڊوائيسز کي ڳنڍڻ سمارٽ هوم ڪنٽرولر جي گرافڪ انٽرفيس ۾ ڪيو ويندو آهي. هن کي ڪرڻ لاء، صفحي ڏانهن وڃو ڊوائيسز جي فهرست سان ۽ "شامل ڪريو" بٽڻ تي ڪلڪ ڪريو. RESTful API انٽرفيس ذريعي شامل ڪرڻ جو حڪم سرور جي عمل ۾ داخل ٿئي ٿو ۽ پوءِ پيغام مينيجر طرفان Z-Wave سرور ڏانهن موڪليو ويو آهي، جيڪو Z-Wave نيٽ ورڪ USB ڪنٽرولر کي ڊوائيسز شامل ڪرڻ لاءِ خاص موڊ ۾ رکي ٿو. اڳيون، Z-Wave ڊوائيس تي توهان کي جلدي پريس جو سلسلو ٺاهڻ جي ضرورت آهي (3 سيڪنڊن اندر 1,5 پريس) سروس بٽڻ جي. USB ڪنٽرولر ڊوائيس کي نيٽ ورڪ سان ڳنڍي ٿو ۽ ان بابت معلومات Z-Wave سرور ڏانهن موڪلي ٿو. اهو، موڙ ۾، نئين ڊوائيس جي پيٽرولن سان SQLite ڊيٽابيس ۾ هڪ نئين داخلا ٺاهي ٿو. هڪ مخصوص وقت جي وقفي کان پوء، گرافڪ انٽرفيس Z-Wave ڊيوائس لسٽ واري صفحي ڏانهن موٽندو آهي، ڊيٽابيس مان معلومات پڙهي ٿو ۽ لسٽ ۾ نئين ڊوائيس ڏيکاري ٿو. هر ڊوائيس پنهنجو منفرد سڃاڻپ ڪندڙ حاصل ڪري ٿو، جيڪو پيداوار جي ضابطن ۾ استعمال ڪيو ويندو آهي ۽ جڏهن ڪلائوڊ ۾ ڪم ڪري رهيو آهي. هن الگورتھم جو آپريشن UML ڊراگرام ۾ ڏيکاريل آهي:

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر
(تصوير تي ڪلڪ ڪريو اعلي قرارداد ۾ کولڻ لاء)

ڳنڍڻ IP ڪئميرا

هن آرٽيڪل ۾ بحث ڪيل ڪلائوڊ سمارٽ گهر سسٽم ڪلائوڊ ويڊيو نگراني سسٽم جو هڪ اپ گريڊ آهي، جيڪو پڻ ليکڪ طرفان تيار ڪيو ويو آهي، جيڪو ڪيترن سالن کان مارڪيٽ تي آهي ۽ روس ۾ ڪيتريون ئي تنصيبات آهن.

ڪلائوڊ ويڊيو نگراني سسٽم لاءِ، هڪ سخت مسئلن مان هڪ آهي محدود چونڊ سامان جو جنهن سان انضمام ٿي سگهي ٿو. ڪلائوڊ سان ڳنڍڻ جو ذميوار سافٽ ويئر ويڊيو ڪيمرا اندر نصب ٿيل آهي، جيڪو فوري طور تي پنهنجي هارڊويئر تي سنجيده مطالبن کي رکي ٿو - پروسيسر ۽ مفت ميموري جي مقدار. اهو بنيادي طور تي بيان ڪري ٿو ڪلائوڊ سي سي ٽي وي ڪئميرا جي اعلي قيمت باقاعده IP ڪئميرا جي مقابلي ۾. ان کان علاوه، CCTV ڪئميرا ٺاهيندڙ ڪمپنين سان ڳالهين جو هڪ ڊگهو مرحلو گهربل آهي ڪئميرا فائل سسٽم تائين رسائي حاصل ڪرڻ ۽ سڀني ضروري ترقياتي اوزار.

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر

ٻئي طرف، سڀني جديد IP ڪئميرا ٻين سامان سان رابطي لاء معياري پروٽوڪول آهن (خاص طور تي، وڊيو رڪارڊرز). اهڙيء طرح، هڪ الڳ ڪنٽرولر جو استعمال جيڪو هڪ معياري پروٽوڪول ذريعي ڳنڍيندو آهي ۽ وڊيو اسٽريمز کي IP ڪئميرا کان ڪلائوڊ تائين نشر ڪري ٿو بادل ويڊيو نگراني سسٽم لاءِ اهم مقابلي جا فائدا فراهم ڪري ٿو. ان کان علاوه، جيڪڏهن ڪلائنٽ اڳ ۾ ئي هڪ وڊيو نگراني سسٽم نصب ڪيو آهي سادي IP ڪئميرا جي بنياد تي، پوء اهو ممڪن آهي ته ان کي وڌايو ۽ ان کي مڪمل ڪلائوڊ سمارٽ گهر ۾ تبديل ڪيو وڃي.

IP وڊيو نگراني سسٽم لاءِ سڀ کان وڌيڪ مشهور پروٽوڪول، هاڻي سڀني IP ڪئميرا ٺاهيندڙن جي مدد سان بغير استثنا، آهي ONVIF پروفائيل ايس، جن جون وضاحتون ويب خدمتن جي وضاحت جي ٻولي ۾ موجود آهن ڊبليو ايس ڊي ايل. ٽول ڪٽ مان يوٽيلٽيز استعمال ڪندي gSOAP اهو ممڪن آهي ته خدمتن لاء سورس ڪوڊ پيدا ڪرڻ جيڪي IP ڪئميرا سان ڪم ڪن ٿيون:

$ wsdl2h -o onvif.h 
	https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl 
	https://www.onvif.org/ver10/events/wsdl/event.wsdl 
	https://www.onvif.org/ver10/media/wsdl/media.wsdl 
	https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl

$ soapcpp2 -Cwvbj -c++11 -d cpp_files/onvif -i onvif.h

نتيجي طور، اسان کي C++ ۾ هيڊر “*.h” ۽ ماخذ “*.cpp” فائلن جو هڪ سيٽ ملي ٿو، جنهن کي سڌو سنئون ايپليڪيشن يا الڳ لائبريري ۾ رکي سگهجي ٿو ۽ GCC ڪمپائلر استعمال ڪندي مرتب ڪري سگهجي ٿو. ڪيترن ئي ڪمن جي ڪري، ڪوڊ وڏو آهي ۽ اضافي اصلاح جي ضرورت آهي. Raspberry Pi 3 ماڊل B+ مائڪرو ڪمپيوٽر وٽ هن ڪوڊ کي هلائڻ لاءِ ڪافي ڪارڪردگي آهي، پر جيڪڏهن ضرورت هجي ته ڪوڊ کي ٻئي پليٽ فارم تي پورٽ ڪرڻ لاءِ، اهو ضروري آهي ته صحيح پروسيسر آرڪيٽيڪچر ۽ سسٽم وسيلن کي چونڊيو وڃي.

IP ڪئميرا جيڪي ONVIF معيار جي حمايت ڪن ٿا، جڏهن مقامي نيٽ ورڪ تي ڪم ڪري رهيا آهن، ايڊريس سان هڪ خاص ملٽي ڪاسٽ گروپ سان ڳنڍيل آهن. 239.255.255.250. اتي هڪ پروٽوڪول آهي WS- دريافت، جيڪو توهان کي مقامي نيٽ ورڪ تي ڊوائيسز جي ڳولا کي خودڪار ڪرڻ جي اجازت ڏئي ٿو.

سمارٽ هوم ڪنٽرولر جو گرافڪ انٽرفيس PHP ۾ IP ڪيمرا لاءِ سرچ فنڪشن لاڳو ڪري ٿو، جيڪو تمام آسان آهي جڏهن ويب سروسز سان XML پيغامن ذريعي رابطو ڪيو وڃي. جڏهن مينيو شيون چونڊيو ڊوائيسز> IP ڪئميرا> اسڪيننگ IP ڪئميرا ڳولڻ لاءِ الگورٿم شروع ڪيو ويو آهي، نتيجو ڏيکاريندي ٽيبل جي صورت ۾:

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر
(تصوير تي ڪلڪ ڪريو اعلي قرارداد ۾ کولڻ لاء)

جڏهن توهان هڪ ڪئميرا ڪنٽرولر ۾ شامل ڪيو ٿا، توهان سيٽنگون بيان ڪري سگهو ٿا جنهن جي مطابق اهو بادل سان لهه وچڙ ڪندو. انهي مرحلي تي پڻ، اهو خودڪار طور تي هڪ منفرد ڊيوائس سڃاڻپ ڪندڙ مقرر ڪيو ويو آهي، جنهن جي ذريعي ان کي بعد ۾ آساني سان ڪلائوڊ اندر سڃاڻي سگهجي ٿو.

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر

اڳيون، ھڪڙو پيغام JSON فارميٽ ۾ ٺاھيو ويو آھي جنھن ۾ شامل ڪيل ڪئميرا جا سڀئي پيرا ميٽر شامل آھن ۽ سمارٽ ھوم ڪنٽرولر جي سرور جي پروسيس ڏانھن RESTful API ڪمانڊ ذريعي موڪليو ويو، جتي ڪئميرا پيرا ميٽرز ڊيڪوڊ ڪيا ويا آھن ۽ اندروني SQLite ڊيٽابيس ۾ محفوظ ڪيا ويا آھن، ۽ آھن هيٺين پروسيسنگ ٿريڊز کي لانچ ڪرڻ لاءِ پڻ استعمال ڪيو ويو:

  1. وڊيو ۽ آڊيو اسٽريمز حاصل ڪرڻ لاءِ RTSP ڪنيڪشن قائم ڪرڻ؛
  2. G.711 mu-Law، G.711 A-Law، G.723 وغيره فارميٽ مان آڊيو ٽرانسڪوڊنگ. AAC فارميٽ ۾؛
  3. وڊيو اسٽريمز کي H.264 فارميٽ ۾ ۽ آڊيو کي AAC فارميٽ ۾ FLV ڪنٽينر ۾ منتقل ڪرڻ ۽ RTMP پروٽوڪول ذريعي ڪلائوڊ ۾ منتقل ڪرڻ؛
  4. ONVIF پروٽوڪول ذريعي IP ڪئميرا موشن ڊيڪٽر جي آخري پوائنٽ سان ڪنيڪشن قائم ڪرڻ ۽ وقتي طور تي پولنگ ڪرڻ؛
  5. وقتي طور تي ٺمب نيل ڏيک واري تصوير ٺاهي ۽ ان کي MQTT پروٽوڪول ذريعي ڪلائوڊ ڏانهن موڪلڻ؛
  6. وڊيو ۽ آڊيو اسٽريمز جي مقامي رڪارڊنگ الڳ فائلن جي صورت ۾ MP4 فارميٽ ۾ هڪ سمارٽ هوم ڪنٽرولر جي SD يا فليش ڪارڊ تي.

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر

ڪئميرا سان ڪنيڪشن قائم ڪرڻ لاءِ، ٽرانسڪوڊ، پروسيس ۽ رڪارڊ وڊيو اسٽريمز سرور جي عمل ۾، لائبريري مان فنڪشن استعمال ڪيا ويندا آهن. FFmpeg 4.1.0.

ڪارڪردگي جي جاچ واري تجربي ۾، 3 ڪئميرا ڪنٽرولر سان ڳنڍيل هئا:

  1. HiWatch DS-I114W (ريزوليوشن - 720p، ڪمپريشن فارميٽ - H.264، بٽريٽ - 1 Mb/s، آواز G.711 mu-Law)؛
  2. Microdigital MDC-M6290FTD-1 (Resolution - 1080p، Compression Format - H.264، bitrate - 1 Mb/s، no sound)؛
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (ريزوليوشن - 1080p، ڪمپريشن فارميٽ - H.264، بٽريٽ - 1.5 Mb/s، AAC آڊيو).

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر

سڀ ٽي اسٽريم هڪ ئي وقت ڪلائوڊ ۾ آئوٽ ڪيا ويا، آڊيو ٽرانسڪوڊنگ صرف هڪ ڪئميرا مان ڪئي وئي، ۽ مقامي آرڪائيو رڪارڊنگ کي بند ڪيو ويو. سي پي يو لوڊ تقريبن 5٪ هو، رام استعمال 32 MB (في پروسيس)، 56 MB (مجموعي طور تي OS سميت).

اهڙيءَ طرح، لڳ ڀڳ 20 - 30 ڪيمرا سمارٽ هوم ڪنٽرولر سان ڳنڍجي سگھن ٿا (انحصار ڪري ريزوليوشن ۽ بِٽ ريٽ)، جيڪو ٽي ماڙ ڪوٽيج يا ننڍڙي گودام لاءِ وڊيو نگراني نظام لاءِ ڪافي آهي. انهن ڪمن لاءِ جن کي وڌيڪ ڪارڪردگي جي ضرورت آهي، توهان هڪ نيٽ ٽاپ استعمال ڪري سگهو ٿا ملٽي ڪور انٽيل پروسيسر ۽ لينڪس ڊيبين سارج او ايس سان. ڪنٽرولر في الحال آزمائشي آپريشن کان گذري رهيو آهي، ۽ ان جي ڪارڪردگي تي ڊيٽا کي اپڊيٽ ڪيو ويندو.

بادل سان رابطي

ڪلائوڊ تي ٻڌل سمارٽ گهر ڪلائوڊ ۾ صارف جي ڊيٽا (وڊيو ۽ سينسر جي ماپ) محفوظ ڪري ٿو. ڪلائوڊ اسٽوريج جي فن تعمير تي اسان جي سيريز ۾ ايندڙ مضمون ۾ وڌيڪ تفصيل سان بحث ڪيو ويندو. هاڻي اچو ته انفارميشن پيغامن کي سمارٽ هوم ڪنٽرولر کان ڪلائوڊ ڏانهن منتقل ڪرڻ لاءِ انٽرفيس بابت ڳالهايون.

ڳنڍيل ڊوائيسز ۽ سينسر جي ماپن جي رياستن کي پروٽوڪول ذريعي منتقل ڪيو ويو آهي ايم ڊي ٽي ٽي، جيڪو اڪثر استعمال ڪيو ويندو آهي انٽرنيٽ جي شين جي منصوبن ۾ ان جي سادگي ۽ توانائي جي ڪارڪردگي جي ڪري. MQTT هڪ ڪلائنٽ-سرور ماڊل استعمال ڪري ٿو، جتي ڪلائنٽ بروکر جي اندر مخصوص عنوانن جي رڪنيت حاصل ڪن ٿا ۽ انهن جا پيغام شايع ڪن ٿا. بروکر QoS (سروس جي معيار) جي سطح پاران مقرر ڪيل ضابطن جي مطابق سڀني رڪنن کي پيغام موڪلي ٿو:

  • QoS 0 - وڌ ۾ وڌ هڪ ڀيرو (نه پهچائڻ جي ضمانت)؛
  • QoS 1 - گهٽ ۾ گهٽ هڪ ڀيرو (ترسيل جي تصديق سان)؛
  • QoS 2 - بلڪل هڪ ڀيرو (اضافي ترسيل جي تصديق سان).

اسان جي حالت ۾، اسان استعمال ڪندا آهيون Eclipse Mosquito. موضوع جو نالو سمارٽ هوم ڪنٽرولر جو منفرد سڃاڻپ ڪندڙ آهي. سرور جي عمل جي اندر MQTT ڪلائنٽ هن موضوع کي سبسڪرائب ڪري ٿو ۽ پيغام مئنيجر کان ايندڙ JSON پيغامن کي ترجمو ڪري ٿو. برعڪس، MQTT بروکر کان نياپا ان جي طرفان پيغام مينيجر ڏانهن موڪليا ويا آهن، جيڪو پوء انهن کي سرور جي عمل جي اندر ان جي رڪنن کي ملائي پلڪس ڪري ٿو:

Cloud Smart Home. حصو 1: ڪنٽرولر ۽ سينسر

سمارٽ هوم ڪنٽرولر جي حيثيت بابت پيغامن کي منتقل ڪرڻ لاءِ، محفوظ ڪيل پيغامن جو ميکانيزم استعمال ڪيو ويندو آهي محفوظ ڪيل پيغام MQTT پروٽوڪول. هي توهان کي طاقت جي ناڪامي دوران ٻيهر ڪنيڪشن جي وقت جي نگراني ڪرڻ جي اجازت ڏئي ٿي.

MQTT ڪلائنٽ ترقي ڪئي وئي لائبريري عمل جي بنياد تي Eclipse Paho C++ ٻولي ۾.

H.264 + AAC ميڊيا اسٽريمز RTMP پروٽوڪول ذريعي بادل ڏانهن موڪليا ويا آهن، جتي ميڊيا سرورز جو هڪ ڪلستر انهن کي پروسيسنگ ۽ اسٽوريج لاء ذميوار آهي. ڪلسٽر ۾ لوڊ کي بهتر طور تي ورهائڻ ۽ گهٽ ۾ گهٽ لوڊ ٿيل ميڊيا سرور کي چونڊڻ لاءِ، سمارٽ هوم ڪنٽرولر ڪلائوڊ لوڊ بيلنسر کي هڪ ابتدائي درخواست ڪري ٿو ۽ ان کان پوءِ ئي ميڊيا اسٽريم موڪلي ٿو.

ٿڪل

آرٽيڪل Raspberry Pi 3 B+ مائڪرو ڪمپيوٽر جي بنياد تي سمارٽ هوم ڪنٽرولر جي هڪ مخصوص عمل جي جانچ ڪئي، جيڪو Z-Wave پروٽوڪول ذريعي معلومات ۽ ڪنٽرول سامان وصول ڪري، پروسيس ڪري سگهي ٿو، ONVIF پروٽوڪول ذريعي IP ڪئميرا سان رابطو ڪري ٿو، ۽ ڊيٽا جي مٽا سٽا پڻ ڪري ٿو. ڪلائوڊ سان ڪمانڊ. سروس ذريعي MQTT ۽ RTMP پروٽوڪول هڪ پيداوار منطق انجڻ جي بنياد تي ترقي ڪئي وئي آهي منطقي قاعدن ۽ حقيقتن جي مقابلي جي بنياد تي پيش ڪيل JSON فارميٽ ۾.

سمارٽ گهر سنڀاليندڙ هن وقت ماسڪو ۽ ماسڪو علائقي جي ڪيترن ئي سائيٽن تي آزمائشي آپريشن ڪري رهيو آهي.

ڪنٽرولر جو ايندڙ نسخو ٻين قسمن جي ڊوائيسز (آر ايف، بلوٽوت، وائي فائي، وائرڊ) سان ڳنڍڻ جو منصوبو آهي. صارفين جي سهولت لاء، سينسرز ۽ IP ڪئميرا کي ڳنڍڻ جو طريقو موبائل ايپليڪيشن ڏانهن منتقل ڪيو ويندو. سرور پروسيس ڪوڊ کي بهتر ڪرڻ ۽ سافٽ ويئر کي آپريٽنگ سسٽم ڏانهن پورٽ ڪرڻ لاء پڻ خيال آهن اوپن ڊبليو. اهو توهان کي هڪ الڳ ڪنٽرولر تي محفوظ ڪرڻ ۽ سمارٽ گهر جي ڪارڪردگي کي باقاعده گهريلو روٽر ڏانهن منتقل ڪرڻ جي اجازت ڏيندو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو