Sisällysluettelo:

XiaoMi -tyhjiö + Amazon -painike = kojelaudan puhdistus: 5 vaihetta (kuvilla)
XiaoMi -tyhjiö + Amazon -painike = kojelaudan puhdistus: 5 vaihetta (kuvilla)

Video: XiaoMi -tyhjiö + Amazon -painike = kojelaudan puhdistus: 5 vaihetta (kuvilla)

Video: XiaoMi -tyhjiö + Amazon -painike = kojelaudan puhdistus: 5 vaihetta (kuvilla)
Video: Mosquito killer in action : Thermacell TEST in Nature : How effective on a scale 1-10? 2024, Marraskuu
Anonim
XiaoMi Vacuum + Amazon -painike = kojelaudan puhdistus
XiaoMi Vacuum + Amazon -painike = kojelaudan puhdistus

Tässä ohjeessa selitetään, kuinka voit käyttää Amazon Dash -painikkeita XiaoMi -tyhjiön hallintaan.

Sain joukon Amazon -painikkeita, jotka olivat paikoillaan siitä lähtien, kun ne olivat 1 dollari, enkä käyttänyt niitä. Mutta kun vastaanotin uuden robotti -tyhjiön, päätin, että olisi erittäin kätevää käyttää näitä painikkeita tyhjiön ohjaimena.

Paina Ziploc -painiketta ja se tyhjentää makuuhuoneen.

Paina Glad -painiketta ja se tyhjentää olohuoneen.

Paina Fidži.. No, sinulla on idea.

Tämä projekti sisältää monia hakkereita Internetistä. Arvostan todella työtä, jota monet ihmiset ovat tehneet, ja luulen, että minun on kerrottava heidän tutkimukseensa perustuva pieni väline.

Vastuuvapauslauseke: Kaikki alla olevat vaiheet teet omalla vastuullasi! Jos noudatat ohjeita huolellisesti, on hyvin pieni mahdollisuus vahingoittaa jotain. Mutta näin ei tapahdu! Ja en ota siitä vastuuta. BTW kaikki vaiheet voidaan peruuttaa, joten takuurikkomuksia ei mahdollisesti ole. Mutta tietysti - YMMV

Perusperiaate on, että nappaamme reitittimen viivapainikkeen ja lähetämme webhookin tyhjiöön sen sijaan, että ostamme tavaraa Amazonilta.

Mitä tarvitset:

  • Reititin, jossa on mukautettu laiteohjelmisto, joka voi hallita DHCP: tä, suorittaa komentosarjoja ja täyttää get | post -kyselyt. Mikrotik, DD-WRT, OpenWRT, tomaatti jne.
  • XiaoMi -tyhjiö. v1 tai v2
  • Amazon Dash -painikkeet

Erityisesti mitä käytin:

  • Mikrotik
  • XiaoMi v2 Vacuum Roborock S50
  • Joukko Amazon Dash -painikkeita

Tässä on menettely

  1. Me juurimme tyhjiön
  2. Asenna ja määritä tarvittavat paketit root -tyhjiössä
  3. Asenna Amazon Dash -painike
  4. Asenna reititin napin pyyntöjen vastaanottamiseen ja tyhjiön hallintaan

HUOM: Itse asiassa sinun ei tarvitse juurruttaa tyhjiötä hallitaksesi sitä. Jos sinulla on jokin muu palvelin lähiverkossasi (tai missä tahansa), joka voi käyttää pythonia tai php: tä, voit ohjata webhookeja niihin. Mutta en. Halusin pitää sen siistinä ja kompaktina itse tyhjiössä. Joten jos et pidä lähestymistavastani, oletan, että voit selvittää, miten voit perustaa oman keskimmäisen palvelimen tästä lukemisesta. Siirry suoraan kohtaan 2.

Ok tästä mennään…

Vaihe 1: Hanki Token ja Root Vacuum

Hanki Token ja Root Vacuum
Hanki Token ja Root Vacuum
Hanki Token ja Root Vacuum
Hanki Token ja Root Vacuum
Hanki Token ja Root Vacuum
Hanki Token ja Root Vacuum
Hanki Token ja Root Vacuum
Hanki Token ja Root Vacuum

Kaikki ohjelmistot, ohjelmistot ja ohjeet juurtumiseen on saatu osoitteesta: https://4pda.ru/forum/index.php? Showtopic = 881982

Jos sinulla on muu käyttöjärjestelmä kuin Windows ja muu kuin Android -puhelin (voit käyttää virtuaalista noxin kanssa), seuraa yllä olevaa linkkiä (käytä Google -kääntäjää) ja lue ohjeet, jotka muuten noudatat tämän oppaan ohjeita.

Juurtuakseen meidän on hankittava ip -osoite ja tunnus tyhjiöstäsi.

Pura root. 7z.

Asenna Mihome Vevsistä Android -laitteellesi. Voit käyttää jotakin arkistosta tai jos tämä ohje on päivätty, uusimman version voi saada hänen verkkosivustoltansa (https://www.kapiba.ru/2017/11/mi-home.html) tai hänen Google Drivestaan (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)

Kirjaudu MiHomeen. Sinun on asetettava Kiina Manner tilillesi ja lisättävä siihen tyhjiö).

Napauta Tyhjiökuvake Asetukset (kolme pistettä oikeassa yläkulmassa) Yleiset asetukset Verkkotiedot

Täytä ip-osoite ja tunnus osoitteessa win-mirobo/win-mirobo.ini

Poista palomuuri käytöstä Windowsissa. Käynnistä win-mirobo.bat ja päivitä laiteohjelmisto.

!!!!!!!!! V1 on v1 Vacuum ja V2 on v2 Vacuum (Roborock S50) !!!!!!! Jos välähdit väärin, siirry 4pda -linkkiin (tässä vaiheessa ensin) ja lue kuinka toipua.

Arter Vacuum käynnistyy uudelleen - olet onnistuneesti tyhjentänyt tyhjiön ja nyt sinulla on pääsy siihen ssh: n kautta!

SSH siihen (kitillä) puhdistusaineen/puhdistusaineen kanssa. Vaihda salasana salasanalla

Vaihe 2: Asenna ja määritä tarvittavat paketit tyhjiössä

Lähtökohta

Verkkokoukkujen sijaan MiVacuum käyttää miio -protokollaa, kuten kaikki XiaoMi IoT -laitteet. Joten meidän on opittava se ymmärtämään webhookeja. Tarvitsemme keskimmäisen miehen, joka voi tarttua webhookiin ja kääntää sen miio -protokollaksi laitteelle. On olemassa python-kirjasto (https://github.com/rytilahti/python-miio), mutta emme voi käyttää sitä tyhjiössä, koska tyhjiössä ei ole tarpeeksi tilaa Python 3.5+: lle.

Mutta onneksi on olemassa php-miio-kirjasto (https://github.com/skysilver-lab/php-miio), joka on verrattain hyvin kevyt ja tätä aiomme käyttää (btw sitä käytetään myös yllä olevassa win-mirobossa)). Se, joka tarttuu webhookiin, on webhook -demoni (https://github.com/adnanh/webhook), joka suorittaa PHP -komentosarjan saapuvassa webhookissa.

SSH tyhjiöön (kitillä):

#Tee juuri. Joo tiedän, että se ei ole turvallista..

#Lataa php-miio

#Tarkista uusin githubista. Korjaa alla olevat rivit uusimman wgetin mukaan 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

#Lataa webhooks -demoni

#Tarkista uusin githubista. Oikea rivi alla viimeisimmän wgetin mukaan 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

#Luo asetukset webhookille

nano /opt/webhook/hooks.json #Syötä hooks.json -sisältö tähän. Napsauta kittiä hiiren kakkospainikkeella. #Ctr+X Tallenna Y.

#Luo skripti php-miio-kutsumiseen

nano /opt/webhook/mirobo.sh #Syötä mirobo.sh -sisältö tähän. Napsauta kittiä hiiren kakkospainikkeella. # Ctr +X Tallenna Y. # Tee suoritettava chmod +x /opt/webhook/mirobo.sh

#Luo automaattisen käynnistyksen komentosarja ja uusi kokoonpanot

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 oletusasetukset

#Käynnistä järjestelmä uudelleen

käynnistä uudelleen

Testaa asetukset uudelleenkäynnistyksen jälkeen selaimessa:

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

menetelmä - komento

parametrit - parametrit

Kaikki menetelmät (komennot) ja parametrit löydät täältä:

github.com/marcelrv/XiaomiRobotVacuumProtocol

Hooks.jsonin sisältö

Muuta-token-here tunnukseksesi tyhjiöstä.

Korjaa ip-sallittujen luettelo paikalliseen verkkoon tai poista kokonaan, jos käytät koukkuja muualta (vaarallista).

[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/opt/webhook", "response-message": "Suoritus 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 -tiedoston sisältö. Kopioi ja liitä. Siinä on vain kaksi riviä (ei 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 ']}'

Vaihe 3: Asenna Amazon Dash -painikkeet

Avaa Amazon -sovelluksesi. Siirry kohtaan Dash Devices. Lisää uusi viivapainike tavalliseen tapaan. Kehotteessa valita tuote ÄLÄ. Sulje sovellus. Olet valmis.

Vaihe 4: Asenna reititin nappauspyyntöön ja hallitse MiVacuumia

Aseta reititin nappaamaan pyynnön ja ohjaa MiVacuumia
Aseta reititin nappaamaan pyynnön ja ohjaa MiVacuumia
Aseta reititin nappaamaan pyynnön ja ohjaa MiVacuumia
Aseta reititin nappaamaan pyynnön ja ohjaa MiVacuumia
Asenna reititin nappaamaan pyynnön ja ohjaamaan MiVacuumia
Asenna reititin nappaamaan pyynnön ja ohjaamaan MiVacuumia

Tämä toimii seuraavasti.

Kun painiketta painetaan, se muodostaa yhteyden verkkoon ja pyytää dhcp -palvelinta määrittämään sille osoitteen. Meidän on tartuttava pyyntöön ja suoritettava verkkokoukku tyhjiöön. Ylimääräisenä turvatoimenpiteenä estämme yhteyden Amazoniin, jotta Amazon ei tietäisi, että edes painimme painiketta, eikä sillä ole mahdollisuutta painaa laiteohjelmistopäivitystä tai jotain muuta.

Useimmiten käytän WinBoxia, mutta joskus terminaali on vain helpompaa.

#Luo palomuurin pudotussääntö estettävällä osoiteluettelolla

/ip palomuurisuodatin lisää ketju = eteenpäin src-address-list = blockdash action = drop comment = "Drop Amazon Dash"

Sitten meidän on luotava dhcp -vuokrasääntö jokaiselle painikkeelle. Erittäin helppo tehdä winboxissa.

DHCP -palvelin - vuokrasopimukset

Kun painamme painiketta, uusi vuokrasopimus tulee näkyviin. Napsautamme sitä staattisena ja asetamme osoiteluetteloon "blockdash", asetamme vuokrasopimukseen 5 sekuntia (jotta vuokrasopimus päättyy ennen seuraavaa painallusta) ja kopioimme mac -osoitteen myöhempää käyttöä varten.

#Tämä komento on vain viitteellinen, jos lisäsit vuokrasopimuksen Winboxiin, ohita se.

/ip dhcp-palvelimen vuokrasopimus lisää osoite-luettelo = lohko-osoitteen mac-osoite = XXXXXXXXXX-osoite = 192.168.x.x-lease-time = 5 s

Nyt meidän on osoitettava vuokrakirjoitus.

Avaa DHCP -välilehti ja lisää 'myLeaseScript' vuokraskriptiksi dhcp -palvelimellesi.

Avaa nyt System - Scripts ja lisää 'myLeaseScript' luku- ja testausoikeuksin.

MyLeaseScriptin sisältö:

#Scriptiä kutsutaan kahdesti vuokrasopimuksessa (1) ja julkaisussa (0): if ($ leaseBound = 1) do = { /log info ("MyLeaseScript suoritetaan. Joku on painanut Dash -painiketta?")

#Array kaikista painikkeista ja url -soitosta

: paikalliset painikkeet {"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/koukut/mirobo? Method = app_zoned_clean¶ms = [24000, 21500, 26100, 22900, 1]"; "ZZ: ZZ: ZZ: ZZ: ZZ: ZZ" = "https://192.168.your.ip: 9000/koukut/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"; };

#Tarkista painettu painike ja koko URL -osoite

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

Nyt olet automatisoinut puhdistuksesi Amazon Dash -painikkeen painalluksella. Pidä hauskaa

Huomaa: Webkookkien lähettäminen salaamattomana on erittäin vaarallista. Webhook voi käyttää salausta, mutta yritin kuitenkin saada sen toimimaan, mutta se ei koskaan tapahtunut. Koska käytän sitä vain lähiverkossani, en ole liian huolissani. Mutta jos haluat käyttää sitä Internetin välityksellä kytkeäksesi IFTTT: n Google Assistant -integraatioon, kiinnitä huomiota tähän! En ole varma, mikä oli syy salausvikaan tapauksessani. Letencryptin myöntämät itse allekirjoitetut varmenteet. Liian monimutkainen verkko, jossa on joukko NAT: ita, jotka hakkasin ipv6: lla. Mutta minusta näyttää siltä, että webhooks toimii erittäin huonosti varmenteiden kanssa ja itse asiassa erittäin huonosti dokumentoituna. Ja näyttää siltä, että IFTTT ei toimi ipv6: n kanssa. Yritin kaikkeni, mutta epäonnistuin. Sinulla voi olla parempi tuuri. Muista tehdä postaus.

päivitys: Minulla on idea, kuinka tehdä siitä turvallisempi ilman salausta. Luot muutaman komentosarjan jokaiselle toiminnolle, jonka haluat suorittaa. Muokkaat mirobo.sh -koodia kutsuaksesi skriptin tietyllä parametrilla, joka lähetetään webhookissa, esim. puhdas_makuuhuone. Se siitä. Useimmat koukkua hyödyntävät ihmiset puhdistavat makuuhuoneesi uudestaan ja uudestaan …)) Kun teen sen, päivitän ohjeen

Vaihe 5: Kartan piirtäminen

Kuinka piirtää karttasi
Kuinka piirtää karttasi

Kun koko kartta on valmis MiHome -sovelluksessasi, lähetä tyhjiö tiettyyn paikkaan 'app_goto' -komennon avulla.

Tee kuvakaappaus koko kartasta, jossa on lähetetty sijainti ja pohja. Tukikohta tyhjiön uudelleenkäynnistyksen jälkeen on sijainti [25500, 25500] TÄMÄ EI OLE LATAUSPERUSTEEN SIJAINTI, mutta jos käynnistät tyhjiön uudelleen latausalustalla, latausalustan sijainti on 25500, 25500. ja perusasennossa voit piirtää karttasi mille tahansa CAD -ohjelmalle ottamasi kuvakaappauksen avulla. Käytin ilmaista QCADia.

Kun kuva on sovitettu ruudukkoon, käytän huoneen poikki viivalla vyöhykkeen alku- ja loppupistettä.

Suositeltava: