Sadržaj:

XiaoMi vakuum + Amazon tipka = Čišćenje crtice: 5 koraka (sa slikama)
XiaoMi vakuum + Amazon tipka = Čišćenje crtice: 5 koraka (sa slikama)

Video: XiaoMi vakuum + Amazon tipka = Čišćenje crtice: 5 koraka (sa slikama)

Video: XiaoMi vakuum + Amazon tipka = Čišćenje crtice: 5 koraka (sa slikama)
Video: 🟡 POCO X5 PRO - САМЫЙ ДЕТАЛЬНЫЙ ОБЗОР и ТЕСТЫ 2024, Studeni
Anonim
XiaoMi usisavač + Amazon tipka = Čišćenje crtice
XiaoMi usisavač + Amazon tipka = Čišćenje crtice

Ovo uputstvo će objasniti kako koristiti svoje rezervne tipke Amazon Dash za upravljanje XiaoMi vakuumom.

Dobio sam hrpu Amazonovih gumba od vremena kad su koštali 1 USD i nisam im imao koristi. No, po primitku novog robotskog vakuuma odlučio sam da bi bilo vrlo prikladno koristiti ove tipke kao kontrolu usisavača.

Pritisnite gumb Ziploc i usisavat će spavaću sobu.

Pritisnite gumb Glad i usisavat će dnevnu sobu.

Pritisnite Fidži.. pa imate ideju.

U ovaj projekt uključeni su mnogi hakovi s interneta. Zaista cijenim posao koji su mnogi ljudi obavili i mislim da moram podijeliti svoju malu napravu na temelju njihovih istraživanja.

Odricanje od odgovornosti: Sve dolje navedene korake radite na vlastitu odgovornost! Ako pažljivo slijedite korake, vrlo je mala vjerojatnost da možete nešto oštetiti. Ali sh#t se dogodi! I ne preuzimam odgovornost za to. Međutim, svi se koraci mogu poništiti pa potencijalno nema kršenja jamstva. Ali naravno - YMMV

Osnovni princip je da uhvatimo pritisnutu tipku crtice na usmjerivaču i pošaljemo webhook u Vacuum umjesto da kupujemo stvari od Amazona.

Što će vam trebati:

  • Usmjerivač s prilagođenim firmware -om koji može kontrolirati DHCP, pokretati skripte i ispunjavati get | post upite. Mikrotik, DD-WRT, OpenWRT, rajčica itd.
  • XiaoMi vakuum. v1 ili v2
  • Amazon Dash gumbi

Konkretno, ono što sam koristio:

  • Mikrotik
  • XiaoMi v2 vakuumski Roborock S50
  • Hrpa Amazonovih crtica

Ovdje je postupak

  1. Korijemo vakuum
  2. Instalirajte i konfigurirajte potrebne pakete pod root -om u vakuumu
  3. Gumb za postavljanje Amazon Dash
  4. Postavite usmjerivač za hvatanje zahtjeva gumba i upravljanje vakuumom

Napomena: Zapravo ne morate iskorijeniti svoj vakuum da biste ga kontrolirali. Ako imate neki drugi poslužitelj na svom LAN -u (ili bilo gdje) koji može pokrenuti python ili php, možete mu usmjeriti webhooks. Ali nemam. Htio sam ga održavati urednim i kompaktnim na samom usisavaču. Dakle, ako vam se moj pristup ne sviđa, pretpostavljam da iz ovog čitanja možete shvatiti kako postaviti vlastiti posrednički poslužitelj. Samo prijeđite na točku 2.

Ok idemo…

Korak 1: Nabavite žeton i korijenski vakuum

Nabavite žeton i korijenski vakuum
Nabavite žeton i korijenski vakuum
Nabavite vakuum žetona i korijena
Nabavite vakuum žetona i korijena
Nabavite žeton i korijenski vakuum
Nabavite žeton i korijenski vakuum
Nabavite vakuum žetona i korijena
Nabavite vakuum žetona i korijena

Sav softver, fimware i upute za rootanje dobiveni su sa: https://4pda.ru/forum/index.php? Showtopic = 881982

Ako imate OS koji nije Windows i telefon osim Androida (možete koristiti virtualni s Nox -om), slijedite gornju vezu (koristite Google prevoditelj) i pročitajte upute, inače slijedite upute ovdje.

Kako bismo dobili root, moramo dobiti IP adresu i token iz vašeg vakuuma.

Raspakirajte root.7z.

Molimo instalirajte Mihome iz Vevsa na svoj Android. Možete upotrijebiti jednu iz Arhive ili ako je ovo uputstvo zastarjelo, najnoviju verziju možete pronaći na njegovoj web stranici (https://www.kapiba.ru/2017/11/mi-home.html) ili na njegovom Google disku (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)

Prijavite se na svoj MiHome. Morate na svom računu postaviti Kinesko kopno i dodati mu vakuum).

Dodirnite ikonu Vakuum Postavke (tri točke u gornjem desnom kutu) Opće postavke Podaci o mreži

Ispunite IP adresu i token u win-mirobo/win-mirobo.ini

Onemogućite vatrozid u prozorima. Pokrenite win-mirobo.bat i bljesnite firmver.

!!!!!!!!! V1 je za v1 Vacuum, a V2 za v2 Vacuum (Roborock S50) !!!!!!!

Arter Vacuum se ponovno pokreće - uspješno ste ukorijenili svoj usisavač i sada mu pristupate putem ssh -a!

SSH na njega (s kitom) s čistačem/sredstvom za čišćenje. Promijenite lozinku s passwd -om

Korak 2: Instalirajte i konfigurirajte potrebne pakete pod korijenom na vakuumu

Prostor

Umjesto web udica, MiVacuum koristi miio protokol kao i svi XiaoMi IoT uređaji. Stoga ga moramo naučiti da bismo razumjeli web -dojavnike. Potreban nam je srednji čovjek koji može uhvatiti webhook i prevesti ga u miio protokol na uređaj. Postoji knjižnica python (https://github.com/rytilahti/python-miio), ali ne možemo je koristiti u vakuumu jer nema dovoljno prostora za Python 3.5+ na Vakuumu.

No, na sreću postoji php-miio biblioteka (https://github.com/skysilver-lab/php-miio) koja je relativno lagana i to ćemo koristiti (btw se također koristi u win-mirobo gore). Onaj koji uhvati webhook je demon webhook -a (https://github.com/adnanh/webhook) koji pokreće skriptu za php na dolaznom webhooku.

SSH u vakuum (s kitom):

#Učinite pod korijenom. Da, znam da nije sigurno..whatevs.sudo su #Ovdje instaliramo sve potrebne apt-get install -y wget php5-cli nano #Sve ostalo ide na /opt cd /opt

#Preuzmite php-miio

#Provjerite najnovije na githubu. Ispravite donje retke prema najnovijem 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

#Preuzmi demona webhooksa

#Provjerite najnovije na githubu. Ispravna linija ispod prema najnovijem 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

#Stvorite postavke za webhook

nano /opt/webhook/hooks.json #Ovdje unesite hooks.json sadržaj. Desni klik u kit. #Ctr+X Spremi Y.

#Napravite skriptu za pozivanje php-miio

nano /opt/webhook/mirobo.sh #Ovdje unesite sadržaj mirobo.sh. Desni klik u kit. # Ctr +X Spremi Y. # Učini izvršnim chmod +x /opt/webhook/mirobo.sh

#Napravite skriptu za automatsko pokretanje i obnovite konfiguracije

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 zadane postavke

#Ponovno pokrenite sustav

ponovno podizanje sustava

Nakon ponovnog pokretanja isprobajte svoje postavke u pregledniku:

192.168.vaša.ip: 9000/hooks/mirobo? method = find_me

metoda - naredba

params - parametri

Sve metode (naredbe) i parametre možete pronaći ovdje:

github.com/marcelrv/XiaomiRobotVacuumProtocol

Sadržaj udica.json

Promijenite svoj token-ovdje u svoj žeton iz vakuuma.

Ispravite ip-whitelist za svoju lokalnu mrežu ili ga potpuno uklonite ako pokrećete udice s drugog mjesta (nesigurno).

[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/opt/webhook", "response-message": "Izvršavanje mirobo skripta "," include-command-output-in-response ": false," pass-environment-to-command ": [{" izvor ":" niz "," envname ":" token "," ime ": "your-token-here"}], "pass-arguments-to-command": [{"source": "url", "name": "method"}, {"source": "url", "name ":" params "}]," trigger-rule ": {" match ": {" type ":" ip-whitelist "," ip-range ":" 192.168.1.0/24 "}}}]

sadržaj datoteke mirobo.sh. Samo kopiraj-zalijepi. Postoje samo dvije linije (ne 3).

#!/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 ']}'

Korak 3: Postavljanje Amazon Dash gumba

Otvorite svoju aplikaciju Amazon. Idite na Dash Devices. Dodajte novi gumb crtice kao i obično. Na upit o odabiru proizvoda NE. Zatvorite aplikaciju. Ti si gotov.

Korak 4: Postavite usmjerivač za zahtijevanje gumba za hvatanje i kontrolirajte MiVacuum

Postavite usmjerivač za zahtijevanje gumba za hvatanje i kontrolirajte MiVacuum
Postavite usmjerivač za zahtijevanje gumba za hvatanje i kontrolirajte MiVacuum
Postavite usmjerivač za zahtijevanje gumba za hvatanje i kontrolirajte MiVacuum
Postavite usmjerivač za zahtijevanje gumba za hvatanje i kontrolirajte MiVacuum
Postavite usmjerivač za zahtijevanje gumba za hvatanje i kontrolirajte MiVacuum
Postavite usmjerivač za zahtijevanje gumba za hvatanje i kontrolirajte MiVacuum

Ovo funkcionira na sljedeći način.

Kad pritisnete gumb, povezuje se s vašom mrežom i traži od dhcp poslužitelja da mu dodijeli adresu. Moramo uhvatiti taj zahtjev i izvesti webhook do vakuuma. Kao dodatnu sigurnosnu mjeru blokirat ćemo vezu s Amazonom kako Amazon ne bi znao da smo čak pritisnuli gumb i nema mogućnost gurnuti ažuriranje firmvera ili nešto drugo.

Uglavnom koristim WinBox, ali ponekad je terminal jednostavno lakši.

#Stvorite pravilo ispuštanja vatrozida s popisom adresa za blokiranje

/ip vatrozidni filtar add chain = forward src-address-list = blockdash action = drop comment = "Drop Amazon Dash"

Zatim moramo stvoriti pravilo zakupa dhcp -a za svaki gumb. Vrlo jednostavno za napraviti u winboxu.

DHCP poslužitelj - zakupi

Ako pritisnemo gumb, pojavit će se novi zakup. Kliknemo ga kao statičan i postavimo popis adresa na 'blockdash', postavimo vrijeme najma na 5 sekundi (tako da zakup istekne prije sljedećeg pritiska) i kopiramo mac adresu za kasnije.

#Ova naredba služi samo za referencu ako ste dodali zakup u winbox samo je preskočite.

/ip dhcp-poslužitelj zakup dodaj adresarski popis = blockdash mac-adresa = XXXXXXXXXX adresa = 192.168.x.x vrijeme najma = 5 s

Sada moramo ukazati na scenarij najma.

Otvorite DHCP karticu i dodajte "myLeaseScript" kao skriptu zakupa na vašem dhcp poslužitelju.

Sada otvorite System - Scripts i dodajte 'myLeaseScript' s dopuštenjima za čitanje i testiranje.

Sadržaj myLeaseScript -a:

#Script se dva puta poziva pri najmu (1) i pri objavljivanju (0): if ($ leaseBound = 1) do = { /log info ("Pokretanje myLeaseScript. Netko je pritisnuo tipku crtice?")

#Polje svih vaših gumba i url za poziv

: lokalni gumbi {"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"; };

#Provjerite pritisnuto dugme i acll url

: foreach mac, url in = $ button do = {: if ($ mac = $ leaseActMAC) do = { /log info ("Pressed". $ mac. "button") /dohvaćanje alata keep-result = no mode = https http-method = url posta = $ url}}}

Sada ste automatizirali čišćenje pritiskom na Amazon Dash Button. Zabavi se

Molimo obratite pozornost: Vrlo je nesigurno slati webhooks nešifrirane. Webhook može koristiti enkripciju, no međutim pokušao sam to učiniti da se to jednostavno nije dogodilo. Budući da ga koristim samo u svojoj lokalnoj mreži, nisam previše zabrinut. No, ako ga želite koristiti putem interneta za povezivanje s IFTTT -om s integracijom Google pomoćnika, obratite pozornost na ovu činjenicu! Nisam siguran koji je bio razlog kvara kripto u mom slučaju. Potpisane potvrde koje sam pobijedio izdao je letsencrypt. Prekomplicirana mreža s hrpom NAT -ova koje sam pobijedio s ipv6. Ali čini mi se da webhooks radi jako loše s certifikatima, a zapravo vrlo loše dokumentirano. Izgleda da IFTTT ne radi s ipv6. Pokušao sam sve što sam mogao, ali nisam uspio. Možda ćete imati više sreće. Ne zaboravite objaviti post.

upd: Imam ideju kako ga učiniti sigurnijim bez šifriranja. Za svaku radnju koju želite izvesti stvorite nekoliko skripti. Izmijenili ste mirobo.sh da pozove skriptu za zadani parametar poslan u webhook -u, npr. čista_spavaća soba. To je to. Većina osoba koja iskoristi udicu će očistiti vašu spavaću sobu iznova i iznova …)) Kad to učinim, ažurirat ću upute

Korak 5: Kako iscrtati svoju kartu

Kako iscrtati svoju kartu
Kako iscrtati svoju kartu

Nakon što pripremite cijelu kartu u aplikaciji MiHome, pošaljite vakuum na određeno mjesto naredbom 'app_goto'.

Napravite snimak zaslona cijele karte s poslanim položajem i bazom. Osnovna točka nakon ponovnog pokretanja vakuuma je položaj [25500, 25500] OVO NIJE POLOŽAJ BAZE ZA PUNJENJE, ali ako ponovno pokrenete vakuum na podlozi za punjenje, položaj baze za punjenje bit će 25500, 25500. Dakle, s poznatog položaja poslano i osnovni položaj možete iscrtati svoju kartu na bilo kojem CAD programu sa snimljenom zaslonom. Koristio sam besplatni QCAD.

Nakon što sliku uklopim u rešetku, linijom preko prostorije mjerim početnu i završnu točku zone.

Preporučeni: