Mundarija:

XiaoMi vakuum + Amazon tugmasi = Dash tozalash: 5 qadam (rasmlar bilan)
XiaoMi vakuum + Amazon tugmasi = Dash tozalash: 5 qadam (rasmlar bilan)

Video: XiaoMi vakuum + Amazon tugmasi = Dash tozalash: 5 qadam (rasmlar bilan)

Video: XiaoMi vakuum + Amazon tugmasi = Dash tozalash: 5 qadam (rasmlar bilan)
Video: ASPHALT 9 LEGENDS CRAZY GIRL DRIVER 2024, Noyabr
Anonim
XiaoMi Vakuum + Amazon tugmasi = Dash tozalash
XiaoMi Vakuum + Amazon tugmasi = Dash tozalash

Ushbu yo'riqnoma XiaoMi vakuumini boshqarish uchun zaxira Amazon Dash tugmalaridan qanday foydalanishni tushuntiradi.

Menda 1 dollar bo'lgan paytlarda Amazon tugmachalari bor edi va men ulardan hech qanday foyda ko'rmadim. Ammo yangi robotli vakuumni qabul qilib, men bu tugmalarni vakuumni boshqarish vositasi sifatida ishlatish juda qulay deb qaror qildim.

Ziploc tugmachasini bosing va u yotoqxonani tozalaydi.

"Glad" tugmachasini bosing, shunda yashash xonasi tozalanadi.

Fidjini bosing.. sizda bu fikr bor.

Bu loyihada Internetda ko'plab buzilishlar mavjud. Men juda ko'p odamlarning ishini juda qadrlayman va men o'z tadqiqotimga asoslanib, o'z fikrlarim bilan bo'lishishim kerak deb o'ylayman.

Ogohlantirishlar: Siz quyida keltirilgan barcha qadamlarni o'zingizning xavfingiz ostida qilasiz! Agar siz qadamlarni diqqat bilan bajarsangiz, biror narsaga zarar etkazish ehtimoli juda kam. Lekin bu sodir bo'lmaydi! Va men bunga hech qanday javobgarlikni olmayman. BTW barcha qadamlarini qaytarish mumkin, shuning uchun kafolat buzilishi mumkin emas. Lekin, albatta - YMMV

Asosiy printsip shundaki, biz yo'riqnoma ustidagi tugmachani bosamiz va Amazondan mahsulot sotib olish o'rniga veb -kukni Vakuumga yuboramiz.

Sizga nima kerak bo'ladi:

  • DHCP -ni boshqaradigan, skriptlarni ishga tushiradigan va get | post so'rovlarini bajaradigan maxsus dasturiy ta'minoti bo'lgan yo'riqnoma. Mikrotik, DD-WRT, OpenWRT, Pomidor va boshqalar.
  • XiaoMi vakuum. v1 yoki v2
  • Amazon Dash tugmalari

Xususan, men nimani ishlatganman:

  • Mikrotik
  • XiaoMi v2 vakuumli Roborock S50
  • Amazon Dash tugmalar to'plami

Mana, protsedura

  1. Biz vakuumni ildiz otamiz
  2. Vakuumda ildiz ostida kerakli paketlarni o'rnating va sozlang
  3. Amazon Dash tugmachasini o'rnating
  4. Tugma so'rovini qabul qilish va vakuumni boshqarish uchun marshrutizatorni o'rnating

Eslatma: Aslida, uni boshqarish uchun vakuumni yo'q qilish shart emas. Agar sizning tarmog'ingizda (yoki qayerda bo'lsa ham) python yoki php -ni ishlata oladigan boshqa server bo'lsa, ularga veb -kuklarni yo'naltirishingiz mumkin. Lekin men unday emasman. Va men uni toza va ixcham saqlashni xohlardim. Agar siz mening yondashuvimni yoqtirmasangiz, menimcha, siz o'qishdan o'zingizning o'rta serveringizni qanday o'rnatishni bilib olasiz. Faqat 2 -bandga o'ting.

Xo'sh, ketyapmiz …

1 -qadam: Token va ildiz vakuumini oling

Token va ildiz vakuumini oling
Token va ildiz vakuumini oling
Token va ildiz vakuumini oling
Token va ildiz vakuumini oling
Token va ildiz vakuumini oling
Token va ildiz vakuumini oling
Token va ildiz vakuumini oling
Token va ildiz vakuumini oling

Barcha dasturiy ta'minot, dasturiy ta'minot va payini qirqish bo'yicha ko'rsatmalarni https://4pda.ru/forum/index.php? Showtopic = 881982 dan olish mumkin.

Agar sizda Windows -dan boshqa OS va Android -dan boshqa telefon bo'lsa (siz nox bilan virtualdan foydalanishingiz mumkin), iltimos yuqoridagi havolaga o'ting (Google Tarjimonidan foydalaning) va ko'rsatmalarni o'qing, aks holda bu erda qo'llanmani bajaring.

Ildizni o'chirish uchun biz vakuumdan ip manzilini va tokenni olishimiz kerak.

7z ildizini oching.

Iltimos, Android -ga Vevs -dan Mihome -ni o'rnating. Siz arxivdan foydalanishingiz mumkin yoki agar bu ko'rsatma sanasi bo'lsa, uning eng so'nggi versiyasini uning veb-saytidan (https://www.kapiba.ru/2017/11/mi-home.html) yoki uning Google Diskidan (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)

MiHome -ga kiring. Hisobingizga China Mainland -ni o'rnatishingiz va unga Vakuum qo'shishingiz kerak).

Vakuum belgisi sozlamalarini bosing (yuqori o'ngdagi uchta nuqta) Umumiy sozlamalar Tarmoq ma'lumoti

Win-mirobo/win-mirobo.ini-da ip-manzil va tokenni to'ldiring

Derazalarda xavfsizlik devorini o'chiring. Win-mirobo.bat-ni ishga tushiring va dasturiy ta'minotni yoqing.

!!!!!!!!! V1 - V1 Vakuum uchun, V2 - V2 Vakuum uchun (Roborock S50) !!!!!!! Agar siz noto'g'ri FWni o'chirgan bo'lsangiz - 4pda havolasiga o'ting (bu qadamda birinchi) va qanday tiklanishini o'qing.

Arter Vacuum qayta ishga tushadi - siz vakuumni muvaffaqiyatli ildiz otdingiz va endi unga ssh orqali kirishingiz mumkin!

Tozalashtiruvchi/tozalovchi bilan unga SSH (Putty bilan). Parolni passwd yordamida o'zgartiring

2 -qadam: Vakuumda ildiz ostida kerakli paketlarni o'rnating va sozlang

Bino

MiVacuum veb -kancalar o'rniga, har bir XiaoMi IoT qurilmasi kabi, miio protokolidan foydalanadi. Shunday qilib, biz veb -kancalarni tushunish uchun uni o'rganishimiz kerak. Bizga veb -krujkani ushlab, uni miio protokoliga qurilmaga tarjima qila oladigan o'rta odam kerak. Python kutubxonasi mavjud (https://github.com/rytilahti/python-miio), lekin biz uni vakuumda ishlata olmaymiz, chunki Vakuumda Python 3.5+ uchun joy yetarli emas.

Yaxshiyamki, php-miio kutubxonasi bor (https://github.com/skysilver-lab/php-miio), bu nisbatan yengil va biz bundan foydalanamiz (btw yuqoridagi win-miroboda ham ishlatiladi)). Veb -kukni ushlaydigan kishi webhook -daemon (https://github.com/adnanh/webhook) bo'lib, u kiruvchi veb -krujkada php uchun skriptni boshqaradi.

Vakuumga SSH (Putty bilan):

#Ildiz ostida qiling. Ha, bilaman, bu xavfsiz emas..whatevs.sudo su #Bu erda biz barcha kerakli narsalarni o'rnatamiz apt-get install -y wget php5-cli nano #Boshqa hamma narsa /opt cd /opt bo'ladi

#Php-miio-ni yuklab oling

#Github -ning so'nggi yangiliklarini tekshiring. Oxirgi wget bo'yicha quyida to'g'ri chiziqlar 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

#Webhooks dasturini yuklab oling

#Github -ning so'nggi yangiliklarini tekshiring. Oxirgi wget bo'yicha pastdagi to'g'ri chiziq 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 uchun sozlamalar yarating

nano /opt/webhook/hooks.json #hooks.json tarkibini shu yerga kiriting. Mastikada sichqonchaning o'ng tugmachasini bosing. #Ctr+X Y ni saqlang.

#Php-miio-ga qo'ng'iroq qilish uchun skript yarating

nano /opt/webhook/mirobo.sh #Mirobo.sh tarkibini bu erga kiriting. Mastikada sichqonchaning o'ng tugmachasini bosing. # Ctr +X Y ni saqlang. # Chmod +x /opt/webhook/mirobo.sh bajariladigan faylini yarating.

#Avtomatik ishga tushirish skriptini yarating va konfiguratsiyalarni yangilang

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 standartlari

#Tizimni qayta yoqing

qayta yuklash

Qayta ishga tushirgandan so'ng, sozlamalarni brauzerda sinab ko'ring:

192.168.your.ip: 9000/ilgaklar/mirobo? usuli = find_me

usul - buyruq

parametrlar - parametrlar

Bu erda topishingiz mumkin bo'lgan barcha usullar (buyruqlar) va parametrlar:

github.com/marcelrv/XiaomiRobotVacuumProtocol

Hooks.json mazmuni

Vakuumdan tokeningizni bu erdagi token-ga o'zgartiring.

Mahalliy tarmog'ingiz uchun IP-oq ro'yxatni to'g'rilang yoki agar siz ilgaklaringizni boshqa joydan (xavfli) ishlatsangiz, butunlay olib tashlang.

[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/opt/webhook", "answer-message": "Bajarilmoqda mirobo skript "," o'z ichiga-buyruq-chiqish-javob ": noto'g'ri," o'tish-muhit-buyruq ": [{" manba ":" satr "," envname ":" token "," ism ": "your-token-here"}], "buyruqdan-o'tish": [{"source": "url", "name": "method"}, {"source": "url", "name" ":" params "}]," trigger-rule ": {" match ": {" type ":" ip-whitelist "," ip-range ":" 192.168.1.0/24 "}}}}]

mirobo.sh fayl tarkibi. Faqat nusxa ko'chiring. Faqat ikkita qator bor (3 emas).

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

3 -qadam: Amazon Dash tugmalarini o'rnating

Amazon ilovasini oching. Dash qurilmalariga o'ting. Odatdagidek yangi tugmachani qo'shing. Taqdimotda mahsulot tanlamang. Ilovani yoping. Siz tugadingiz.

4 -qadam: Routerni sozlash tugmachasini so'rash va MiVacuum -ni boshqarish

Tugma so'rovini olish va MiVacuumni boshqarish uchun yo'riqnoma o'rnating
Tugma so'rovini olish va MiVacuumni boshqarish uchun yo'riqnoma o'rnating
Tugma so'rovini olish va MiVacuumni boshqarish uchun yo'riqnoma o'rnating
Tugma so'rovini olish va MiVacuumni boshqarish uchun yo'riqnoma o'rnating
Tugma so'rovini olish va MiVacuum -ni boshqarish uchun yo'riqnoma o'rnating
Tugma so'rovini olish va MiVacuum -ni boshqarish uchun yo'riqnoma o'rnating

Bu quyidagicha ishlaydi.

Tugma bosilganda, u sizning tarmog'ingizga ulanadi va dhcp serveridan unga manzil tayinlashni so'raydi. Biz bu so'rovni qabul qilib, veb -kukni vakuumga o'tkazishimiz kerak. Qo'shimcha xavfsizlik chorasi sifatida biz Amazon bilan aloqani to'sib qo'yamiz, shunda Amazon bizning tugmani bosganimizni bilmaydi va dasturiy ta'minotni yangilash yoki boshqa biror narsani bosish qobiliyatiga ega emas.

Ko'pincha men WinBox -dan foydalanaman, lekin ba'zida terminal osonroq.

#Bloklash uchun manzillar ro'yxati bilan xavfsizlik devorini tushirish qoidasini yarating

/ip xavfsizlik devori filtri qo'shing zanjir = oldinga src-address-list = blockdash harakati = sharhni tushirish = "Amazon Dash-ni tushirish"

Keyin biz har bir tugma uchun dhcp lizing qoidasini yaratishimiz kerak. Winbox -da buni qilish juda oson.

DHCP serveri - ijaraga olish

Biz tugmani bosganimizda, yangi ijara paydo bo'ladi. Biz uni statik sifatida bosamiz va manzillar ro'yxatini 'blockdash' qilib belgilaymiz, ijara vaqtini 5 soniya qilib belgilaymiz (ijara keyingi bosishdan oldin tugaydi) va keyinroq mak manzilini nusxalash.

#Bu buyruq faqat ma'lumot uchun, agar siz winbox -ga ijara qo'shgan bo'lsangiz, uni o'tkazib yuboring.

/ip dhcp-server ijarasi manzillar ro'yxatini qo'shish = blockdash mac-manzil = XXXXXXXXXX manzil = 192.168.x.x ijara vaqti = 5s

Endi biz skriptni ijaraga berishni ko'rsatishimiz kerak.

DHCP yorlig'ini oching va "myLeaseScript" ni dhcp serveringizda ijara skriptiga qo'shing.

Endi tizim - skriptlarni oching va o'qish, test ruxsatnomalari bilan "myLeaseScript" ni qo'shing.

MyLeaseScript mazmuni:

#Script ijaraga (1) va chiqarilishida (0) ikki marta chaqiriladi: if ($ leaseBound = 1) do = { /log info ("myLeaseScript ishlayapti. Kimdir chiziq tugmachasini bosganmi?")

#Qo'ng'iroq qilish uchun barcha tugmalar va urllar qatori

: mahalliy tugmalar {"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/ilgaklar/mirobo? Usuli = app_zoned_clean¶ms = [24000, 21500, 26100, 22900, 1]"; "ZZ: ZZ: ZZ: ZZ: ZZ: ZZ" = "https://192.168.your.ip: 9000/ilgaklar/mirobo? Usuli = 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"; };

#Bosilgan tugmachani va url -ni tekshiring

: foreach mac, url in = $ tugmalari do = {: if ($ mac = $ leaseActMAC) do = { /log ma'lumoti ("Bosildi". $ mac. "tugmasi") /tool get keep-result = no mode = https http-method = post url = $ url}}}

Endi siz Amazon Dash tugmachasini bosib tozalashni avtomatlashtirdingiz. Maza qiling

E'tibor bering: veb -kuklarni shifrlanmagan holda yuborish juda xavfli. Webhook shifrlashdan foydalanishi mumkin, lekin men uni ishlashga harakat qildim, hech qachon bunday bo'lmagan. Men uni faqat mahalliy tarmog'imda ishlatganim uchun, men bundan xavotirlanmayman. Agar siz Internet orqali IFTTT -ni Google Assistant bilan birlashtirish uchun ishlatmoqchi bo'lsangiz, bunga e'tibor bering! Menimcha, kripto muvaffaqiyatsizligining sababi nima edi. Letsencrypt tomonidan berilgan o'zim imzolangan sertifikatlar. IPv6 bilan mag'lubiyatga uchragan ko'plab NAT -lar bilan murakkab tarmoq. Menimcha, webhooks sertifikatlar bilan juda yomon ishlaydi va aslida juda yomon hujjatlashtirilgan. IFTTT ipv6 bilan ishlamaydi. Men qo'limdan kelganicha harakat qildim, lekin muvaffaqiyatsiz bo'ldi. Ehtimol, sizga omad kulib boqadi. Xabar yozishni unutmang.

yangilash: Men uni qanday shifrlashsiz yanada xavfsizroq qilish haqida fikrim bor. Siz bajarmoqchi bo'lgan har bir harakat uchun bir nechta skriptlar yaratasiz. Siz webhook -da yuborilgan parametr uchun skriptni chaqirish uchun mirobo.sh -ni o'zgartirasiz. toza_xona. Bo'ldi shu. Kancadan foydalanadigan odam, yotoqxonangizni qayta -qayta tozalashdir …)) Men buni qilsam, men ko'rsatmalarni yangilayman

5 -qadam: Xaritangizni qanday chizish kerak

Xaritangizni qanday tuzish kerak
Xaritangizni qanday tuzish kerak

MiHome ilovasida to'liq xaritangiz tayyor bo'lgach, vakuumni "app_goto" buyrug'i orqali ma'lum joyga yuboring.

To'liq xaritaning skrinshotini joylashuvi va joylashuvi ko'rsatilgan holda yarating. Vakuum qayta ishga tushirilgandan so'ng asosiy nuqta - bu pozitsiya [25500, 25500] Bu zaryad bazasining o'rni emas, lekin agar siz zaryad bazasida vakuumni qayta ishga tushirsangiz, zaryad bazasining holati 25500, 25500 bo'ladi. va siz olgan skrinshot yordamida xaritangizni SAPR dasturining istalgan joyiga joylashtirishingiz mumkin. Men bepul QCADdan foydalanardim.

Rasmni tarmoqqa o'rnatgandan so'ng, men zonaning boshlanish va tugash nuqtasini o'lchash uchun xona bo'ylab chiziqdan foydalanaman.

Tavsiya: