Cuprins:

Aspirator XiaoMi + Buton Amazon = Curățare bord: 5 pași (cu imagini)
Aspirator XiaoMi + Buton Amazon = Curățare bord: 5 pași (cu imagini)

Video: Aspirator XiaoMi + Buton Amazon = Curățare bord: 5 pași (cu imagini)

Video: Aspirator XiaoMi + Buton Amazon = Curățare bord: 5 pași (cu imagini)
Video: Лучший бюджетный робот-пылесос - Xiaomi mi robot vacuum-mop, обзор, отзыв, тест работы. 2024, Noiembrie
Anonim
XiaoMi Vacuum + Butonul Amazon = Curățarea tabloului de bord
XiaoMi Vacuum + Butonul Amazon = Curățarea tabloului de bord

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

  1. Înrădăcinăm vidul
  2. Instalați și configurați pachetele necesare sub root în vid
  3. Configurați butonul Amazon Dash
  4. 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ă

Obțineți indicativul și vidul rădăcinii
Obțineți indicativul și vidul rădăcinii
Obțineți indicativul și vidul rădăcinii
Obțineți indicativul și vidul rădăcinii
Obțineți indicativul și vidul rădăcinii
Obțineți indicativul și vidul rădăcinii
Obțineți indicativul și vidul rădăcinii
Obțineți indicativul și vidul rădăcinii

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

Configurați routerul pentru a prinde butonul de solicitare și control MiVacuum
Configurați routerul pentru a prinde butonul de solicitare și control MiVacuum
Configurați routerul pentru a prinde butonul de solicitare și control MiVacuum
Configurați routerul pentru a prinde butonul de solicitare și control MiVacuum
Configurați routerul pentru a prinde butonul de solicitare și control MiVacuum
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

Cum să-ți trasezi harta
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: