Obsah:
- Krok 1: Získejte token a kořenové vakuum
- Krok 2: Nainstalujte a nakonfigurujte potřebné balíčky pod rootem ve vakuu
- Krok 3: Nastavení tlačítek Amazon Dash
- Krok 4: Nastavení směrovače k zachycení požadavku na tlačítko a ovládání MiVacuum
- Krok 5: Jak vykreslit mapu
Video: Vakuum XiaoMi + tlačítko Amazon = Čištění pomlčky: 5 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Tato instrukce vysvětlí, jak používat náhradní tlačítka Amazon Dash k ovládání vakua XiaoMi.
Dostal jsem spoustu Amazonských knoflíků od doby, kdy byly 1 dolar, a já jsem je nepoužíval. Ale po obdržení nového robotického vakua jsem se rozhodl, že by bylo velmi vhodné použít tato tlačítka jako ovládání vakua.
Stiskněte tlačítko Ziploc a vysaje ložnici.
Stiskněte tlačítko Jsem rád, že to vysaje obývací pokoj.
Stiskněte Fidži.. máte nápad.
Do tohoto projektu je zahrnuto mnoho hacků z internetu. Opravdu si vážím práce, kterou odvedlo tolik lidí, a myslím si, že se musím podělit o svou malou vychytávku na základě jejich výzkumu.
Prohlášení: Všechny níže uvedené kroky provádíte na vlastní riziko! Pokud budete pečlivě postupovat podle těchto kroků, je velmi malá šance, že můžete něco poškodit. Ale to se nestane! A já za to neberu žádnou odpovědnost. BTW všechny kroky lze obrátit, takže potenciálně nedochází k porušení záruky. Ale samozřejmě - YMMV
Základním principem je, že místo zakoupení věcí od Amazonu chytíme na routeru tlačítko pomlčky a odešleme webhook do Vacuum.
Co budete potřebovat:
- Směrovač s vlastním firmwarem, který může řídit DHCP, spouštět skripty a plnit dotazy get | post. Mikrotik, DD-WRT, OpenWRT, Tomato atd.
- XiaoMi vakuum. v1 nebo v2
- Tlačítka Amazon Dash
Konkrétně to, co jsem použil:
- Mikrotik
- XiaoMi v2 Vacuum Roborock S50
- Banda tlačítek Amazon Dash
Zde je postup
- Zakořeníme vakuum
- Nainstalujte a nakonfigurujte potřebné balíčky pod rootem ve vakuu
- Tlačítko nastavení Amazon Dash
- Nastavte router, aby zachytil požadavek na tlačítko a ovládal vakuum
Pozn.: Ve skutečnosti nemusíte své vakuum rootovat, abyste jej mohli ovládat. Pokud máte na síti (nebo kdekoli) jiný server, který může provozovat python nebo php, můžete na ně nasměrovat webhooky. Ale já ne. A chtěl jsem, aby byl pořádek a kompaktnost na samotném vakuu. Pokud se vám můj přístup nelíbí, předpokládám, že z tohoto čtení můžete zjistit, jak nastavit svůj vlastní server pro střední muže. Přejděte rovnou k bodu 2.
Ok, jdeme…
Krok 1: Získejte token a kořenové vakuum
Veškerý software, fimware a pokyny pro rootování byly získány z: https://4pda.ru/forum/index.php? Showtopic = 881982
Pokud máte jiný operační systém než Windows a telefon jiný než Android (můžete používat virtuální s nox), použijte odkaz výše (použijte Google Translate) a přečtěte si pokyny, jinak postupujte podle manuálu zde.
Abychom mohli rootovat, musíme z vašeho vakua získat IP adresu a token.
Rozbalte root.7z.
Nainstalujte si Mihome z Vevs na svůj Android. Můžete použít jeden z archivu, nebo pokud je tato instrukce datována, nejnovější verzi lze získat z jeho webových stránek (https://www.kapiba.ru/2017/11/mi-home.html) nebo z jeho Disku Google (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)
Přihlaste se do svého MiHome. Na svém účtu musíte nastavit China Mainland a přidat k němu vakuum).
Klepněte na ikonu vakua Nastavení (tři tečky vpravo nahoře) Obecná nastavení Informace o síti
Vyplňte IP adresu a token ve win-mirobo/win-mirobo.ini
Zakázat bránu firewall v systému Windows. Spusťte win-mirobo.bat a flashujte firmware.
!!!!!!!!! V1 je pro v1 Vacuum a V2 je pro v2 Vacuum (Roborock S50) !!!!!!! Pokud jste blikli špatně FW - přejděte na odkaz 4pda (první v tomto kroku) a přečtěte si, jak obnovit.
Arter Vacuum se restartuje - úspěšně jste rootovali své vakuum a nyní k němu máte přístup pomocí ssh!
SSH k tomu (s tmelem) s čističem/čističem. Změňte své heslo pomocí hesla
Krok 2: Nainstalujte a nakonfigurujte potřebné balíčky pod rootem ve vakuu
Předpoklad
Místo webhooků používá MiVacuum protokol miio, stejně jako všechna zařízení XiaoMi IoT. Abychom porozuměli webhookům, musíme se to naučit. Potřebujeme prostředníka, který dokáže chytit webhook a přeložit ho do protokolu miio do zařízení. Existuje knihovna pythonu (https://github.com/rytilahti/python-miio), ale nemůžeme ji použít ve vakuu, protože pro vakuum není dostatek místa pro Python 3.5+.
Ale naštěstí existuje knihovna php-miio (https://github.com/skysilver-lab/php-miio), která je poměrně velmi lehká a právě to budeme používat (btw, používá se také ve win-mirobo výše). Ten, kdo chytí webhook, je webhook daemon (https://github.com/adnanh/webhook), který spouští skript pro php na příchozím webhooku.
SSH do vašeho vakua (s tmelem):
#Udělejte pod rootem. Ano, vím, že to není bezpečné.. whatevs.sudo su #Zde nainstalujeme všechny potřebné položky apt-get install -y wget php5-cli nano #Všechno ostatní bude /opt cd /opt
#Stáhněte si php-miio
#Zkontrolujte nejnovější na github. Opravte řádky níže podle nejnovějšího 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
#Stáhněte si démona webhooks
#Zkontrolujte nejnovější na github. Správný řádek níže podle nejnovějšího 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
#Vytvořte nastavení pro webhook
nano /opt/webhook/hooks.json #Input hooks.json content here. Klikněte pravým tlačítkem na tmel. #Ctr+X Uložit Y.
#Vytvořte skript pro volání php-miio
nano /opt/webhook/mirobo.sh #Zadejte obsah mirobo.sh zde. Klikněte pravým tlačítkem na tmel. # Ctr +X Uložit Y. # Vytvořit spustitelný soubor chmod +x /opt/webhook/mirobo.sh
#Vytvořte skript pro automatické spuštění a obnovte konfigurace
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 výchozí nastavení webhook.sh
#Restartujte systém
restartovat
Po restartu vyzkoušejte svá nastavení v prohlížeči:
192.168.your.ip: 9000/hooks/mirobo? method = find_me
metoda - příkaz
params - parametry
Všechny metody (příkazy) a parametry najdete zde:
github.com/marcelrv/XiaomiRobotVacuumProtocol
Obsah hooks.json
Zde změňte svůj token na token z vakua.
Opravte IP-whitelist pro vaši místní síť nebo úplně odeberte, pokud spustíte háčky odjinud (nebezpečné).
[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/opt/webhook", "response-message": "Provádění skript mirobo "," include-command-output-in-response ": false," pass-environment-to-command ": [{" source ":" 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 "}}}]
obsah souboru mirobo.sh. Stačí zkopírovat a vložit. Existují pouze dva řádky (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 ']}'
Krok 3: Nastavení tlačítek Amazon Dash
Otevřete aplikaci Amazon. Přejděte na Dash Devices. Přidejte nové tlačítko pomlčky jako obvykle. Na výzvu k výběru produktu NEDĚLEJTE. Zavřete aplikaci. Jsi hotov.
Krok 4: Nastavení směrovače k zachycení požadavku na tlačítko a ovládání MiVacuum
Funguje to následovně.
Když je stisknuto tlačítko, přidruží se k vaší síti a požádá server dhcp o přiřazení jeho adresy. Musíme tento požadavek zachytit a provést webhook do vakua. Jako další bezpečnostní opatření zablokujeme připojení k Amazonu, aby Amazon nevěděl, že jsme dokonce stiskli tlačítko a neměli možnost tlačit aktualizaci firmwaru nebo něco jiného.
Většinou používám WinBox, ale někdy je terminál jednodušší.
#Create firewall drop rule with address list to block
/ip firewall filter add chain = forward src-address-list = blockdash action = zrušit komentář = "Drop Amazon Dash"
Pak musíme pro každé tlačítko vytvořit pravidlo zapůjčení dhcp. Velmi snadné ve winboxu.
Server DHCP - pronájem
Jednoho stiskneme tlačítko, objeví se nový pronájem. Klikneme na to jako statické a nastavíme seznam adres na 'blockdash', nastavíme dobu zapůjčení na 5 sekund (aby pronájem vypršel před dalším stisknutím) a zkopírujeme adresu mac na později.
#Tento příkaz je pouze pro referenci, pokud jste přidali pronájem ve winboxu, jednoduše jej přeskočte.
/ip dhcp-server leasing add address-list = blockdash mac-address = XXXXXXXXXX adresa = 192.168.x.x doba zapůjčení = 5 s
Nyní musíme ukázat na pronájem skriptu.
Otevřete kartu DHCP a přidejte 'myLeaseScript' jako skript pro zapůjčení na váš server dhcp.
Nyní otevřete System - Scripts a přidejte 'myLeaseScript' s oprávněním ke čtení a testování.
Obsah myLeaseScript:
#Script se zavolá dvakrát při zapůjčení (1) a při vydání (0): if ($ leaseBound = 1) do = { /log info („Running myLeaseScript. SomePressPress Dash Button?“)
#Array všech vašich tlačítek a URL pro volání
: místní tlačítka {"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"; };
#Zkontrolujte zaškrtnuté tlačítko 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-metoda = url příspěvku = $ url}}}
Nyní jste úklid zautomatizovali stisknutím tlačítka Amazon Dash. Bavte se
Věnujte pozornost: Odesílání webhooků nezašifrováno je velmi nebezpečné. Webhook může používat šifrování, ale jakkoli jsem se snažil, aby fungoval, nikdy se to nestalo. Vzhledem k tomu, že jej používám pouze ve své místní síti, nejsem příliš znepokojen. Pokud jej však chcete použít přes internet k připojení k IFTTT s integrací Google Assistant, věnujte pozornost této skutečnosti! Nejsem si jistý, co bylo důvodem selhání kryptoměny v mém případě. Certifikáty s vlastním podpisem, které jsem porazil, vydané letsencrypt. Překomplikovanou síť se spoustou NATů jsem porazil s ipv6. Ale zdá se mi, že webhooky fungují velmi špatně s certifikáty a ve skutečnosti velmi špatně zdokumentované. A vypadá to, že IFTTT nefunguje s ipv6. Zkoušel jsem všechno možné, ale neuspěl jsem. Možná budete mít větší štěstí. Nezapomeňte napsat příspěvek.
upd: Mám nápad, jak to zajistit bezpečněji bez šifrování. Pro každou akci, kterou chcete provést, vytvoříte několik skriptů. Upravíte mirobo.sh tak, aby skript zavolal pro daný parametr odeslaný do webhooku, např. čistý_pokoj. A je to. Nejvíce lidí, kteří využijí háček, bude znovu a znovu čistit vaši ložnici …)) Jakmile to udělám, aktualizuji pokyny
Krok 5: Jak vykreslit mapu
Jakmile budete mít v aplikaci MiHome připravenou celou mapu, odešlete vakuum na konkrétní místo pomocí příkazu „app_goto“.
Vytvořte snímek obrazovky plné mapy s odeslanou pozicí a základnou. Základním bodem po restartu vakua je poloha [25500, 25500] TOTO NENÍ POLOHA NABÍJECÍHO ZÁKLADU, ale pokud restartujete vakuum na nabíjecí základně, pak bude poloha nabíjecí základny 25500, 25500. Takže ze známé polohy odesláno a základní pozici můžete vykreslit svou mapu na libovolném programu CAD pomocí pořízeného snímku obrazovky. Použil jsem bezplatný QCAD.
Po přizpůsobení obrázku do mřížky použiji čáru přes místnost k měření počátečního a koncového bodu zóny.
Doporučuje:
Zmáčkni tlačítko); // Hra Arduino LCD: 5 kroků (s obrázky)
Zmáčkni tlačítko); // Arduino LCD Game: Nedávno jsem ve skautech pracoval na zásluhovém odznaku Game Design. Pro jeden z požadavků jsem postavil tuto hru pomocí Arduina, který je založen na hře LED Rocker Game. Smyslem hry je získat co nejvyšší počet bodů. Na začátku t
Tlačítko fyzického ztlumení zoomovacích schůzek: 7 kroků (s obrázky)
Tlačítko fyzického ztlumení schůzek Zoom: Pokud používáte schůzky zoom pro práci nebo školu, toto tlačítko je pro vás! Stisknutím tlačítka přepnete ztlumení, podržením tlačítka opustíte schůzku (nebo ji ukončíte, pokud jste hostitelem). skvělé na tom je, že to funguje, i když vaše Zoom windo
Inteligentní tlačítko Wi-Fi napájené bateriemi pro ovládání světel HUE: 5 kroků (s obrázky)
Inteligentní tlačítko Wi-Fi napájené bateriemi pro ovládání světel HUE: Tento projekt ukazuje, jak vytvořit bateriové tlačítko IoT Wi-Fi za méně než 10 minut. Tlačítko ovládá světla HUE přes IFTTT. Dnes můžete stavět elektronická zařízení a připojovat je k dalším chytrým domácím zařízením doslova během několika minut. Co je
Bezdrátové bezpečnostní tlačítko pro bezpečnost PLC: 6 kroků (s obrázky)
Tlačítko bezdrátové bezpečnosti pro bezpečnost PLC: Tento projekt je mým důkazem koncepce používání IoT a (případně) robotiky k vytvoření další vrstvy bezpečnosti pro nebezpečná výrobní zařízení. Toto tlačítko lze použít ke spuštění nebo zastavení více procesů, včetně ovládání signálu
Tlačítko Pizza: 13 kroků (s obrázky)
Pizza Button: Sophomore vysokoškolští muži, Newyorčané, pozdě v noci technici a opravdu líní: vítejte ve své fantazii. Představujeme dokonalý upgrade v gastronomické technologii, Pizza Button. Při objednávání pizzy už nemusíte zvedat telefon. Jednoduše stiskněte