Daftar Isi:
- Langkah 1: Dapatkan Token dan Root Vacuum
- Langkah 2: Instal dan Konfigurasikan Paket yang Diperlukan Di Bawah Root pada Vacuum
- Langkah 3: Siapkan Tombol Dash Amazon
- Langkah 4: Atur Router untuk Menangkap Permintaan Tombol dan Mengontrol MiVacuum
- Langkah 5: Cara Merencanakan Peta Anda
Video: Vakum XiaoMi + Tombol Amazon = Pembersihan Dasbor: 5 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Instruksi ini akan menjelaskan cara menggunakan Amazon Dash Buttons cadangan Anda untuk Mengontrol Vakum XiaoMi.
Saya mendapatkan banyak Tombol Amazon yang tergeletak sejak saat itu $ 1 dan saya tidak menggunakannya. Tetapi saat menerima Robot Vacuum baru, saya memutuskan bahwa akan sangat nyaman menggunakan tombol-tombol ini sebagai kontrol ke vakum.
Tekan tombol Ziploc dan itu akan mengosongkan Kamar Tidur.
Tekan tombol Senang dan itu akan mengosongkan Ruang Tamu.
Tekan Fiji.. baik Anda punya ide.
Di proyek ini ada banyak peretasan dari internet. Saya sangat menghargai pekerjaan yang telah dilakukan banyak orang dan berpikir saya harus membagikan alat kecil saya berdasarkan penelitian mereka.
Penafian: Semua langkah di bawah ini Anda lakukan dengan risiko Anda sendiri! Jika Anda mengikuti langkah-langkahnya dengan hati-hati, kecil kemungkinan Anda dapat merusak sesuatu. Tapi sh#t terjadi! Dan saya tidak bertanggung jawab atas itu. BTW semua langkah bisa dibalik sehingga berpotensi tidak ada pelanggaran garansi. Tapi tentu saja - YMMV
Prinsip dasarnya adalah kami menekan tombol dasbor pada router dan mengirim webhook ke Vacuum alih-alih membeli barang dari Amazon.
Apa yang Anda perlukan:
- Router dengan firmware khusus yang dapat mengontrol DHCP, menjalankan skrip, dan memenuhi permintaan get|post. Mikrotik, DD-WRT, OpenWRT, Tomat dll.
- Vakum XiaoMi. v1 atau v2
- Tombol Dash Amazon
Secara khusus apa yang saya gunakan:
- Mikrotik
- XiaoMi v2 Vacuum Roborock S50
- Sekelompok Tombol Dash Amazon
Berikut prosedurnya
- Kami melakukan root pada vakum
- Instal dan konfigurasikan paket yang diperlukan di bawah root pada vakum
- Atur tombol Amazon Dash
- Atur Router untuk menangkap permintaan tombol dan mengontrol Vakum
NB: Sebenarnya Anda tidak perlu me-root vakum Anda untuk mengontrolnya. Jika Anda memiliki server lain di lan Anda (atau di mana pun) yang dapat menjalankan python atau php, Anda dapat mengarahkan webhook ke mereka. Tapi aku tidak. Dan saya ingin membuatnya tetap rapi dan kompak di ruang hampa itu sendiri. Jadi jika Anda tidak menyukai pendekatan saya, saya berasumsi Anda dapat mengetahui cara mengatur server perantara Anda sendiri dari bacaan ini. Langsung saja ke poin 2.
Oke kita mulai…
Langkah 1: Dapatkan Token dan Root Vacuum
Semua perangkat lunak, fimware, dan instruksi untuk rooting diperoleh dari:https://4pda.ru/forum/index.php?showtopic=881982
Jika Anda memiliki OS selain Windows dan ponsel selain Android (Anda dapat menggunakan virtual dengan nox) silakan ikuti tautan di atas (gunakan Google Terjemahan) dan baca instruksi jika tidak ikuti dengan manual di sini.
Untuk melakukan root, kita perlu mendapatkan alamat ip dan token dari vakum Anda.
Buka paket root.7z.
Silakan instal Mihome dari Vevs di Android Anda. Anda dapat menggunakan salah satu dari Arsip atau jika instruksi ini bertanggal maka versi terbaru dapat diperoleh dari situs webnya (https://www.kapiba.ru/2017/11/mi-home.html) atau Google Drive-nya (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)
Masuk ke MiHome Anda. Anda harus mengatur China Mainland di akun Anda dan menambahkan Vakum ke dalamnya).
Ketuk Pengaturan ikon Vakum (Tiga titik di kanan atas) Pengaturan Umum Info jaringan
Isi alamat ip dan token di win-mirobo/win-mirobo.ini
Nonaktifkan firewall di windows. Luncurkan win-mirobo.bat dan flash firmware.
!!!!!!!!! V1 untuk Vakum v1 dan V2 untuk Vakum v2 (Roborock S50)!!!!!!!Jika Anda salah mem-flash FW - buka tautan 4pda (pertama dalam langkah ini) dan baca cara memulihkannya.
Arter Vacuum reboot - Anda telah berhasil mengakar vakum Anda dan sekarang Anda memiliki akses ke sana melalui ssh!
SSH ke sana (dengan Putty) dengan pembersih/pembersih. Ubah kata sandi Anda dengan passwd
Langkah 2: Instal dan Konfigurasikan Paket yang Diperlukan Di Bawah Root pada Vacuum
Premis
Alih-alih webhook, MiVacuum menggunakan protokol miio seperti halnya setiap perangkat IoT XiaoMi. Jadi kita harus mempelajarinya untuk memahami webhook. Kami membutuhkan perantara yang dapat menangkap webhook dan menerjemahkannya ke protokol miio ke perangkat. Ada pustaka python (https://github.com/rytilahti/python-miio) tetapi kami tidak dapat menggunakannya di ruang hampa karena tidak ada cukup ruang untuk Python 3.5+ di ruang hampa.
Tapi untungnya ada perpustakaan php-miio (https://github.com/skysilver-lab/php-miio) yang relatif sangat ringan dan inilah yang akan kita gunakan (btw itu juga digunakan di win-mirobo di atas). Yang menangkap webhook adalah webhook daemon (https://github.com/adnanh/webhook) yang menjalankan skrip php pada webhook yang masuk.
SSH ke ruang hampa Anda (dengan Putty):
#Lakukan di bawah root. Ya, saya tahu ini tidak aman..whatevs.sudo su #Di sini kita menginstal semua kebutuhan apt-get install -y wget php5-cli nano #Segala sesuatunya akan /opt cd /opt
#Download php-miio
#Cek terbaru di github. Garis yang benar di bawah ini sesuai dengan wget terbaru 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
#Unduh daemon webhooks
#Cek terbaru di github. Baris yang benar di bawah ini menurut wget terbaru 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 pengaturan untuk webhook
nano /opt/webhook/hooks.json #Masukkan konten hooks.json di sini. Klik kanan di dempul. #Ctr+X Simpan Y.
#Buat skrip untuk memanggil php-miio
nano /opt/webhook/mirobo.sh #Masukkan konten mirobo.sh di sini. Klik kanan di dempul. #Ctr+X Simpan Y. # Buat chmod +x yang dapat dieksekusi /opt/webhook/mirobo.sh
#Buat skrip autostart dan perbarui konfigurasi
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 default webhook.sh
#Reboot sistem
menyalakan ulang
Setelah reboot, uji pengaturan Anda di browser:
192.168.your.ip:9000/hooks/mirobo?method=find_me
metode - perintah
params - parameter
Semua metode (perintah) dan parameter dapat Anda temukan di sini:
github.com/marcelrv/XiaomiRobotVacuumProtocol
Isi dari hooks.json
Ubah token Anda di sini menjadi token Anda dari vakum.
Perbaiki ip-whitelist untuk jaringan lokal Anda atau hapus sepenuhnya jika Anda menjalankan hook dari tempat lain (tidak aman).
[{ "id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/opt/webhook", "response-message": "Melaksanakan mirobo script", "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" } } }]
konten file 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', "metode":"'$1'", "params":['$2']}'
Langkah 3: Siapkan Tombol Dash Amazon
Buka Aplikasi Amazon Anda. Pergi ke Perangkat Dash. Tambahkan tombol dasbor baru seperti biasa. Pada promt untuk memilih produk JANGAN. Tutup aplikasi. Kamu selesai.
Langkah 4: Atur Router untuk Menangkap Permintaan Tombol dan Mengontrol MiVacuum
Ini bekerja sebagai berikut.
Ketika tombol ditekan, tombol tersebut terhubung dengan jaringan Anda dan meminta server dhcp untuk menetapkan alamatnya. Kami harus menangkap permintaan itu dan melakukan webhook ke ruang hampa. Sebagai tindakan keamanan tambahan kami akan memblokir koneksi ke Amazon sehingga Amazon tidak akan tahu kami bahkan menekan tombol dan tidak memiliki kemampuan untuk mendorong pembaruan firmware atau yang lainnya.
Kebanyakan saya menggunakan WinBox, tetapi terkadang terminal lebih mudah.
#Buat aturan drop firewall dengan daftar alamat untuk diblokir
/ip firewall filter add chain=forward src-address-list=blockdash action=drop comment="Drop Amazon Dash"
Kemudian kita harus membuat aturan sewa dhcp untuk setiap tombol. Sangat mudah dilakukan di winbox.
DHCP Server - Sewa
Yang kita tekan tombol sewa baru muncul. Kami mengkliknya sebagai statis dan mengatur daftar alamat ke 'blockdash', mengatur waktu sewa menjadi 5 detik (sehingga masa sewa berakhir sebelum penekanan berikutnya) dan salin alamat mac untuk nanti.
#Perintah ini hanya untuk referensi jika Anda menambahkan sewa di winbox lewati saja.
/ip dhcp-server lease tambahkan address-list=blockdash mac-address=XXXXXXXXXX address=192.168.x.x lease-time=5s
Sekarang kita harus menunjuk ke skrip sewa.
Buka tab DHCP dan tambahkan 'myLeaseScript' sebagai skrip sewa di server dhcp Anda.
Sekarang buka System - Scripts dan tambahkan 'myLeaseScript' dengan izin baca, uji.
Isi myLeaseScript:
#Script dipanggil dua kali saat sewa (1) dan saat rilis (0):if ($leaseBound=1) do={ /log info ("Menjalankan myLeaseScript. Seseorang menekan Tombol Dash?")
#Array dari semua tombol dan url Anda untuk dihubungi
:tombol lokal { "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"; };
#Periksa tombol yang ditekan dan url acll
:foreach mac, url in=$buttons do={:if ($mac=$leaseActMAC) do={ /log info ("Tekan ".$mac." button") /tool fetch keep-result=no mode=https http-metode=post url=$url } } }
Sekarang Anda telah mengotomatiskan pembersihan Anda dengan menekan Tombol Amazon Dash. Selamat bersenang-senang
Harap perhatikan: Sangat tidak aman untuk mengirim webhook yang tidak terenkripsi. Webhook dapat menggunakan enkripsi, tetapi bagaimanapun saya mencoba membuatnya berfungsi, itu tidak pernah terjadi. Karena saya menggunakannya hanya di jaringan lokal saya, saya tidak terlalu khawatir. Tetapi jika Anda ingin menggunakannya melalui internet untuk terhubung ke IFTTT dengan integrasi Google Assistant, harap perhatikan fakta ini! Saya tidak yakin apa alasan kegagalan kripto dalam kasus saya. Sertifikat yang ditandatangani sendiri yang saya kalahkan dikeluarkan oleh letsencrypt. Jaringan yang terlalu rumit dengan banyak NAT yang saya kalahkan dengan ipv6. Tapi menurut saya webhook bekerja sangat buruk dengan sertifikat dan pada kenyataannya sangat buruk didokumentasikan. Dan sepertinya IFTTT tidak berfungsi dengan ipv6. Saya mencoba semua yang saya bisa, tetapi gagal. Anda mungkin lebih beruntung. Jangan lupa buat postingan.
upd: Saya punya ide bagaimana membuatnya lebih aman tanpa enkripsi. Anda membuat beberapa skrip untuk setiap tindakan yang ingin Anda lakukan. Anda memodifikasi mirobo.sh untuk memanggil skrip dengan parameter yang diberikan yang dikirim di webhook mis. clean_bedroom. Itu dia. Orang yang paling banyak mengeksploitasi hook akan lakukan adalah membersihkan kamar tidur Anda lagi dan lagi…)) Setelah saya melakukannya, saya akan memperbarui instruksinya
Langkah 5: Cara Merencanakan Peta Anda
Setelah peta lengkap Anda siap di aplikasi MiHome, kirim vakum Anda ke lokasi tertentu melalui perintah 'app_goto'.
Buat tangkapan layar peta lengkap dengan posisi terkirim dan pangkalan. Titik dasar setelah reboot vakum adalah posisi [25500, 25500]INI BUKAN POSISI CHARGING BASE, tetapi jika Anda me-reboot vakum di charging base maka posisi charging base akan menjadi 25500, 25500. Jadi dari posisi yang diketahui dikirim dan posisi dasar Anda dapat memplot peta Anda pada program CAD apa pun dengan tangkapan layar yang telah Anda ambil. Saya menggunakan QCAD gratis.
Setelah memasang gambar ke kisi, saya menggunakan garis melintasi ruangan untuk mengukur titik awal dan akhir zona.
Direkomendasikan:
Aplikasi Tombol yang Dapat Diperpanjang Dengan Umpan Balik Getaran: 7 Langkah (dengan Gambar)
Aplikasi Tombol yang Dapat Diperpanjang Dengan Umpan Balik Getaran: Dalam tutorial ini, pertama-tama kami akan menunjukkan kepada Anda cara menggunakan Arduino Uno untuk mengontrol motor getaran melalui tombol yang diperluas. Sebagian besar tutorial tentang tombol tekan melibatkan tombol pada papan tempat memotong roti fisik, sedangkan dalam tutorial ini, tombolnya telah
Antarmuka Dua Kawat (DMX) Dengan Layar dan Tombol: 5 Langkah (dengan Gambar)
Antarmuka Dua Kawat (DMX) Dengan Layar dan Tombol: DMX adalah protokol yang digunakan untuk mengontrol perlengkapan pencahayaan panggung dan efek khusus. Setiap perangkat memiliki salurannya sendiri yang ditanggapi. Saluran ini dapat dipilih oleh pengguna dengan sakelar DIP atau layar dengan tombol. Ada beberapa cara untuk memilih
Speaker Bluetooth Meja Dengan Visualisasi Audio, Tombol Sentuh, dan NFC.: 24 Langkah (dengan Gambar)
Speaker Bluetooth Meja Dengan Visualisasi Audio, Tombol Sentuh, dan NFC.: Hai! Dalam Instruksi ini saya akan menunjukkan bagaimana saya membuat speaker Bluetooth Meja ini yang memiliki visualisasi Audio Luar Biasa dengan tombol sentuh dan NFC. Dapat dengan mudah dipasangkan dengan perangkat berkemampuan NFC hanya dengan satu ketukan. Tidak ada tombol fisik
Arduino Kustom untuk Menjaga Tombol Roda Kemudi CAN Dengan Stereo Mobil Baru: 9 Langkah (dengan Gambar)
Arduino Kustom untuk Menjaga Tombol Roda Kemudi CAN Dengan Stereo Mobil Baru: Saya memutuskan untuk mengganti stereo mobil asli di Volvo V70 -02 saya dengan stereo baru sehingga saya dapat menikmati hal-hal seperti mp3, bluetooth, dan handsfree. Mobil saya memiliki beberapa kontrol roda kemudi untuk stereo yang saya ingin tetap dapat digunakan
MESH: Sistem Peringkat Dengan Tombol Terhubung Internet: 5 Langkah (dengan Gambar)
MESH: Sistem Peringkat Dengan Tombol Terhubung Internet: Bagaimana jika restoran atau bisnis lain dapat mengumpulkan umpan balik pelanggan di tempat dan langsung menyinkronkannya dengan spreadsheet? Resep ini adalah cara cepat dan sederhana untuk membuat sistem penilaian interaktif Anda sendiri. Ambil saja satu set b