Kazalo:

XiaoMi Vacuum + Amazon Button = Čiščenje armatur: 5 korakov (s slikami)
XiaoMi Vacuum + Amazon Button = Čiščenje armatur: 5 korakov (s slikami)

Video: XiaoMi Vacuum + Amazon Button = Čiščenje armatur: 5 korakov (s slikami)

Video: XiaoMi Vacuum + Amazon Button = Čiščenje armatur: 5 korakov (s slikami)
Video: Robot vacuum cleaner ENCHEN r1 beats its head against the wall and furniture in the house 2024, November
Anonim
XiaoMi Vacuum + Amazon Button = Čiščenje armatur
XiaoMi Vacuum + Amazon Button = Čiščenje armatur

To navodilo bo pojasnilo, kako z rezervnimi gumbi Amazon Dash upravljate vakuum XiaoMi.

Od časa, ko so stali 1 dolar, sem naletel na kup Amazon gumbov in jih nisem uporabljal. Toda ob prejemu novega robotskega sesalca sem se odločil, da bi bilo zelo priročno uporabiti te gumbe kot nadzor nad vakuumom.

Pritisnite gumb Ziploc in sesalnik bo spalnico.

Pritisnite gumb Veselo in sesal bo dnevno sobo.

Pritisnite Fidži.. pa imate idejo.

V ta projekt je vključenih veliko kramp z interneta. Resnično cenim delo, ki ga je toliko ljudi opravilo, in mislim, da moram deliti svojo majhno pripomoček na podlagi njihovih raziskav.

Izjava o omejitvi odgovornosti: Vse spodnje korake delate na lastno odgovornost! Če natančno sledite korakom, obstaja zelo majhna možnost, da bi kaj poškodovali. Ampak sh#t se zgodi! In za to ne prevzemam nobene odgovornosti. Mimogrede, vse korake je mogoče obrniti, zato potencialno ni kršitve garancije. Ampak seveda - YMMV

Osnovno načelo je, da na usmerjevalniku ujamemo pritisk tipke armaturke in pošljemo webhook v Vacuum, namesto da kupujemo stvari pri Amazonu.

Kaj boste potrebovali:

  • Usmerjevalnik z vdelano programsko opremo po meri, ki lahko nadzoruje DHCP, izvaja skripte in izpolnjuje poizvedbe get | post. Mikrotik, DD-WRT, OpenWRT, paradižnik itd.
  • XiaoMi vakuum. v1 ali v2
  • Amazon Dash gumbi

Natančneje, kaj sem uporabil:

  • Mikrotik
  • XiaoMi v2 vakuumski Roborock S50
  • Nekaj gumbov Amazon Dash

Tukaj je postopek

  1. Korenimo vakuum
  2. Namestite in konfigurirajte potrebne pakete pod korenom v vakuumu
  3. Gumb za nastavitev Amazon Dash
  4. Nastavite usmerjevalnik, da ujamete zahtevo gumba in nadzirate vakuum

Opomba: Pravzaprav vam ni treba izkoreniniti vakuuma, da ga nadzirate. Če imate na svojem omrežju (ali kjer koli) kateri koli drug strežnik, ki lahko izvaja python ali php, lahko nanje usmerite spletne klepetalnice. Ampak jaz ne. In želel sem, da je na samem vakuumu urejen in kompakten. Torej, če vam moj pristop ni všeč, predvidevam, da lahko iz tega branja ugotovite, kako nastaviti svoj lastni strežnik posrednikov. Pojdite naravnost na točko 2.

Ok, gremo…

1. korak: Pridobite žeton in korenski vakuum

Pridobite žeton in korenski vakuum
Pridobite žeton in korenski vakuum
Pridobite žeton in korenski vakuum
Pridobite žeton in korenski vakuum
Pridobite žeton in korenski vakuum
Pridobite žeton in korenski vakuum
Pridobite žeton in korenski vakuum
Pridobite žeton in korenski vakuum

Vsa programska oprema, programska oprema in navodila za ukoreninjenje so bili pridobljeni s spletnega mesta: https://4pda.ru/forum/index.php? Showtopic = 881982

Če imate OS, ki ni Windows, in telefon, ki ni Android (lahko uporabite virtualno z nox), sledite zgornji povezavi (uporabite Google Translate) in preberite navodila, sicer sledite navodilom tukaj.

Za ukoreninjenje moramo pridobiti naslov ip in žeton iz vašega vakuuma.

Odpakirajte root.7z.

Prosimo, namestite Mihome iz Vevsa v svoj Android. Lahko uporabite enega iz arhiva ali če je to navodilo zastarelo, lahko zadnjo različico dobite na njegovem spletnem mestu (https://www.kapiba.ru/2017/11/mi-home.html) ali njegovem Google Drive (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)

Prijavite se v svoj MiHome. V svojem računu morate nastaviti celinsko Kitajsko in ji dodati vakuum).

Dotaknite se ikone vakuuma Nastavitve (tri pike v zgornjem desnem kotu) Splošne nastavitve Podatki o omrežju

Vnesite naslov ip in žeton v win-mirobo/win-mirobo.ini

Onemogoči požarni zid v oknih. Zaženite win-mirobo.bat in utripajte vdelano programsko opremo.

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

Arter Vacuum se znova zažene - vaš vakuum ste uspešno ukoreninili in zdaj imate dostop do njega prek ssh!

SSH (s kitom) s čistilom/čistilom. Z geslom spremenite geslo

2. korak: Namestite in konfigurirajte potrebne pakete pod korenom na vakuumu

Prostor

Namesto spletnih kljukic MiVacuum uporablja protokol miio, tako kot vse naprave XiaoMi IoT. Zato se ga moramo naučiti, da razumemo webhooks. Potrebujemo posrednika, ki lahko ujame webhook in ga prevede v protokol miio v napravo. Obstaja knjižnica python (https://github.com/rytilahti/python-miio), vendar je ne moremo uporabiti v vakuumu, saj na vakuumu ni dovolj prostora za Python 3.5+.

Na srečo obstaja knjižnica php-miio (https://github.com/skysilver-lab/php-miio), ki je razmeroma zelo lahka in to bomo uporabljali (btw se uporablja tudi v zgornjem win-mirobo). Tisti, ki ujame webhook, je demon webhook (https://github.com/adnanh/webhook), ki pri prihajajočem spletnem kljuku zažene skript za php.

SSH v vakuum (s kitom):

#Naredi pod korenom. Ja, vem, da ni varno..whatevs.sudo su #Tukaj namestimo vse potrebe apt-get install -y wget php5-cli nano #Vse ostalo bo /opt cd /opt

#Prenesite php-miio

#Preverite najnovejše na githubu. Spodaj popravite vrstice v skladu z najnovejšim 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

#Prenesite demona webhooks

#Preverite najnovejše na githubu. Spodnja pravilna vrstica v skladu z najnovejšo različico 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

#Ustvarite nastavitve za webhook

nano /opt/webhook/hooks.json #Vnesite vsebino hooks.json tukaj. Desni klik v kitu. #Ctr+X Shrani Y.

#Ustvarite skript za klic php-miio

nano /opt/webhook/mirobo.sh #Tukaj vnesite vsebino mirobo.sh. Desni klik v kitu. # Ctr +X Shrani Y. # Naredite izvedljiv chmod +x /opt/webhook/mirobo.sh

#Ustvarite skript za samodejni zagon in 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 privzete nastavitve webhook.sh

#Znova zaženite sistem

znova zaženite

Po ponovnem zagonu preizkusite svoje nastavitve v brskalniku:

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

metoda - ukaz

params - parametri

Vse metode (ukaze) in parametre najdete tukaj:

github.com/marcelrv/XiaomiRobotVacuumProtocol

Vsebina hooks.json

Tukaj spremenite svoj žeton v svoj žeton.

Popravite ip-whitelist za svoje lokalno omrežje ali ga popolnoma odstranite, če kavlje zaženete od drugod (nevarno).

[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/opt/webhook", "response-message": "Izvajanje mirobo script "," include-command-output-in-response ": false," pass-environment-to-command ": [{" vir ":" niz "," envname ":" žeton "," 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 "}}}]

vsebina datoteke mirobo.sh. Samo kopiraj-prilepi. Obstajata samo dve vrstici (ne 3).

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

3. korak: Nastavite gumbe Amazon Dash

Odprite aplikacijo Amazon. Pojdite na Dash Devices. Dodaj nov pomišljaj kot običajno. Na zahtevo za izbiro izdelka NE. Zaprite aplikacijo. Končali ste.

4. korak: Nastavitev usmerjevalnika za zahtevo gumba za ulov in nadzor MiVacuum

Nastavitev usmerjevalnika za zahtevo gumba za ulov in nadzor MiVacuum
Nastavitev usmerjevalnika za zahtevo gumba za ulov in nadzor MiVacuum
Nastavitev usmerjevalnika za zahtevo gumba za ulov in nadzor MiVacuum
Nastavitev usmerjevalnika za zahtevo gumba za ulov in nadzor MiVacuum
Nastavitev usmerjevalnika za zahtevo gumba za ulov in nadzor MiVacuum
Nastavitev usmerjevalnika za zahtevo gumba za ulov in nadzor MiVacuum

To deluje na naslednji način.

Ko pritisnete gumb, se poveže z vašim omrežjem in od strežnika dhcp zahteva, da mu dodeli naslov. To zahtevo moramo ujeti in izvesti webhook do vakuuma. Kot dodatni varnostni ukrep bomo blokirali povezavo z Amazonom, da Amazon ne bi vedel, da smo sploh pritisnili gumb in nima možnosti potisniti posodobitve vdelane programske opreme ali česa drugega.

Večinoma uporabljam WinBox, včasih pa je terminal preprosto lažji.

#Ustvarite pravilo spuščanja požarnega zidu s seznamom naslovov za blokiranje

/ip požarni zid filter add chain = forward src-address-list = blockdash action = drop comment = "Drop Amazon Dash"

Nato moramo za vsak gumb ustvariti pravilo zakupa dhcp. Zelo enostavno narediti v winboxu.

Strežnik DHCP - najemnine

Ko pritisnemo gumb, se pojavi nov najem. Kliknemo jo kot statično in nastavimo seznam naslovov na 'blockdash', nastavimo čas najema na 5 sekund (tako, da najem poteče pred naslednjim pritiskom) in kopiramo naslov mac za pozneje.

#Ta ukaz je samo za referenco, če ste dodali najem v winbox, ga preprosto preskočite.

/ip dhcp-server-lease add-address-list = blockdash mac-address = XXXXXXXXXX address = 192.168.x.x lease-time = 5s

Zdaj moramo opozoriti na scenarij zakupa.

Odprite zavihek DHCP in dodajte »myLeaseScript« kot skript za najem na strežniku dhcp.

Zdaj odprite System - Scripts in dodajte »myLeaseScript« z dovoljenji za branje, preizkušanje.

Vsebina myLeaseScript:

#Script se dvakrat pokliče pri zakupu (1) in pri izdaji (0): if ($ leaseBound = 1) do = { /log info ("Running myLeaseScript. Ali je kdo pritisnil tipko Dash?")

#Polje vseh vaših gumbov in url za klic

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

#Preverite pritisnjen gumb in URL za dostop

: foreach mac, url in = $ button do = {: if ($ mac = $ leaseActMAC) do = { /log info ("Pritisnjeno". $ mac. "button") /orodje za pridobivanje keep-result = brez načina = https http-method = url objave = $ url}}}

Zdaj ste avtomatizirali čiščenje s pritiskom na gumb Amazon Dash. Zabavaj se

Prosimo, bodite pozorni: pošiljanje spletnih klicev nešifrirano je zelo nevarno. Webhook lahko uporablja šifriranje, vendar sem se trudil, da bi to delovalo, vendar se to nikoli ni zgodilo. Ker ga uporabljam samo v svojem lokalnem omrežju, me ne skrbi preveč. Če pa ga želite uporabiti prek interneta za povezavo z IFTTT z integracijo Pomočnika Google, bodite pozorni na to dejstvo! Nisem prepričan, kaj je bil v mojem primeru kripto napaka. Samopodpisana potrdila, ki sem jih premagal, ki jih je izdal letsencrypt. Prezapleteno omrežje s kopico NAT -jev sem premagal z ipv6. Vendar se mi zdi, da webhooks zelo slabo deluje s certifikati in je v resnici zelo slabo dokumentiran. Videti je, da IFTTT ne deluje z ipv6. Poskusil sem vse, kar sem mogel, a mi ni uspelo. Morda boste imeli več sreče. Ne pozabite objaviti objave.

upd: Imam idejo, kako to narediti bolj varno brez šifriranja. Za vsako dejanje, ki ga želite izvesti, ustvarite nekaj skriptov. Mirobo.sh spremenite tako, da pokliče skript z danim parametrom, poslanim v webhook, npr. čista_posteljna soba. To je to. Večina ljudi, ki bo izkoristil trnek, bo vedno znova čistil vašo spalnico …)) Ko bom to naredil, bom posodobil navodila

5. korak: Kako narisati svoj zemljevid

Kako narisati svoj zemljevid
Kako narisati svoj zemljevid

Ko v aplikaciji MiHome pripravite celoten zemljevid, pošljite vakuum na določeno lokacijo z ukazom 'app_goto'.

Naredite posnetek zaslona celotnega zemljevida s poslanim položajem in bazo. Osnovna točka po ponovnem zagonu vakuuma je položaj [25500, 25500] TO NI POLOŽAJ POLNILNE BAZE, če pa znova zaženete vakuum na polnilni bazi, bo položaj polnilne baze 25500, 25500. Torej iz znanega položaja poslano in osnovni položaj, lahko zemljevid narišete v kateri koli program za CAD s posnetkom zaslona. Uporabil sem brezplačen QCAD.

Po namestitvi slike na mrežo uporabim črto po sobi za merjenje začetne in končne točke cone.

Priporočena: