Taula de continguts:

Aspirador XiaoMi + Botó Amazon = Neteja de tauler: 5 passos (amb imatges)
Aspirador XiaoMi + Botó Amazon = Neteja de tauler: 5 passos (amb imatges)

Vídeo: Aspirador XiaoMi + Botó Amazon = Neteja de tauler: 5 passos (amb imatges)

Vídeo: Aspirador XiaoMi + Botó Amazon = Neteja de tauler: 5 passos (amb imatges)
Vídeo: Marketing 4.0 - Philip Kotler - AudioBook 🎧 Completo | Elyson Sotti 2024, Desembre
Anonim
Aspirador XiaoMi + Botó Amazon = Neteja de tauler
Aspirador XiaoMi + Botó Amazon = Neteja de tauler

Aquesta instrucció explicarà com utilitzar els botons de recanvi d’Amazon Dash per controlar el buit XiaoMi.

Vaig tenir un munt de botons d’Amazon col·locats des que eren 1 dòlar i no en vaig fer cap ús. Però en rebre un nou robot aspirador, vaig decidir que seria molt convenient utilitzar aquests botons com a control del buit.

Premeu el botó Ziploc i aspirarà el dormitori.

Premeu el botó Alegre i aspirarà la sala d'estar.

Premeu Fiji.. doncs teniu la idea.

En aquest projecte s'incorporen molts hacks des d'Internet. Aprecio molt la feina feta per tanta gent i crec que he de compartir el meu petit dispositiu basat en la seva investigació.

Exempció de responsabilitat: Tot el pas següent ho feu sota la vostra responsabilitat. Si seguiu els passos acuradament, hi ha molt poques possibilitats que pugueu danyar alguna cosa. Però no passa! I no en assumeixo cap responsabilitat. BTW es poden invertir tots els passos, de manera que potencialment no hi ha infracció de la garantia. Però, per descomptat, YMMV

El principi bàsic és que agafem el botó de ratolí que premem al router i que enviem el webhook a Vacuum en lloc de comprar coses d’Amazon.

Què necessiteu:

  • Encaminador amb microprogramari personalitzat que pot controlar DHCP, executar scripts i complir les consultes d'obtenció | publicació. Mikrotik, DD-WRT, OpenWRT, Tomato, etc.
  • Aspirador XiaoMi. v1 o v2
  • Botons Amazon Dash

Específicament el que he utilitzat:

  • Mikrotik
  • XiaoMi v2 Roborock S50 al buit
  • Un munt de botons Amazon Dash

Aquí teniu el procediment

  1. Arrelem al buit
  2. Instal·leu i configureu els paquets necessaris sota root al buit
  3. Configura el botó Amazon Dash
  4. Configureu el router per captar la sol·licitud i controlar el buit

NB: De fet, no haureu d'arrelar el buit per controlar-lo. Si teniu algun altre servidor al vostre lan (o on sigui) que pugui executar python o php, podeu dirigir-hi webhooks. Però jo no. I volia mantenir-lo ordenat i compacte al propi buit. Així que si no us agrada el meu enfocament, suposo que podeu esbrinar com configurar el vostre propi servidor middle man a partir d’aquesta lectura. Simplement aneu directament al punt 2.

D'acord, aquí anem …

Pas 1: Obteniu el testimoni i el buit arrel

Obteniu el testimoni i el buit arrel
Obteniu el testimoni i el buit arrel
Obteniu el testimoni i el buit arrel
Obteniu el testimoni i el buit arrel
Obteniu el testimoni i el buit arrel
Obteniu el testimoni i el buit arrel
Obteniu el testimoni i el buit arrel
Obteniu el testimoni i el buit arrel

Tot el programari, fimware i instruccions per a l'arrelament es van obtenir a: https://4pda.ru/forum/index.php? Showtopic = 881982

Si teniu un sistema operatiu diferent de Windows i un telèfon que no sigui Android (podeu utilitzar el virtual amb nox), seguiu l’enllaç anterior (utilitzeu el Traductor de Google) i llegiu les instruccions que seguireu amb el manual aquí.

Per tal d’arrelar, hem d’obtenir l’adreça IP i el testimoni del vostre buit.

Desempaqueteu root.7z.

Instal·leu Mihome de Vevs al vostre Android. Podeu utilitzar-ne un a l'Arxiu o, si aquesta instrucció té data, es pot obtenir la versió més recent al seu lloc web (https://www.kapiba.ru/2017/11/mi-home.html) o al seu Google Drive (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)

Inicieu la sessió a MiHome. Heu d’establir China Mainland al vostre compte i afegir-hi Vacuum).

Toqueu Configuració de la icona de buit (tres punts a la part superior dreta) Configuració general Informació de la xarxa

Empleneu l'adreça IP i el testimoni a win-mirobo / win-mirobo.ini

Desactiveu el tallafoc a Windows. Inicieu win-mirobo.bat i feu flaix el firmware.

!!!!!!!!! V1 és per a V1 Vacuum i V2 és per a V2 Vacuum (Roborock S50) !!!!!!! Si heu fet un error FW: aneu a l'enllaç 4pda (primer en aquest pas) i llegiu com es recupera.

Arter Vacuum es reinicia: heu arrencat amb èxit el vostre aspirador i ara hi teniu accés mitjançant ssh.

SSH (amb Putty) amb el netejador. Canvieu la vostra contrasenya amb passwd

Pas 2: instal·leu i configureu els paquets necessaris sota l'arrel al buit

Premissa

En lloc dels webhooks, MiVacuum utilitza el protocol miio, igual que tots els dispositius XiaoMi IoT. Per tant, l’hem d’aprendre per entendre els webhooks. Necessitem un home intermedi que pugui agafar un webhook i traduir-lo al protocol miio al dispositiu. Hi ha una biblioteca Python (https://github.com/rytilahti/python-miio), però no la podem utilitzar al buit, ja que no hi ha prou espai per Python 3.5+ al Vacuum.

Però, per sort, hi ha una biblioteca php-miio (https://github.com/skysilver-lab/php-miio) que és comparativament molt lleugera i això és el que farem servir (per exemple, també s’utilitza a win-mirobo anterior). El que atrapa el webhook és el daemon webhook (https://github.com/adnanh/webhook) que executa l'script de php en el webhook entrant.

SSH al buit (amb Putty):

#Feu sota l'arrel. Sí, sé que no és segur..whatevs.sudo su #Aquí instal·lem totes les necessitats apt-get install -y wget php5-cli nano #Tota la resta anirà a / opt cd / opt

#Download php-miio

#Comproveu les novetats de github. Corregiu les línies següents segons el darrer 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 daemon

#Comproveu les novetats de github. Línia correcta a continuació segons l'últim 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

#Crear paràmetres per a un webhook

nano /opt/webhook/hooks.json #Input hooks.json content here. Feu clic amb el botó dret a la massilla. # Ctr + X Desa Y.

#Create script per trucar a php-miio

nano /opt/webhook/mirobo.sh #Input contingut mirobo.sh aquí. Feu clic amb el botó dret a la massilla. # Ctr + X Desa Y. # Feu executable chmod + x /opt/webhook/mirobo.sh

#Crear un script d’inici automàtic i renovar les configuracions

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 valors predeterminats de webhook.sh

# Reinicieu el sistema

reiniciar

Després de reiniciar, proveu la configuració al navegador:

192.168.your.ip: 9000 / hooks / mirobo? method = find_me

mètode - ordre

params: paràmetres

Tots els mètodes (ordres) i paràmetres que podeu trobar aquí:

github.com/marcelrv/XiaomiRobotVacuumProtocol

Contingut dels ganxos.json

Canvieu el vostre token-here per el vostre token de buit.

Corregiu la llista blanca d'IP per a la vostra xarxa local o elimineu-la completament si executeu els ganxos des d'altres llocs (no és segur).

[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/ opt / webhook", "response-message": "S'està executant 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 "}}}]

contingut del fitxer mirobo.sh. Simplement copieu-enganxeu. Només hi ha dues línies (no 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 ']}'

Pas 3: configureu els botons d'Amazon Dash

Obriu la vostra aplicació Amazon. Aneu a Dispositius Dash. Afegiu un nou botó de guió com de costum. A la promt per triar un producte NO. Tanqueu l'aplicació. Estàs acabat.

Pas 4: Configureu el router per capturar la sol·licitud del botó i controlar MiVacuum

Configureu l’encaminador per obtenir sol·licitud i control del botó MiVacuum
Configureu l’encaminador per obtenir sol·licitud i control del botó MiVacuum
Configureu l’encaminador per obtenir sol·licitud i control del botó MiVacuum
Configureu l’encaminador per obtenir sol·licitud i control del botó MiVacuum
Configureu l'encaminador per obtenir sol·licitud i control del botó MiVacuum
Configureu l'encaminador per obtenir sol·licitud i control del botó MiVacuum

Això funciona de la següent manera.

Quan es prem el botó, s’associa amb la vostra xarxa i demana al servidor dhcp que assigni una adreça it. Hem d’atendre aquesta sol·licitud i realitzar un webhook al buit. Com a mesura de seguretat addicional, bloquejarem la connexió a Amazon perquè Amazon no sàpiga que ni tan sols hem premut el botó i no tenim cap possibilitat d’actualitzar el firmware o alguna cosa més.

Sobretot faig servir WinBox, però algunes vegades el terminal és més fàcil.

#Crear una regla de caiguda de tallafoc amb la llista d'adreces per bloquejar

/ IP firewall filter add chain = forward src-address-list = blockdash action = drop comment = "Drop Amazon Dash"

A continuació, hem de crear una regla d’arrendament dhcp per a cada botó. Molt fàcil de fer a winbox.

Servidor DHCP: arrendaments

Si premem el botó apareixerà el nou contracte d'arrendament. Hi fem clic com a estàtic i establim la llista d’adreces a “blockdash”, establim el temps d’arrendament a 5 segons (de manera que l’arrendament caduca abans de la pròxima premsa) i copiem l’adreça mac per a més endavant.

#Aquesta ordre només serveix de referència si heu afegit un contracte d’arrendament a Winbox, simplement l’ometreu.

/ ip dhcp-server lease add address-list = blockdash mac-address = XXXXXXXXXX address = 192.168.x.x lease-time = 5s

Ara hem d’assenyalar un script d’arrendament.

Obriu la pestanya DHCP i afegiu "myLeaseScript" com a script d'arrendament al servidor dhcp.

Ara obriu Sistema - Scripts i afegiu "myLeaseScript" amb permisos de lectura i de prova.

Contingut de myLeaseScript:

#Script es diu dues vegades en lloguer (1) i en llançament (0): if ($ leaseBound = 1) do = {/ log info ("Execució de myLeaseScript. Algú ha premut el botó Dash?")

# Matriu de tots els vostres botons i URL per trucar

: botons locals {"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"; };

#Comproveu el botó premut i l'URL de l'acll

: foreach mac, url in = $ botons do = {: if ($ mac = $ leaseActMAC) do = {/ info de registre ("Pressionat". $ mac. "botó") / tool fetch keep-result = no mode = https http-method = publicació url = $ url}}}

Ara heu automatitzat la neteja amb una simple pulsació del botó Amazon Dash. Diverteix-te

Presteu atenció: no és molt segur enviar webhooks sense xifrar. Webhook pot utilitzar el xifratge, però, però, he intentat que funcionés, mai no va passar mai. Com que l’utilitzo només a la meva xarxa local, no em preocupa massa. Però si voleu utilitzar-lo per Internet per connectar-vos a IFTTT amb la integració de l'Assistent de Google, presteu atenció a aquest fet. No estic segur de quin va ser el motiu d'un error de criptografia en el meu cas. Certificats autofirmats amb els quals he superat emesos per letsencrypt. Xarxa massa complicada amb un munt de NAT que he superat amb ipv6. Però em sembla que els webhooks funcionen molt malament amb els certificats i, de fet, estan molt mal documentats. I sembla que IFTTT no funciona amb ipv6. Vaig provar tot el que vaig poder, però vaig fracassar. És possible que tingueu més sort. No oblideu fer una publicació.

upd: tinc una idea de com fer-lo més segur sense xifratge. Creeu uns quants scripts per a cada acció que vulgueu realitzar. Es modifica el mirobo.sh per trucar a l'script amb un paràmetre donat enviat al webhook, per exemple. habitació_neta. Això és. La majoria de les persones que exploti el ganxo és netejar el dormitori una i altra vegada …)) Un cop ho faci, actualitzaré el que és instructiu

Pas 5: Com dibuixar el vostre mapa

Com dibuixar el vostre mapa
Com dibuixar el vostre mapa

Un cop tingueu a punt el mapa complet a l'aplicació MiHome, envieu el buit a una ubicació específica mitjançant l'ordre 'app_goto'.

Feu una captura de pantalla del mapa complet amb la posició enviada i la base. El punt base després del reinici del buit és la posició [25500, 25500] AQUESTA NO ÉS LA POSICIÓ DE LA BASE DE CÀRREGA, però si reinicieu el buit a la base de càrrega, la posició de la base de càrrega serà de 25500, 25500. Per tant, des de la posició coneguda enviada i posició base, podeu dibuixar el vostre mapa en qualsevol programa CAD amb la captura de pantalla que hàgiu fet. He utilitzat QCAD gratuït.

Després d’ajustar la imatge a la graella, faig servir una línia a través de la sala per mesurar el punt inicial i final de la zona.

Recomanat: