Push vs Poll
Ihre vorgeschlagene Lösung zum Senden häufiger AJAX-Anfragen klingt nach Abfragen. Sie senden von Zeit zu Zeit eine Anfrage, um zu überprüfen, ob sich der Status geändert hat. Es wäre weitaus sinnvoller , Änderungen auf den Server zu übertragen, wenn der Piezosensor eine Änderung erkennt.
Es ist der Unterschied zwischen diesen:
Server: Ist jemand an der Tür?
Sensor: Nein .
Server: Ist jemand an der Tür?
Sensor: Nein .
Server: Ist jemand an der Tür?
Sensor: Nein .
... ad infinitum wiederholen ...
Und das:
Sensor: Da ist jemand an der Tür!
Das erste Beispiel ist das Abrufen und das zweite das Drücken. Sie können feststellen, welches Gerät einen geringeren Stromverbrauch, weniger komplexen Code und eine geringere Netzwerknutzung aufweist.
HTTP oder etwas anderes?
Eine AJAX-Anfrage wird über HTTP gesendet, ist also ziemlich schwergewichtig und erfordert mehrere TCP-Handshakes pro Verbindung (es sei denn, Sie verwenden Keep-Alive ).
Es kann sich lohnen, alternative Protokolle wie MQTT in Betracht zu ziehen (die Frage „ Wann und warum sollte das MQTT-Protokoll verwendet werden? “, Die ein sehr ähnliches Problem wie Ihr Protokoll aufweist , enthält einige gute Erklärungen ).
Ein Nachrichtenbroker wie MQTT ist möglicherweise etwas leistungsfähiger als Sie in Ihrer aktuellen Situation wirklich benötigen. Ein MQTT-Broker kann jedoch problemlos erweitert werden, wenn Sie Ihrem Smart-Home-Netzwerk weitere Geräte hinzufügen, während dies bei Ihrem aktuellen System von AJAX-Anforderungen der Fall ist schnell auseinander fallen. Stellen Sie sich vier oder fünf verschiedene Geräte vor, die sich gegenseitig abfragen. Dies würde schnell zu einer Überlastung Ihres Netzwerks führen und den Stromverbrauch massiv belasten.
Knoten- und Web-Sockets
Die Verwendung von Web-Sockets und Node würde das Problem der Verwendung von Push anstelle von Umfragen lösen. Daher wäre dies meiner Meinung nach eine gute Idee. Ich vermute jedoch , dass Umfragen funktionieren würden, wenn Sie Node wirklich nicht lernen wollten.
Wenn Sie eine erweiterbare Lösung suchen , die funktioniert, wenn Sie Ihr Smart Home erweitern, sollten Sie unbedingt pushen - das erspart Ihnen viel Ärger und Tränen. Wenn Sie nur einen schnellen Proof of Concept wünschen, funktioniert das Polling wahrscheinlich.
Mein persönlicher Rat ist, dass Sie entweder Web-Sockets lernen oder mit einem Nachrichtenbroker wie MQTT nachforschen sollten . Sie können eine Client-Bibliothek wie Mosquitto-PHP (mit einer Anleitung von HiveMQ ) verwenden, um die Verwendung von MQTT in PHP zu vereinfachen, oder einfach Knoten- und Web-Sockets verwenden. Ich vermute, dass die Lernressourcen für Node- und Web-Sockets besser sind, aber MQTT wird eher für Smart Home / IoT-Umgebungen bevorzugt.