Innholdsfortegnelse:
- Trinn 1: Få taket og rotvakuumet
- Trinn 2: Installer og konfigurer nødvendige pakker under rot på vakuum
- Trinn 3: Sett opp Amazon Dash Buttons
- Trinn 4: Konfigurer ruter for å fange knappeforespørsel og kontrollere MiVacuum
- Trinn 5: Slik plotter du kartet
Video: XiaoMi Vacuum + Amazon Button = Dash Cleaning: 5 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Denne instruksjonen vil forklare hvordan du bruker de ekstra Amazon Dash -knappene til å kontrollere XiaoMi -vakuum.
Jeg fikk en haug med Amazon -knapper fra de var $ 1, og jeg hadde ingen bruk av dem. Men da jeg mottok et nytt robotstøvsuger bestemte jeg meg for at det ville være veldig praktisk å bruke disse knappene som en kontroll for vakuumet.
Trykk på Ziploc -knappen, og det vil støvsuge soverommet.
Trykk på Glad -knappen, og det vil støvsuge stua.
Trykk på Fiji.. vel, du har ideen.
Dette prosjektet har mange hacks fra internett. Jeg setter stor pris på arbeidet så mange mennesker har gjort, og tror jeg må dele min lille ting basert på forskningen deres.
Ansvarsfraskrivelse: Alle trinnene nedenfor gjør du på egen risiko! Hvis du følger trinnene nøye, er det svært liten sjanse for at du kan skade noe. Men det skjer ikke! Og jeg tar ikke noe ansvar for det. BTW alle trinn kan reverseres, så potensielt er det ikke noe brudd på garantien. Men selvfølgelig - YMMV
Det grunnleggende prinsippet er at vi tar trykk på dash -knappen på ruteren og sender webhook til Vacuum i stedet for å kjøpe ting fra Amazon.
Dette trenger du:
- Ruter med egendefinert fastvare som kan kontrollere DHCP, kjøre skript og oppfylle spørsmål om innlegg. Mikrotik, DD-WRT, OpenWRT, tomat osv.
- XiaoMi vakuum. v1 eller v2
- Amazon Dash -knapper
Spesielt det jeg brukte:
- Mikrotik
- XiaoMi v2 Vakuum Roborock S50
- En haug med Amazon Dash -knapper
Her er fremgangsmåten
- Vi roter vakuum
- Installer og konfigurer nødvendige pakker under rot på vakuum
- Sett opp Amazon Dash -knapp
- Oppsettrouter for å fange knappeforespørsel og kontrollere vakuum
NB: Faktisk trenger du ikke å rote vakuumet ditt for å kontrollere det. Hvis du har en annen server på ditt lan (eller hvor som helst) som kan kjøre python eller php, kan du rette webhooks til dem. Men det gjør jeg ikke. Og jeg ønsket å holde det ryddig og kompakt på selve vakuumet. Så hvis du ikke liker min tilnærming, antar jeg at du kan finne ut hvordan du konfigurerer din egen mellommannsserver fra denne lesingen. Bare gå til punkt 2.
Ok, her går vi …
Trinn 1: Få taket og rotvakuumet
All programvare, fimware og instruksjon for rooting ble hentet fra: https://4pda.ru/forum/index.php? Showtopic = 881982
Hvis du har et annet operativsystem enn Windows og en annen telefon enn Android (du kan bruke virtual with nox), vennligst følg lenken ovenfor (bruk Google Translate) og les instruksjonene, ellers følg instruksjonene her.
For å rote må vi skaffe ip -adresse og token fra vakuumet ditt.
Pakk ut root.7z.
Vennligst installer Mihome fra Vevs på Android. Du kan bruke en fra arkivet, eller hvis denne instruksjonen er datert, kan den siste versjonen hentes fra nettstedet hans (https://www.kapiba.ru/2017/11/mi-home.html) eller Google Drive (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)
Logg på MiHome. Du må sette China Mainland på kontoen din og legge vakuum til den).
Trykk på Vakuumikon Innstillinger (Tre prikker øverst til høyre) Generelle innstillinger Nettverksinformasjon
Fyll ut ip-adresse og token i win-mirobo/win-mirobo.ini
Deaktiver brannmur i Windows. Start win-mirobo.bat og blink fastvaren.
!!!!!!!!! V1 er for v1 Vacuum og V2 er for v2 Vacuum (Roborock S50) !!!!!!! Hvis du blinket feil FW - gå til 4pda link (først i dette trinnet) og les hvordan du gjenoppretter.
Arter Vacuum starter på nytt - du har lykkes med å forankre vakuumet ditt, og nå har du tilgang til det via ssh!
SSH til det (med kitt) med rengjøringsmiddel/rengjøringsmiddel. Bytt til passordet ditt med passwd
Trinn 2: Installer og konfigurer nødvendige pakker under rot på vakuum
Premiss
I stedet for webhooks bruker MiVacuum miio -protokollen som alle XiaoMi IoT -enheter. Så vi må lære det å forstå webhooks. Vi trenger en mellommann som kan fange webhook og oversette den til miio -protokollen til enheten. Det er python-bibliotek (https://github.com/rytilahti/python-miio), men vi kan ikke bruke det på vakuumet siden det ikke er nok plass til Python 3.5+ på vakuumet.
Men heldigvis er det et php-miio-bibliotek (https://github.com/skysilver-lab/php-miio) som er relativt lett, og dette er hva vi skal bruke (btw det brukes også i win-mirobo ovenfor). Den som fanger webhooken er webhook daemon (https://github.com/adnanh/webhook) som kjører skriptet for php på innkommende webhook.
SSH til vakuumet ditt (med kitt):
#Gjør under roten. Ja jeg vet at det ikke er trygt..whatevs.sudo su #Her installerer vi alle nødvendigheter apt-get install -y wget php5-cli nano #Alt annet kommer til /opt cd /opt
#Last ned php-miio
#Sjekk det siste på github. Rett linjer nedenfor i henhold til den siste 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
#Last ned webhooks -demon
#Sjekk det siste på github. Rett linje nedenfor i henhold til den siste 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
#Lag innstillinger for webhook
nano /opt/webhook/hooks.json #Input hooks.json innhold her. Høyreklikk i kitt. #Ctr+X Lagre Y.
#Lag skript for å ringe php-miio
nano /opt/webhook/mirobo.sh #Legg inn mirobo.sh -innhold her. Høyreklikk i kitt. # Ctr +X Lagre Y. # Gjør kjørbar chmod +x /opt/webhook/mirobo.sh
#Lag autostart -skript og forny konfigurasjoner
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
#Start systemet på nytt
starte på nytt
Etter omstart tester du innstillingene i nettleseren:
192.168.your.ip: 9000/hooks/mirobo? method = find_me
metode - kommando
params - parametere
Alle metoder (kommandoer) og parametere finner du her:
github.com/marcelrv/XiaomiRobotVacuumProtocol
Innhold på krokene. Json
Endre-token-here til token fra vakuum.
Korriger ip-hvitelisten for ditt lokale nettverk eller fjern den helt hvis du kjører kroker fra andre steder (usikkert).
[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/opt/webhook", "response-message": "Utfører mirobo script "," include-command-output-in-response ": false," pass-environment-to-command ": [{" source ":" string "," envname ":" token "," name ": "your-token-here"}], "pass-argument-to-command": [{"source": "url", "name": "method"}, {"source": "url", "name ":" params "}]," trigger-rule ": {" match ": {" type ":" ip-hviteliste "," ip-range ":" 192.168.1.0/24 "}}}}]
mirobo.sh filinnhold. Bare kopier-lim inn. Det er bare 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 ']}'
Trinn 3: Sett opp Amazon Dash Buttons
Åpne Amazon -appen din. Gå til Dash Devices. Legg til ny dash -knapp som vanlig. På tilbudet om å velge et produkt IKKE. Lukk appen. Du er ferdig.
Trinn 4: Konfigurer ruter for å fange knappeforespørsel og kontrollere MiVacuum
Dette fungerer som følger.
Når du trykker på knappen, knytter den seg til nettverket ditt og ber dhcp -serveren om å tilordne en it -adresse. Vi må fange den forespørselen og utføre en webhook til et vakuum. Som et ekstra sikkerhetstiltak blokkerer vi forbindelsen til Amazon slik at Amazon ikke vet at vi trykker på knappen og ikke har mulighet til å skyve fastvareoppdatering eller noe annet.
For det meste bruker jeg WinBox, men noen ganger er terminal bare enklere.
#Lag brannmur -slippregel med adresseliste å blokkere
/ip brannmurfilter legg til kjede = videresend src-address-list = blockdash action = drop comment = "Drop Amazon Dash"
Da må vi lage en dhcp -leaseregel for hver knapp. Veldig enkelt å gjøre i winbox.
DHCP -server - leieavtaler
Når vi trykker på knappen vises den nye leieavtalen. Vi klikker den som statisk og setter adresselisten til 'blockdash', setter leietiden til 5 sekunder (slik at leiekontrakten utløper før neste trykk) og kopierer mac -adressen for senere.
#Denne kommandoen er bare til referanse hvis du la til leiekontrakt i winbox, bare hopp over den.
/ip dhcp-server lease add address-list = blockdash mac-address = XXXXXXXXXX address = 192.168.x.x lease-time = 5s
Nå må vi peke på å lease script.
Åpne DHCP -fanen og legg til 'myLeaseScript' som et leaseskript på dhcp -serveren.
Nå åpner du System - Scripts og legger til 'myLeaseScript' med lese-, testtillatelser.
Innhold i myLeaseScript:
#Script kalles to ganger på lease (1) og ved utgivelse (0): if ($ leaseBound = 1) do = { /log info ("Kjører myLeaseScript. Noen trykket på Dash Button?")
#Array av alle knappene og url til å 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"; };
#Sjekk knappen du trykker på, og klikk på URL -adressen
: foreach mac, url in = $ buttons do = {: if ($ mac = $ leaseActMAC) do = { /logg info ("Presset". $ mac. "button") /tool fetch keep-result = no mode = https http-method = post url = $ url}}}
Nå har du automatisert rengjøringen med et trykk på Amazon Dash Button. Ha det gøy
Vær oppmerksom: Det er veldig usikkert å sende webkroker ukryptert. Webhook kan bruke kryptering, men jeg prøvde å få det til å fungere, men det skjedde aldri. Siden jeg bruker det bare i mitt lokale nettverk, er jeg ikke så bekymret. Men hvis du ønsker å bruke den over internett for å koble deg til IFTTT med integrering av Google Assistant, vær oppmerksom på dette! Jeg er ikke sikker på hva som var årsaken til en kryptofeil i mitt tilfelle. Selvsignerte sertifikater jeg slo med utstedt av letsencrypt. Overkomplisert nettverk med haug med NAT -er jeg slo med ipv6. Men det virker for meg at webhooks fungerer veldig dårlig med sertifikater og faktisk veldig dårlig dokumentert. Og det ser ut til at IFTTT ikke fungerer med ipv6. Jeg prøvde alt jeg kunne, men mislyktes. Du kan ha bedre flaks. Ikke glem å lage et innlegg.
upd: Jeg har en ide om hvordan jeg kan gjøre det sikrere uten kryptering. Du lager noen få skript for hver handling du vil utføre. Du endrer mirobo.sh for å kalle skriptet med for gitt parameter sendt i webhook f.eks. clean_room. Det er det. Den mest personen som utnytter kroken vil gjøre er å rengjøre soverommet ditt igjen og igjen …)) Når jeg gjør det, vil jeg oppdatere instruerbare
Trinn 5: Slik plotter du kartet
Når du har hele kartet klart i MiHome -appen, sender du vakuumet ditt til et bestemt sted via kommandoen 'app_goto'.
Lag et skjermbilde av hele kartet med posisjon sendt og base. Grunnpunktet etter omstart av vakuum er posisjonen [25500, 25500] DETTE ER IKKE POSISJONEN FOR LADINGSBASE, men hvis du starter vakuumet på ladestasjonen på nytt vil posisjonen til ladestasjonen være 25500, 25500. Så fra kjent posisjon sendes og grunnposisjon kan du plotte kartet ditt på et hvilket som helst CAD -program med skjermbildet du har tatt. Jeg brukte gratis QCAD.
Etter å ha montert bildet på rutenettet, bruker jeg en linje over rommet for å måle start- og sluttpunktet for sonen.
Anbefalt:
Trådløs dørklokke - (Raspberry PI og Amazon Dash): 4 trinn (med bilder)
Trådløs dørklokke - (Raspberry PI og Amazon Dash): Hva gjør det? (se video) Når knappen trykkes, oppdager Raspberry at ny enhet logger seg på det trådløse nettverket. På denne måten kan den gjenkjenne knappen som trykkes og sende informasjonen om dette til mobilen (eller en enhet på din
Amazon Dash Button Silent Doorbell: 10 trinn (med bilder)
Amazon Dash Button Silent Doorbell: Ser du hele tiden ut av vinduet slik at du kan fange opp besøkende før de ringer på døren? Lei av at hundene og babyen blir gale når det ringer? Vil ikke bruke en formue på en " smart " løsning? Å lage en stille dørklokke er som
Slip på Amazon Fire Remote TV Remote: 3 trinn (med bilder)
Slip på Amazon Fire Remote TV Remote: Oh Amazon, Fire TV -en din er så fantastisk, hvorfor ga du oss ikke volumkontroller på fjernkontrollen? Vel, for mindre enn $ 5 på Amazon, kan du kjøpe denne søte lille fjernkontrollen, slå av, dempe , volum og kanal alt i en liten pakke. Skriv inn i 3d -skriveren og
Hvordan kontrollere lys/hjemmelys ved hjelp av Arduino og Amazon Alexa: 16 trinn (med bilder)
Hvordan kontrollere lys/hjemmelys ved hjelp av Arduino og Amazon Alexa: Jeg har forklart hvordan du kontrollerer lys som er koblet til UNO og kontrollert av Alexa
Egen versjon av Amazon Echo: 8 trinn (med bilder)
Egen versjon av Amazon Echo: Hei folkens, jeg tror alle vet om Amazonas nyeste produkt Amazon Echo som er en stemmestyrt enhet, det vil si at vi kan kontrollere enheten med stemmen vår, og den kan til og med snakke med oss. Så inspirert av denne ideen har jeg laget min egen versjon, som kan