Push vs Poll
Sua solução proposta de enviar solicitações frequentes de AJAX parece muito com pesquisa - você está enviando uma solicitação de vez em quando para verificar se o estado mudou. Faria muito mais sentido enviar alterações ao servidor quando o sensor piezo detectou uma alteração.
É a diferença entre isso:
Servidor: Existe alguém na porta?
Sensor: Não .
Servidor: Existe alguém na porta?
Sensor: Não .
Servidor: Existe alguém na porta?
Sensor: Não .
... repetir ad infinitum ...
E isto:
Sensor: Tem alguém na porta!
O primeiro exemplo é a pesquisa e o segundo é o de empurrar. Você pode dizer qual deles terá menor uso de energia, código menos complexo e uso de rede reduzido.
HTTP ou algo mais?
Uma solicitação AJAX é enviada por HTTP, por isso é bastante pesada e requer vários handshakes TCP por conexão (a menos que você use o Keep-Alive ).
Pode valer a pena considerar protocolos alternativos, como o MQTT (há uma boa explicação na pergunta ' Quando e por que usar o protocolo MQTT? ', Que tem um problema muito semelhante ao seu).
Um intermediário de mensagens como o MQTT pode ser um pouco mais poderoso do que você realmente precisa na sua situação atual, mas um intermediário do MQTT pode ser facilmente expandido se você optar por adicionar mais dispositivos à sua rede doméstica inteligente, enquanto o seu sistema atual de solicitações AJAX desmoronar rapidamente. Imagine quatro ou cinco dispositivos diferentes pesquisando entre si; isso levaria rapidamente à sobrecarga da sua rede e seria um grande desperdício no uso de energia.
Soquetes do nó e da Web
Usar soquetes da Web e Node resolveria o problema de usar push em vez de enquete , portanto, seria uma boa ideia na minha opinião. No entanto , suspeito que a pesquisa funcionaria se você realmente não quisesse aprender o Nó.
Se você deseja uma solução extensível que funcione quando você expande sua casa inteligente, definitivamente continue pressionando - ela economizará muitos problemas e lágrimas. Se você quer apenas uma prova rápida de conceito, a pesquisa provavelmente funcionará.
Meu conselho pessoal é que você deve quer aprender soquetes web ou investigar usando um corretor de mensagem como MQTT. Você pode usar uma biblioteca cliente como o Mosquitto-PHP (com um guia do HiveMQ ) para simplificar o uso do MQTT no PHP, ou apenas usar os nós da Web e do nó. Suspeito que os recursos de aprendizado para Node e soquetes da Web sejam melhores, mas o MQTT tende a ser favorecido para ambientes domésticos / IoT inteligentes.