Tartalomjegyzék:

XiaoMi vákuum + Amazon gomb = műszerfal tisztítása: 5 lépés (képekkel)
XiaoMi vákuum + Amazon gomb = műszerfal tisztítása: 5 lépés (képekkel)

Videó: XiaoMi vákuum + Amazon gomb = műszerfal tisztítása: 5 lépés (képekkel)

Videó: XiaoMi vákuum + Amazon gomb = műszerfal tisztítása: 5 lépés (képekkel)
Videó: 🟡 POCO X5 PRO - САМЫЙ ДЕТАЛЬНЫЙ ОБЗОР и ТЕСТЫ 2024, November
Anonim
XiaoMi Vákuum + Amazon gomb = Vonatisztítás
XiaoMi Vákuum + Amazon gomb = Vonatisztítás

Ez az utasítás elmagyarázza, hogyan kell használni a tartalék Amazon Dash gombokat a XiaoMi vákuum vezérléséhez.

Kaptam egy csomó Amazon gombot, amikor 1 dollár volt, és nem használtam őket. De egy új robotporszívó fogadásakor úgy döntöttem, hogy nagyon kényelmes lenne ezeket a gombokat a vákuum vezérlőjeként használni.

Nyomja meg a Ziploc gombot, és porszívózni fogja a hálószobát.

Nyomja meg a Glad gombot, és porszívózni fogja a nappalit.

Nyomja meg a Fidzsi -szigeteket.. nos, megvan az ötlete.

Ebben a projektben sok hack van az interneten. Nagyon értékelem a sok ember által végzett munkát, és úgy gondolom, hogy meg kell osztanom a kutatásaik alapján a kis eszközömet.

Jogi nyilatkozat: Minden alábbi lépést saját felelősségére tesz! Ha gondosan követi a lépéseket, nagyon kicsi az esélye annak, hogy valamit megsérül. De ez nem történik meg! És nem vállalok felelősséget érte. BTW minden lépést meg lehet fordítani, így potenciálisan nincs garanciaszegés. De persze - YMMV

Az alapelv az, hogy elkapjuk a kötőjel gombot az útválasztón, és elküldjük a webhook -ot a Vákuumnak, ahelyett, hogy az Amazon -tól vásárolnánk dolgokat.

Amire szüksége lesz:

  • Router egyedi firmware -rel, amely képes a DHCP vezérlésére, szkriptek futtatására és a get | post lekérdezések teljesítésére. Mikrotik, DD-WRT, OpenWRT, paradicsom stb.
  • XiaoMi vákuum. v1 vagy v2
  • Amazon Dash gombok

Konkrétan amit használtam:

  • Mikrotik
  • XiaoMi v2 Vákuum Roborock S50
  • Egy csomó Amazon Dash gomb

Itt az eljárás

  1. Vákuumot gyökereztünk
  2. Telepítse és konfigurálja a szükséges csomagokat root -on vákuum alatt
  3. Állítsa be az Amazon Dash gombot
  4. Állítsa be az útválasztót a gombkérés elfogására és a vákuum vezérlésére

Megjegyzés: Valójában nem kell gyökereztetnie a vákuumot annak ellenőrzéséhez. Ha van más szervere a hálózaton (vagy bárhol), amely futtatni tudja a python -ot vagy a php -t, akkor webhookokat irányíthat hozzájuk. De én nem. És rendben és tömören akartam tartani magát a porszívót. Tehát ha nem tetszik a megközelítésem, feltételezem, hogy ebből az olvasásból kitalálhatja, hogyan kell beállítani a saját középső szerverét. Menj egyenesen a 2 -es pontra.

Ok, itt tartunk…

1. lépés: Szerezze be a token és gyökér vákuumot

Szerezze be a tokent és a gyökér vákuumot
Szerezze be a tokent és a gyökér vákuumot
Szerezze be a tokent és a gyökér vákuumot
Szerezze be a tokent és a gyökér vákuumot
Szerezze be a tokent és a gyökér vákuumot
Szerezze be a tokent és a gyökér vákuumot
Szerezze be a tokent és a gyökér vákuumot
Szerezze be a tokent és a gyökér vákuumot

Minden szoftver, fimware és utasítás a gyökerezéshez a következő címen szerezhető be: https://4pda.ru/forum/index.php? Showtopic = 881982

Ha nem Windows operációs rendszerrel rendelkezik, és telefonja nem Android (a virtuálisat nox -el is használhatja), kérjük, kövesse a fenti linket (használja a Google Fordítót), és olvassa el az utasításokat, különben kövesse az itt található útmutatót.

A rootoláshoz meg kell szereznünk az ip címet és a tokent a vákuumból.

Csomagolja ki a gyökeret.7z.

Kérjük, telepítse a Mihome -t a Vevs -ből Androidra. Használhat egyet az Archívumból, vagy ha ez az utasítás kelt, akkor a legfrissebb verziót a webhelyéről (https://www.kapiba.ru/2017/11/mi-home.html) vagy a Google Drive-ról (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)

Jelentkezzen be a MiHome -ba. Be kell állítania a kínai szárazföldi fiókot, és hozzá kell adnia a vákuumot).

Érintse meg a Vákuum ikon Beállítások (Három pont a jobb felső sarokban) Általános beállítások Hálózati információk

Töltse ki az ip-címet és a tokent a win-mirobo/win-mirobo.ini fájlban

Tiltsa le a tűzfalat az ablakokban. Indítsa el a win-mirobo.bat programot, és frissítse a firmware-t.

!!!!!!!!! V1 a v1 vákuumhoz és V2 a v2 vákuumhoz (Roborock S50) !!!!!!! Ha rosszul villogott az FW - lépjen a 4pda linkre (ebben a lépésben először), és olvassa el, hogyan kell helyreállítani.

Az Arter Vacuum újraindul - sikeresen meggyökerezte a porszívót, és most hozzáférhet az ssh -n keresztül!

SSH hozzá (Putty -val) a tisztítóval/tisztítóval. Váltson át jelszavára a passwd használatával

2. lépés: Telepítse és konfigurálja a szükséges csomagokat gyökér vákuum alatt

Feltevés

A webhorgok helyett a MiVacuum miio protokollt használ, mint minden XiaoMi IoT eszköz. Tehát meg kell tanulnunk, hogy megértsük a webhookokat. Szükségünk van egy középső emberre, aki képes elkapni a webhook -ot, és lefordítani azt miio protokollra az eszközre. Van python könyvtár (https://github.com/rytilahti/python-miio), de nem használhatjuk vákuumban, mivel nincs elég hely a Python 3.5+ számára a vákuumban.

De szerencsére van egy php-miio könyvtár (https://github.com/skysilver-lab/php-miio), amely viszonylag nagyon könnyű, és ezt fogjuk használni (btw fent a win-mirobo-ban is használják)). A webhookot elkapja a webhook démon (https://github.com/adnanh/webhook), aki a bejövő webhookon futtatja a php szkriptjét.

SSH a vákuumhoz (Putty -val):

#Csinálj gyökér alatt. Igen, tudom, hogy nem biztonságos..whatevs.sudo su #Itt telepítünk minden szükségeset apt-get install -y wget php5-cli nano

#Töltse le a php-miio fájlt

#Nézze meg a legújabbat a githubon. Javítsa ki az alábbi sorokat a legújabb wget szerint: 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

#Töltse le a webhooks démont

#Nézze meg a legújabbat a githubon. Helyes sor alább a legújabb wget szerint 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

#Hozzon létre beállításokat a webhook számára

nano /opt/webhook/hooks.json #Írja be a hooks.json tartalmat ide. Jobb klikk a gittben. #Ctr+X Mentés Y.

#Szkript létrehozása a php-miio hívásához

nano /opt/webhook/mirobo.sh #Írja be a mirobo.sh tartalmat itt. Jobb klikk a gittben. # Ctr +X Mentés Y. # Futtatható chmod +x /opt/webhook/mirobo.sh létrehozása

#Hozzon létre automatikus indítási szkriptet és újítsa meg a konfigurációkat

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 webhook.sh alapértelmezett

#Indítsa újra a rendszert

újraindítás

Az újraindítás után ellenőrizze a beállításokat a böngészőben:

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

módszer - parancs

params - paraméterek

Minden módszer (parancs) és paraméter megtalálható itt:

github.com/marcelrv/XiaomiRobotVacuumProtocol

A hooks.json tartalma

Változtassa meg itt a-tokenjét vákuumból származó tokenre.

Javítsa ki az ip-engedélyezőlistát a helyi hálózatához, vagy távolítsa el teljesen, ha a horgokat máshonnan futtatja (nem biztonságos).

[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/opt/webhook", "response-message": "Végrehajtás mirobo script "," include-command-output-in-response ": hamis," pass-environment-to-command ": [{" source ":" string "," envname ":" token "," name ": "your-token-here"}], "pass-argumentum-to-command": [{"source": "url", "name": "method"}, {"source": "url", "name ":" params "}]," trigger-rule ": {" match ": {" type ":" ip-whitelist "," ip-range ":" 192.168.1.0/24 "}}}]

mirobo.sh fájl tartalma. Csak másolja be. Csak két sor van (nem 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 ']}'

3. lépés: Állítsa be az Amazon Dash gombokat

Nyissa meg az Amazon alkalmazást. Lépjen a Dash Devices oldalra. Adjon hozzá új kötőjel gombot a szokásos módon. A termék kiválasztására vonatkozó felszólításon NE. Zárja be az alkalmazást. Kész vagy.

4. lépés: Állítsa be az útválasztót a gombkérésre és a MiVacuum vezérlésére

Állítsa be az útválasztót a gomb lekérésére és a MiVacuum vezérléséhez
Állítsa be az útválasztót a gomb lekérésére és a MiVacuum vezérléséhez
Állítsa be az útválasztót a gomb lekérésére és a MiVacuum vezérléséhez
Állítsa be az útválasztót a gomb lekérésére és a MiVacuum vezérléséhez
Állítsa be az útválasztót a gomb lekérésére és a MiVacuum vezérléséhez
Állítsa be az útválasztót a gomb lekérésére és a MiVacuum vezérléséhez

Ez a következőképpen működik.

Amikor megnyomja a gombot, a hálózathoz kapcsolódik, és felkéri a dhcp szervert, hogy rendeljen hozzá egy it címet. El kell fogadnunk ezt a kérést, és egy vákuumot kell végrehajtanunk. További biztonsági intézkedésként blokkoljuk az Amazonhoz való csatlakozást, hogy az Amazon ne tudja, hogy még a gombot is megnyomtuk, és nem tudja nyomni a firmware frissítését vagy valami mást.

Többnyire WinBox -ot használok, de néha a terminál egyszerűbb.

#Hozzon létre tűzfal -cseppszabályt a letiltandó címlistával

/ip tűzfalszűrő lánc hozzáadása = továbbítás src-address-list = blockdash action = drop comment = "Drop Amazon Dash"

Ezután minden gombhoz létre kell hoznunk egy dhcp bérleti szabályt. Winbox -ban nagyon könnyű csinálni.

DHCP szerver - lízing

Amikor megnyomjuk a gombot, megjelenik az új bérleti szerződés. Statikusra kattintunk, és a címlistát „blokkolás” -ra állítjuk, a bérleti időt 5 másodpercre állítjuk (hogy a bérlet a következő megnyomás előtt lejárjon), és másoljuk a mac -címet későbbre.

#Ez a parancs csak referenciaként szolgál, ha a bérlést hozzáadta a winboxhoz, csak hagyja ki.

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

Most rá kell mutatnunk a bérleti forgatókönyvre.

Nyissa meg a DHCP lapot, és adja hozzá a „myLeaseScript” -et bérleti szkriptként a dhcp szerverhez.

Most nyissa meg a System - Scripts parancsot, és adja hozzá a „myLeaseScript” olvasási és tesztelési jogosultságokkal.

A myLeaseScript tartalma:

A #Script -et kétszer hívják bérbeadáskor (1) és kiadáskor (0): if ($ leaseBound = 1) do = { /log info ("A myLeaseScript futtatása. Valaki megnyomta a Dash gombot?")

#Az összes gomb és url -hívás tömbje

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

#Ellenőrizze a megnyomott gombot és az összes URL -t

: foreach mac, url in = $ gombok do = {: if ($ mac = $ leaseActMAC) do = { /log info ("Pressed". $ mac. "button") /tool fetch keep-result = no mode = https http-method = post url = $ url}}}

Most automatizálta a tisztítást az Amazon Dash gomb megnyomásával. Érezd jól magad

Kérjük, figyeljen: Nagyon veszélyes a webhorgok titkosítatlan küldése. A Webhook használhat titkosítást, de megpróbáltam működésre bírni, de soha nem történt meg. Mivel csak a helyi hálózatomban használom, nem aggódom túlságosan. De ha interneten keresztül szeretné használni az IFTTT -t a Google Assistant integrációval, akkor figyeljen erre a tényre! Nem tudom, hogy az én esetemben mi volt a titkosítási hiba oka. Saját aláírt tanúsítványok, amelyekkel legyőztem, letencrypt adta ki. Túl bonyolult hálózat, rengeteg NAT -tal, amit ipv6 -al vertem meg. De nekem úgy tűnik, hogy a webhooks nagyon rosszul működik a tanúsítványokkal és valójában nagyon rosszul van dokumentálva. És úgy tűnik, hogy az IFTTT nem működik az ipv6 -tal. Mindent megpróbáltam, de nem sikerült. Lehet, hogy nagyobb szerencséje lesz. Ne felejts el bejegyzést készíteni.

update: Van egy ötletem, hogyan tehetem biztonságosabbá titkosítás nélkül. Létrehoz néhány szkriptet minden végrehajtandó művelethez. Módosítja a mirobo.sh parancsot, hogy meghívja a szkriptet a webhookba küldött megadott paraméterhez, pl. tiszta_szoba. Ez az. A legtöbb ember, aki kihasználja a kampót, újra és újra meg fogja takarítani a hálószobáját …)) Ha ezt megteszem, frissítem az oktathatót

5. lépés: A térkép ábrázolása

Hogyan ábrázoljuk a térképet
Hogyan ábrázoljuk a térképet

Miután elkészítette a teljes térképet a MiHome alkalmazásban, küldje el porszívóját egy adott helyre az „app_goto” paranccsal.

Készítsen képernyőképet a teljes térképről, elküldve a pozíciót és az alapot. A bázispont a vákuum újraindítása után a [25500, 25500] pozíció. EZ NEM A TÖLTÉSI ALAP POZÍCIÓJA, de ha újraindítja a vákuumot a töltőállomáson, akkor a töltőbázis helyzete 25500, 25500 lesz. és az alaphelyzetben bármelyik CAD programon megjelenítheti térképét az elkészített képernyőkép segítségével. Ingyenes QCAD -t használtam.

Miután a képet a rácsra illesztettem, egy vonalat használok a helyiségben a zóna kezdő és végpontjának mérésére.

Ajánlott: