@headder9999
so wie bereits geschrieben schalten manche handys einzelne komponenten recht schnell in einen schlafmodus, selbst dann wenn das handy noch an ist.
speziell bei iphone verhalten sich hier verschiedene modelle und ios recht unterschiedlich.
für hartnäckige iphone gibt es diese methode, die bei mir recht zuverlässig funktioniert.
https://forum.iobroker.net/topic/46360/anwesenheitserkennung-mit-hping3/14
hier mal das skript wie es bei mir läuft.
allerdings musst du das tool h3ping noch zusätzlich installieren
https://linux.die.net/man/8/hping3
ausserdem benötigst du den adapter simple api und die datenpunkte müssen schon in der folgenden Form angelegt sein.
0_userdata.0.Anwesenheit.192.168.1.209
#!/bin/bash
#Enter your ip of your device here
DEVICES="192.168.1.209 192.168.1.225"
#DEVICES="192.168.1.225"
for i in `echo $DEVICES`; do
ping $i -c 1
hping3 -2 -c 10 -p 5353 -i u1 $i -q >/dev/null 2>&1
sleep 1
# Only arp specific device, grep for a mac-address
status=`arp -an $i | awk '{print $4}' | grep "..:..:..:..:..:.."`
#A mac will be 17 characters including the ":"
IP=${i//./-}
if [ ${#status} -eq 17 ]; then
echo "Phone $i is detected!"
echo "curl http://192.168.1.85:8087/set/0_userdata.0.Anwesenheit.$IP?value=1"
curl http://192.168.1.85:8087/set/0_userdata.0.Anwesenheit.$IP?value=1
else
echo "Phone $i is not present"
echo "curl http://192.168.1.85:8087/set/0_userdata.0.Anwesenheit.$IP?value=0"
curl http://192.168.1.85:8087/set/0_userdata.0.Anwesenheit.$IP?value=0
fi
done
und so wird es aus dem iobroker aufgerufen
function wakeIphone() {
exec("bash /opt/iobroker/cmd/iphone.sh")
}
schedule ("*/5 * * * *", function(){
wakeIphone();
});