Ich hatte zwei Lösungen, die ich verwendet habe. (Python)
Lösung 1
Das erste war, bekannte IP-Nummern zu arping, die ich verfolgen möchte. Ich habe das in drei Schritten gemacht. 1 # Verwenden Sie "-c1", um nur einen Ping zu senden. Wenn das Gerät aktiv ist, antwortet es und. Die Funktion wird mit Erfolg beendet. 2 # Verwenden Sie "-c3". Geben Sie jetzt mehr Zeit, um auf eine von drei Antworten zu antworten. Dies ist normalerweise ausreichend, wenn es sich um ein schlechtes WLAN-Signal handelt. 3 # Verwenden Sie "-c10". Dies kann erforderlich sein, wenn das WLAN-Signal wirklich schlecht ist. (Es wurde festgestellt, dass das alte iPad etwa 10 Versuche benötigt, um zu antworten.) Um die Arbeit zu beschleunigen, habe ich für jede IP-Nummer, die ich verfolgen möchte, separate Prozesse erstellt.
Ich habe auch die Ping-Intervalle geändert, je nachdem, ob es erfolgreich ist oder nicht. Wenn das Gerät gefunden wird, wartet es länger, bis es erneut überprüft wird. Wenn es ein Fehler ist, wird es in 60 Sekunden erneut versucht. (Ich möchte, dass das Licht an ist, wenn ich mein Haus betrete.) 60er Jahre reichen also aus, um mich auf der Straße zu finden
Das hat perfekt funktioniert! Als ich nach Hause kam, spürte es mich und machte das Licht aus und aus, als ich ging.
Lösung 2
Arping ist im Netzwerk möglicherweise nicht sehr schwer, aber ich habe die Lösung geändert, um alle Pings zu überspringen, und auf meinem Himbeer-Pi einen eigenen DHCP-Server erstellt.
Ich habe dann "on commit" hinzugefügt, das ein Skript auslöst, sobald ein Gerät eine IP-Nummer erhält. Dieses Skript verwendet einen "Curl http API-Aufruf", um meinen WWW-Server (Flask) zu benachrichtigen, sobald ein Gerät seine IP-Nummer erhält oder erneuert.
Auf meinem Android habe ich die Einstellungen so geändert, dass WLAN bei ausgeschaltetem Bildschirm niemals ausgeschaltet wird. Ich bin mir nicht sicher, ob es auf dem iPhone möglich ist. Kein großer Unterschied bei der Batterie (OnePlus 5)
Die erste Lösung umfasste auch das Bluetooth-Scannen für einen bestimmten Mac. Selbst wenn mein WLAN auf meinem Telefon ausgeschaltet ist, wird Bluetooth weiterhin erkannt. Die Verwendung der Mac-Adresse muss nicht gekoppelt oder für alle sichtbar sein.