İçindekiler:

XiaoMi Vakum + Amazon Düğmesi = Dash Temizleme: 5 Adım (Resimlerle)
XiaoMi Vakum + Amazon Düğmesi = Dash Temizleme: 5 Adım (Resimlerle)

Video: XiaoMi Vakum + Amazon Düğmesi = Dash Temizleme: 5 Adım (Resimlerle)

Video: XiaoMi Vakum + Amazon Düğmesi = Dash Temizleme: 5 Adım (Resimlerle)
Video: TOGG TEST SÜRÜŞÜNDE AZ KALSIN KAZA YAPIYORDU ! #togg #bursa #shorts #technology #T10X 2024, Kasım
Anonim
XiaoMi Vakum + Amazon Düğmesi = Dash Temizleme
XiaoMi Vakum + Amazon Düğmesi = Dash Temizleme

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

  1. vakumu köklendiriyoruz
  2. Vakumda kök altında gerekli paketleri kurun ve yapılandırın
  3. Amazon Dash düğmesini ayarla
  4. 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

Jeton ve Kök Vakumunu Elde Edin
Jeton ve Kök Vakumunu Elde Edin
Jeton ve Kök Vakumunu Elde Edin
Jeton ve Kök Vakumunu Elde Edin
Jeton ve Kök Vakumunu Elde Edin
Jeton ve Kök Vakumunu Elde Edin
Jeton ve Kök Vakumunu Elde Edin
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

Düğme İsteğini Yakalamak ve MiVacuum'u Kontrol Etmek için Yönlendiriciyi Ayarlayın
Düğme İsteğini Yakalamak ve MiVacuum'u Kontrol Etmek için Yönlendiriciyi Ayarlayın
Düğme İsteğini Yakalamak ve MiVacuum'u Kontrol Etmek için Yönlendiriciyi Ayarlayın
Düğme İsteğini Yakalamak ve MiVacuum'u Kontrol Etmek için Yönlendiriciyi Ayarlayın
Düğme İsteğini Yakalamak ve MiVacuum'u Kontrol Etmek için Yönlendiriciyi Ayarlayın
Düğme İsteğini Yakalamak ve MiVacuum'u Kontrol Etmek için Yönlendiriciyi Ayarlayın

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?

Haritanızı Nasıl Çizebilirsiniz?
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: