Isi kandungan:

XiaoMi Vacuum + Amazon Button = Dash Cleaning: 5 Langkah (dengan Gambar)
XiaoMi Vacuum + Amazon Button = Dash Cleaning: 5 Langkah (dengan Gambar)

Video: XiaoMi Vacuum + Amazon Button = Dash Cleaning: 5 Langkah (dengan Gambar)

Video: XiaoMi Vacuum + Amazon Button = Dash Cleaning: 5 Langkah (dengan Gambar)
Video: RoboRock S5 (S50) Mopping Demo 2024, November
Anonim
XiaoMi Vacuum + Amazon Button = Pembersihan Dash
XiaoMi Vacuum + Amazon Button = Pembersihan Dash

Arahan ini akan menerangkan cara menggunakan Amazon Dash Buttons untuk Mengawal XiaoMi Vacuum.

Saya mendapat sebilangan besar Tombol Amazon dari masa mereka $ 1 dan saya tidak menggunakannya. Tetapi semasa menerima Robot Vakum baru, saya memutuskan bahawa sangat mudah untuk menggunakan butang ini sebagai kawalan ke vakum.

Tekan butang Ziploc dan ia akan mengosongkan Bilik Tidur.

Tekan butang Senang dan ia akan mengosongkan Ruang Tamu.

Tekan Fiji.. baik anda ada idea.

Projek ini terdapat banyak peretasan dari internet. Saya sangat menghargai karya yang telah dilakukan oleh banyak orang dan berpendapat bahawa saya harus berkongsi alat kecil saya berdasarkan kajian mereka.

Penafian: Semua langkah di bawah anda lakukan dengan risiko anda sendiri! Sekiranya anda mengikuti langkah-langkahnya dengan teliti, kemungkinan anda akan merosakkan sesuatu. Tetapi sh # t berlaku! Dan saya tidak bertanggungjawab. BTW semua langkah dapat diterbalikkan sehingga berpotensi tidak ada pelanggaran jaminan. Tetapi sudah tentu - YMMV

Prinsip asasnya ialah kita menekan butang dash tekan pada penghala dan menghantar webhook ke Vacuum dan bukannya membeli barang dari Amazon.

Apa yang anda perlukan:

  • Router dengan firmware tersuai yang dapat mengawal DHCP, menjalankan skrip dan memenuhi permintaan get | post. Mikrotik, DD-WRT, OpenWRT, Tomato dll.
  • Vakum XiaoMi. v1 atau v2
  • Butang Dash Amazon

Terutama apa yang saya gunakan:

  • Mikrotik
  • XiaoMi v2 Vacuum Roborock S50
  • Sekumpulan Butang Dash Amazon

Inilah prosedurnya

  1. Kami membasmi kekosongan
  2. Pasang dan konfigurasikan pakej yang diperlukan di bawah root pada vakum
  3. Sediakan butang Dash Amazon
  4. Siapkan Router untuk menangkap permintaan butang dan mengawal Vacuum

NB: Sebenarnya anda tidak perlu mengosongkan kekosongan anda untuk mengendalikannya. Sekiranya anda mempunyai pelayan lain di lan anda (atau di mana sahaja) yang boleh menjalankan python atau php, anda boleh mengarahkan webhooks kepada mereka. Tetapi saya tidak. Dan saya mahu memastikannya kemas dan padat pada kekosongan itu sendiri. Oleh itu, jika anda tidak menyukai pendekatan saya, saya anggap anda dapat mengetahui cara menyediakan pelayan orang tengah anda sendiri dari bacaan ini. Langsung ke titik 2.

Ok di sini kita pergi …

Langkah 1: Dapatkan Vakum Token dan Akar

Dapatkan Vakum Token dan Akar
Dapatkan Vakum Token dan Akar
Dapatkan Vakum Token dan Akar
Dapatkan Vakum Token dan Akar
Dapatkan Vakum Token dan Akar
Dapatkan Vakum Token dan Akar
Dapatkan Vakum Token dan Akar
Dapatkan Vakum Token dan Akar

Semua perisian, perisian perisian dan arahan untuk rooting diperoleh dari: https://4pda.ru/forum/index.php? Showtopic = 881982

Sekiranya anda mempunyai OS selain Windows dan telefon selain Android (anda boleh menggunakan maya dengan nox) ikuti pautan di atas (gunakan Google Translate) dan baca arahan sebaliknya ikuti manual di sini.

Untuk melakukan root, kami perlu mendapatkan alamat ip dan token dari ruang kosong anda.

Buka root.7z.

Pasang Mihome dari Vevs pada Android anda. Anda boleh menggunakannya dari Arkib atau jika arahan ini bertarikh maka versi terbaru boleh didapati dari laman webnya (https://www.kapiba.ru/2017/11/mi-home.html) atau Google Drive-nya (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)

Log masuk ke MiHome anda. Anda harus menetapkan China Daratan pada akaun anda dan menambahkan Vacuum ke dalamnya).

Ketik pada Tetapan ikon Vakum (Tiga titik di kanan atas) Maklumat Rangkaian Tetapan Umum

Isi alamat ip dan token di win-mirobo / win-mirobo.ini

Lumpuhkan firewall di tingkap. Lancarkan win-mirobo.bat dan flash firmware.

!!!!!!!!! V1 adalah untuk v1 Vacuum dan V2 adalah untuk v2 Vacuum (Roborock S50) !!!!!!! Sekiranya anda salah FW - pergi ke pautan 4pda (pertama dalam langkah ini) dan baca cara memulihkannya.

Arter Vacuum reboot - anda berjaya mengosongkan kekosongan anda dan sekarang anda boleh mengaksesnya melalui ssh!

SSH kepadanya (dengan Putty) dengan pembersih / pembersih. Tukar kata laluan anda dengan passwd

Langkah 2: Pasang dan Konfigurasikan Pakej Yang Perlu Di Bawah Root on Vacuum

Premis

Daripada webhooks MiVacuum menggunakan protokol miio seperti juga setiap peranti XiaoMi IoT. Oleh itu, kita harus mempelajarinya untuk memahami webhooks. Kami memerlukan orang tengah yang dapat menangkap webhook dan menerjemahkannya ke protokol miio ke peranti. Terdapat python library (https://github.com/rytilahti/python-miio) tetapi kami tidak dapat menggunakannya di ruang hampa kerana tidak ada ruang yang cukup untuk Python 3.5+ di Vacuum.

Tetapi untungnya ada perpustakaan php-miio (https://github.com/skysilver-lab/php-miio) yang relatif sangat ringan dan inilah yang akan kita gunakan (btw ia juga digunakan dalam win-mirobo di atas). Orang yang menangkap webhook adalah webhook daemon (https://github.com/adnanh/webhook) yang menjalankan skrip untuk php pada webhook masuk.

SSH ke vakum anda (dengan Putty):

#Jangan di bawah akar. Ya saya tahu ia tidak selamat..whatevs.sudo su # Di sini kita memasang semua keperluan apt-get install -y wget php5-cli nano #Segala perkara lain akan / pilih cd / opt

#Muat turun php-miio

#Semak terkini di github. Garis betul di bawah mengikut wget terkini 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

#Muat turun daemon webhooks

#Semak terkini di github. Garis betul di bawah mengikut wget terkini 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

#Buat tetapan untuk webhook

nano /opt/webhook/hooks.json #Masukkan kandungan hooks.json di sini. Klik kanan di dempul. # Ctr + X Jimat Y.

#Buat skrip untuk memanggil php-miio

nano /opt/webhook/mirobo.sh #Masukkan kandungan mirobo.sh di sini. Klik kanan di dempul. # Ctr + X Simpan Y. # Buat chmod yang boleh dilaksanakan + x /opt/webhook/mirobo.sh

#Buat skrip autostart dan perbaharui konfigurasi

echo "/ opt / webhook / webhook -hooks /opt/webhook/hooks.json" >> /etc/init.d/webhook.sh chmod ugo + x /etc/init.d/webhook.sh kemas kini-rc.d lalai webhook.sh

#Mulakan semula sistem

but semula

Selepas but semula, tetapkan tetapan anda di penyemak imbas:

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

kaedah - arahan

parameter - parameter

Semua kaedah (perintah) dan parameter yang anda dapati di sini:

github.com/marcelrv/XiaomiRobotVacuumProtocol

Kandungan hooks.json

Tukar token anda-di sini menjadi token anda dari kekosongan.

Betulkan ip-senarai putih untuk rangkaian tempatan anda atau hapus sepenuhnya jika anda menggunakan mata kail dari tempat lain (tidak selamat).

[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/ opt / webhook", "respons-message": "Melaksanakan skrip mirobo "," include-command-output-in-respons ": false," pass-environment-to-command ": [{" source ":" string "," envname ":" token "," name ": "your-token-here"}], "pass-argument-to-command": [{"source": "url", "name": "method"}, {"sumber": "url", "nama ":" params "}]," trigger-rule ": {" match ": {" type ":" ip-whitelist "," ip-range ":" 192.168.1.0/24 "}}}]

kandungan fail mirobo.sh. Cukup copy-paste. Hanya ada dua baris (bukan 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 ']}'

Langkah 3: Sediakan Butang Dash Amazon

Buka Aplikasi Amazon anda. Pergi ke Dash Devices. Tambahkan butang tanda hubung baru seperti biasa. Pada janji untuk memilih produk JANGAN. Tutup aplikasinya. Anda sudah selesai.

Langkah 4: Siapkan Router untuk Menangkap Permintaan Butang dan Mengawal MiVacuum

Siapkan Router untuk Menangkap Permintaan Butang dan Mengawal MiVacuum
Siapkan Router untuk Menangkap Permintaan Butang dan Mengawal MiVacuum
Siapkan Router untuk Menangkap Permintaan Butang dan Mengawal MiVacuum
Siapkan Router untuk Menangkap Permintaan Butang dan Mengawal MiVacuum
Siapkan Router untuk Menangkap Permintaan Butang dan Mengawal MiVacuum
Siapkan Router untuk Menangkap Permintaan Butang dan Mengawal MiVacuum

Ini berfungsi seperti berikut.

Apabila butang ditekan, alat ini bergaul dengan rangkaian anda dan meminta pelayan dhcp memberikan alamatnya. Kita harus memenuhi permintaan itu dan melakukan webhook hingga hampa. Sebagai langkah keselamatan tambahan, kami akan menyekat sambungan ke Amazon sehingga Amazon tidak mengetahui bahawa kami bahkan menekan butang dan tidak mempunyai kemampuan untuk mendorong kemas kini firmware atau yang lain.

Selalunya saya menggunakan WinBox, tetapi kadang-kadang terminal lebih mudah.

# Buat peraturan drop firewall dengan senarai alamat untuk disekat

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

Maka kita harus membuat peraturan sewa dhcp untuk setiap butang. Sangat mudah dilakukan di winbox.

Pelayan DHCP - Pajakan

Kami menekan butang pajakan baru muncul. Kami mengkliknya sebagai statik dan menetapkan senarai alamat ke 'blockdash', menetapkan masa sewa menjadi 5 saat (sehingga sewa berakhir sebelum akhbar berikutnya) dan menyalin alamat mac untuk kemudian.

# Perintah ini hanya untuk rujukan sekiranya anda menambahkan pajakan di winbox langkau saja.

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

Sekarang kita harus menunjukkan untuk menyewa skrip.

Buka tab DHCP dan tambahkan 'myLeaseScript' sebagai skrip sewa pada pelayan dhcp anda.

Sekarang buka Sistem - Skrip dan tambahkan 'myLeaseScript' dengan kebenaran membaca, ujian.

Kandungan myLeaseScript:

#Script dipanggil dua kali pada sewa (1) dan pada pelepasan (0): if ($ leaseBound = 1) do = {/ log info ("Menjalankan myLeaseScript. Seseorang menekan Dash Button?")

#Susun semua butang dan url untuk dihubungi

: butang tempatan {"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? Kaedah = 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"; };

#Semak butang yang ditekan dan url semua

: foreach mac, url dalam = butang $ do = {: if ($ mac = $ leaseActMAC) do = {/ log info ("Ditekan". $ mac. "butang") / alat ambil simpan-hasil = tiada mod = https http-kaedah = url pos = $ url}}}

Sekarang anda telah mengotomatiskan pembersihan anda dengan menekan Amazon Dash Button. Berseronok

Perhatikan: Sangat tidak selamat untuk menghantar webhooks yang tidak disulitkan. Webhook boleh menggunakan enkripsi, tetapi bagaimanapun saya berusaha untuk membuatnya tidak pernah berlaku. Oleh kerana saya menggunakannya hanya di rangkaian tempatan saya, saya tidak terlalu prihatin. Tetapi jika anda ingin menggunakannya melalui internet untuk menghubungkan IFTTT dengan integrasi Pembantu Google, sila perhatikan fakta ini! Saya tidak pasti apa sebab kegagalan crypto dalam kes saya. Sijil yang ditandatangani sendiri dengan saya dikeluarkan oleh letsencrypt. Rangkaian yang terlalu rumit dengan sekumpulan NAT saya dipukul dengan ipv6. Tetapi menurut saya webhooks berfungsi sangat buruk dengan sijil dan sebenarnya sangat teruk didokumentasikan. Dan nampaknya IFTTT tidak berfungsi dengan ipv6. Saya cuba sedaya mungkin, tetapi gagal. Anda mungkin mempunyai nasib yang lebih baik. Jangan lupa membuat catatan.

upd: Saya mempunyai idea bagaimana menjadikannya lebih selamat tanpa penyulitan. Anda membuat beberapa skrip untuk setiap tindakan yang ingin anda laksanakan. Anda mengubah suai mirobo.sh untuk memanggil skrip dengan parameter tertentu yang dihantar dalam webhook, misalnya. bilik bersih. Itu sahaja. Orang yang paling banyak menggunakan cangkuk adalah membersihkan bilik tidur anda berulang kali …)) Setelah saya melakukannya, saya akan mengemas kini arahan

Langkah 5: Cara Memetakan Peta Anda

Cara Memetakan Peta Anda
Cara Memetakan Peta Anda

Setelah peta lengkap anda siap di aplikasi MiHome anda, hantarkan kekosongan anda ke lokasi tertentu melalui perintah 'app_goto'.

Buat tangkapan skrin peta penuh dengan kedudukan yang dihantar dan pangkalan. Titik asas selepas reboot vakum adalah kedudukan [25500, 25500] INI BUKAN KEDUDUKAN Pangkalan Pengecasan, tetapi jika anda menghidupkan semula vakum di pangkalan pengecasan maka kedudukan pangkalan pengisian akan menjadi 25500, 25500. Jadi dari kedudukan yang diketahui dihantar dan kedudukan asas anda dapat memetakan peta anda di mana-mana program CAD dengan tangkapan skrin yang telah anda ambil. Saya menggunakan QCAD percuma.

Setelah memasang gambar ke grid saya menggunakan garis di seberang bilik untuk mengukur titik permulaan dan akhir zon.

Disyorkan: