Obsah:

Vákuum XiaoMi + tlačidlo Amazon = Čistenie pomlčky: 5 krokov (s obrázkami)
Vákuum XiaoMi + tlačidlo Amazon = Čistenie pomlčky: 5 krokov (s obrázkami)

Video: Vákuum XiaoMi + tlačidlo Amazon = Čistenie pomlčky: 5 krokov (s obrázkami)

Video: Vákuum XiaoMi + tlačidlo Amazon = Čistenie pomlčky: 5 krokov (s obrázkami)
Video: Tips and Tricks for Xiaomi Roborock S5 max Cleaning 2024, November
Anonim
Vákuum XiaoMi + tlačidlo Amazon = čistenie pomlčky
Vákuum XiaoMi + tlačidlo Amazon = čistenie pomlčky

Tento návod vysvetlí, ako používať vaše náhradné tlačidlá Amazon Dash na ovládanie vákua XiaoMi.

Dostal som veľa amazonských gombíkov, ktoré ležali okolo od 1 dolára, a nepoužil som ich. Ale keď som dostal nový robotický vysávač, rozhodol som sa, že by bolo veľmi vhodné použiť tieto tlačidlá ako ovládací prvok vákua.

Stlačte tlačidlo Ziploc a vysáva spálňu.

Stlačte tlačidlo S radosťou, obývačka sa vysaje.

Stlačte Fiji.. No, máte nápad.

Do tohto projektu je začlenených mnoho hackov z internetu. Naozaj si vážim prácu, ktorú urobilo toľko ľudí, a myslím si, že sa musím podeliť o svoju malú vychytávku na základe ich výskumu.

Disclaimer: Všetky nižšie uvedené kroky robíte na vlastné riziko! Ak budete postupovať opatrne, je veľmi malá pravdepodobnosť, že niečo poškodíte. Ale to sa nestane! A nepreberám za to žiadnu zodpovednosť. BTW všetky kroky je možné obrátiť, takže potenciálne nedochádza k porušeniu záruky. Ale samozrejme - YMMV

Základným princípom je, že namiesto nákupu vecí z Amazonu chytíme tlačidlo pomlčky na smerovači a pošleme webhook do Vacuum.

Čo budete potrebovať:

  • Router s vlastným firmvérom, ktorý môže ovládať DHCP, spúšťať skripty a plniť dotazy | | post. Mikrotik, DD-WRT, OpenWRT, Tomato atď.
  • XiaoMi vákuum. v1 alebo v2
  • Tlačidlá Amazon Dash

Konkrétne, čo som použil:

  • Mikrotik
  • Vákuový robot Roborock S50 XiaoMi v2
  • Banda tlačidiel Amazon Dash

Tu je postup

  1. Zakoreníme vákuum
  2. Nainštalujte a nakonfigurujte potrebné balíky pod rootom vo vákuu
  3. Nastavte tlačidlo Amazon Dash
  4. Nastavte smerovač, aby zachytil požiadavku na tlačidlo a ovládal vákuum

Poznámka: V skutočnosti nemusíte svoje vákuum rootovať, aby ste ho mohli ovládať. Ak máte na LAN (alebo kdekoľvek) iný server, ktorý môže prevádzkovať python alebo php, môžete naň smerovať webové háčiky. Ale ja nie. A chcel som udržať poriadok a kompaktnosť na samotnom vákuu. Ak sa vám teda môj prístup nepáči, predpokladám, že z tohto čítania môžete prísť na to, ako nastaviť vlastný server stredného muža. Choďte rovno k bodu 2.

Ok ideme na to …

Krok 1: Získajte tokenové a koreňové vákuum

Získajte tokenové a koreňové vákuum
Získajte tokenové a koreňové vákuum
Získajte tokenové a koreňové vákuum
Získajte tokenové a koreňové vákuum
Získajte tokenové a koreňové vákuum
Získajte tokenové a koreňové vákuum
Získajte tokenové a koreňové vákuum
Získajte tokenové a koreňové vákuum

Všetok softvér, fimware a pokyny na rootovanie boli získané z: https://4pda.ru/forum/index.php? Showtopic = 881982

Ak máte iný operačný systém než Windows a telefón iný ako Android (môžete používať virtuálny systém s operačným systémom nox), kliknite na odkaz vyššie (použite prekladač Google) a prečítajte si pokyny, inak postupujte podľa tohto návodu.

Aby sme mohli rootovať, musíme z vášho vákua získať IP adresu a token.

Rozbaľte root.7z.

Nainštalujte si Mihome z Vevs do svojho Androidu. Môžete ho použiť z archívu, alebo ak je tento pokyn datovaný, najnovšiu verziu môžete získať z jeho webových stránok (https://www.kapiba.ru/2017/11/mi-home.html) alebo z Disku Google (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)

Prihláste sa do svojho MiHome. Na svojom účte musíte nastaviť China Mainland a pridať k nemu vákuum).

Klepnite na ikonu vákua Nastavenia (tri bodky vpravo hore) Všeobecné nastavenia Informácie o sieti

Vyplňte IP adresu a token v win-mirobo/win-mirobo.ini

Vypnite bránu firewall v systéme Windows. Spustite win-mirobo.bat a flashujte firmvér.

!!!!!!!!! V1 je pre v1 Vacuum a V2 je pre v2 Vacuum (Roborock S50) !!!!!!! Ak ste blikali zle FW - prejdite na odkaz 4pda (prvý v tomto kroku) a prečítajte si, ako obnoviť.

Arter Vacuum sa reštartuje - úspešne ste rootovali svoje vákuum a teraz k nemu máte prístup pomocou ssh!

SSH k tomu (tmelom) s čističom/čističom. Zmeňte svoje heslo pomocou hesla

Krok 2: Nainštalujte a nakonfigurujte potrebné balíky pod rootom vo vákuu

Predpoklad

Namiesto webhookov používa MiVacuum protokol miio, ako všetky zariadenia XiaoMi IoT. Musíme sa to teda naučiť porozumieť webhookom. Potrebujeme prostredníka, ktorý dokáže chytiť webhook a preložiť ho do protokolu miio do zariadenia. Existuje knižnica python (https://github.com/rytilahti/python-miio), ale nemôžeme ju použiť vo vákuu, pretože vo vákuu nie je dostatok miesta pre Python 3.5+.

Ale našťastie existuje knižnica php-miio (https://github.com/skysilver-lab/php-miio), ktorá je pomerne ľahká a práve to budeme používať (btw používa sa aj v programe win-mirobo vyššie). Ten, kto chytí webhook, je démon webhook (https://github.com/adnanh/webhook), ktorý spustí skript pre php na prichádzajúcom webhooku.

SSH do vášho vákua (s tmelom):

#Vykonajte koreň. Áno, viem, že to nie je bezpečné..čo

#Stiahnite si php-miio

#Skontrolujte najnovšie na github. Opravte riadky nižšie podľa najnovšieho wgetu 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

#Stiahnite si démona webhooks

#Skontrolujte najnovšie na github. Správny riadok nižšie podľa najnovšieho wgetu 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

#Vytvorte nastavenia pre webhook

nano /opt/webhook/hooks.json #Input hooks.json content here. Kliknite pravým tlačidlom na tmel. #Ctr+X Uložiť Y.

#Vytvorte skript na volanie php-miio

nano /opt/webhook/mirobo.sh #Sem zadajte obsah mirobo.sh. Kliknite pravým tlačidlom na tmel. # Ctr +X Uložiť Y. # Vytvoriť spustiteľný súbor chmod +x /opt/webhook/mirobo.sh

#Vytvorte skript pre automatické spustenie a obnovte konfiguráciu

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 predvolené nastavenia webhook.sh

#Reštartujte systém

reštartovať

Po reštarte vyskúšajte svoje nastavenia v prehliadači:

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

metóda - príkaz

params - parametre

Všetky metódy (príkazy) a parametre nájdete tu:

github.com/marcelrv/XiaomiRobotVacuumProtocol

Obsah hooks.json

Tu zmeňte svoj token na svoj token z vákua.

Opravte ip-whitelist pre vašu lokálnu sieť alebo ho úplne odstráňte, ak spustíte prípojky odinakiaľ (nebezpečné).

[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/opt/webhook", "response-message": "Vykonáva sa skript mirobo "," zahrnúť-príkaz-výstup-v-odpovedi ": nepravda," prejsť-prostredie-na-príkaz ": [{" zdroj ":" reťazec "," envname ":" token "," názov ": "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 "}}}]

obsah súboru mirobo.sh. Stačí skopírovať a prilepiť. Existujú iba dva riadky (nie 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 ']}'

Krok 3: Nastavte tlačidlá Amazon Dash

Otvorte svoju aplikáciu Amazon. Prejdite na Dash Devices. Pridajte nové tlačidlo pomlčky ako obvykle. Na výzvu na výber produktu NEROBTE. Zatvorte aplikáciu. Skončil si.

Krok 4: Nastavte smerovač, aby zachytil požiadavku na tlačidlo a ovládal miVacuum

Nastavte smerovač, aby zachytil požiadavku na tlačidlo a ovládal miVacuum
Nastavte smerovač, aby zachytil požiadavku na tlačidlo a ovládal miVacuum
Nastavte smerovač, aby zachytil požiadavku na tlačidlo a ovládal miVacuum
Nastavte smerovač, aby zachytil požiadavku na tlačidlo a ovládal miVacuum
Nastavte smerovač, aby zachytil požiadavku na tlačidlo a ovládal miVacuum
Nastavte smerovač, aby zachytil požiadavku na tlačidlo a ovládal miVacuum

Funguje to nasledovne.

Po stlačení tlačidla sa priradí k vašej sieti a požiada server dhcp, aby mu priradil adresu. Musíme túto požiadavku zachytiť a vykonať webhook do prázdna. Ako dodatočné bezpečnostné opatrenie zablokujeme pripojenie k Amazonu, aby Amazon nevedel, že sme dokonca stlačili tlačidlo a nemali možnosť tlačiť aktualizáciu firmvéru alebo niečo iné.

Väčšinou používam WinBox, ale niekedy je terminál jednoduchší.

#Vytvorte pravidlo zrušenia brány firewall so zoznamom adries, ktoré chcete zablokovať

/ip firewall filter add chain = forward src-address-list = blockdash action = zrušiť komentár = "Drop Amazon Dash"

Potom musíme pre každé tlačidlo vytvoriť pravidlo prenájmu dhcp. Veľmi ľahké to urobiť vo winboxe.

Server DHCP - prenájom

Jedného stlačíme tlačidlo, zobrazí sa nový prenájom. Klikneme na to ako na statický a nastavíme zoznam adries na „blockdash“, nastavíme čas nájmu na 5 sekúnd (aby prenájom vypršal pred ďalším stlačením) a skopírovali adresu mac na neskôr.

#Tento príkaz je len na referenciu, ak ste do Winboxu pridali prenájom, jednoducho ho preskočte.

/ip dhcp-server prenájom pridať zoznam adries = blockdash mac-address = XXXXXXXXXX adresa = 192.168.x.x doba nájmu = 5 s

Teraz musíme ukázať na prenájom skriptu.

Otvorte kartu DHCP a na server dhcp pridajte 'myLeaseScript' ako skript na prenájom.

Teraz otvorte Systém - Skripty a pridajte „myLeaseScript“s povoleniami na čítanie a testovanie.

Obsah myLeaseScript:

#Script sa pri zapožičaní (1) a pri vydaní (0) volá dvakrát

#Array všetkých vašich tlačidiel a URL, na ktorú chcete zavolať

: miestne tlačidlá {"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"; };

#Skontrolujte stlačené tlačidlo a URL adresy

: foreach mac, url in = $ buttons do = {: if ($ mac = $ leaseActMAC) do = { /log info ("Pressed". $ mac. "button") /tool fetch keep-result = no mode = https http-metóda = url príspevku = $ url}}}

Teraz ste svoje čistenie zautomatizovali stlačením tlačidla Amazon Dash. Bavte sa

Dávajte pozor: Odosielanie webhookov nezašifrovaných je veľmi nebezpečné. Webhook môže používať šifrovanie, ale snažil som sa, aby to fungovalo, ale nikdy sa to nestalo. Keďže ho používam len vo svojej lokálnej sieti, nie som si príliš starosti. Ak ho však chcete použiť cez internet na pripojenie k IFTTT s integráciou Asistenta Google, venujte pozornosť tejto skutočnosti! Nie som si istý, čo bolo v mojom prípade dôvodom zlyhania kryptomeny. Certifikáty s vlastným podpisom, s ktorými som porazil, vydané spoločnosťou letsencrypt. Prekomplikovanú sieť s veľkým počtom NAT som porazil s ipv6. Zdá sa mi však, že webhooks funguje s certifikátmi veľmi zle a v skutočnosti je veľmi zle zdokumentovaný. Zdá sa, že IFTTT nefunguje s ipv6. Skúšal som všetko možné, ale neúspešne. Môžete mať viac šťastia. Nezabudnite napísať príspevok.

aktualizácia: Mám nápad, ako to zaistiť bezpečnejšie bez šifrovania. Vytvoríte niekoľko skriptov pre každú akciu, ktorú chcete vykonať. Upravíte mirobo.sh tak, aby skript volal pre daný parameter odoslaný vo webhooku, napr. čistá_posteľ. To je všetko. Väčšina ľudí, ktorí využijú háčik, bude znova a znova upratovať vašu spálňu …)) Keď to urobím, aktualizujem pokyny

Krok 5: Ako nakresliť mapu

Ako nakresliť mapu
Ako nakresliť mapu

Akonáhle budete mať v aplikácii MiHome pripravenú celú mapu, pošlite vákuum na konkrétne miesto pomocou príkazu „app_goto“.

Vytvorte snímku obrazovky z úplnej mapy s odoslanou polohou a základňou. Základným bodom po reštarte vákua je poloha [25500, 25500] TOTO NIE JE POLOHA NABÍJACIEHO ZÁKLADU, ale ak reštartujete vákuum na nabíjacej základni, potom bude pozícia nabíjacej základne 25500, 25500. Takže zo známej polohy odoslané a základnú polohu môžete vykresliť svoju mapu v ľubovoľnom programe CAD pomocou nasnímanej snímky obrazovky. Použil som bezplatný QCAD.

Po prispôsobení obrázku do mriežky použijem čiaru cez miestnosť na meranie počiatočného a koncového bodu zóny.

Odporúča: