Sosumi - Find my iPhone

bei mir das gleiche…

:frowning:

Apple hat die Version 1.3 von FindMyiPhone abgeschaltet.

Fix:

In der Sosumi Class alle zeilen die


"FindMyiPhone","appVersion":"1.3"

enthalten suchen und das 1.3 durch 1.4 ersetzen.

Vielen dank klappt ! Ihr seit die schnellsten und besten !

danke danke danke danke :slight_smile:

Danke auch von meiner Seite… War ein schneller Fix :wink:

Geniale Reaktionszeit. Vielen Dank.

auch meine IPhone-Laune ist wieder top :slight_smile:

Hier https://github.com/tylerhall/sosumi/tree/master/PHP
gibt’s auch eine neue Class.
//Sven

Nur noch als Info:

Sosumi aktualisiert: Gratis Werkzeug findet iPhone, Mac und Co. | ifun.de/iPhone :: Alles zum iPhone

Gruss Marcel

Was würde geändert ? Sollten wir updaten ?

Hi,

Beim ersten Skriptaufruf liefert mit Sosumi ein veralteten Standort/Timestamp. Erst bei 2. Aufruf stimmts. Ist das bei euch auch so?

Hab nur ein iPhone und nutze das erste funktionierende Skript im Thread.

Danke & Gruß, Axel

nach allem was ich weiss hat Tyler nur die FindsMyiPhone Versionsnummer auf 1.4 geändert, also das was ich oben schon als fix geschrieben hatte…

Hallo
Hab mich heute zum erstenmal damit beschaeftigt.
Habe iPhone und iPad.
So wie ich die Sache sehe passiert folgendes.
Du legst mit

$ssm = new Sosumi($IPHONE_USER, $IPHONE_PASS);

Damit werden schon alle Geraete vom Appleserver mit ihrer letzten bekannten
Position geholt. Damit wird auch ein neues Suchen der Geraete von Seite Apple
angestossen.
Kann man schoen sehen wenn man gleichzeitig https://www.icloud.com/#find beobachtet.
Im Script wird jetzt mit

$ssm->locate(xxx, 15);

Die Position der einzelnen Geraete geholt, die aber ja in der kurzen Zeit noch garnicht aktuell sein koennen. Ausserdem holt die Function locate gar keine
neuen Daten, sondern gibt dir die Daten vom Erstellen der Klasse.
Deshalb funktioniert es beim 2. Mal.
Die Funktion in der Klasse die das machen sollte wird garnicht ausgefuehrt.

            while(!$this->devices[$device_num]->latitude || !$this->devices[$device_num]->longitude)
            {   
                $this->iflog('Waiting for location...');
                if((time() - $start) > $max_wait)
                {
                    throw new Exception("Unable to find location within '$max_wait' seconds
");
                }

                sleep(5);
                $this->updateDevices(); 
            }

Eine Alternative hab ich mal gebastelt ohne die Klasse zu aendern.
Ich benutze aber den Zeitstempel der Position.
Vielleicht kann es jemand ja brauchen.

	$timestamp = time(); // aktueller Zeitstempel
	
	$ssm = new Sosumi($IPHONE_USER, $IPHONE_PASS);  // Klasse erstellen und letzte Position holen
	
	$id = 0;
	
	foreach ( $ssm->devices as $geraete )
		{
		$timeout = 30;    // Timeout fuer neue Position
		
		while(true)
      	{
      	$ssm->devices[$id]->latitude  = false; // auf false damit locate funktioniert
      	$ssm->devices[$id]->longitude = false; // auf false damit locate funktioniert
      	
			$loc = $ssm->locate($id, 15);
		
			$id_timestamp = strtotime($loc['timestamp']);   // Zeitstempel der Position
		
			$diff = $id_timestamp - $timestamp;    // Differenz zum Startzeitpunkt des Scriptes
			
			if ( $diff > 0 ) break;       // wenn Zeitstempel neuer dann raus
			
			sleep(5);
			$timeout = $timeout - 5 ;     // warten
			if ( $timeout < 0 )
			   break;                     // Timeout
			}

		$id++;
		
		print_r($loc);
		}


Moin Gemeinde,

sagt mal, hat sich bei den Messages auch was verändert?


$ssm->sendMessage('Your Message', true, <device number>, 'Important Message');

Ich bekomme jetzt die ‚Your message‘ nicht mehr angezeigt, sondern nur noch die ‚Important Message‘.
Hat sich da vielleicht wieder was bei Apple geändert?

Gruß
Dirk

Ich habe auch noch eine Änderung nachzutragen, denn seit ein paar Tagen hat bei mir die Lokalisierung immer Fehler geworfen.

Es liegt m.E. an der Änderung von Apple für die beiden Parameter der Akkuanzeige und ob im Ladegerät oder nicht:

$device->chargingStatus = $json_device->a;
$device->batteryLevel   = $json_device->b;

Diese beiden Strings kommen in der Class Sosumi.php 2x vor.
Je nachdem welche Version Ihr habt sind das bei mir die Zeilen 160 & 161 und in den Zeilen 191 & 192.

Ich habe dort das a & b durch folgendes ersetzt:

$device->chargingStatus = $json_device->batteryStatus;
$device->batteryLevel   = $json_device->batteryLevel;

Seitdem gibts bei mir keine Fehler mehr und m.E wird auch der Batteriestatus korrekt zurückgegeben.

Evtl. hilft es ja dem einen oder anderen :wink:

Grüße,

Oliver

Hi.

Dank für den Tip - funktioniert bei mir aber leider nicht. Die beiden Daten werden noch immer nicht korrekt angezeigt.

sagt mal…

hat schon jemand von euch das Script mal so verändert, daß man auch mehrere Geräte auf einer Karte angezeigt bekommt?
Meine php-Kenntnisse reichen dafür leider nicht, würde aber gerne die 3 iPhones auf einer Karte angezeigt bekommen, die es in unserer Familie gibt.

Falls das schon jemand gemacht hat, würde er das Script mal posten?

Gruß
Dirk

Danke 1007, das klappt bestens!

Ich habe die Klasse dann doch noch ein wenig verändert, um den ChargingStatus und BatteryLevel zu bekommen. Dazu in der Klasse ab Zeile 62 das array $loc folgendermassen erweitern:

            $loc = array(
                        "latitude" => $this->devices[$device_num]->latitude,
                        "longitude" => $this->devices[$device_num]->longitude,
                        "accuracy" => $this->devices[$device_num]->horizontalAccuracy,
                        "timestamp" => $this->devices[$device_num]->locationTimestamp,
                        "name" => $this->devices[$device_num]->name,
                        "deviceStatus" => $this->devices[$device_num]->deviceStatus,
                        "id" => $this->devices[$device_num]->id,
                        "chargingStatus" => $this->devices[$device_num]->chargingStatus,
                        "batteryLevel" => $this->devices[$device_num]->batteryLevel,
                        );

Danke & Gruß, Axel

Hallo.

Funktioniert das mit dem Ladestatus und Batterie-Level nun korrekt? Ich bekomme da noch immer Phantasiedaten angezeigt.

Vielleicht kann jemand mal seine mit Akku Anzeige funktionierende Klasse komplett posten. Wir haben hier jetzt so viele Versionen mit diversen Zeilen-Nennungen, dass Fehler vorprogrammiert sind.