Obsah:
- Krok 1: Získajte tokenové a koreňové vákuum
- Krok 2: Nainštalujte a nakonfigurujte potrebné balíky pod rootom vo vákuu
- Krok 3: Nastavte tlačidlá Amazon Dash
- Krok 4: Nastavte smerovač, aby zachytil požiadavku na tlačidlo a ovládal miVacuum
- Krok 5: Ako nakresliť mapu
Video: Vákuum XiaoMi + tlačidlo Amazon = Čistenie pomlčky: 5 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
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
- Zakoreníme vákuum
- Nainštalujte a nakonfigurujte potrebné balíky pod rootom vo vákuu
- Nastavte tlačidlo Amazon Dash
- 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
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
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
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:
Stlačte tlačidlo); // Hra Arduino LCD: 5 krokov (s obrázkami)
Stlačte tlačidlo); // Hra Arduino LCD: Nedávno som v skautoch pracoval na odznaku zásluhy o Game Design. Pre jednu z požiadaviek som postavil túto hru pomocou Arduina, ktoré je založené na hre LED Rocker Game. Cieľom hry je získať čo najväčší počet bodov. Na začiatku t
Tlačidlo priblíženia a schôdze Fyzické vypnutie zvuku: 7 krokov (s obrázkami)
Tlačidlo fyzického stlmenia schôdzok: Ak používate schôdze zoomu v práci alebo škole, toto tlačidlo je pre vás! Stlačením tlačidla vypnete stlmenie alebo podržaním tlačidla nadol schôdzu opustíte (alebo ju ukončíte, ak ste hostiteľom). Skvelé na tom je, že to funguje, aj keď váš Zoom Windo
Inteligentné tlačidlo Wi-Fi napájané batériami na ovládanie svetiel HUE: 5 krokov (s obrázkami)
Inteligentné tlačidlo Wi-Fi napájané z batérie na ovládanie svetiel HUE: Tento projekt ukazuje, ako vytvoriť tlačidlo Wi-Fi napájané z batérie IoT za menej ako 10 minút. Tlačidlo ovláda svetlá HUE nad IFTTT. Dnes môžete stavať elektronické zariadenia a pripájať ich k iným zariadeniam inteligentnej domácnosti doslova za niekoľko minút. Čo je
Bezdrôtové bezpečnostné tlačidlo pre bezpečnosť PLC: 6 krokov (s obrázkami)
Bezdrôtové bezpečnostné tlačidlo pre bezpečnosť PLC: Tento projekt je mojim dôkazom koncepcie používania internetu vecí a (prípadne) robotiky na vytvorenie ďalšej vrstvy bezpečnosti pre nebezpečné výrobné zariadenia. Toto tlačidlo je možné použiť na spustenie alebo zastavenie viacerých procesov vrátane ovládania signálu
Naliehavo: Všemohúce tlačidlo na vlastnom telefóne: 10 krokov (s obrázkami)
Pressly: DIY Všemohúci smartphone tlačidlo: Väčšina fyzických kľúčov bola vyhnaná z telefónov, vďaka neustálemu nárastu technológie dotykovej obrazovky, ale tu je projekt pre domácich majstrov, ktorý chce do vášho smartfónu priniesť inteligentnejší druh fyzického kľúča. Hardvérové tlačidlo je pripojené k 3,5 mm