Topiknya telah diangkat berulang kali, dan bahkan ada solusi, tetapi saya akan memberi tahu Anda satu hal lagi. Saat menjelajah salah satu situs online populer, saya menemukan sebuah perangkat yang sebelumnya tidak saya kenal, Broadlink RM Mini 3. Harga saat itu adalah $ 9,90. Yang jauh lebih murah daripada analog. Tetapi ada juga kelemahan yang di bawah ini.
Perangkat ini berbentuk silinder, di bagian atasnya terdapat sensor IR 360 derajat. Manajemen perangkat adalah melalui aplikasi. Anda dapat mengontrol peralatan apa pun yang memiliki penerima IR. Tapi tujuan saya adalah satu, untuk mengendalikan AC. Untuk pulang, ia sudah berhasil menciptakan suhu yang nyaman.Masalah pertama saya adalah AC saya tidak menerima perintah yang diunduh secara otomatis dari server setelah melatih perangkat. Semuanya diputuskan dengan mengkonfigurasi remote control secara manual, kesempatan seperti itu ada dalam program. Tapi bukan itu saja, hal berikutnya yang saya sadari adalah beberapa perintah, misalnya mengubah kecepatan kipas, juga mengandung suhu. Ternyata jika saya mengubah kecepatan kipas, maka suhu yang ada selama pelatihan perangkat juga berubah.Hal berikutnya yang ternyata, aplikasi tidak melihat perangkat melalui VPN. Dalam aplikasi Android, perangkat secara otomatis terdeteksi dan juga ditemukan di jaringan, Anda tidak dapat memilih alamat secara manual.Berikut ini tidak penting, tetapi nuansa, kontrol atas Internet terjadi menggunakan layanan cloud pabrikan. Meskipun aplikasi dan perangkat dikomunikasikan secara langsung di jaringan lokal, seseorang tidak ingin memberikan kendali atas Internet. Tidak ada API terbuka.Menggunakan lalu lintas mengendus pada router WiFi, ternyata aplikasi dan perangkat saling berkomunikasi paket UDP pada port 80.tcpdump -w /tmp/dump.cap host <ip >
Diputuskan untuk membuat konsol pada server web lokal untuk mengontrol AC. Dari awal kami membuat remote control di aplikasi berpemilik:
Setelah itu kami meluncurkan sniffer dan mulai secara perlahan menjalankan semua perintah. Menghentikan sniffer dan memastikan bahwa jumlah paket cocok dengan jumlah perintah yang dieksekusi, salin ke aplikasi web. Satu-satunya hal yang membosankan adalah mengingat suhu pada kecepatan rotasi yang berbeda. Ternyata yang berikut:
Setelah itu saya menutup akses Internet perangkat.Semua kode diposting di GitHub