فهرست مطالب:

خلاء XiaoMi + دکمه آمازون = تمیز کردن خط: 5 مرحله (همراه با تصاویر)
خلاء XiaoMi + دکمه آمازون = تمیز کردن خط: 5 مرحله (همراه با تصاویر)

تصویری: خلاء XiaoMi + دکمه آمازون = تمیز کردن خط: 5 مرحله (همراه با تصاویر)

تصویری: خلاء XiaoMi + دکمه آمازون = تمیز کردن خط: 5 مرحله (همراه با تصاویر)
تصویری: گوز زدن پریانکا چوپرا هنرپیشه بالیوود در یکی از برنامه های لایف تلویزیونی |C&C 2024, جولای
Anonim
خلاء XiaoMi + دکمه آمازون = تمیز کردن خط
خلاء XiaoMi + دکمه آمازون = تمیز کردن خط

این دستورالعمل نحوه استفاده از دکمه های یدک آمازون برای کنترل XiaoMi Vacuum را توضیح می دهد.

من یک سری دکمه های آمازون را از زمانی که آنها 1 دلار بودند نصب کردم و از آنها استفاده نکردم. اما با دریافت ربات خلاء جدید ، تصمیم گرفتم که استفاده از این دکمه ها به عنوان کنترل کننده خلا بسیار راحت باشد.

دکمه Ziploc را فشار دهید تا اتاق خواب را جارو کند.

دکمه Glad را فشار دهید تا اتاق نشیمن جاروبرقی شود.

مطبوعات فیجی.. خوب شما این ایده را دارید.

در این پروژه هک های زیادی از اینترنت گنجانده شده است. من واقعاً از کارهایی که بسیاری از مردم انجام داده اند قدردانی می کنم و فکر می کنم باید بر اساس تحقیقات آنها ، موارد کوچک خود را به اشتراک بگذارم.

سلب مسئولیت: تمام مراحل زیر را با مسئولیت خود انجام می دهید! اگر مراحل را به دقت انجام دهید ، احتمال اینکه به چیزی آسیب برسانید بسیار کم است. اما اتفاقی نمی افتد! و من هیچ مسئولیتی در قبال آن ندارم. BTW همه مراحل را می توان معکوس کرد بنابراین به طور بالقوه نقض ضمانت وجود ندارد. اما البته - YMMV

اصل اساسی این است که ما دکمه dash را روی روتر فشار می دهیم و به جای خرید موارد از آمازون ، webhook را به Vacuum ارسال می کنیم.

آنچه شما نیاز دارید:

  • روتر با سیستم عامل سفارشی که می تواند DHCP را کنترل کند ، اسکریپت ها را اجرا کرده و درخواست های get | post را برآورده کند. Mikrotik ، DD-WRT ، OpenWRT ، گوجه فرنگی و غیره..
  • خلاء XiaoMi. v1 یا v2
  • دکمه های Dash Dash

به طور خاص آنچه من استفاده کردم:

  • میکروتیک
  • XiaoMi v2 خلاء Roborock S50
  • تعدادی دکمه آمازون Dash

در اینجا روش است

  1. خلاء را ریشه کن می کنیم
  2. نصب و پیکربندی بسته های ضروری تحت root در خلاء
  3. دکمه آمازون داش را تنظیم کنید
  4. روتر را برای گرفتن درخواست دکمه و کنترل خلاء تنظیم کنید

نکته: در واقع برای کنترل خلاء لازم نیست آن را ریشه کن کنید. اگر سرور دیگری در شبکه (یا هرجای دیگر) دارید که می تواند پایتون یا php را اجرا کند ، می توانید وب هاوک ها را به آنها هدایت کنید. اما من نمی کنم. و من می خواستم آن را مرتب و فشرده روی خود خلاء نگه دارم. بنابراین اگر از رویکرد من خوشتان نمی آید ، فرض می کنم که می توانید نحوه تنظیم سرور مرد میانی خود را از این خواندن بفهمید. فقط مستقیم به نقطه 2 بروید.

خوب اینجا میریم…

مرحله 1: Token and Root Vacuum را بدست آورید

خلاء Token و Root را بدست آورید
خلاء Token و Root را بدست آورید
خلاء Token و Root را بدست آورید
خلاء Token و Root را بدست آورید
خلاء Token و Root را بدست آورید
خلاء Token و Root را بدست آورید
خلاء Token و Root را بدست آورید
خلاء Token و Root را بدست آورید

تمام نرم افزارها ، نرم افزارهای فایمور و دستورالعمل روت از آدرس زیر تهیه شده است: https://4pda.ru/forum/index.php؟ showtopic = 881982

اگر سیستم عامل دیگری غیر از ویندوز و تلفن دیگری غیر از Android دارید (می توانید از virtual با nox استفاده کنید) لطفاً پیوند بالا را دنبال کنید (از Google Translate استفاده کنید) و دستورالعمل ها را بخوانید ، در غیر اینصورت دفترچه راهنما را در اینجا دنبال کنید.

برای روت کردن ، باید آدرس IP و توکن را از خلاء شما بدست آوریم.

بازکردن root.7z.

لطفاً Mihome را از Vevs روی Android خود نصب کنید. می توانید از بایگانی استفاده کنید یا اگر این دستورالعمل مورخ است ، آخرین نسخه را می توانید از وب سایت وی (https://www.kapiba.ru/2017/11/mi-home.html) یا Google Drive او (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)

به MiHome خود وارد شوید. شما باید China Mainland را در حساب خود تنظیم کنید و Vacuum را به آن اضافه کنید).

روی نماد خلاء تنظیمات (سه نقطه در بالا سمت راست) تنظیمات عمومی اطلاعات شبکه ضربه بزنید

آدرس ip و توکن را در win-mirobo/win-mirobo.ini پر کنید

غیرفعال کردن فایروال در ویندوز win-mirobo.bat را اجرا کرده و سیستم عامل را فلش کنید.

!!!!!!!!! V1 برای v1 Vacuum و V2 برای v2 Vacuum (Roborock S50) است !!!!!!! اگر اشتباه FW را نشان دادید - به پیوند 4pda بروید (ابتدا در این مرحله) و نحوه بازیابی را بخوانید.

راه اندازی مجدد Arter Vacuum - شما با موفقیت خلاء خود را ریشه کن کرده اید و اکنون از طریق ssh به آن دسترسی دارید!

SSH (با بتونه) با پاک کننده/پاک کننده. رمز عبور خود را با passwd تغییر دهید

مرحله 2: بسته های ضروری زیر روت را در Vacuum نصب و پیکربندی کنید

فرضیه

به جای webhooks ، MiVacuum از پروتکل miio مانند هر دستگاه XiaoMi IoT استفاده می کند. بنابراین ما باید آن را یاد بگیریم تا بتوانیم وب هاک ها را درک کنیم. ما به یک مرد وسط نیاز داریم که بتواند webhook را بگیرد و آن را به پروتکل miio به دستگاه ترجمه کند. کتابخانه پایتون (https://github.com/rytilahti/python-miio) وجود دارد اما نمی توانیم از آن در خلا استفاده کنیم زیرا فضای کافی برای پایتون 3.5+ در خلاء وجود ندارد.

اما خوشبختانه یک کتابخانه php-miio (https://github.com/skysilver-lab/php-miio) وجود دارد که نسبتاً بسیار سبک است و این همان چیزی است که ما از آن استفاده خواهیم کرد (btw در win-mirobo بالا نیز استفاده می شود) کسی که webhook را می گیرد webhook daemon (https://github.com/adnanh/webhook) است که اسکریپت php را بر روی webhook ورودی اجرا می کند.

SSH به خلاء شما (با بتونه):

#زیر ریشه انجام دهید. بله می دانم امن نیست..whatevs.sudo su #در اینجا همه نیازها را نصب می کنیم apt-get install -y wget php5-cli nano #همه چیز دیگر به /opt cd /opt می رود

#php-miio را بارگیری کنید

#جدیدترین ها را در github بررسی کنید. خطوط زیر را مطابق آخرین wget https://github.com/skysilver-lab/php-miio/archive/v.0.2.6.tar.gz tar -xzvf v.0.2.6.tar.gz mv php- miio-v.0.2.6 php-miio rm -f v.0.2.6.tar.gz

#دانلود demhooks webhooks

#جدیدترین ها را در github بررسی کنید. خط صحیح زیر طبق آخرین wget https://github.com/adnanh/webhook/releases/download/2.6.8/webhook-linux-arm.tar.gz tar -xzvf webhook-linux-arm.tar.gz mv webhook-linux-arm webhook rm -f webhook-linux-arm.tar.gz

#ایجاد تنظیمات برای webhook

nano /opt/webhook/hooks.json #محتوای قلاب. json را در اینجا وارد کنید. روی بتونه راست کلیک کنید. #Ctr+X ذخیره Y.

#ایجاد اسکریپت برای تماس با php-miio

nano /opt/webhook/mirobo.sh #مطالب mirobo.sh را در اینجا وارد کنید. روی بتونه راست کلیک کنید. # Ctr +X Save Y. # chmod +x /opt/webhook/mirobo.sh را اجرا کنید

#ایجاد اسکریپت خودکار راه اندازی و پیکربندی ها را تمدید کنید

echo "/opt/webhook/webhook -hooks /opt/webhook/hooks.json" >> /etc/init.d/webhook.sh chmod ugo+x /etc/init.d/webhook.sh update -rc.d webhook.sh به طور پیش فرض

#سیستم را دوباره راه اندازی کنید

راه اندازی مجدد

پس از راه اندازی مجدد ، تنظیمات خود را در مرورگر آزمایش کنید:

192.168.your.ip: 9000/hooks/mirobo؟ method = find_me

روش - فرمان

پارام - پارامترها

همه روش ها (دستورات) و پارامترها را می توانید در اینجا پیدا کنید:

github.com/marcelrv/XiaomiRobotVacuumProtocol

محتوای hooks.json

token-here-token خود را از خلاء تغییر دهید.

لیست سفید IP را برای شبکه محلی خود تصحیح کنید یا اگر قلاب های خود را از جایی دیگر اجرا می کنید (ناامن) آن را به طور کامل حذف کنید.

[{"id": "mirobo" ، "execute-command": "/opt/webhook/mirobo.sh" ، "command-working-directory": "/opt/webhook" ، "respond-message": "در حال اجرا mirobo script "،" include-command-output-in-respond ": false،" pass-environment-to-command ": [{" source ":" string "،" envname ":" token "،" name ": "your-token-here"}]، "pass-argumentments-to-command": [{"source": "url"، "name": "method"}، {"source": "url"، "name ":" params "}]،" trigger-rule ": {" match ": {" type ":" ip-whitelist "،" ip-range ":" 192.168.1.0/24 "}}}]

محتوای فایل mirobo.sh فقط کپی پیست کنید. فقط دو خط (نه 3) وجود دارد.

#!/bin/bashphp /opt/php-miio/miio-cli.php --ip '127.0.0.1' --bindip '127.0.0.1'-$ $ token --sendcmd '{"id":' $ RANDOM '، "method": "' $ 1 '"، "params": [' $ 2 ']}'

مرحله 3: دکمه های Dash Dash را تنظیم کنید

برنامه آمازون خود را باز کنید. به Dash Devices بروید. طبق معمول دکمه خط تیره جدید اضافه کنید. در تبلیغات برای انتخاب محصول انجام ندهید. برنامه را ببندید. شما انجام دادید.

مرحله 4: تنظیم روتر برای گرفتن درخواست دکمه و کنترل MiVacuum

راه اندازی روتر برای گرفتن درخواست دکمه و کنترل MiVacuum
راه اندازی روتر برای گرفتن درخواست دکمه و کنترل MiVacuum
راه اندازی روتر برای گرفتن درخواست دکمه و کنترل MiVacuum
راه اندازی روتر برای گرفتن درخواست دکمه و کنترل MiVacuum
راه اندازی روتر برای گرفتن درخواست دکمه و کنترل MiVacuum
راه اندازی روتر برای گرفتن درخواست دکمه و کنترل MiVacuum

این به شرح زیر عمل می کند.

وقتی دکمه فشار داده می شود با شبکه شما ارتباط برقرار می کند و از سرور dhcp می خواهد آدرس آن را اختصاص دهد. ما باید آن درخواست را بگیریم و یک webhook را در خلا انجام دهیم. به عنوان یک اقدام امنیتی اضافی ، ما اتصال به آمازون را مسدود می کنیم تا آمازون نداند که ما حتی دکمه را فشار داده ایم و توانایی فشار دادن به روز رسانی سیستم عامل یا موارد دیگر را ندارد.

من بیشتر از WinBox استفاده می کنم ، اما بعضی اوقات ترمینال ساده تر است.

#ایجاد قانون سقوط فایروال با لیست آدرس برای مسدود کردن

/ip firewall filter add chain = forward src-address-list = blockdash action = drop comment = "Dash Amazon Dash"

سپس باید برای هر دکمه یک قانون اجاره dhcp ایجاد کنیم. انجام این کار در winbox بسیار آسان است.

سرور DHCP - اجاره

با فشار دکمه اجاره نامه جدید ظاهر می شود. ما روی آن کلیک می کنیم و لیست آدرس ها را روی "blockdash" قرار می دهیم ، مدت زمان اجاره را روی 5 ثانیه تنظیم می کنیم (تا قبل از فشار بعدی اجاره منقضی شود) و آدرس mac را برای بعد کپی می کنیم.

اگر این اجاره را در winbox اضافه کرده اید ، فقط برای مرجع است فقط آن را رد کنید.

/ip dhcp-server lease افزودن آدرس-لیست = blockdash mac-address = XXXXXXXXXX آدرس = 192.168.x.x مدت زمان اجاره = 5 ثانیه

اکنون باید به اسکریپت اجاره اشاره کنیم.

برگه DHCP را باز کرده و 'myLeaseScript' را به عنوان اسکریپت اجاره به سرور dhcp خود اضافه کنید.

اکنون System - Scripts را باز کرده و "myLeaseScript" را با مجوزهای خواندن و آزمایش اضافه کنید.

محتوای myLeaseScript:

#اسکریپت دوبار در اجاره (1) و در زمان انتشار (0) فراخوانی می شود: اگر ($ leaseBound = 1) info = { /log ("در حال اجرا myLeaseScript. کسی دکمه Dash را فشار داده است؟")

#آرایه ای از همه دکمه ها و آدرس اینترنتی شما برای تماس

: Local buttons {"XX: XX: XX: XX: XX: XX" = "https://192.168.your.ip: 9000/hooks/mirobo؟ method = app_zoned_clean¶ms = [19300 ، 21000 ، 21200 ، 23800 ، 1] "؛ "YY: YY: YY: YY: YY: YY" = "https://192.168.your.ip: 9000/hooks/mirobo؟ method = app_zoned_clean¶ms = [24000 ، 21500 ، 26100 ، 22900 ، 1]" ؛ "ZZ: ZZ: ZZ: ZZ: ZZ: ZZ" = "https://192.168.your.ip: 9000/hooks/mirobo؟ method = app_zoned_clean¶ms = [21400 ، 24200 ، 22700 ، 26200 ، 1] ، [24000 ، 21500 ، 26100 ، 22900 ، 1] "؛ "AA: AA: AA: AA: AA: AA" = "https://whateveryouwant.com:9000/other؟argument=and_values"؛ }؛

دکمه فشرده و url acll را بررسی کنید

: foreach mac، url in = $ buttons do = {: if ($ mac = $ leaseActMAC) do = { /log info ("Pressed". $ mac. "button") /tool fetch keep-result = no mode = https http-method = post url = $ url}}}

حالا شما با فشار دکمه آمازون تمیز کردن خود را به صورت خودکار انجام داده اید. خوش بگذره

لطفاً توجه کنید: ارسال وب کوک ها بدون رمزگذاری بسیار ناامن است. Webhook می تواند از رمزگذاری استفاده کند ، اما با این حال من سعی کردم آن را کار کنم هرگز اتفاق نیفتاد. از آنجا که من فقط در شبکه محلی خود از آن استفاده می کنم ، خیلی نگران نیستم. اما اگر می خواهید از اینترنت برای اتصال به IFTTT با ادغام Google Assistant استفاده کنید ، لطفاً به این واقعیت توجه کنید! من مطمئن نیستم که علت شکست رمزنگاری در مورد من چه بود. گواهینامه های خود امضا شده توسط letsencrypt با آنها ضرب و شتم شده است. شبکه بسیار پیچیده با دسته ای از NAT ها که من با ipv6 ضرب کردم. اما به نظر من webhooks با گواهینامه ها بسیار بد کار می کند و در واقع بسیار بد مستند است. و به نظر می رسد IFTTT با ipv6 کار نمی کند. تمام تلاشم را کردم اما نشد. شاید شانس بهتری داشته باشید پست گذاشتن را فراموش نکنید.

upd: من ایده ای دارم که چگونه می توان آن را بدون رمزگذاری ایمن تر کرد. شما برای هر عملی که می خواهید انجام دهید چند اسکریپت ایجاد می کنید. شما mirobo.sh را تغییر می دهید تا اسکریپت را با پارامترهای داده شده ارسال کنید ، به عنوان مثال در webhook ارسال می شود. اتاق خواب_تمیز خودشه. بیشترین کسی که از قلاب استفاده می کند این است که اتاق خواب شما را بارها و بارها تمیز کند …)) پس از انجام این کار ، من دستورالعمل های آموزشی را به روز می کنم

مرحله 5: نحوه ترسیم نقشه خود

چگونه نقشه خود را ترسیم کنیم
چگونه نقشه خود را ترسیم کنیم

هنگامی که نقشه کامل خود را در برنامه MiHome خود آماده کردید ، خلاء خود را از طریق دستور 'app_goto' به مکان خاصی ارسال کنید.

یک تصویر از نقشه کامل با موقعیت ارسال شده و پایه تهیه کنید. نقطه اصلی پس از راه اندازی مجدد خلاء موقعیت [25500 ، 25500] این موقعیت شارژ پایه نیست ، اما اگر خلاء را در پایه شارژ مجدد راه اندازی کنید ، موقعیت پایه شارژ 25500 ، 25500 خواهد بود. بنابراین از موقعیت شناخته شده ارسال می شود و موقعیت اصلی شما می توانید نقشه خود را در هر برنامه CAD با اسکرین شاتی که گرفته اید ترسیم کنید. من از QCAD رایگان استفاده کردم.

پس از اتصال تصویر به شبکه ، از خطی در سراسر اتاق برای اندازه گیری نقطه شروع و پایان منطقه استفاده می کنم.

توصیه شده: