Indholdsfortegnelse:
- Trin 1: Få Token og Root Vacuum
- Trin 2: Installer og konfigurer nødvendige pakker under rod på vakuum
- Trin 3: Konfigurer Amazon Dash -knapper
- Trin 4: Konfigurer router til at fange knapanmodning og kontrollere MiVacuum
- Trin 5: Sådan tegnes dit kort
Video: XiaoMi Vacuum + Amazon Button = Dash Cleaning: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Denne vejledning forklarer, hvordan du bruger dine ekstra Amazon Dash -knapper til at styre XiaoMi -støvsuger.
Jeg fik en flok Amazon -knapper liggende fra det tidspunkt, de var $ 1, og jeg havde ingen brug af dem. Men da jeg modtog et nyt robotstøvsuger, besluttede jeg, at det ville være meget bekvemt at bruge disse knapper som en kontrol til vakuumet.
Tryk på Ziploc -knappen, og det støvsuger soveværelset.
Tryk på Glad -knappen, og det vil støvsuge stuen.
Tryk på Fiji.. godt du har idéen.
I dette projekt er der inkorporeret mange hacks fra internettet. Jeg sætter virkelig pris på det arbejde, så mange mennesker har udført, og tror, at jeg skal dele min lille ting ud fra deres forskning.
Ansvarsfraskrivelse: Alle trin nedenfor gør du på egen risiko! Hvis du følger trinene omhyggeligt, er der meget lille chance for, at du kan beskadige noget. Men det sker ikke! Og jeg tager intet ansvar for det. BTW alle trin kan vendes, så potentielt er der ingen overtrædelse af garantien. Men selvfølgelig - YMMV
Det grundlæggende princip er, at vi fanger bindestregsknappen på routeren og sender webhook til Vacuum i stedet for at købe ting fra Amazon.
Det skal du bruge:
- Router med brugerdefineret firmware, der kan styre DHCP, køre scripts og opfylde forespørgsler. Mikrotik, DD-WRT, OpenWRT, Tomato osv.
- XiaoMi vakuum. v1 eller v2
- Amazon Dash -knapper
Specifikt hvad jeg brugte:
- Mikrotik
- XiaoMi v2 Vakuum Roborock S50
- Flok Amazon Dash -knapper
Her er proceduren
- Vi roder vakuum
- Installer og konfigurer nødvendige pakker under rod på vakuum
- Opsætning af Amazon Dash -knap
- Setup Router til at fange knapanmodning og styre støvsuger
NB: Faktisk behøver du ikke at rode dit vakuum for at kontrollere det. Hvis du har en anden server på dit lan (eller hvor som helst), der kan køre python eller php, kan du dirigere webhooks til dem. Men det gør jeg ikke. Og jeg ville holde det ryddeligt og kompakt på selve vakuumet. Så hvis du ikke kan lide min tilgang, antager jeg, at du kan finde ud af, hvordan du konfigurerer din egen mellemmands -server fra denne læsning. Bare gå direkte til punkt 2.
Ok, her går vi…
Trin 1: Få Token og Root Vacuum
Al software, fimware og instruktion til rooting blev hentet fra: https://4pda.ru/forum/index.php? Showtopic = 881982
Hvis du har et andet operativsystem end Windows og en anden telefon end Android (du kan bruge virtual with nox), skal du følge linket ovenfor (brug Google Translate) og læse vejledningen, ellers følg vejledningen her.
For at root skal vi hente ip -adresse og token fra dit vakuum.
Pak rod ud. 7z.
Installer venligst Mihome fra Vevs på din Android. Du kan bruge en fra arkivet, eller hvis denne instruktion er dateret, kan den nyeste version hentes fra hans websted (https://www.kapiba.ru/2017/11/mi-home.html) eller hans Google Drive (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)
Log ind på dit MiHome. Du skal indstille China Mainland på din konto og tilføje vakuum til den).
Tryk på Vakuumikon Indstillinger (Tre prikker øverst til højre) Generelle indstillinger Netværksoplysninger
Udfyld ip-adresse og token i win-mirobo/win-mirobo.ini
Deaktiver firewall i Windows. Start win-mirobo.bat og flash firmwaren.
!!!!!!!!! V1 er for v1 Vacuum og V2 er for v2 Vacuum (Roborock S50) !!!!!!! Hvis du blinkede forkert FW - gå til 4pda link (først i dette trin) og læs hvordan du gendanner.
Arter Vacuum genstarter - du har med succes rodfæstet dit vakuum, og nu har du adgang til det via ssh!
SSH til det (med Putty) med rengøringsmiddel/rengøringsmiddel. Skift til din adgangskode med passwd
Trin 2: Installer og konfigurer nødvendige pakker under rod på vakuum
Forudsætning
I stedet for webhooks bruger MiVacuum miio -protokol, ligesom alle XiaoMi IoT -enheder. Så vi er nødt til at lære det at forstå webhooks. Vi har brug for en mellemmand, der kan fange webhook og oversætte det til miio -protokol til enhed. Der er python-bibliotek (https://github.com/rytilahti/python-miio), men vi kan ikke bruge det på vakuum, da der ikke er nok plads til Python 3.5+ på vakuumet.
Men heldigvis er der et php-miio-bibliotek (https://github.com/skysilver-lab/php-miio), der er forholdsvis meget let, og det er det, vi vil bruge (btw det bruges også i win-mirobo ovenfor). Den, der fanger webhook er webhook -dæmon (https://github.com/adnanh/webhook), der kører scriptet til php på indgående webhook.
SSH til dit vakuum (med kitt):
#Gør under rod. Ja jeg ved det ikke er sikkert..whatevs.sudo su #Her installerer vi alle nødvendigheder apt-get install -y wget php5-cli nano #Alt andet kommer til /opt cd /opt
#Download php-miio
#Tjek det seneste på github. Korrekte linjer herunder i henhold til den seneste wget 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
#Download webhooks -dæmon
#Tjek det seneste på github. Korrekt linje herunder i henhold til den seneste wget 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
#Opret indstillinger for webhook
nano /opt/webhook/hooks.json #Input hooks.json indhold her. Højreklik i kit. #Ctr+X Gem Y.
#Opret script til opkald til php-miio
nano /opt/webhook/mirobo.sh #Indtast mirobo.sh -indhold her. Højreklik i kit. # Ctr +X Gem Y. # Lav eksekverbar chmod +x /opt/webhook/mirobo.sh
#Opret autostart -script og forny konfigurationer
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 som standard
#Genstart systemet
genstarte
Efter genstart test dine indstillinger i browseren:
192.168.your.ip: 9000/hooks/mirobo? method = find_me
metode - kommando
params - parametre
Alle metoder (kommandoer) og parametre kan du finde her:
github.com/marcelrv/XiaomiRobotVacuumProtocol
Krogens indhold.json
Skift dit-token-her til dit token fra vakuum.
Ret ip-hvidlisten til dit lokale netværk, eller fjern helt, hvis du kører dine kroge andre steder (usikkert).
[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/opt/webhook", "response-message": "Udfører mirobo script "," include-command-output-in-response ": false," pass-environment-to-command ": [{" source ":" string "," envname ":" token "," name ": "dit-token-her"}], "pass-argument-to-command": [{"source": "url", "name": "method"}, {"source": "url", "name ":" params "}]," trigger-rule ": {" match ": {" type ":" ip-hvidliste "," ip-range ":" 192.168.1.0/24 "}}}}]
mirobo.sh filindhold. Bare kopier-indsæt. Der er kun to linjer (ikke 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 ']}'
Trin 3: Konfigurer Amazon Dash -knapper
Åbn din Amazon -app. Gå til Dash Devices. Tilføj ny stregknap som normalt. På promt at vælge et produkt IKKE. Luk appen. Du er færdig.
Trin 4: Konfigurer router til at fange knapanmodning og kontrollere MiVacuum
Dette fungerer som følger.
Når der trykkes på knappen, knytter den sig til dit netværk og beder dhcp -serveren om at tildele en it -adresse. Vi er nødt til at fange den anmodning og udføre en webhook til et vakuum. Som en ekstra sikkerhedsforanstaltning blokerer vi forbindelsen til Amazon, så Amazon ikke ved, at vi selv har trykket på knappen og ikke har mulighed for at skubbe firmwareopdatering eller noget andet.
For det meste bruger jeg WinBox, men nogle gange er terminal bare lettere.
#Opret firewall -drop -regel med adresseliste, der skal blokeres
/ip firewall filter tilføj kæde = videresend src-address-list = blockdash action = drop comment = "Drop Amazon Dash"
Derefter skal vi oprette en dhcp -leaseregel for hver knap. Meget let at gøre i winbox.
DHCP -server - lejemål
Når vi trykker på knappen, vises den nye lejekontrakt. Vi klikker på det som statisk og sætter adresselisten til 'blockdash', sætter leasetid til 5 sekunder (så leasingperioden udløber inden næste tryk) og kopierer mac -adressen til senere.
#Denne kommando er kun til reference, hvis du tilføjede lejekontrakt i winbox, bare spring den over.
/ip dhcp-server lease tilføj adresseliste = blockdash mac-adresse = XXXXXXXXXX adresse = 192.168.x.x leasingtid = 5s
Nu skal vi pege på at lease script.
Åbn DHCP -fanen, og tilføj 'myLeaseScript' som et leasingscript på din dhcp -server.
Åbn nu System - Scripts, og tilføj 'myLeaseScript' med læse-, testtilladelser.
Indhold i myLeaseScript:
#Script kaldes to gange ved lease (1) og ved udgivelse (0): if ($ leaseBound = 1) do = { /log info ("Kører myLeaseScript. Er der nogen, der har trykket på Dash Button?")
#Array af alle dine knapper og url til at ringe
: lokale knapper {"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"; };
#Kontroller den trykte knap og acll url
: foreach mac, url in = $ buttons do = {: if ($ mac = $ leaseActMAC) do = { /log info ("Presset". $ mac. "button") /tool fetch keep-result = no mode = https http-method = post url = $ url}}}
Nu har du automatiseret din rengøring med et tryk på Amazon Dash Button. Hav det sjovt
Vær opmærksom: Det er meget usikkert at sende webhooks ukrypteret. Webhook kan bruge kryptering, men jeg forsøgte dog at få det til at fungere, men det skete bare aldrig. Da jeg kun bruger det i mit lokale netværk, er jeg ikke så bekymret. Men hvis du ønsker at bruge det over internettet til at tilslutte IFTTT med Google Assistant -integration, skal du være opmærksom på dette! Jeg er ikke sikker på, hvad der var årsagen til en kryptofejl i mit tilfælde. Selvsignerede certifikater jeg slog med udstedt af letsencrypt. Overkompliceret netværk med flok NAT'er, jeg slog med ipv6. Men det forekommer mig, at webhooks fungerer meget dårligt med certifikater og faktisk meget dårligt dokumenteret. Og det ser ud til, at IFTTT ikke fungerer med ipv6. Jeg prøvede alt, hvad jeg kunne, men det lykkedes ikke. Du har måske et bedre held. Glem ikke at lave et indlæg.
upd: Jeg har en idé om, hvordan man gør det mere sikkert uden kryptering. Du opretter et par scripts for hver handling, du vil udføre. Du ændrer mirobo.sh for at kalde scriptet med den givne parameter sendt i webhook f.eks. clean_room. Det er det. Den mest person, der udnytter krogen, er at rense dit soveværelse igen og igen …)) Når jeg gør det, vil jeg opdatere det instruerbare
Trin 5: Sådan tegnes dit kort
Når du har dit fulde kort klar i din MiHome -app, sender du dit vakuum til en bestemt placering via kommandoen 'app_goto'.
Lav et skærmbillede af hele kortet med position sendt og base. Grundpunktet efter genstart af vakuum er positionen [25500, 25500] DETTE ER IKKE LADNINGSBASISPOSITIONEN, men hvis du genstarter vakuumet på ladestationen, vil ladestationens position være 25500, 25500. Så fra kendt position sendes og basisposition kan du plotte dit kort på ethvert CAD -program med det skærmbillede, du har taget. Jeg brugte gratis QCAD.
Efter at have tilpasset billedet til gitteret bruger jeg en linje på tværs af rummet til at måle start- og slutpunktet for zonen.
Anbefalede:
Trådløs dørklokke - (Raspberry PI & Amazon Dash): 4 trin (med billeder)
Trådløs dørklokke - (Raspberry PI & Amazon Dash): Hvad gør det? (se video) Når der trykkes på knappen, opdager Raspberry, at ny enhed logger på det trådløse netværk. På denne måde kan den genkende den knap, der bliver trykket på, og videregive oplysningerne om denne kendsgerning til din mobil (eller en enhed i din
Amazon Dash Button Silent Doorbell: 10 trin (med billeder)
Amazon Dash Button Silent Doorbell: Konstant at kigge ud af vinduet, så du kan opfange besøgende, før de ringer på døren? Træt af at hunde og baby går amok når som helst det ringer? Vil du ikke bruge en formue på en " smart " løsning? At lave en stille dørklokke er som
Slip på Amazon Fire Remote TV Remote: 3 trin (med billeder)
Slip på Amazon Fire Remote TV Remote: Åh Amazon, dit Fire TV er så fantastisk, hvorfor gav du os ikke volumenkontroller på din fjernbetjening? Nå, for mindre end $ 5 på Amazon kan du købe denne søde lille fjernbetjening, strøm, dæmp , volumen og kanal alt i en lille pakke. Indtast i 3D -printeren og
Sådan kontrolleres lys/hjemmelys ved hjælp af Arduino og Amazon Alexa: 16 trin (med billeder)
Sådan kontrolleres lys/hjemmelys ved hjælp af Arduino og Amazon Alexa: Jeg har forklaret, hvordan du styrer lys, der er forbundet til UNO og styres af Alexa
Egen version af Amazon Echo: 8 trin (med billeder)
Egen version af Amazon Echo: Hej fyre, jeg tror, at alle ved om amazons nyeste produkt Amazon Echo, som er en stemmestyret enhed, dvs. vi kan styre enheden med vores stemme, og den kan endda tale med os. Så inspireret af denne idé har jeg oprettet min egen version, som kan