Sisällysluettelo:
- Vaihe 1: Hanki Token ja Root Vacuum
- Vaihe 2: Asenna ja määritä tarvittavat paketit tyhjiössä
- Vaihe 3: Asenna Amazon Dash -painikkeet
- Vaihe 4: Asenna reititin nappauspyyntöön ja hallitse MiVacuumia
- Vaihe 5: Kartan piirtäminen
Video: XiaoMi -tyhjiö + Amazon -painike = kojelaudan puhdistus: 5 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
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
- Me juurimme tyhjiön
- Asenna ja määritä tarvittavat paketit root -tyhjiössä
- Asenna Amazon Dash -painike
- 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
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
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
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:
Langaton ovikello - (Vadelma PI ja Amazon Dash): 4 vaihetta (kuvilla)
Langaton ovikello - (Vadelma PI ja Amazon Dash): Mitä se tekee? (katso video) Kun painiketta painetaan, Raspberry löytää uuden laitteen kirjautuvan langattomaan verkkoon. Tällä tavalla se tunnistaa painetun painikkeen ja välittää tämän tiedon matkapuhelimeesi (tai laitteeseesi)
Amazon Dash Button Silent Doorbell: 10 vaihetta (kuvilla)
Amazon Dash Button Silent Doorbell: Jatkuva katseleminen ikkunasta ulos, jotta voit siepata kävijät ennen kuin he soittavat ovikelloa? Oletko kyllästynyt siihen, että koirat ja vauva tulevat hulluksi milloin tahansa? Älä halua käyttää rahaa omaan " älykkääseen " ratkaisu? Hiljaisen ovikellon tekeminen on yhtä
Liu'uta Amazon Fire Remote TV Remote: 3 vaihetta (kuvilla)
Slip on Amazon Fire Remote TV Remote: Voi Amazon, Fire TV on niin hämmästyttävä, miksi et antanut meille kaukosäätimen äänenvoimakkuuden säätimiä? No, alle 5 dollarilla Amazonissa voit ostaa tämän söpön pienen kaukosäätimen, virran, mykistää , äänenvoimakkuus ja kanava pienessä paketissa. Syötä 3D -tulostimeen
Valon/kotivalojen hallinta Arduinon ja Amazon Alexan avulla: 16 vaihetta (kuvilla)
Valon/kotivalojen hallitseminen Arduinon ja Amazon Alexan avulla: Olen selittänyt, kuinka ohjata UNO: hon kytkettyä ja Alexan ohjaamaa valoa
Amazon Echon oma versio: 8 vaihetta (kuvilla)
Oma versio Amazon Echosta: Hei kaverit, luulen, että kaikki tietävät Amazonin uusimmasta tuotteesta Amazon Echosta, joka on ääniohjattu laite eli voimme ohjata laitetta äänellämme ja se voi jopa puhua kanssamme. Tämän idean innoittamana olen luonut oman versioni, joka voi