Empuje vs Encuesta
Su solución propuesta de enviar solicitudes AJAX frecuentes se parece mucho a las encuestas : está enviando una solicitud de vez en cuando para verificar si el estado ha cambiado. Tendría mucho más sentido enviar cambios al servidor cuando el sensor piezoeléctrico detecta un cambio.
Es la diferencia entre esto:
Servidor: ¿Hay alguien en la puerta?
Sensor: no .
Servidor: ¿Hay alguien en la puerta?
Sensor: no .
Servidor: ¿Hay alguien en la puerta?
Sensor: no .
... repetir hasta el infinito ...
Y esto:
Sensor: ¡ Hay alguien en la puerta!
El primer ejemplo es el sondeo, y el segundo es el empuje. Puede saber cuál tendrá un menor consumo de energía, un código menos complejo y un menor uso de la red.
¿HTTP o algo más?
Se envía una solicitud AJAX a través de HTTP, por lo que es bastante pesado y requiere varios protocolos de enlace TCP por conexión (a menos que use Keep-Alive ).
Puede valer la pena considerar protocolos alternativos como MQTT (hay una buena explicación en la pregunta "¿ Cuándo y por qué usar el protocolo MQTT? ", Que tiene un problema muy similar al suyo).
Un agente de mensajes como MQTT podría ser un poco más poderoso de lo que realmente necesita en su situación actual, pero un agente de MQTT podría expandirse fácilmente si elige agregar más dispositivos a su red doméstica inteligente, mientras que su sistema actual de solicitudes AJAX lo haría. desmoronarse rápidamente. Imagine cuatro o cinco dispositivos diferentes sondeándose entre sí; conduciría rápidamente a que su red se sobrecargara y supondría un consumo masivo de energía.
Nodos y zócalos web
Usar sockets web y Node resolvería el problema de usar push en lugar de sondeo , por lo que sería una buena idea en mi opinión. Sin embargo , sospecho que las encuestas funcionarían si realmente no quisieras aprender Nodo.
Si desea una solución extensible que funcione cuando expanda su hogar inteligente, definitivamente continúe presionando: le ahorrará muchos problemas y lágrimas. Si solo desea una prueba rápida de concepto, la encuesta probablemente funcionará.
Mi consejo personal es que debe aprender a usar sockets web o investigar utilizando un agente de mensajes como MQTT. Puede usar una biblioteca cliente como Mosquitto-PHP (con una guía de HiveMQ ) para simplificar el uso de MQTT en PHP, o simplemente usar Node y sockets web. Sospecho que los recursos de aprendizaje para Node y los sockets web serán mejores, pero MQTT tiende a ser favorecido para entornos de hogar inteligente / IoT.