Cuprins:
- Pasul 1: Obțineți indicativul și vidul rădăcină
- Pasul 2: Instalați și configurați pachetele necesare sub rădăcină pe vid
- Pasul 3: configurați butoanele Amazon Dash
- Pasul 4: Configurați routerul pentru a prinde butonul de solicitare și control MiVacuum
- Pasul 5: Cum să-ți trasezi harta
Video: Aspirator XiaoMi + Buton Amazon = Curățare bord: 5 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Această instrucțiune va explica cum să utilizați butoanele de rezervă Amazon Dash pentru a controla vidul XiaoMi.
Am primit o grămadă de butoane Amazon care erau în jur de când erau 1 dolar și nu le-am folosit. Dar, la primirea unui nou robot de vid, am decis că ar fi foarte convenabil să folosesc aceste butoane ca un control al vidului.
Apăsați butonul Ziploc și va aspira dormitorul.
Apăsați butonul Glad și va aspira camera de zi.
Apăsați pe Fiji.. păi aveți ideea.
În acest proiect sunt încorporate multe hacks de pe internet. Apreciez foarte mult munca pe care a făcut-o atât de mulți oameni și cred că trebuie să-mi împărtășesc micul meu amuzament pe baza cercetărilor lor.
Declinare de responsabilitate: Tot pasul de mai jos îl faceți pe propriul risc! Dacă urmați pașii cu atenție, există foarte puține șanse să deteriorați ceva. Dar nu se întâmplă! Și nu-mi asum nici o responsabilitate. BTW, toți pașii pot fi inversați, astfel încât potențial nu există nicio încălcare a garanției. Dar desigur - YMMV
Principiul de bază este să prindem butonul tabloului de bord, să apăsăm pe router și să trimitem webhook către Vacuum în loc să cumpărăm lucruri de la Amazon.
Ce vei avea nevoie:
- Router cu firmware personalizat care poate controla DHCP, rula scripturi și îndeplini interogări de tip get | post. Mikrotik, DD-WRT, OpenWRT, Tomato etc.
- XiaoMi Vacuum. v1 sau v2
- Butoane Amazon Dash
Mai exact ce am folosit:
- Mikrotik
- XiaoMi v2 Vacor Roborock S50
- O grămadă de butoane Amazon Dash
Iată procedura
- Înrădăcinăm vidul
- Instalați și configurați pachetele necesare sub root în vid
- Configurați butonul Amazon Dash
- Configurare router pentru a prinde cererea butonului și a controla Vacuum
NB: De fapt, nu trebuie să vă rădăcinați vidul pentru al controla. Dacă aveți orice alt server pe lan (sau oriunde) care poate rula python sau php, puteți direcționa webhook-uri către ele. Dar eu nu. Și am vrut să-l mențin ordonat și compact pe vid în sine. Deci, dacă nu vă place abordarea mea, presupun că puteți afla cum să vă configurați propriul server middle man din această citire. Mergeți direct la punctul 2.
Ok, mergem …
Pasul 1: Obțineți indicativul și vidul rădăcină
Toate software-urile, fimware-urile și instrucțiunile pentru rootare au fost obținute de la: https://4pda.ru/forum/index.php? Showtopic = 881982
Dacă aveți un alt sistem de operare decât Windows și un alt telefon decât Android (puteți utiliza virtualul cu nox), vă rugăm să urmați linkul de mai sus (utilizați Google Translate) și să citiți instrucțiunile, altfel urmați manualul aici.
Pentru a putea face root trebuie să obținem adresa IP și simbolul din vid.
Despachetați rădăcina.7z.
Vă rugăm să instalați Mihome de la Vevs pe Android. Puteți utiliza una din Arhivă sau dacă această instrucțiune este datată, ultima versiune poate fi obținută de pe site-ul său (https://www.kapiba.ru/2017/11/mi-home.html) sau de pe Google Drive (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)
Conectați-vă la MiHome. Trebuie să setați China continental pe contul dvs. și să adăugați Vacuum la acesta).
Atingeți pictograma Vacuum Setări (Trei puncte în dreapta sus) Setări generale Informații despre rețea
Completați adresa IP și simbolul win-mirobo / win-mirobo.ini
Dezactivați paravanul de protecție în Windows. Lansați win-mirobo.bat și blocați firmware-ul.
!!!!!!!!! V1 este pentru v1 Vacuum și V2 este pentru v2 Vacuum (Roborock S50) !!!!!!! Dacă ați aprins greșit FW - mergeți la linkul 4pda (primul în acest pas) și citiți cum să vă recuperați.
Arter Vacuum repornește - v-ați înrădăcinat cu succes aspiratorul și acum aveți acces la el prin ssh!
SSH la acesta (cu Putty) cu produsul de curățat / curățat. Schimbați parola cu passwd
Pasul 2: Instalați și configurați pachetele necesare sub rădăcină pe vid
Premisă
În loc de webhook-uri, MiVacuum folosește protocolul miio, la fel ca orice dispozitiv XiaoMi IoT. Deci, trebuie să-l învățăm pentru a înțelege webhook-urile. Avem nevoie de un om de mijloc care să poată prinde webhook-ul și să-l traducă în protocol Miio pe dispozitiv. Există o bibliotecă python (https://github.com/rytilahti/python-miio), dar nu o putem folosi în vid, deoarece nu există suficient spațiu pentru Python 3.5+ în vid.
Dar, din fericire, există o bibliotecă php-miio (https://github.com/skysilver-lab/php-miio), care este comparativ foarte ușoară și asta este ceea ce vom folosi (btw este, de asemenea, utilizat în win-mirobo de mai sus). Cel care prinde webhook-ul este demonul webhook (https://github.com/adnanh/webhook) care rulează scriptul pentru php pe webhook-ul de intrare.
SSH la vid (cu Putty):
#Faceți sub rădăcină. Da, știu că nu este sigur..whatevs.sudo su #Here we install all necessities apt-get install -y wget php5-cli nano #This else else going to / opt cd / opt
#Descărcați php-miio
# Verificați cele mai recente pe github. Corectați liniile de mai jos conform celui mai recent 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
#Descărcați demonul webhooks
# Verificați cele mai recente pe github. Linia corectă de mai jos conform ultimului 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
#Creați setări pentru webhook
nano /opt/webhook/hooks.json #Input hooks.json conținut aici. Faceți clic dreapta pe chit. # Ctr + X Salvează Y.
#Create script pentru apelarea php-miio
nano /opt/webhook/mirobo.sh #Input conținut mirobo.sh aici. Faceți clic dreapta pe chit. # Ctr + X Salvați Y. # Faceți executabil chmod + x /opt/webhook/mirobo.sh
#Creați scriptul de pornire automată și reînnoiți configurile
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 implicit webhook.sh
# Reporniți sistemul
reporniți
După repornire, testați setările în browser:
192.168.your.ip: 9000 / hooks / mirobo? method = find_me
metodă - comandă
params - parametri
Toate metodele (comenzile) și parametrii le puteți găsi aici:
github.com/marcelrv/XiaomiRobotVacuumProtocol
Conținutul cârligelor.json
Schimbați-token-aici în simbolul dvs. din vid.
Corectați lista albă IP pentru rețeaua locală sau eliminați-o complet dacă rulați cârligele din altă parte (nesigur).
[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/ opt / webhook", "response-message": "Executare script 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 "}}}]
conținutul fișierului mirobo.sh. Doar copiați-lipiți. Există doar două linii (nu 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 ']}'
Pasul 3: configurați butoanele Amazon Dash
Deschideți aplicația Amazon. Accesați Dash Devices. Adăugați un nou buton de liniuță ca de obicei. La promt pentru a alege un produs NU. Închideți aplicația. Esti gata.
Pasul 4: Configurați routerul pentru a prinde butonul de solicitare și control MiVacuum
Acest lucru funcționează după cum urmează.
Când butonul este apăsat, acesta se asociază cu rețeaua dvs. și cere serverului dhcp să atribuie o adresă it. Trebuie să prindem această solicitare și să realizăm un webhook până la vid. Ca măsură de securitate suplimentară, vom bloca conexiunea la Amazon, astfel încât Amazon să nu știe că am apăsat butonul și nu avem abilitatea de a împinge actualizarea firmware-ului sau altceva.
Majoritatea folosesc WinBox, dar de câteva ori terminalul este doar mai ușor.
#Creați regula de renunțare a firewall-ului cu lista de adrese pe care să o blocați
/ ip firewall filter add chain = forward src-address-list = blockdash action = drop comment = "Drop Amazon Dash"
Apoi, trebuie să creăm o regulă de închiriere dhcp pentru fiecare buton. Foarte ușor de făcut în winbox.
Server DHCP - Închirieri
Cei care apăsăm butonul apare noul contract de închiriere. Facem clic pe acesta ca fiind static și setăm lista de adrese la „blockdash”, setăm timpul de închiriere la 5 secunde (astfel încât închirierea să expire înainte de următoarea apăsare) și copiem adresa Mac pentru mai târziu.
#Această comandă este doar pentru referință dacă ați adăugat un contract de închiriere în winbox, doar săriți-l.
/ ip dhcp-server lease add address-list = blockdash mac-address = XXXXXXXXXX address = 192.168.x.x lease-time = 5s
Acum trebuie să indicăm scriptul de leasing.
Deschideți fila DHCP și adăugați „myLeaseScript” ca script de leasing pe serverul dvs. dhcp.
Acum deschideți Sistem - Scripturi și adăugați „myLeaseScript” cu permisiuni de citire, de testare.
Conținutul myLeaseScript:
#Script este apelat de două ori la leasing (1) și la lansare (0): if ($ leaseBound = 1) do = {/ log info ("Rularea myLeaseScript. Cineva a apăsat butonul Dash?")
# Matrice de toate butoanele și adresa URL de apel
: butoane locale {"XX: XX: XX: XX: XX: XX" = "https://192.168.your.ip: 9000 / hooks / mirobo? method = app_zoned_clean¶ms = [19300, 21000, 21200, 23800, 1] "; "AA: AA: AA: AA: AA: AA" = "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"; };
# Verificați butonul apăsat și adresa URL
: pentru fiecare mac, url in = $ butoane do = {: if ($ mac = $ leaseActMAC) do = {/ log info ("Apăsat". $ mac. "buton") / tool fetch keep-result = no mode = https http-method = post url = $ url}}}
Acum v-ați automatizat curățarea printr-o apăsare pe butonul Amazon Dash. A se distra
Vă rugăm să acordați atenție: este foarte nesigur să trimiteți webhook-uri necriptate. Webhook poate folosi criptarea, dar totuși am încercat să o fac să funcționeze, nu s-a întâmplat niciodată. Deoarece îl folosesc doar în rețeaua mea locală, nu sunt prea îngrijorat. Dar dacă doriți să îl utilizați pe internet pentru a vă conecta la IFTTT cu integrarea Google Assistant vă rugăm să acordați atenție acestui fapt! Nu sunt sigur care a fost motivul unui eșec criptografic în cazul meu. Certificatele autosemnate pe care le-am bătut emise de letsencrypt. Rețea supracomplicată cu o grămadă de NAT-uri pe care le-am bătut cu ipv6. Dar mi se pare că webhook-urile funcționează foarte prost cu certificate și de fapt foarte prost documentate. Și se pare că IFTTT nu funcționează cu ipv6. Am încercat tot ce am putut, dar nu am reușit. S-ar putea să ai un noroc mai bun. Nu uitați să faceți o postare.
upd: Am o idee despre cum să-l fac mai sigur fără criptare. Creați câteva scripturi pentru fiecare acțiune pe care doriți să o efectuați. Modificați mirobo.sh pentru a apela scriptul pentru un anumit parametru trimis în webhook, de ex. camera_curat. Asta e. Cea mai mare persoană care va exploata cârligul va face este să vă curățe dormitorul din nou și din nou …)) Odată ce am făcut asta, voi actualiza instructivul
Pasul 5: Cum să-ți trasezi harta
Odată ce aveți gata harta completă în aplicația MiHome, trimiteți vidul la o anumită locație prin comanda „app_goto”.
Faceți o captură de ecran a hărții complete cu poziția trimisă și baza. Punctul de bază după repornirea vidului este poziția [25500, 25500] ACEASTA NU ESTE POZIȚIA BAZEI DE ÎNCĂRCARE, dar dacă reporniți vidul la baza de încărcare, atunci poziția bazei de încărcare va fi 25500, 25500. Deci, din poziția cunoscută trimisă și poziția de bază, puteți face harta pe orice program CAD cu captura de ecran pe care ați făcut-o. Am folosit QCAD gratuit.
După montarea imaginii pe grilă, folosesc o linie peste cameră pentru a măsura punctul de început și de sfârșit al zonei.
Recomandat:
Buton de mutare fizică pentru întâlniri cu zoom: 7 pași (cu imagini)
Buton de mutare fizică pentru întâlniri cu zoom: dacă utilizați întâlniri cu zoom pentru serviciu sau școală, acest buton este pentru dvs.! un lucru grozav la acest lucru este că funcționează chiar dacă zoom-ul dvs. Windo
Buton magic 4k: telecomanda wireless 20USD BMPCC 4k (sau 6k): 4 pași (cu imagini)
Magic Button 4k: telecomanda wireless 20USD BMPCC 4k (sau 6k): Multe persoane mi-au cerut să împărtășesc câteva detalii despre controlerul meu wireless pentru BMPCC4k. Cele mai multe întrebări au fost despre controlul bluetooth, așa că voi menționa câteva detalii despre asta. Presupun că sunteți familiarizați cu mediul ESP32 Arduino
Buton inteligent Wi-Fi alimentat cu baterie pentru controlul luminilor HUE: 5 pași (cu imagini)
Buton inteligent Wi-Fi alimentat cu baterie pentru controlul luminilor HUE: Acest proiect demonstrează cum să construiți un buton Wi-Fi IoT alimentat cu baterie în mai puțin de 10 minute. Butonul controlează luminile HUE peste IFTTT. Astăzi puteți construi dispozitive electronice și le puteți conecta la alte dispozitive inteligente de casă literalmente în câteva minute. Ceea ce este
Tutorial Arduino - Buton cu stil BLYNK și modul de releu ESP-01: 3 pași (cu imagini)
Tutorial Arduino - BLYNK Styled Button și ESP-01 Relay Module: Bine ați venit la un alt tutorial de pe canalul nostru, acesta este primul tutorial din acest sezon care va fi dedicat sistemelor IoT, aici vom descrie câteva dintre caracteristicile și funcționalitățile dispozitivelor utilizate în acest tip de sisteme. Pentru a crea aceste s
Buton Amazon Dash Buton silențios: 10 pași (cu imagini)
Buton Amazon Dash Buton silențios: Privind constant pe fereastră, astfel încât să puteți intercepta vizitatorii înainte de a suna la sonerie? V-ați săturat că câinii și bebelușul înnebunesc oricând sună? Nu doriți să cheltuiți o avere pe un „inteligent” soluție? Efectuarea unui sunet silențios este la fel de