Tartalomjegyzék:
- 1. lépés: Szerezze be a token és gyökér vákuumot
- 2. lépés: Telepítse és konfigurálja a szükséges csomagokat gyökér vákuum alatt
- 3. lépés: Állítsa be az Amazon Dash gombokat
- 4. lépés: Állítsa be az útválasztót a gombkérésre és a MiVacuum vezérlésére
- 5. lépés: A térkép ábrázolása
Videó: XiaoMi vákuum + Amazon gomb = műszerfal tisztítása: 5 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
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
- Vákuumot gyökereztünk
- Telepítse és konfigurálja a szükséges csomagokat root -on vákuum alatt
- Állítsa be az Amazon Dash gombot
- Á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
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
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
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:
Vezeték nélküli ajtócsengő - (Raspberry PI és Amazon Dash): 4 lépés (képekkel)
Vezeték nélküli csengő - (Raspberry PI és Amazon Dash): Mit tesz? (lásd a videót) Amikor megnyomja a gombot, Raspberry felfedezi az új eszköz naplózását a vezeték nélküli hálózaton. Így felismeri a megnyomott gombot, és továbbítja az ezzel kapcsolatos információkat a mobiltelefonjához (vagy a készülékéhez)
Amazon Dash Button Silent Doorbell: 10 lépés (képekkel)
Amazon Dash gomb csendes ajtócsengő: Állandóan kinéz az ablakon, hogy elhallgassa a látogatókat, mielőtt csengetnek? Belefáradt abba, hogy a kutyák és a baba megbolondulnak, amikor megszólal? Ne akarjon vagyont költeni egy " okos " megoldás? A néma ajtócsengő elkészítése olyan
Csúszás az Amazon Fire Remote TV távirányítón: 3 lépés (képekkel)
Csúszás az Amazon Fire Remote TV távirányítón: Ó, Amazon, a Fire TV olyan csodálatos, miért nem adtál nekünk hangerőszabályzót a távirányítón? Nos, kevesebb mint 5 dollárért az Amazon -on megvásárolhatja ezt az aranyos kis távirányítót, tápellátást, némítást , hangerő és csatorna egy kis csomagban. Írja be a 3D nyomtatót, és
A fény/otthoni fények vezérlése az Arduino és az Amazon Alexa használatával: 16 lépés (képekkel)
A fény/otthoni fények vezérlése az Arduino és az Amazon Alexa használatával: Elmagyaráztam, hogyan lehet szabályozni az UNO -hoz csatlakoztatott és az Alexa által vezérelt fényt
Az Amazon Echo saját verziója: 8 lépés (képekkel)
Az Amazon Echo saját verziója: Sziasztok, azt hiszem, mindenki ismeri az Amazon legújabb Amazon Echo termékét, amely egy hangvezérelt eszköz, azaz hangunkkal irányíthatjuk az eszközt, és még beszélni is tud velünk. Ebből az ötlettől ihletve elkészítettem saját verziómat, amely