İçindekiler:
- Adım 1: Jeton ve Kök Vakumunu Elde Edin
- Adım 2: Gerekli Paketleri Kök Altında Vakumda Kurun ve Yapılandırın
- 3. Adım: Amazon Dash Düğmelerini Ayarlayın
- Adım 4: Düğme İsteğini Yakalamak ve MiVacuum'u Kontrol Etmek için Yönlendiriciyi Kurun
- Adım 5: Haritanızı Nasıl Çizebilirsiniz?
Video: XiaoMi Vakum + Amazon Düğmesi = Dash Temizleme: 5 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Bu talimat, XiaoMi Vakumunu Kontrol Etmek için yedek Amazon Dash Düğmelerinizi nasıl kullanacağınızı açıklayacaktır.
1 dolardan beri etrafta bir sürü Amazon Düğmesi var ve onları hiç kullanmadım. Ancak yeni bir Robot Vakum aldığımda, bu düğmeleri vakum kontrolü olarak kullanmanın çok uygun olacağına karar verdim.
Ziploc düğmesine basın, Yatak Odası vakumlanacaktır.
Memnun düğmesine basın, oturma odasını süpürecektir.
Fiji'ye basın.. Fikriniz var.
Bu proje, internetten birçok hack içeriyor. Bu kadar çok insanın yaptığı işi gerçekten takdir ediyorum ve onların araştırmalarına dayanan küçük düzeneğimi paylaşmam gerektiğini düşünüyorum.
Feragatname: Aşağıdaki tüm adımların riski size aittir! Adımları dikkatli bir şekilde takip ederseniz, bir şeye zarar verme şansınız çok azdır. Ama sh#t olur! Ve bunun sorumluluğunu almıyorum. BTW tüm adımlar tersine çevrilebilir, bu nedenle potansiyel olarak garanti ihlali olmaz. Ama elbette - YMMV
Temel prensip, yönlendirici üzerindeki çizgi düğmesine basmayı yakalayıp Amazon'dan bir şeyler satın almak yerine webhook'u Vacuum'a göndermemizdir.
Neye ihtiyacınız olacak:
- DHCP'yi kontrol edebilen, komut dosyalarını çalıştırabilen ve get|post sorgularını yerine getirebilen özel bellenime sahip yönlendirici. Mikrotik, DD-WRT, OpenWRT, Domates vb.
- XiaoMi Vakum. v1 veya v2
- Amazon Dash Düğmeleri
Özellikle ne kullandım:
- mikrotik
- XiaoMi v2 Vakum Roborock S50
- Bir sürü Amazon Dash Düğmesi
İşte prosedür
- vakumu köklendiriyoruz
- Vakumda kök altında gerekli paketleri kurun ve yapılandırın
- Amazon Dash düğmesini ayarla
- Düğme talebini yakalamak ve Vakum kontrolü için Yönlendiriciyi Ayarlayın
Not: Aslında, onu kontrol etmek için vakumunuzu köklendirmeniz gerekmez. Bölgenizde (veya herhangi bir yerde) python veya php çalıştırabilen başka bir sunucunuz varsa, web kancalarını onlara yönlendirebilirsiniz. Ama bilmiyorum. Ve onu vakumun kendisinde düzenli ve kompakt tutmak istedim. Bu yüzden, yaklaşımımı beğenmiyorsanız, bu okumadan kendi orta adam sunucunuzu nasıl kuracağınızı çözebileceğinizi varsayıyorum. Sadece doğrudan 2. noktaya gidin.
Tamam işte başlıyoruz…
Adım 1: Jeton ve Kök Vakumunu Elde Edin
Tüm yazılımlar, donanım yazılımları ve köklendirme talimatları şu adresten alınmıştır:
Windows dışında bir işletim sisteminiz ve Android dışında bir telefonunuz varsa (virtual'ı nox ile kullanabilirsiniz) lütfen yukarıdaki bağlantıyı takip edin (Google Translate'i kullanın) ve talimatları okuyun, aksi takdirde buradaki kılavuza uyun.
Root yapabilmek için vakumunuzdan ip adresi ve jeton almamız gerekiyor.
root.7z paketini açın.
Lütfen Android'inize Vevs'ten Mihome yükleyin. Arşivden birini kullanabilirsiniz veya bu talimat tarihli ise en son sürümü web sitesinden (https://www.kapiba.ru/2017/11/mi-home.html) veya Google Drive'ından (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)
MiHome'unuza giriş yapın. Hesabınızda Çin Anakarasını ayarlamanız ve buna Vakum eklemeniz gerekir).
Vakum simgesine dokunun Ayarlar (Sağ üstte üç nokta) Genel Ayarlar Ağ bilgisi
ip adresini ve belirteci win-mirobo/win-mirobo.ini'ye girin
Windows'ta güvenlik duvarını devre dışı bırakın. Win-mirobo.bat'ı başlatın ve bellenimi flaşlayın.
!!!!!!!!! V1 v1 Vakum içindir ve V2 v2 Vakum içindir (Roborock S50)!!!!!!!Yanlış FW'yi flash ettiyseniz - 4pda bağlantısına gidin (bu adımın ilki) ve nasıl kurtarılacağını okuyun.
Arter Vakum yeniden başlatılıyor - süpürgenizi başarıyla köklendirdiniz ve şimdi ssh üzerinden erişime sahipsiniz!
SSH (Putty ile) temizleyici/temizleyici ile. passwd ile şifrenizi değiştirin
Adım 2: Gerekli Paketleri Kök Altında Vakumda Kurun ve Yapılandırın
Öncül
Web kancaları yerine MiVacuum, her XiaoMi IoT cihazında olduğu gibi miio protokolünü kullanır. Bu yüzden web kancalarını anlamayı öğrenmeliyiz. Web kancasını yakalayabilecek ve onu miio protokolünden cihaza çevirebilecek bir orta adama ihtiyacımız var. Python kütüphanesi var (https://github.com/rytilahti/python-miio) ancak Vakumda Python 3.5+ için yeterli alan olmadığı için vakumda kullanamıyoruz.
Ama neyse ki, nispeten çok hafif olan bir php-miio kütüphanesi (https://github.com/skysilver-lab/php-miio) var ve kullanacağımız şey bu (btw, yukarıda win-mirobo'da da kullanılıyor). Webhook'u yakalayan, gelen webhook'ta php komut dosyasını çalıştıran webhook arka plan programıdır (https://github.com/adnanh/webhook).
Vakumunuza SSH (Putty ile):
#Kök altında yap. Evet, güvenli olmadığını biliyorum..whatevs.sudo su #Burada tüm gereksinimleri yüklüyoruz apt-get install -y wget php5-cli nano #Diğer her şey /opt cd /opt olacak
#php-miio'yu indir
#github'daki son gelişmeleri kontrol et. Aşağıdaki satırları en son wget'e göre düzeltin 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
#Web kancaları arka plan programını indir
#github'daki son gelişmeleri kontrol et. Aşağıdaki satırı en son wget'e göre düzeltin 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
#Web kancası için ayarlar oluştur
nano /opt/webhook/hooks.json #Input hooks.json içeriği buraya. Putty'ye sağ tıklayın. #Ctr+X Y'yi Kaydet.
#php-miio'yu çağırmak için komut dosyası oluştur
nano /opt/webhook/mirobo.sh #mirobo.sh içeriğini buraya girin. Putty'ye sağ tıklayın. #Ctr+X Y'yi Kaydet. # Çalıştırılabilir yap chmod +x /opt/webhook/mirobo.sh
#Otomatik başlatma komut dosyası oluştur ve yapılandırmaları yenile
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 varsayılanları
#Sistemi yeniden başlat
yeniden başlat
Yeniden başlattıktan sonra ayarlarınızı tarayıcıda test edin:
192.168.your.ip:9000/hooks/mirobo?method=find_me
yöntem - komut
parametreler - parametreler
Burada bulabileceğiniz tüm yöntemler (komutlar) ve parametreler:
github.com/marcelrv/XiaomiRobotVacuumProtocol
hooks.json'un içeriği
Belirteçinizi-buradaki belirtecinizi vakumdan belirtecinizle değiştirin.
Yerel ağınız için ip beyaz listesini düzeltin veya kancalarınızı başka bir yerden çalıştırırsanız (güvenli değil) tamamen kaldırın.
[{ "id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/opt/webhook", "response-message": "Yürütülüyor mirobo komut dosyası", "include-command-output-in-response":false, "ortamı-komuta aktar": [{ "source": "string", "envname": "token", "name": "belirteciniz" }], "argümanları komuta ilet": [{ "kaynak": "url", "ad": "yöntem" }, { "kaynak": "url", "ad ": "params" }], "trigger-rule": { "match": { "type": "ip-whitelist", "ip-range": "192.168.1.0/24" } } }]
mirobo.sh dosya içeriği. Sadece kopyala-yapıştır. Sadece iki satır var (3 değil).
#!/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']}'
3. Adım: Amazon Dash Düğmelerini Ayarlayın
Amazon Uygulamanızı açın. Dash Cihazları'na gidin. Her zamanki gibi yeni tire düğmesi ekleyin. Bir ürün seçmek için promt üzerinde YAPMAYIN. Uygulamayı kapatın. Bitirdiniz.
Adım 4: Düğme İsteğini Yakalamak ve MiVacuum'u Kontrol Etmek için Yönlendiriciyi Kurun
Bu aşağıdaki gibi çalışır.
Butona basıldığında ağınız ile bağlantı kuruyor ve dhcp sunucusundan bir IT adresi atamasını istiyor. Bu isteği yakalamalı ve bir vakuma bir web kancası gerçekleştirmeliyiz. Ek bir güvenlik önlemi olarak, Amazon'un düğmeye bastığımızı bile bilmemesi ve ürün yazılımı güncellemesi veya başka bir şeye zorlama yeteneği olmaması için Amazon bağlantısını engelleyeceğiz.
Çoğunlukla WinBox kullanıyorum, ancak bazı zamanlarda terminal daha kolay.
#Engellemek için adres listesiyle güvenlik duvarı bırakma kuralı oluşturun
/ip güvenlik duvarı filtresi add chain=forward src-address-list=blockdash action=yorum bırak="Amazon Dash'i Bırak"
Daha sonra her buton için bir dhcp kiralama kuralı oluşturmamız gerekiyor. Winbox'ta yapmak çok kolay.
DHCP Sunucusu - Kiralamalar
Düğmeye bastığımızda yeni kiralama görünür. Statik olarak tıklıyoruz ve adres listesini 'blockdash' olarak ayarlıyoruz, kiralama süresini 5 saniyeye ayarlıyoruz (ki kiralama bir sonraki basıştan önce bitiyor) ve daha sonrası için mac adresini kopyalıyoruz.
#Bu komut sadece referans içindir, eğer winbox'a kiralama eklediyseniz, atlayın.
/ip dhcp-server kiralama adresi ekle-liste=blockdash mac-adresi=XXXXXXXXXX adres=192.168.x.x kiralama süresi=5s
Şimdi betiği kiralamak için işaret etmeliyiz.
DHCP sekmesini açın ve 'myLeaseScript'i dhcp sunucunuza bir kiralama komut dosyası olarak ekleyin.
Şimdi System - Scripts'i açın ve okuma, test izinleriyle 'myLeaseScript' ekleyin.
myLeaseScript'in içeriği:
#Script, kiralama (1) ve sürüm (0)'da iki kez çağrılır:if ($leaseBound=1) do={ /log info ("myLeaseScript çalıştırılıyor. Biri Dash Düğmesine mi bastı?")
# Aranacak tüm düğmelerinizin ve url'nizin dizisi
:yerel düğmeler { "XX: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"; };
#Basılı düğmeyi ve acll url'sini kontrol edin
:foreach mac, url in=$buttons do={:if ($mac=$leaseActMAC) do={ /log info (".$mac." düğmesine basıldı") /tool fetch keep-result=mod yok=https http-method=url gönder=$url } } }
Artık temizliğinizi Amazon Dash Düğmesine basarak otomatikleştirdiniz. İyi eğlenceler
Lütfen dikkat edin: Web kancalarını şifrelenmemiş olarak göndermek çok güvenli değildir. Web kancası şifreleme kullanabilir, ancak çalışmasını sağlamaya çalıştım, bu hiç olmadı. Sadece yerel ağımda kullandığım için çok endişelenmiyorum. Ancak Google Asistan entegrasyonu ile IFTTT'ye bağlanmak için internet üzerinden kullanmak istiyorsanız lütfen bu gerçeğe dikkat edin! Benim durumumda kripto başarısızlığının sebebinin ne olduğundan emin değilim. Letsencrypt tarafından verilen, dövdüğüm kendinden imzalı sertifikalar. Ipv6 ile yendiğim bir grup NAT içeren aşırı karmaşık ağ. Ama bana öyle geliyor ki web kancaları sertifikalarla çok kötü çalışıyor ve aslında çok kötü belgelenmiş. Ve IFTTT ipv6 ile çalışmıyor gibi görünüyor. Elimden gelen her şeyi denedim ama başarısız oldum. Daha iyi bir şansın olabilir. Bir gönderi yapmayı unutmayın.
upd: Şifreleme olmadan nasıl daha güvenli hale getirilebileceğine dair bir fikrim var. Gerçekleştirmek istediğiniz her eylem için birkaç komut dosyası oluşturursunuz. Webhook'ta gönderilen belirli bir parametre için komut dosyasını çağırmak için mirobo.sh'yi değiştirirsiniz, örn. temiz_yatak odası. Bu kadar. Kancayı en çok kullanan kişi yatak odanızı tekrar tekrar temizlemektir…)) Bunu yaptıktan sonra talimatı güncelleyeceğim
Adım 5: Haritanızı Nasıl Çizebilirsiniz?
MiHome uygulamanızda tam haritanız hazır olduğunda, elektrikli süpürgenizi 'app_goto' komutuyla belirli bir konuma gönderin.
Gönderilen konum ve taban ile tam haritanın ekran görüntüsünü alın. Vakumun yeniden başlatılmasından sonraki temel nokta konumdur [25500, 25500]BU ŞARJ TABANININ POZİSYONU DEĞİLDİR, ancak vakumu şarj tabanında yeniden başlatırsanız, şarj tabanının konumu 25500, 25500 olacaktır. Yani bilinen konumdan gönderildi ve temel konum, aldığınız ekran görüntüsü ile haritanızı herhangi bir CAD programında çizebilirsiniz. Ücretsiz QCAD kullandım.
Resmi ızgaraya yerleştirdikten sonra, bölgenin başlangıç ve bitiş noktasını ölçmek için oda boyunca bir çizgi kullanıyorum.
Önerilen:
Kablosuz Kapı Zili - (Raspberry PI & Amazon Dash): 4 Adım (Resimlerle)
Kablosuz Kapı Zili - (Raspberry PI ve Amazon Dash): Ne işe yarar? (videoya bakın) Düğmeye basıldığında, Raspberry kablosuz ağda oturum açan yeni cihaz keşfeder. Bu şekilde, basılan düğmeyi tanıyabilir ve bu gerçekle ilgili bilgileri cep telefonunuza (veya bilgisayarınızın bir cihazına) iletebilir
Amazon Dash Button Sessiz Kapı Zili: 10 Adım (Resimlerle)
Amazon Dash Button Sessiz Kapı Zili: Kapı zili çalmadan önce ziyaretçileri arayabilmeniz için sürekli pencereden dışarı mı bakıyorsunuz? Köpeklerin ve bebeğin her çaldığında çıldırmasından bıktınız mı? Bir "akıllı"ya bir servet harcamak istemeyin; çözüm? Sessiz bir kapı zili yapmak gibi
Amazon Fire Remote TV Remote'ta Kayma: 3 Adım (Resimlerle)
Amazon Fire Remote TV Remote'da Kayma: Ah Amazon, Fire TV'niz çok harika, neden bize uzaktan kumandanızda ses kontrolleri vermediniz? Amazon'da 5 dolardan daha ucuza bu sevimli küçük uzaktan kumandayı, gücü, sessizliği satın alabilirsiniz. , ses ve kanal hepsi küçük bir pakette. 3d yazıcıya girin bir
Arduino ve Amazon Alexa Kullanarak Işık/Ev Işıklarını Kontrol Etme: 16 Adım (Resimlerle)
Arduino ve Amazon Alexa Kullanarak Işık/Ev Işıkları Nasıl Kontrol Edilir: UNO'ya bağlı ve Alexa tarafından kontrol edilen ışığın nasıl kontrol edileceğini anlattım
Amazon Echo'nun Kendi Versiyonu: 8 Adım (Resimlerle)
Amazon Echo'nun Kendi Versiyonu: Merhaba arkadaşlar, amazon'un son ürünü olan Amazon Echo'yu sanırım herkes biliyor, yani ses kontrollü bir cihaz yani cihazı sesimizle kontrol edebiliyoruz ve hatta bizimle konuşabiliyor. Bu fikirden ilham alarak kendi versiyonumu yarattım, ki bu