Sadržaj:
- Korak 1: Nabavite vakuum žetona i korijena
- Korak 2: Instalirajte i konfigurirajte potrebne pakete pod korijenom u vakuumu
- Korak 3: Postavite Amazon Dash tipke
- Korak 4: Postavite usmjerivač na zahtjev dugmeta za hvatanje i kontrolirajte MiVacuum
- Korak 5: Kako iscrtati kartu
Video: XiaoMi vakuum + Amazon dugme = čišćenje crtice: 5 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Ovo uputstvo će vam objasniti kako koristiti rezervne tipke Amazon Dash za upravljanje XiaoMi vakuumom.
Dobio sam gomilu Amazonovih dugmadi od vremena kada su koštali 1 USD i nisam imao koristi od njih. Ali po primitku novog robotskog usisavača odlučio sam da bi bilo vrlo zgodno koristiti ove tipke kao kontrolu usisavača.
Pritisnite Ziploc dugme i usisavat će spavaću sobu.
Pritisnite dugme Glad i usisavat će dnevnu sobu.
Pritisnite Fidži … pa imate ideju.
U ovaj projekt uključeno je mnogo hakova s interneta. Zaista cijenim posao koji su mnogi ljudi uradili i mislim da moram podijeliti svoju malu izmišljotinu na osnovu njihovih istraživanja.
Odricanje odgovornosti: Sve dolje navedene korake radite na vlastitu odgovornost! Ako pažljivo slijedite ove korake, vrlo je mala vjerojatnost da ćete nešto oštetiti. Ali sh#t se dešava! I ne preuzimam odgovornost za to. Međutim, svi se koraci mogu poništiti, tako da potencijalno nema kršenja garancije. Ali naravno - YMMV
Osnovni princip je da uhvatimo pritisnutu tipku crtice na usmjerivaču i šaljemo webhook u Vacuum umjesto da kupujemo stvari od Amazona.
Šta će vam trebati:
- Ruter sa prilagođenim firmverom koji može kontrolisati DHCP, pokretati skripte i ispunjavati upite za primanje poruka. Mikrotik, DD-WRT, OpenWRT, paradajz itd.
- XiaoMi vakuum. v1 ili v2
- Amazon Dash Buttons
Konkretno šta sam koristio:
- Mikrotik
- XiaoMi v2 Vakuum Roborock S50
- Gomila Amazon Dash tastera
Evo procedure
- Korijemo vakuum
- Instalirajte i konfigurirajte potrebne pakete pod root -om u vakuumu
- Gumb za postavljanje Amazon Dash
- Postavite usmjerivač da uhvati zahtjev gumba i kontrolira usisavač
NB: U stvari ne morate iskorijeniti svoj vakuum da biste ga kontrolirali. Ako imate bilo koji drugi poslužitelj na svom LAN -u (ili bilo gdje) koji može pokrenuti python ili php, možete mu usmjeriti webhooks. Ali ne znam. Htio sam da bude uredan i kompaktan na samom usisavaču. Dakle, ako vam se moj pristup ne sviđa, pretpostavljam da iz ovog čitanja možete shvatiti kako postaviti svoj vlastiti posrednički server. Pređite direktno na tačku 2.
Ok idemo…
Korak 1: Nabavite vakuum žetona i korijena
Sav softver, fimware i upute za rootanje preuzeti su sa: https://4pda.ru/forum/index.php? Showtopic = 881982
Ako imate OS koji nije Windows i telefon koji nije Android (možete koristiti virtualni s Nox -om), slijedite gornju vezu (koristite Google Translate) i pročitajte upute, inače slijedite upute ovdje.
Da bismo dobili root, moramo dobiti ip adresu i token iz vašeg vakuuma.
Raspakirajte root.7z.
Molimo vas da instalirate Mihome iz Vevsa na svoj Android. Možete koristiti jednu iz Arhive ili ako je ovo uputstvo datirano, najnoviju verziju možete dobiti sa njegove web stranice (https://www.kapiba.ru/2017/11/mi-home.html) ili njegovog Google diska (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 tačke u gornjem desnom uglu) Opšte postavke Informacije o mreži
Unesite IP adresu i token u win-mirobo/win-mirobo.ini
Onemogućite zaštitni zid u prozorima. Pokrenite win-mirobo.bat i fleširajte 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 (sa kitom) sa sredstvom za čišćenje/čišćenje. Promijenite lozinku sa passwd -om
Korak 2: Instalirajte i konfigurirajte potrebne pakete pod korijenom u vakuumu
Prostor
Umjesto webhookova, MiVacuum koristi miio protokol kao i svi XiaoMi IoT uređaji. Zato ga moramo naučiti da bismo razumjeli webhooks. Potreban nam je srednji čovjek koji može uhvatiti webhook i prevesti ga u miio protokol na uređaj. Postoji python biblioteka (https://github.com/rytilahti/python-miio), ali ne možemo je koristiti u vakuumu jer nema dovoljno prostora za Python 3.5+ na Vacuumu.
Ali na sreću postoji php-miio biblioteka (https://github.com/skysilver-lab/php-miio) koja je relativno laka i to ćemo koristiti (btw se takođe 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 web -huku.
SSH u vakuum (sa kitom):
#Radite pod root -om. 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 redove 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
#Preuzmite demon webhooks
#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
#Kreirajte postavke za webhook
nano /opt/webhook/hooks.json #Ovdje unesite hooks.json sadržaj. Desni klik u kit. #Ctr+X Sačuvaj Y.
#Napravite skriptu za pozivanje php-miio
nano /opt/webhook/mirobo.sh #Ovdje unesite sadržaj mirobo.sh. Desni klik u kit. # Ctr +X Sačuvaj Y. # Napravi izvršni chmod +x /opt/webhook/mirobo.sh
#Kreirajte 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 zadane postavke webhook.sh
#Ponovo pokrenite sistem
reboot
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 (komande) i parametre možete pronaći ovdje:
github.com/marcelrv/XiaomiRobotVacuumProtocol
Sadržaj datoteke hooks.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 nekog drugog mjesta (nije sigurno).
[{"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 ":" string "," envname ":" token "," name ": "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-zalepi. 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: Postavite Amazon Dash tipke
Otvorite svoju aplikaciju Amazon. Idite na Dash Devices. Dodajte novo dugme crtice kao i obično. Na upit o odabiru proizvoda NE. Zatvorite aplikaciju. Završio si.
Korak 4: Postavite usmjerivač na zahtjev dugmeta za hvatanje i kontrolirajte MiVacuum
Ovo funkcionira na sljedeći način.
Kada se pritisne dugme, povezuje se s vašom mrežom i traži od dhcp servera da mu dodeli 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 dugme i nema mogućnost gurnuti ažuriranje firmvera ili nešto drugo.
Uglavnom koristim WinBox, ali ponekad je terminal jednostavno lakši.
#Kreirajte pravilo ispuštanja zaštitnog zida sa popisom adresa za blokiranje
/ip filter vatrozida add chain = forward src-address-list = blockdash action = drop comment = "Drop Amazon Dash"
Zatim moramo stvoriti pravilo zakupa dhcp -a za svako dugme. Vrlo jednostavno za napraviti u winboxu.
DHCP server - zakupi
Kada pritisnemo dugme, pojavljuje se novi zakup. Kliknemo ga kao statičan i postavimo listu 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 je samo za referencu ako ste dodali zakup u winbox samo je preskočite.
/ip dhcp-server zakup dodaj adresarsku listu = blockdash mac-adresu = XXXXXXXXXX adresu = 192.168.x.x vrijeme zakupa = 5s
Sada moramo ukazati na scenarij zakupa.
Otvorite DHCP karticu i dodajte 'myLeaseScript' kao skriptu zakupa na vašem dhcp serveru.
Sada otvorite System - Scripts i dodajte 'myLeaseScript' sa dozvolama za čitanje i testiranje.
Sadržaj myLeaseScript -a:
#Script se dva puta poziva pri zakupu (1) i pri objavljivanju (0): if ($ leaseBound = 1) do = { /log info ("Pokretanje myLeaseScript -a. Netko je pritisnuo tipku crtice?")
#Niz svih vaših dugmadi i url za pozivanje
: 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 u = $ buttons do = {: if ($ mac = $ leaseActMAC) do = { /log info ("Pressed". $ mac. "button") /dohvat alata keep-result = no mode = https http-method = url posta = $ url}}}
Sada ste automatizirali čišćenje pritiskom na Amazon Dash dugme. Zabavi se
Molimo obratite pažnju: Veoma je nesigurno slati webhooks nešifrirane. Webhook može koristiti enkripciju, ali 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 pažnju na ovu činjenicu! Nisam siguran koji je bio razlog kripto kvara u mom slučaju. Samopotpisane potvrde koje sam pobijedio izdao je letsencrypt. Prekomplicirana mreža s hrpom NAT -ova pobijedio sam 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 sa ipv6. Pokušao sam sve što sam mogao, ali nisam uspeo. 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 tako da pozove skriptu za dati parametar poslan u webhook -u, npr. clean_bedroom. To je to. Većina ljudi koja će iskoristiti udicu će očistiti vašu spavaću sobu iznova i iznova …)) Kad to učinim, ažurirat ću upute
Korak 5: Kako iscrtati kartu
Nakon što pripremite cijelu kartu u aplikaciji MiHome, pošaljite vakuum na određenu lokaciju pomoću naredbe 'app_goto'.
Napravite snimak ekrana cijele karte s poslanom pozicijom i bazom. Bazna točka nakon ponovnog pokretanja vakuuma je položaj [25500, 25500] Ovo nije položaj baze za punjenje, ali ako ponovo 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 mapu na bilo kojem CAD programu sa snimljenim ekranom. Koristio sam besplatni QCAD.
Nakon postavljanja slike na mrežu, koristim liniju po cijeloj prostoriji za mjerenje početne i krajnje tačke zone.
Preporučuje se:
Bežično zvono na vratima - (Raspberry PI i Amazon Dash): 4 koraka (sa slikama)
Bežično zvono na vratima - (Raspberry PI i Amazon Dash): Šta radi? (pogledajte video) Kad se pritisne dugme, Raspberry otkriva prijavu novog uređaja na bežičnoj mreži. Na ovaj način- može prepoznati pritisnuto dugme i proslijediti informacije o toj činjenici na vaš mobilni telefon (ili uređaj vašeg
Nečujno zvono na vratima dugmeta Amazon Dash Button: 10 koraka (sa slikama)
Amazon Dash Button Tiho zvono na vratima: Stalno gledate kroz prozor kako biste mogli presresti posjetitelje prije nego što pozvone na vrata? Umorni ste od toga da psi i beba polude kad god zazvoni? Ne želite potrošiti bogatstvo na "pametnog" rešenje? Nečujno zvono na vratima je isto kao
Klizite na Amazon Fire Remote TV daljinski: 3 koraka (sa slikama)
Klizite na Amazon Fire Remote TV Remote: Oh Amazon, vaš Fire TV je tako nevjerojatan, zašto nam niste dali kontrole jačine zvuka na vašem daljinskom upravljaču? Pa, za manje od 5 USD na Amazonu možete kupiti ovaj slatki mali daljinski upravljač sa napajanjem, isključivanjem zvuka , volumen i kanal sve u malom pakiranju. Unesite u 3D štampač
Kako kontrolirati svjetlo/kućna svjetla pomoću Arduina i Amazon Alexa: 16 koraka (sa slikama)
Kako kontrolirati svjetlo/kućna svjetla pomoću Arduina i Amazon Alexa: Objasnio sam kako kontrolirati svjetlo koje je spojeno na UNO i kojim upravlja Alexa
Vlastita verzija Amazon Echo: 8 koraka (sa slikama)
Vlastita verzija Amazon Echo: Zdravo momci, mislim da svi znaju za najnoviji amazonski proizvod Amazon Echo koji je glasovnim uređajem, odnosno možemo upravljati uređajem glasom i čak može razgovarati s nama. Tako inspiriran ovom idejom stvorio sam vlastitu verziju koja može