# انٹرنیٹ کے ذریعے اپنی نائٹ لائٹ کو کنٹرول کریں - ورچوئل IoT ہارڈویئر اور راسپبیری پائی اس سبق کے اس حصے میں، آپ MQTT بروکر سے اپنے راسپبیری پائی یا ورچوئل IoT ڈیوائس کو بھیجے گئے کمانڈز کو سبسکرائب کریں گے۔ ## کمانڈز کو سبسکرائب کریں اگلا مرحلہ یہ ہے کہ MQTT بروکر سے بھیجے گئے کمانڈز کو سبسکرائب کریں اور ان پر ردعمل دیں۔ ### کام کمانڈز کو سبسکرائب کریں۔ 1. نائٹ لائٹ پروجیکٹ کو VS Code میں کھولیں۔ 1. اگر آپ ورچوئل IoT ڈیوائس استعمال کر رہے ہیں، تو یقینی بنائیں کہ ٹرمینل ورچوئل ماحول چلا رہا ہے۔ اگر آپ راسپبیری پائی استعمال کر رہے ہیں تو آپ ورچوئل ماحول استعمال نہیں کریں گے۔ 1. `client_telemetry_topic` کی تعریف کے بعد درج ذیل کوڈ شامل کریں: ```python server_command_topic = id + '/commands' ``` `server_command_topic` وہ MQTT ٹاپک ہے جسے ڈیوائس LED کمانڈز وصول کرنے کے لیے سبسکرائب کرے گا۔ 1. مین لوپ کے بالکل اوپر، `mqtt_client.loop_start()` لائن کے بعد درج ذیل کوڈ شامل کریں: ```python def handle_command(client, userdata, message): payload = json.loads(message.payload.decode()) print("Message received:", payload) if payload['led_on']: led.on() else: led.off() mqtt_client.subscribe(server_command_topic) mqtt_client.on_message = handle_command ``` یہ کوڈ ایک فنکشن، `handle_command` کو ڈیفائن کرتا ہے جو ایک پیغام کو JSON ڈاکیومنٹ کے طور پر پڑھتا ہے اور `led_on` پراپرٹی کی ویلیو تلاش کرتا ہے۔ اگر یہ `True` پر سیٹ ہو تو LED آن ہو جائے گا، ورنہ یہ آف ہو جائے گا۔ MQTT کلائنٹ اس ٹاپک کو سبسکرائب کرتا ہے جس پر سرور پیغامات بھیجے گا اور `handle_command` فنکشن کو سیٹ کرتا ہے تاکہ جب کوئی پیغام موصول ہو تو اسے کال کیا جائے۔ > 💁 `on_message` ہینڈلر ان تمام ٹاپکس کے لیے کال کیا جاتا ہے جنہیں سبسکرائب کیا گیا ہے۔ اگر آپ بعد میں ایسا کوڈ لکھیں جو متعدد ٹاپکس کو سننے کے لیے ہو، تو آپ اس ٹاپک کو حاصل کر سکتے ہیں جس پر پیغام بھیجا گیا تھا، `message` آبجیکٹ سے جو ہینڈلر فنکشن کو پاس کیا جاتا ہے۔ 1. کوڈ کو اسی طرح چلائیں جیسے آپ نے اسائنمنٹ کے پچھلے حصے سے کوڈ چلایا تھا۔ اگر آپ ورچوئل IoT ڈیوائس استعمال کر رہے ہیں، تو یقینی بنائیں کہ CounterFit ایپ چل رہی ہے اور لائٹ سینسر اور LED درست پنز پر بنائے گئے ہیں۔ 1. اپنے فزیکل یا ورچوئل ڈیوائس کے ذریعے ڈیٹیکٹ کیے گئے لائٹ لیولز کو ایڈجسٹ کریں۔ موصول ہونے والے پیغامات اور بھیجے گئے کمانڈز ٹرمینل پر لکھے جائیں گے۔ لائٹ لیول کے مطابق LED بھی آن اور آف ہو جائے گا۔ > 💁 آپ یہ کوڈ [code-commands/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/virtual-device) فولڈر یا [code-commands/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/pi) فولڈر میں تلاش کر سکتے ہیں۔ 😀 آپ نے کامیابی سے اپنے ڈیوائس کو MQTT بروکر سے کمانڈز پر ردعمل دینے کے لیے کوڈ کر لیا ہے۔ --- **ڈسکلیمر**: یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔