Kami menggunakan Tombol Dash Amazon untuk keperluan kita sendiri



Anda mungkin sudah melihat video promosi ini tentang tombol untuk memesan barang dengan amazon dan Anda mungkin juga ingin mengotomatisasi sesuatu.

Di bawah kucing, kasus menggunakan tombol dash amazon dalam realitas Rusia dan implementasinya pada nodejs.

Pendahuluan
Saat membaca artikel tentang IoT pada liburan Tahun Baru, tangan saya disisir keluar dan sesuatu baru saja datang ke tombol amazon yang dipesan untuk pengujian, setelah memainkan cukup banyak, saya mulai berpikir tentang bagaimana menggunakannya dengan setidaknya beberapa manfaat.
Saya ingat bahwa kami di Flexby sering lupa memesan air untuk pendingin. Sepertinya Anda melihat - itu berakhir, tetapi saat Anda minum teh / kopi Anda sudah lupa. Dengan demikian, pesanan dikirim hanya ketika tidak ada air sama sekali.
Sekarang cukup klik pada tombol "Beli Air" dan pemberitahuan di slack akan membantu Anda untuk tidak melupakannya, tetapi kami melangkah lebih jauh dan menulis skrip yang segera memesan di situs web perusahaan pengiriman air setempat.
Tidak, pesanan tidak dikirim setelah setiap klik
, . , .


Bagaimana cara kerjanya?
0. Tombol โ€œterikatโ€ ke wi-fi sesuai dengan instruksi tetapi tidak sepenuhnya dikonfigurasi, produk tidak ditentukan sehingga pesanan untuk amazon tidak dibuat.

1. Ketika Anda mengklik tombol:
1.1 terhubung ke jaringan wi-fi untuk mengirim permintaan ke amazon.
1.2 Urutan tidak terbentuk karena Proses pengaturan perilaku tombol belum selesai.

2. Skrip, pada server lokal yang terhubung ke jaringan wi-fi yang sama, memantau tampilan alamat mac tombol dan menyimpulkan bahwa itu ditekan.
2.1 Tindakan yang Anda butuhkan dilakukan.
dalam kasus kami, ini mengirimkan pesanan air untuk pendingin dan memberitahukannya dalam kelonggaran

Sekarang tentang segala sesuatu dalam urutan.

Di mana mendapatkan tombol?
Perlu disebutkan bahwa adaini adalah versi untuk pengembang tentang cara menggunakannya, mereka menulis di geektimes dengan itu, tentu saja, jauh lebih mudah dan lebih indah untuk mengintegrasikan apa pun yang Anda inginkan, tetapi di mana untuk mendapatkan tombol-iot ini tetap menjadi misteri bagi saya.

Tombol untuk memesan barang tertentu dengan amazon dapat dibeli seharga $ 5 (saat ini hanya pelanggan dengan status prima yang dapat membelinya).

Tombol ini datang kepada saya pada liburan Tahun Baru. Saya hanya mengambil satu untuk pengujian, sekarang saya akan memesan 10 lagi.

Lebih banyak foto






"Amazon Elements" kira-kira merupakan swipe :)
Perangkat terhubung ke jaringan wi-fi, setiap kali Anda mengklik.
Pabrikan menulis bahwa itu dirancang untuk ~ 1000 klik. Kemungkinan besar, batasan ini terkait dengan baterai, yang, jika diinginkan, dapat diganti secara independen, hanya ada baterai di dalamnya .

Mari kita mulai


Tentang bagaimana "crack" tombol ini dapat dibaca disini disini dan disini .
Secara singkat - seluruh peretasan dalam melacak mac-address tombol di jaringan wi-fi menggunakan sniffer ARP.

Anda juga dapat memaksa router untuk meneruskan permintaan ke parker-gateway-na.amazon.com ke server Anda.

Mengikat tombol ke jaringan wifi
Di aplikasi amazon, buka pengaturan akun- > manajemen perangkat dan tambahkan tombol baru.

Pada tahap pemilihan produk, tutup wizard pengaturan . Sebaiknya nonaktifkan pemberitahuan agar tidak menerima pesan tentang pesanan yang gagal.
Screenshot dari proses pengaturan tombol



"Server" untuk tombol pada NodeJs
Ada mudah digunakan modul .
Poin-poin penting:
  • Ini bekerja di bawah linux, mungkin pada bunga poppy (tidak diuji).
  • Itu membutuhkan libpcap-dev untuk bekerja.
  • Script harus dijalankan dengan hak superuser.
  • Dan tentu saja, pada mesin yang terhubung ke jaringan wi-fi yang sama dengan tombol .


npm install node-dash-button

Jika Anda mengalami kesulitan menginstal, coba perbarui npm dan node-gyp
sudo npm install -g npm
sudo npm install -g node-gyp

Alamat mac tombol dapat ditemukan dengan menjalankan skrip berikut:
sudo node node_modules/node-dash-button/bin/findbutton 

Baik, atau hanya di panel admin router, tentukan metode pengecualian.

Di sini dengan cara sederhana klik tombol tangkap:
sniffer = require('node-dash-button');

// mac-    
buttons = {
	'8f:3f:20:33:54:44':{
		action: function(){
			console.log('Press button 1')
		}
	},
	
	'2e:3f:20:33:54:22': {
		action: function(){
			console.log('Press button 2')
		}
	}
	// ...
};

//  
// Object.keys(buttons) -  mac-  
sniffer( Object.keys(buttons) ).on("detected", function (catched_mac){
	console.log(' mac-: '+catched_mac+'\n');

	//    
	buttons[catched_mac].action(); 
});

Yaitu kita mengatakan apa alamat mac yang kita butuhkan ketika mereka menyala - kita memanggil fungsi yang kita butuhkan.

Sebagai contoh, Anda masih dapat melihat sumber skrip kami untuk memesan air .

UPD : Beberapa ide untuk digunakan.
Semua sama, kasus utama, seperti yang ditunjukkan dalam iklan, adalah pengingat untuk diri sendiri tentang perlunya mengisi kembali cadangan beberapa sumber daya.

Di kantor :
  • Tombol "Beli kertas", di sebelah printer atau tempat penyimpanan kertas cetak, mengirim email ke penanggung jawab atau segera memesan.
  • "Cookies habis" - kirim email ke orang yang harus mengisi ulang mereka.


Di rumah :
  • โ€œBeli kertas toiletโ€, mengirim pengingat untuk diri sendiri, email / tugas di wunderlist.
    Mungkin ini satu-satunya sumber daya kritis :) Sisanya, dengan analogi, mudah dipikirkan tergantung pada kebutuhan Anda, bisa berupa popok, pasta gigi, tablet untuk mesin pencuci piring, bubuk cuci, dll.

Omong-omong, saya tidak menemukan aplikasi untuk daftar belanja dengan API.

Beberapa opsi non-standar :
  • Bel.
    Sehingga misalnya panggilan tidak mengganggu tidur anak, biarkan dia diam-diam mengirim pemberitahuan ke telepon. Di lain waktu, panggilan seperti itu mungkin menyertakan melodi apa pun, sekali lagi akan dimungkinkan untuk menyesuaikan volume.
  • Konter sesuatu. Tombol ini dapat dipakai sebagai gantungan kunci dan jika Anda menghitung sesuatu yang Anda butuhkan di area jangkauan jaringan wifi Anda, sangat cocok untuk ini.
    Misalnya, mulai pukul 7:00 hingga 9:00 kami menghitung jumlah rekanan yang datang lebih awal. Dari jam 9:00 sampai 13:00 malam. Dari pukul 13:00 hingga 15:00 ditahan saat makan siang, mulai pukul 15:00 hingga 18:00 lebih awal, dari pukul 18: 00-21: 00 ditahan di tempat kerja. Statistik yang menarik bisa keluar.
    Atau Anda dapat mempertimbangkan jumlah banding lisan untuk bantuan ke departemen TI.


Saya akan senang jika Anda berbagi di komentar ide-ide Anda untuk menggunakan tombol-tombol ini.

Source: https://habr.com/ru/post/id388955/


All Articles