Dorong vs Poll
Solusi yang Anda usulkan untuk mengirim permintaan AJAX yang sering terdengar sangat mirip dengan polling - Anda sering mengirim permintaan untuk memeriksa apakah keadaan telah berubah. Akan jauh lebih masuk akal untuk mendorong perubahan ke server ketika sensor piezo mendeteksi perubahan.
Perbedaannya antara ini:
Server: Apakah ada seseorang di pintu?
Sensor: Tidak .
Server: Apakah ada seseorang di pintu?
Sensor: Tidak .
Server: Apakah ada seseorang di pintu?
Sensor: Tidak .
... ulangi tak terhingga iklan ...
Dan ini:
Sensor: Ada seseorang di pintu!
Contoh pertama adalah polling, dan yang kedua mendorong. Anda dapat mengetahui mana yang akan memiliki penggunaan daya lebih rendah, kode kurang kompleks dan penggunaan jaringan berkurang.
HTTP atau Sesuatu Yang Lain?
Permintaan AJAX dikirim melalui HTTP, sehingga cukup berat dan membutuhkan beberapa handshake TCP per koneksi (kecuali jika Anda menggunakan Keep-Alive ).
Mungkin patut dipertimbangkan protokol alternatif seperti MQTT (ada beberapa penjelasan yang bagus dalam pertanyaan ' Kapan dan mengapa menggunakan protokol MQTT? ', Yang memiliki masalah yang sangat mirip dengan Anda).
Pialang pesan seperti MQTT mungkin sedikit lebih kuat daripada yang sebenarnya Anda butuhkan dalam situasi Anda saat ini, tetapi satu pialang MQTT dapat dengan mudah diperluas jika Anda memilih untuk menambahkan lebih banyak perangkat ke jaringan rumah pintar Anda, sedangkan sistem permintaan AJAX saat ini akan cepat berantakan. Bayangkan empat atau lima perangkat berbeda saling polling; itu akan dengan cepat menyebabkan jaringan Anda menjadi kelebihan beban dan itu akan sangat menguras penggunaan daya.
Soket Node dan Web
Menggunakan soket web dan Node akan menyelesaikan masalah penggunaan push, bukan polling , jadi menurut saya itu ide yang bagus. Namun , saya menduga polling akan berhasil jika Anda benar-benar tidak ingin belajar Node.
Jika Anda menginginkan solusi yang dapat diperluas yang akan bekerja ketika Anda memperluas rumah pintar Anda, pasti pergi dengan mendorong - itu akan menghemat banyak masalah dan air mata. Jika Anda hanya ingin bukti konsep cepat, pemungutan suara mungkin akan berhasil.
Saran pribadi saya adalah Anda harus mempelajari soket web atau menyelidiki menggunakan broker pesan seperti MQTT. Anda bisa menggunakan perpustakaan klien seperti Mosquitto-PHP (dengan panduan oleh HiveMQ ) untuk menyederhanakan menggunakan MQTT dalam PHP, atau cukup dengan Node dan soket web. Saya menduga sumber belajar untuk Node dan soket web akan lebih baik, tetapi MQTT cenderung disukai untuk lingkungan rumah pintar / IoT.