INHOUDSOPGAWE:

XiaoMi Vacuum + Amazon Button = Dash Cleaning: 5 stappe (met foto's)
XiaoMi Vacuum + Amazon Button = Dash Cleaning: 5 stappe (met foto's)

Video: XiaoMi Vacuum + Amazon Button = Dash Cleaning: 5 stappe (met foto's)

Video: XiaoMi Vacuum + Amazon Button = Dash Cleaning: 5 stappe (met foto's)
Video: Web Programming - Computer Science for Business Leaders 2016 2024, November
Anonim
XiaoMi -vakuum + Amazon -knoppie = skoonmaak van die strook
XiaoMi -vakuum + Amazon -knoppie = skoonmaak van die strook

Hierdie instruksie sal verduidelik hoe u u ekstra Amazon Dash -knoppies kan gebruik om XiaoMi -vakuum te beheer.

Ek het 'n klomp Amazon -knoppies gelê vanaf die tyd dat dit $ 1 was, en ek het dit nie gebruik nie. Maar by die ontvangs van 'n nuwe Robot Vacuum het ek besluit dat dit baie handig sou wees om hierdie knoppies as 'n bedieningselement vir die vakuum te gebruik.

Druk die Ziploc -knoppie en die stofsuig die slaapkamer.

Druk die Glad -knoppie en die stofsuig sal die stofsuig stofsuig.

Druk Fiji.. wel, jy het die idee.

In hierdie projek word daar baie hacks van die internet ingesluit. Ek waardeer die werk wat soveel mense gedoen het, en ek dink ek moet my klein dingetjie op grond van hul navorsing deel.

Vrywaring: U stap op u eie risiko hier onder! As u die stappe noukeurig volg, is die kans baie min dat u iets kan beskadig. Maar dit gebeur nie! En ek neem geen verantwoordelikheid daarvoor nie. Alle stappe kan omgekeer word, sodat daar geen waarborgskending is nie. Maar natuurlik - YMMV

Die basiese beginsel is dat ons die drukknoppie op die router druk en die webhook na Vacuum stuur in plaas van om dinge by Amazon te koop.

Wat u benodig:

  • Router met pasgemaakte firmware wat DHCP kan beheer, skrifte kan uitvoer en navraag kan ontvang. Mikrotik, DD-WRT, OpenWRT, Tamatie, ens.
  • XiaoMi -vakuum. v1 of v2
  • Amazon Dash -knoppies

Spesifiek wat ek gebruik het:

  • Mikrotik
  • XiaoMi v2 Vakuum Roborock S50
  • 'N Klomp Amazon Dash -knoppies

Hier is die prosedure

  1. Ons wortel vakuum
  2. Installeer en konfigureer die nodige pakkette onder die wortel op vakuum
  3. Stel die Amazon Dash -knoppie op
  4. Stel router op om die knoppieversoek op te vang en vakuum te beheer

NB: U hoef nie u vakuum te ontwrig om dit te beheer nie. As u 'n ander bediener op u lan (of waar ook al) het wat python of php kan gebruik, kan u webhooks daaraan rig. Maar ek doen nie. En ek wou dit netjies en kompak hou op die vakuum self. As u dus nie van my benadering hou nie, neem ek aan dat u uit hierdie lees kan agterkom hoe u u eie middelman -bediener kan opstel. Gaan net reguit na punt 2.

Ok hier gaan ons…

Stap 1: Verkry die teken- en wortelstofsuig

Verkry die teken- en wortelstofsuig
Verkry die teken- en wortelstofsuig
Verkry die teken- en wortelstofsuig
Verkry die teken- en wortelstofsuig
Verkry die teken- en wortelstofsuig
Verkry die teken- en wortelstofsuig
Verkry die teken- en wortelstofsuig
Verkry die teken- en wortelstofsuig

Alle sagteware, fimware en instruksies vir die roei is verkry van: https://4pda.ru/forum/index.php? Showtopic = 881982

As u 'n ander bedryfstelsel as Windows het en 'n ander telefoon as Android (u kan virtuele met nox gebruik), volg die skakel hierbo (gebruik Google Translate) en lees die instruksies, anders volg die handleiding hier.

Om te wortel, moet ons 'n ip -adres en 'n teken uit u vakuum verkry.

Pak wortel uit. 7z.

Installeer Mihome van Vevs op u Android. U kan een uit die argief gebruik, of as hierdie instruksie gedateer is, kan die nuutste weergawe verkry word vanaf sy webwerf (https://www.kapiba.ru/2017/11/mi-home.html) of sy Google Drive (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)

Meld aan by u MiHome. U moet die vasteland van China op u rekening instel en vakuum daarby voeg).

Tik op Vakuum -ikoon Instellings (drie kolletjies regs bo) Algemene instellings Netwerkinligting

Vul die ip-adres in en teken win-mirobo/win-mirobo.ini in

Skakel die firewall in vensters uit. Begin win-mirobo.bat en flits die firmware.

!!!!!!!!! V1 is vir v1 Vacuum en V2 is vir v2 Vacuum (Roborock S50) !!!!!!! As jy FW verkeerd geflits het - gaan na 4pda link (eers in hierdie stap) en lees hoe om te herstel.

Arter Vacuum herlaai - u het u vakuum suksesvol gewortel en nou het u toegang daartoe via ssh!

SSH daarna (met stopverf) met die skoonmaker/skoonmaker. Verander na u wagwoord met passwd

Stap 2: Installeer en konfigureer die nodige verpakkings onder die wortel op vakuum

Uitgangspunt

In plaas van webhooks gebruik MiVacuum miio -protokol, net soos elke XiaoMi IoT -toestel. Ons moet dit dus leer om webhooks te verstaan. Ons het 'n middelman nodig wat webhook kan vang en dit kan vertaal na miio -protokol na toestel. Daar is 'n python-biblioteek (https://github.com/rytilahti/python-miio), maar ons kan dit nie op die vakuum gebruik nie, aangesien daar nie genoeg ruimte vir Python 3.5+ op die vakuum is nie.

Maar gelukkig is daar 'n php-miio-biblioteek (https://github.com/skysilver-lab/php-miio) wat relatief baie lig is, en dit is wat ons sal gebruik (btw dit word ook hierbo in win-mirobo gebruik). Die een wat die webhook vang, is webhook daemon (https://github.com/adnanh/webhook) wat die script vir php op inkomende webhook uitvoer.

SSH na u vakuum (met stopverf):

#Doen onder die wortel. Ja, ek weet dit is nie veilig nie..whatevs.sudo su #Hier installeer ons alle benodigdhede apt-get install -y wget php5-cli nano #Alles anders gaan /opt cd /opt

#Laai php-miio af

#Kyk na die nuutste op github. Korrekte lyne hieronder volgens die nuutste 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

#Laai webhooks -demoon af

#Kyk na die nuutste op github. Korrekte reël hieronder volgens die nuutste 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

#Skep instellings vir webhook

nano /opt/webhook/hooks.json #Invoer hooks.json -inhoud hier. Regskliek in stopverf. #Ctr+X Stoor Y.

#Skep script om php-miio te bel

nano /opt/webhook/mirobo.sh #voer mirobo.sh -inhoud hier in. Regskliek in stopverf. # Ctr +X Stoor Y. # Maak uitvoerbare chmod +x /opt/webhook/mirobo.sh

#Skep outostart -script en hernu konfigs

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 is standaard

#Herlaai die stelsel

herlaai

Toets u instellings in die blaaier na herlaai:

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

metode - opdrag

params - parameters

Alle metodes (opdragte) en parameters wat u hier kan vind:

github.com/marcelrv/XiaomiRobotVacuumProtocol

Inhoud van die haaks.json

Verander u-teken-hier na u teken uit vakuum.

Korrigeer die IP-witlys vir u plaaslike netwerk, of verwyder dit heeltemal as u dit van elders af gebruik (onveilig).

[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/opt/webhook", "response-message": "voer uit 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-whitelist "," ip-range ":" 192.168.1.0/24 "}}}}]

mirobo.sh -lêerinhoud. Kopieer en plak net. Daar is slegs twee reëls (nie 3 nie).

#!/bin/bashphp /opt/php-miio/miio-cli.php --ip '127.0.0.1' --bindip '127.0.0.1'-teken $ token --sendcmd '{"id":' $ RANDOM ', "method": "' $ 1 '", "params": [' $ 2 ']}'

Stap 3: Stel Amazon Dash -knoppies op

Maak u Amazon -app oop. Gaan na Dash Devices. Voeg soos gewoonlik 'n nuwe knoppie by. Moenie die produk kies nie. Maak die app toe. Jy is klaar.

Stap 4: Stel router op om die knoppieversoek te vang en MiVacuum te beheer

Stel router op om die knoppieversoek te vang en MiVacuum te beheer
Stel router op om die knoppieversoek te vang en MiVacuum te beheer
Stel router op om knoppieversoek te vang en MiVacuum te beheer
Stel router op om knoppieversoek te vang en MiVacuum te beheer
Stel router op om die knoppieversoek te vang en MiVacuum te beheer
Stel router op om die knoppieversoek te vang en MiVacuum te beheer

Dit werk soos volg.

As u op die knoppie druk, verbind dit met u netwerk en vra die dhcp -bediener om 'n IT -adres toe te ken. Ons moet die versoek beantwoord en 'n webhook tot 'n vakuum bring. As 'n bykomende veiligheidsmaatreël sal ons die verbinding met Amazon blokkeer, sodat Amazon nie sou weet dat ons selfs op die knoppie gedruk het nie en geen firmware -opdatering of iets anders kon druk nie.

Ek gebruik meestal WinBox, maar soms is terminaal net makliker.

#Skep 'n firewall -reël met die adreslys om te blokkeer

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

Dan moet ons 'n dhcp -huurreël vir elke knoppie skep. Baie maklik om te doen in winbox.

DHCP -bediener - huurkontrakte

As ons op die knoppie druk, verskyn die nuwe huurkontrak. Ons klik daarop as staties en stel die adreslys op 'blockdash', stel die huurtyd op 5 sekondes (sodat die huurkontrak verstryk voor die volgende pers) en kopieer die mac -adres vir later.

#Hierdie opdrag is slegs vir verwysing as u huurkontrak in winbox bygevoeg het, slaan dit net oor.

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

Nou moet ons daarop wys om die script te huur.

Maak die DHCP -oortjie oop en voeg 'myLeaseScript' by as 'n huurkontrak op u DHCP -bediener.

Maak nou System - Scripts oop en voeg 'myLeaseScript' by met lees-, toetstoestemmings.

Inhoud van myLeaseScript:

#Script word twee keer genoem tydens huurkontrak (1) en by vrystelling (0): as ($ leaseBound = 1) do = { /log info ("MyLeaseScript uitvoer. Het iemand Dash Button gedruk?")

#Versameling van al u knoppies en url om te bel

: plaaslike knoppies {"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"; };

#Kontroleer die ingedrukte knoppie en die URL

: foreach mac, url in = $ buttons do = {: if ($ mac = $ leaseActMAC) do = { /log info ("Pressed". $ mac. "button") /tool fetch keep-result = no mode = https http-method = post url = $ url}}}

Nou het u u skoonmaak op 'n pers van die Amazon Dash Button geoutomatiseer. Hê pret

Let op: dit is baie onveilig om webhooks ongekodeerd te stuur. Webhook kan kodering gebruik, maar ek het probeer om dit te laat werk, maar dit het nooit gebeur nie. Omdat ek dit net in my plaaslike netwerk gebruik, is ek nie te bekommerd nie. Maar as u dit via die internet wil gebruik om aan te sluit by IFTTT met integrasie van Google Assistant, let dan op hierdie feit! Ek is nie seker wat die rede was vir 'n kripto -mislukking in my geval nie. Selfsondertekende sertifikate waarmee ek geslaan het, uitgereik deur letsencrypt. Oorgekompliseerde netwerk met 'n klomp NAT's wat ek met ipv6 geslaan het. Maar dit lyk vir my asof webhooks baie sleg werk met sertifikate en eintlik baie swak gedokumenteer is. En dit lyk asof IFTTT nie met ipv6 werk nie. Ek het alles probeer wat ek kon, maar het misluk. U het dalk 'n beter geluk. Moenie vergeet om 'n pos te maak nie.

upd: ek het 'n idee hoe ek dit veiliger kan maak sonder enkripsie. U maak 'n paar skrifte vir elke aksie wat u wil uitvoer. U verander die mirobo.sh om die script te noem met die gegewe parameter wat in webhook gestuur word, bv. skoon_slaapkamer. Dis dit. Die meeste persoon wat die haak gebruik, is om u slaapkamer weer en weer skoon te maak …)) Sodra ek dit gedoen het, sal ek die instruksies opdateer

Stap 5: Hoe om u kaart op te stel

Hoe om u kaart te teken
Hoe om u kaart te teken

Sodra u u volledige kaart in u MiHome -app gereed het, stuur u u vakuum na 'n spesifieke plek via die 'app_goto' -opdrag.

Maak 'n skermkiekie van die volledige kaart met die pos gestuur en die basis. Die basispunt na herlaai van die vakuum is die posisie [25500, 25500] DIT IS NIE DIE POSITIE VAN LADINGSBASIS NIE, maar as u die vakuum op die laaibasis herlaai, sal die laaibasis se posisie 25500, 25500 wees. en basiese posisie, kan u u kaart op enige CAD -program teken met die kiekie wat u geneem het. Ek het gratis QCAD gebruik.

Nadat ek die prent op die rooster gepas het, gebruik ek 'n lyn oor die kamer om die begin- en eindpunt van die sone te meet.

Aanbeveel: